Browse Source

Inject ThemeColorUtils into ThemeableSwitchPreference too

Signed-off-by: Álvaro Brey Vilas <alvaro.brey@nextcloud.com>
Álvaro Brey Vilas 3 years ago
parent
commit
2560d1be3c

+ 3 - 0
app/src/main/java/com/nextcloud/client/di/AppComponent.java

@@ -31,6 +31,7 @@ import com.nextcloud.client.onboarding.OnboardingModule;
 import com.nextcloud.client.preferences.PreferencesModule;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.media.MediaControlView;
+import com.owncloud.android.ui.ThemeableSwitchPreference;
 
 import javax.inject.Singleton;
 
@@ -58,6 +59,8 @@ public interface AppComponent {
 
     void inject(MediaControlView mediaControlView);
 
+    void inject(ThemeableSwitchPreference switchPreference);
+
     @Component.Builder
     interface Builder {
         @BindsInstance

+ 8 - 5
app/src/main/java/com/owncloud/android/ui/ThemeableSwitchPreference.java

@@ -29,9 +29,12 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Switch;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.utils.theme.ThemeColorUtils;
 
+import javax.inject.Inject;
+
 import androidx.appcompat.app.AppCompatDelegate;
 import androidx.core.graphics.drawable.DrawableCompat;
 
@@ -40,22 +43,22 @@ import androidx.core.graphics.drawable.DrawableCompat;
  * Themeable switch preference TODO Migrate to androidx
  */
 public class ThemeableSwitchPreference extends SwitchPreference {
-    private ThemeColorUtils themeColorUtils;
+    @Inject
+    ThemeColorUtils themeColorUtils;
 
     public ThemeableSwitchPreference(Context context) {
         super(context);
+        MainApp.getAppComponent().inject(this);
     }
 
     public ThemeableSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
+        MainApp.getAppComponent().inject(this);
     }
 
     public ThemeableSwitchPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-    }
-
-    public void setThemeColorUtils(ThemeColorUtils themeColorUtils) {
-        this.themeColorUtils = themeColorUtils;
+        MainApp.getAppComponent().inject(this);
     }
 
     @Override

+ 0 - 6
app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java

@@ -540,7 +540,6 @@ public class SettingsActivity extends ThemedPreferenceActivity
                                                  boolean fShowMediaScanNotifications) {
         ThemeableSwitchPreference mShowMediaScanNotifications =
             (ThemeableSwitchPreference) findPreference(PREFERENCE_SHOW_MEDIA_SCAN_NOTIFICATIONS);
-        mShowMediaScanNotifications.setThemeColorUtils(themeColorUtils);
 
         if (fShowMediaScanNotifications) {
             preferenceCategoryDetails.removePreference(mShowMediaScanNotifications);
@@ -550,7 +549,6 @@ public class SettingsActivity extends ThemedPreferenceActivity
     private void setupHiddenFilesPreference(PreferenceCategory preferenceCategoryDetails,
                                             boolean fShowHiddenFilesEnabled) {
         showHiddenFiles = (ThemeableSwitchPreference) findPreference("show_hidden_files");
-        showHiddenFiles.setThemeColorUtils(themeColorUtils);
         if (fShowHiddenFilesEnabled) {
             showHiddenFiles.setOnPreferenceClickListener(preference -> {
                 preferences.setShowHiddenFilesEnabled(showHiddenFiles.isChecked());
@@ -617,10 +615,6 @@ public class SettingsActivity extends ThemedPreferenceActivity
         preferenceCategorySyncedFolders.setTitle(themeTextUtils.getColoredTitle(getString(R.string.drawer_synced_folders),
                                                                                 accentColor));
 
-        ThemeableSwitchPreference syncedFolderOnWifiSwitch =
-            (ThemeableSwitchPreference) findPreference("synced_folder_on_wifi");
-        syncedFolderOnWifiSwitch.setThemeColorUtils(themeColorUtils);
-
         if (!getResources().getBoolean(R.bool.syncedFolder_light)) {
             preferenceScreen.removePreference(preferenceCategorySyncedFolders);
         } else {