OSDN Git Service

Cleanup theming-related code
authorBraden Farmer <farmerbb@gmail.com>
Fri, 24 Apr 2020 04:17:50 +0000 (22:17 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Fri, 24 Apr 2020 04:17:50 +0000 (22:17 -0600)
13 files changed:
app/src/main/java/com/farmerbb/taskbar/activity/ContextMenuActivity.java
app/src/main/java/com/farmerbb/taskbar/activity/InvisibleActivityFreeform.java
app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java
app/src/main/java/com/farmerbb/taskbar/activity/SelectAppActivity.java
app/src/main/java/com/farmerbb/taskbar/adapter/StartMenuAdapter.java
app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java
app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java
app/src/main/java/com/farmerbb/taskbar/fragment/GeneralFragment.java
app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java
app/src/main/java/com/farmerbb/taskbar/ui/DashboardController.java
app/src/main/java/com/farmerbb/taskbar/util/U.java
app/src/playstore/java/com/farmerbb/taskbar/activity/IconPackApplyActivity.java
app/src/playstore/java/com/farmerbb/taskbar/activity/TaskerActivityBase.java

index 51c68af..d43120a 100644 (file)
@@ -599,17 +599,8 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                 contextMenuFix = false;
                 break;
             case "start_menu_apps":
-                Intent intent = null;
-
+                Intent intent = U.getThemedIntent(this, SelectAppActivity.class);
                 SharedPreferences pref3 = U.getSharedPreferences(this);
-                switch(U.getCurrentTheme(this)) {
-                    case "light":
-                        intent = new Intent(this, SelectAppActivity.class);
-                        break;
-                    case "dark":
-                        intent = new Intent(this, SelectAppActivityDark.class);
-                        break;
-                }
 
                 if(U.hasFreeformSupport(this)
                         && pref3.getBoolean("freeform_hack", false)
@@ -697,18 +688,7 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                 contextMenuFix = false;
                 break;
             case "add_icon_to_desktop":
-                Intent intent2 = null;
-
-                SharedPreferences pref4 = U.getSharedPreferences(this);
-                switch(U.getCurrentTheme(this)) {
-                    case "light":
-                        intent2 = new Intent(this, DesktopIconSelectAppActivity.class);
-                        break;
-                    case "dark":
-                        intent2 = new Intent(this, DesktopIconSelectAppActivityDark.class);
-                        break;
-                }
-
+                Intent intent2 = U.getThemedIntent(this, DesktopIconSelectAppActivity.class);
                 if(intent2 != null)
                     intent2.putExtra("desktop_icon", desktopIcon);
 
index 86bd451..2b2f6c4 100644 (file)
@@ -127,17 +127,7 @@ public class InvisibleActivityFreeform extends Activity {
             if(!pref.getString("power_button_warning", "null").equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID))) {
                 new Handler().postDelayed(() -> {
                     if(helper.isInFreeformWorkspace()) {
-                        Intent intent = null;
-
-                        switch(U.getCurrentTheme(this)) {
-                            case "light":
-                                intent = new Intent(this, InvisibleActivityAlt.class);
-                                break;
-                            case "dark":
-                                intent = new Intent(this, InvisibleActivityAltDark.class);
-                                break;
-                        }
-
+                        Intent intent = U.getThemedIntent(this, InvisibleActivityAlt.class);
                         if(intent != null) {
                             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                             intent.putExtra("power_button_warning", true);
index 9cba3be..03919f4 100644 (file)
@@ -88,16 +88,9 @@ public class MainActivity extends AppCompatActivity {
         final SharedPreferences pref = U.getSharedPreferences(this);
         SharedPreferences.Editor editor = pref.edit();
 
-        if(!U.isLibrary(this)) {
-            switch(U.getCurrentTheme(this)) {
-                case "light":
-                    setTheme(R.style.Taskbar);
-                    break;
-                case "dark":
-                    setTheme(R.style.Taskbar_Dark);
-                    break;
-            }
-        } else {
+        if(!U.isLibrary(this))
+            setTheme(U.isDarkTheme(this) ? R.style.Taskbar_Dark : R.style.Taskbar);
+        else {
             int theme = getIntent().getIntExtra("theme", -1);
             if(theme != -1)
                 setTheme(theme);
index c94cf7f..4999d80 100644 (file)
@@ -127,18 +127,7 @@ public class SelectAppActivity extends AppCompatActivity {
 
             if(!noShadow)
                 new Handler().post(() -> {
-                    Intent intent = null;
-                    SharedPreferences pref3 = U.getSharedPreferences(this);
-
-                    switch(U.getCurrentTheme(this)) {
-                        case "light":
-                            intent = new Intent(this, SelectAppActivity.class);
-                            break;
-                        case "dark":
-                            intent = new Intent(this, SelectAppActivityDark.class);
-                            break;
-                    }
-
+                    Intent intent = U.getThemedIntent(this, SelectAppActivity.class);
                     startActivity(intent);
                 });
         }
index 0c585d0..c97d5a1 100644 (file)
@@ -96,15 +96,8 @@ public class StartMenuAdapter extends ArrayAdapter<AppEntry> implements SectionI
         TextView textView = convertView.findViewById(R.id.name);
         textView.setText(entry.getLabel());
         textView.setTypeface(null, isTopApp(entry) ? Typeface.BOLD : Typeface.NORMAL);
-
-        switch(U.getCurrentTheme(getContext())) {
-            case "light":
-                textView.setTextColor(ContextCompat.getColor(getContext(), R.color.tb_text_color));
-                break;
-            case "dark":
-                textView.setTextColor(ContextCompat.getColor(getContext(), R.color.tb_text_color_dark));
-                break;
-        }
+        textView.setTextColor(ContextCompat.getColor(getContext(),
+                U.isDarkTheme(getContext()) ? R.color.tb_text_color_dark : R.color.tb_text_color));
 
         ImageView imageView = convertView.findViewById(R.id.icon);
         imageView.setImageDrawable(entry.getIcon(getContext()));
index b83d0e8..c8853e5 100644 (file)
@@ -257,17 +257,7 @@ public class AdvancedFragment extends SettingsFragment {
 
                 break;
             case "navigation_bar_buttons":
-                Intent intent = null;
-
-                switch(U.getCurrentTheme(getActivity())) {
-                    case "light":
-                        intent = new Intent(getActivity(), NavigationBarButtonsActivity.class);
-                        break;
-                    case "dark":
-                        intent = new Intent(getActivity(), NavigationBarButtonsActivityDark.class);
-                        break;
-                }
-
+                Intent intent = U.getThemedIntent(this, NavigationBarButtonsActivity.class);
                 startActivity(intent);
                 break;
             case "secondscreen":
index 0332e4e..9edd8ea 100644 (file)
@@ -123,17 +123,7 @@ public class AppearanceFragment extends SettingsFragment {
 
         switch(p.getKey()) {
             case "icon_pack_list":
-                Intent intent = null;
-
-                switch(U.getCurrentTheme(getActivity())) {
-                    case "light":
-                        intent = new Intent(getActivity(), IconPackActivity.class);
-                        break;
-                    case "dark":
-                        intent = new Intent(getActivity(), IconPackActivityDark.class);
-                        break;
-                }
-
+                Intent intent = U.getThemedIntent(getActivity(), IconPackActivity.class);
                 startActivityForResult(intent, 123);
                 break;
             case "reset_colors":
index 542051e..9ca6436 100644 (file)
@@ -106,17 +106,7 @@ public class GeneralFragment extends SettingsFragment {
     public boolean onPreferenceClick(final Preference p) {
         switch(p.getKey()) {
             case "blacklist":
-                Intent intent = null;
-
-                switch(U.getCurrentTheme(getActivity())) {
-                    case "light":
-                        intent = new Intent(getActivity(), SelectAppActivity.class);
-                        break;
-                    case "dark":
-                        intent = new Intent(getActivity(), SelectAppActivityDark.class);
-                        break;
-                }
-
+                Intent intent = U.getThemedIntent(getActivity(), SelectAppActivity.class);
                 startActivity(intent);
                 break;
             case "notification_settings":
index fd43078..a6dc430 100644 (file)
@@ -188,17 +188,7 @@ public abstract class SettingsFragment extends PreferenceFragment implements Pre
     @Override
     public boolean onPreferenceClick(final Preference p) {
         if(p.getKey().equals("clear_pinned_apps")) {
-            Intent clearIntent = null;
-
-            switch(U.getCurrentTheme(getActivity())) {
-                case "light":
-                    clearIntent = new Intent(getActivity(), ClearDataActivity.class);
-                    break;
-                case "dark":
-                    clearIntent = new Intent(getActivity(), ClearDataActivityDark.class);
-                    break;
-            }
-
+            Intent clearIntent = U.getThemedIntent(getActivity(), ClearDataActivity.class);
             startActivity(clearIntent);
         }
 
index 46f666e..6c73c17 100644 (file)
@@ -303,17 +303,7 @@ public class DashboardController extends UIController {
             boolean inFreeformMode = FreeformHackHelper.getInstance().isInFreeformWorkspace();
 
             final SharedPreferences pref = U.getSharedPreferences(context);
-            Intent intent = null;
-
-            switch(U.getCurrentTheme(context)) {
-                case "light":
-                    intent = new Intent(context, DashboardActivity.class);
-                    break;
-                case "dark":
-                    intent = new Intent(context, DashboardActivityDark.class);
-                    break;
-            }
-
+            Intent intent = U.getThemedIntent(context, DashboardActivity.class);
             if(intent != null) {
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
index bbcb165..dda65fb 100644 (file)
@@ -71,11 +71,13 @@ import android.widget.Toast;
 import com.farmerbb.taskbar.BuildConfig;
 import com.farmerbb.taskbar.R;
 import com.farmerbb.taskbar.activity.ContextMenuActivity;
+import com.farmerbb.taskbar.activity.DesktopIconSelectAppActivity;
 import com.farmerbb.taskbar.activity.DummyActivity;
 import com.farmerbb.taskbar.activity.InvisibleActivityFreeform;
 import com.farmerbb.taskbar.activity.MainActivity;
 import com.farmerbb.taskbar.activity.TouchAbsorberActivity;
 import com.farmerbb.taskbar.activity.dark.ContextMenuActivityDark;
+import com.farmerbb.taskbar.activity.dark.DesktopIconSelectAppActivityDark;
 import com.farmerbb.taskbar.service.DashboardService;
 import com.farmerbb.taskbar.service.NotificationService;
 import com.farmerbb.taskbar.service.PowerMenuService;
@@ -679,18 +681,7 @@ public class U {
     }
 
     public static void startContextMenuActivity(Context context, Bundle args) {
-        SharedPreferences pref = getSharedPreferences(context);
-        Intent intent = null;
-
-        switch(getCurrentTheme(context)) {
-            case "light":
-                intent = new Intent(context, ContextMenuActivity.class);
-                break;
-            case "dark":
-                intent = new Intent(context, ContextMenuActivityDark.class);
-                break;
-        }
-
+        Intent intent = getThemedIntent(context, ContextMenuActivity.class);
         if(intent != null) {
             intent.putExtra("args", args);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -1593,19 +1584,13 @@ public class U {
     }
 
     public static Context wrapContext(Context context) {
-        SharedPreferences pref = getSharedPreferences(context);
-
-        int theme = -1;
-        switch(getCurrentTheme(context)) {
-            case "light":
-                theme = R.style.Taskbar;
-                break;
-            case "dark":
-                theme = R.style.Taskbar_Dark;
-                break;
-        }
+        int theme;
+        if(isDarkTheme(context))
+            theme = R.style.Taskbar_Dark;
+        else
+            theme = R.style.Taskbar;
 
-        return theme > -1 ? new ContextThemeWrapper(context, theme) : context;
+        return new ContextThemeWrapper(context, theme);
     }
 
     public static boolean isPlayStoreRelease(Context context) {
@@ -1940,7 +1925,7 @@ public class U {
         return new BitmapDrawable(context.getResources(), resizedBitmap);
     }
 
-    public static String getCurrentTheme(Context context) {
+    private static String getCurrentTheme(Context context) {
         String defaultTheme = context.getString(R.string.tb_pref_theme_default);
 
         SharedPreferences pref = getSharedPreferences(context);
@@ -1966,4 +1951,23 @@ public class U {
     public static boolean isFavoriteAppTilesEnabled(Context context) {
         return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && !isChromeOs(context);
     }
+
+    @SuppressWarnings("rawtypes")
+    public static Intent getThemedIntent(Context context, Class clazz) {
+        Class newClass;
+
+        if(!isDarkTheme(context))
+            newClass = clazz;
+        else try {
+            newClass = Class.forName(clazz.getName() + "Dark");
+        } catch (ClassNotFoundException e) {
+            newClass = clazz;
+        }
+
+        return new Intent(context, newClass);
+    }
+
+    public static boolean isDarkTheme(Context context) {
+        return getCurrentTheme(context).equals("dark");
+    }
 }
index 7800e47..9b91d19 100644 (file)
@@ -36,7 +36,7 @@ public class IconPackApplyActivity extends Activity {
             finish();
         else if(getIntent().hasExtra(Intent.EXTRA_PACKAGE_NAME)) {
             SharedPreferences pref = U.getSharedPreferences(this);
-            if(U.getCurrentTheme(this).equals("dark"))
+            if(U.isDarkTheme(this))
                 setTheme(R.style.Taskbar_Dialog_Dark);
 
             @SuppressLint("InlinedApi")
index 9c1fc29..f201174 100644 (file)
@@ -29,8 +29,7 @@ public abstract class TaskerActivityBase extends PreferenceActivity implements P
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
-        SharedPreferences pref = U.getSharedPreferences(this);
-        if(U.getCurrentTheme(this).equals("dark"))
+        if(U.isDarkTheme(this))
             setTheme(android.R.style.Theme_Material_Dialog);
 
         super.onCreate(savedInstanceState);