Explorar o código

Merge pull request #9622 from sandeep021/sandeepBranch

Fix sliders theming for calendar backup settings
Álvaro Brey %!s(int64=3) %!d(string=hai) anos
pai
achega
0d46d951e7

+ 1 - 1
src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.java

@@ -179,7 +179,7 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
 
         // find/saves UI elements
         mEnabledSwitch = view.findViewById(R.id.sync_enabled);
-        ThemeCheckableUtils.tintSwitch(mEnabledSwitch, accentColor);
+        ThemeCheckableUtils.tintSwitch(mEnabledSwitch);
 
         mLocalFolderPath = view.findViewById(R.id.synced_folders_settings_local_folder_path);
 

+ 3 - 3
src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.java

@@ -138,11 +138,11 @@ public class BackupFragment extends FileFragment implements DatePickerDialog.OnD
         arbitraryDataProvider = new ArbitraryDataProvider(getContext().getContentResolver());
 
         ThemeCheckableUtils.tintSwitch(
-            binding.contacts, ThemeColorUtils.primaryAccentColor(getContext()));
+            binding.contacts);
         ThemeCheckableUtils.tintSwitch(
-            binding.calendar, ThemeColorUtils.primaryAccentColor(getContext()));
+            binding.calendar);
         ThemeCheckableUtils.tintSwitch(
-            binding.dailyBackup, ThemeColorUtils.primaryAccentColor(getContext()));
+            binding.dailyBackup);
         binding.dailyBackup.setChecked(
             arbitraryDataProvider.getBooleanValue(user, PREFERENCE_CONTACTS_AUTOMATIC_BACKUP));
 

+ 20 - 11
src/main/java/com/owncloud/android/utils/theme/ThemeCheckableUtils.java

@@ -22,12 +22,14 @@
  */
 package com.owncloud.android.utils.theme;
 
+import android.content.Context;
 import android.content.res.ColorStateList;
 import android.graphics.Color;
 
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 
+import androidx.appcompat.app.AppCompatDelegate;
 import androidx.appcompat.widget.AppCompatCheckBox;
 import androidx.appcompat.widget.SwitchCompat;
 import androidx.core.graphics.drawable.DrawableCompat;
@@ -54,17 +56,24 @@ public final class ThemeCheckableUtils {
         }
     }
 
-    public static void tintSwitch(SwitchCompat switchView, int color) {
-        int trackColor = Color.argb(77, Color.red(color), Color.green(color), Color.blue(color));
-
-        // setting the thumb color
-        DrawableCompat.setTintList(switchView.getThumbDrawable(), new ColorStateList(
-            new int[][]{new int[]{android.R.attr.state_checked}, new int[]{}},
-            new int[]{color, Color.WHITE}));
-
-        // setting the track color
-        DrawableCompat.setTintList(switchView.getTrackDrawable(), new ColorStateList(
+    public static void tintSwitch(SwitchCompat switchView) {
+        int trackColor = switchView.getContext().getResources().getColor(R.color.grey_200);
+        ColorStateList thumbColorStateList = null;
+        ColorStateList trackColorStateList = null;
+        int thumbColor = ThemeColorUtils.primaryAccentColor(switchView.getContext());
+        if (ThemeColorUtils.darkTheme(switchView.getContext()) &&
+            AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES) {
+            thumbColor = Color.WHITE;
+            trackColor = Color.DKGRAY;
+        }
+        thumbColorStateList = new ColorStateList(
             new int[][]{new int[]{android.R.attr.state_checked}, new int[]{}},
-            new int[]{trackColor, MainApp.getAppContext().getResources().getColor(R.color.switch_track_color_unchecked)}));
+            new int[]{thumbColor, switchView.getContext().getResources().getColor(R.color.switch_thumb_color_unchecked)});
+        trackColorStateList = new ColorStateList(
+            new int[][]{new int[]{android.R.attr.state_checked},
+                new int[]{}},
+            new int[]{trackColor, trackColor});
+        DrawableCompat.setTintList(switchView.getThumbDrawable(), thumbColorStateList);
+        DrawableCompat.setTintList(switchView.getTrackDrawable(), trackColorStateList);
     }
 }

+ 2 - 1
src/main/res/layout/backup_fragment.xml

@@ -53,7 +53,8 @@
             android:minHeight="48dp"
             android:text="@string/calendar"
             android:textColor="@color/text_color"
-            android:textSize="@dimen/two_line_primary_text_size" />
+            android:textSize="@dimen/two_line_primary_text_size"
+            />
 
         <LinearLayout
             android:layout_width="match_parent"