WIP Dark theme
This commit is contained in:
		| @@ -49,8 +49,7 @@ | ||||
|         </activity> | ||||
|  | ||||
|         <activity | ||||
|             android:name=".activity.detail.GeofavoriteDetailActivity" | ||||
|             android:theme="@style/AppTheme"> | ||||
|             android:name=".activity.detail.GeofavoriteDetailActivity"> | ||||
|             <!-- standard "geo" scheme --> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.VIEW"/> | ||||
|   | ||||
| @@ -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; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -91,6 +91,7 @@ | ||||
|                 android:padding="20dp"> | ||||
|  | ||||
|                 <LinearLayout | ||||
|                     android:id="@+id/accuracy_progress_container" | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="wrap_content" | ||||
|                     android:layout_margin="10dp" | ||||
|   | ||||
| @@ -21,7 +21,6 @@ | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:id="@+id/activity_list_view" | ||||
|     android:background="@color/primary" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent"> | ||||
|  | ||||
| @@ -65,7 +64,6 @@ | ||||
|                 android:layout_marginTop="@dimen/spacer_1hx" | ||||
|                 android:layout_marginEnd="@dimen/spacer_2x" | ||||
|                 android:layout_marginBottom="@dimen/spacer_1hx" | ||||
|                 app:cardBackgroundColor="@color/appbar" | ||||
|                 app:cardCornerRadius="@dimen/spacer_1x" | ||||
|                 app:cardElevation="2dp" | ||||
|                 app:strokeWidth="0dp"> | ||||
|   | ||||
							
								
								
									
										5
									
								
								app/src/main/res/values-night/colors.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								app/src/main/res/values-night/colors.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <resources> | ||||
|     <color name="text_color">#eee</color> | ||||
|     <color name="disabled">#888</color> | ||||
| </resources> | ||||
| @@ -23,13 +23,11 @@ | ||||
|     <color name="transparent">#00000000</color> | ||||
|     <color name="defaultBrand">#0082C9</color> | ||||
|     <color name="defaultBrandAlpha">#550082C9</color> | ||||
|     <color name="appbar">@android:color/white</color> | ||||
|     <color name="defaultTint">#202124</color> | ||||
|     <color name="disabled">#666666</color> | ||||
|     <color name="disabled">#666</color> | ||||
|  | ||||
|  | ||||
|     <!-- List Colors --> | ||||
|     <color name="text_color">#333333</color> | ||||
|     <color name="text_color">#333</color> | ||||
|     <color name="secondary_text_color">@color/disabled</color> | ||||
|  | ||||
|     <!-- Selectors text/tint colors --> | ||||
|   | ||||
| @@ -18,37 +18,20 @@ | ||||
| <resources> | ||||
|     <!-- Base application theme. --> | ||||
|     <style name="BaseTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> | ||||
|         <!-- Customize your theme here. --> | ||||
|         <item name="colorPrimary">@color/primary</item> | ||||
| <!--        <item name="android:textColorPrimary">@color/white</item>--> | ||||
|         <item name="colorPrimaryDark">@color/primary</item> | ||||
|         <item name="colorAccent">@color/defaultBrand</item> | ||||
|         <item name="android:actionModeBackground">?attr/colorPrimary</item> | ||||
|         <item name="colorControlNormal">?attr/colorAccent</item> | ||||
|         <item name="windowActionModeOverlay">true</item> | ||||
|         <item name="toolbarStyle">@style/toolbarStyle</item> | ||||
|     </style> | ||||
|  | ||||
|     <style name="AppTheme" parent="BaseTheme"/> | ||||
|  | ||||
|     <style name="EditorTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> | ||||
|         <!-- Customize your theme here. --> | ||||
|         <item name="colorPrimary">@android:color/transparent</item> | ||||
|         <item name="colorPrimaryDark">@color/accent</item> | ||||
|         <item name="colorAccent">@color/accent</item> | ||||
|     </style> | ||||
|  | ||||
|     <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> | ||||
|     <style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> | ||||
|         <!-- Customize your theme here. --> | ||||
|         <item name="windowActionBar">false</item> | ||||
|         <item name="windowNoTitle">true</item> | ||||
|         <item name="android:windowFullscreen">true</item> | ||||
|     </style> | ||||
|  | ||||
|     <style name="toolbarStyle" parent="@style/Widget.AppCompat.Toolbar"> | ||||
|         <item name="android:background">?attr/colorPrimary</item> | ||||
|     </style> | ||||
|  | ||||
|     <!-- Geofavorite detail text appearances --> | ||||
|  | ||||
|     <style name="TextAppearance.GeofavoriteDetail.Header.Expanded" parent="TextAppearance.Design.CollapsingToolbar.Expanded"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user