WIP Dark theme
This commit is contained in:
@ -58,6 +58,7 @@ import it.danieleverducci.nextcloudmaps.databinding.ActivityGeofavoriteDetailBin
|
||||
import it.danieleverducci.nextcloudmaps.model.Geofavorite;
|
||||
import it.danieleverducci.nextcloudmaps.utils.GeoUriParser;
|
||||
import it.danieleverducci.nextcloudmaps.utils.IntentGenerator;
|
||||
import it.danieleverducci.nextcloudmaps.utils.MapUtils;
|
||||
|
||||
public class GeofavoriteDetailActivity extends AppCompatActivity implements LocationListener, ActivityCompat.OnRequestPermissionsResultCallback {
|
||||
|
||||
@ -74,11 +75,7 @@ public class GeofavoriteDetailActivity extends AppCompatActivity implements Loca
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// OSMDroid config
|
||||
IConfigurationProvider osmdroidConfig = Configuration.getInstance();
|
||||
osmdroidConfig.load(getApplicationContext(),
|
||||
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));
|
||||
osmdroidConfig.setUserAgentValue(BuildConfig.APPLICATION_ID);
|
||||
MapUtils.configOsmdroid(this);
|
||||
|
||||
mViewHolder = new ViewHolder(getLayoutInflater());
|
||||
setContentView(mViewHolder.getRootView());
|
||||
@ -321,6 +318,7 @@ public class GeofavoriteDetailActivity extends AppCompatActivity implements Loca
|
||||
// Set map properties
|
||||
this.binding.map.getZoomController().setVisibility(CustomZoomButtonsController.Visibility.NEVER);
|
||||
this.binding.map.setMultiTouchControls(true);
|
||||
MapUtils.setTheme(this.binding.map);
|
||||
// this.binding.map.setTilesScaledToDpi(true);
|
||||
|
||||
// Create marker
|
||||
@ -383,6 +381,7 @@ public class GeofavoriteDetailActivity extends AppCompatActivity implements Loca
|
||||
|
||||
public void hideAccuracy() {
|
||||
binding.accuracyTv.setVisibility(View.GONE);
|
||||
binding.accuracyProgressContainer.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public void hideActions() {
|
||||
|
@ -132,7 +132,7 @@ public class MainActivity extends AppCompatActivity implements OnSortingOrderLis
|
||||
}
|
||||
};
|
||||
|
||||
geofavoriteAdapter = new GeofavoriteAdapter(getApplicationContext(), rvItemClickListener);
|
||||
geofavoriteAdapter = new GeofavoriteAdapter(this, rvItemClickListener);
|
||||
recyclerView.setAdapter(geofavoriteAdapter);
|
||||
geofavoriteAdapter.setSortRule(sortRule);
|
||||
|
||||
|
@ -38,6 +38,7 @@ import it.danieleverducci.nextcloudmaps.R;
|
||||
import it.danieleverducci.nextcloudmaps.activity.detail.GeofavoriteDetailActivity;
|
||||
import it.danieleverducci.nextcloudmaps.databinding.ActivityMapPickerBinding;
|
||||
import it.danieleverducci.nextcloudmaps.utils.GeoUriParser;
|
||||
import it.danieleverducci.nextcloudmaps.utils.MapUtils;
|
||||
|
||||
public class MapPickerActivity extends AppCompatActivity {
|
||||
public static final String TAG = "MapPickerActivity";
|
||||
@ -50,11 +51,7 @@ public class MapPickerActivity extends AppCompatActivity {
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// OSMDroid config
|
||||
IConfigurationProvider osmdroidConfig = Configuration.getInstance();
|
||||
osmdroidConfig.load(getApplicationContext(),
|
||||
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));
|
||||
osmdroidConfig.setUserAgentValue(BuildConfig.APPLICATION_ID);
|
||||
MapUtils.configOsmdroid(this);
|
||||
|
||||
mViewHolder = new MapPickerActivity.ViewHolder(getLayoutInflater());
|
||||
mViewHolder.setViewEventListener(new ViewEventListener() {
|
||||
@ -125,6 +122,7 @@ public class MapPickerActivity extends AppCompatActivity {
|
||||
this.map = this.binding.map;
|
||||
this.map.getZoomController().setVisibility(CustomZoomButtonsController.Visibility.NEVER);
|
||||
this.map.setMultiTouchControls(true);
|
||||
MapUtils.setTheme(this.map);
|
||||
this.map.addMapListener(new MapListener() {
|
||||
@Override
|
||||
public boolean onScroll(ScrollEvent event) {
|
||||
|
@ -0,0 +1,36 @@
|
||||
package it.danieleverducci.nextcloudmaps.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.osmdroid.config.IConfigurationProvider;
|
||||
import org.osmdroid.views.MapView;
|
||||
import org.osmdroid.views.overlay.TilesOverlay;
|
||||
|
||||
import it.danieleverducci.nextcloudmaps.BuildConfig;
|
||||
|
||||
public class MapUtils {
|
||||
|
||||
public static void configOsmdroid(Context context) {
|
||||
IConfigurationProvider osmdroidConfig = org.osmdroid.config.Configuration.getInstance();
|
||||
osmdroidConfig.load(context,
|
||||
PreferenceManager.getDefaultSharedPreferences(context));
|
||||
osmdroidConfig.setUserAgentValue(BuildConfig.APPLICATION_ID);
|
||||
}
|
||||
|
||||
public static void setTheme(MapView mapView) {
|
||||
int currentNightMode = mapView.getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||
switch (currentNightMode) {
|
||||
case Configuration.UI_MODE_NIGHT_NO:
|
||||
// Night mode is not active, we're using the light theme
|
||||
mapView.getOverlayManager().getTilesOverlay().setColorFilter(null);
|
||||
break;
|
||||
case Configuration.UI_MODE_NIGHT_YES:
|
||||
// Night mode is active, we're using dark theme
|
||||
mapView.getOverlayManager().getTilesOverlay().setColorFilter(TilesOverlay.INVERT_COLORS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user