Move theme res logic to Themes static class.
Bug: 131310726
Change-Id: Ib46c26c2b44165a4441e109eed6d3ae7e19bcf02
diff --git a/src/com/android/launcher3/BaseDraggingActivity.java b/src/com/android/launcher3/BaseDraggingActivity.java
index c6fd906..ccd9e25 100644
--- a/src/com/android/launcher3/BaseDraggingActivity.java
+++ b/src/com/android/launcher3/BaseDraggingActivity.java
@@ -36,6 +36,7 @@
import com.android.launcher3.shortcuts.DeepShortcutManager;
import com.android.launcher3.uioverrides.DisplayRotationListener;
import com.android.launcher3.uioverrides.WallpaperColorInfo;
+import com.android.launcher3.util.Themes;
import androidx.annotation.Nullable;
@@ -69,7 +70,7 @@
// Update theme
WallpaperColorInfo wallpaperColorInfo = WallpaperColorInfo.getInstance(this);
wallpaperColorInfo.addOnChangeListener(this);
- int themeRes = getThemeRes(wallpaperColorInfo);
+ int themeRes = Themes.getActivityThemeRes(this);
if (themeRes != mThemeRes) {
mThemeRes = themeRes;
setTheme(themeRes);
@@ -88,31 +89,11 @@
}
private void updateTheme() {
- WallpaperColorInfo wallpaperColorInfo = WallpaperColorInfo.getInstance(this);
- if (mThemeRes != getThemeRes(wallpaperColorInfo)) {
+ if (mThemeRes != Themes.getActivityThemeRes(this)) {
recreate();
}
}
- protected int getThemeRes(WallpaperColorInfo wallpaperColorInfo) {
- boolean darkTheme;
- if (Utilities.ATLEAST_Q) {
- Configuration configuration = getResources().getConfiguration();
- int nightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
- darkTheme = nightMode == Configuration.UI_MODE_NIGHT_YES;
- } else {
- darkTheme = wallpaperColorInfo.isDark();
- }
-
- if (darkTheme) {
- return wallpaperColorInfo.supportsDarkText() ?
- R.style.AppTheme_Dark_DarkText : R.style.AppTheme_Dark;
- } else {
- return wallpaperColorInfo.supportsDarkText() ?
- R.style.AppTheme_DarkText : R.style.AppTheme;
- }
- }
-
@Override
public void onActionModeStarted(ActionMode mode) {
super.onActionModeStarted(mode);
diff --git a/src/com/android/launcher3/util/Themes.java b/src/com/android/launcher3/util/Themes.java
index a45f17d..0c44012 100644
--- a/src/com/android/launcher3/util/Themes.java
+++ b/src/com/android/launcher3/util/Themes.java
@@ -17,6 +17,7 @@
package com.android.launcher3.util;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.ColorMatrix;
@@ -26,12 +27,34 @@
import android.util.TypedValue;
import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
+import com.android.launcher3.uioverrides.WallpaperColorInfo;
/**
* Various utility methods associated with theming.
*/
public class Themes {
+ public static int getActivityThemeRes(Context context) {
+ WallpaperColorInfo wallpaperColorInfo = WallpaperColorInfo.getInstance(context);
+ boolean darkTheme;
+ if (Utilities.ATLEAST_Q) {
+ Configuration configuration = context.getResources().getConfiguration();
+ int nightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ darkTheme = nightMode == Configuration.UI_MODE_NIGHT_YES;
+ } else {
+ darkTheme = wallpaperColorInfo.isDark();
+ }
+
+ if (darkTheme) {
+ return wallpaperColorInfo.supportsDarkText() ?
+ R.style.AppTheme_Dark_DarkText : R.style.AppTheme_Dark;
+ } else {
+ return wallpaperColorInfo.supportsDarkText() ?
+ R.style.AppTheme_DarkText : R.style.AppTheme;
+ }
+ }
+
public static String getDefaultBodyFont(Context context) {
TypedArray ta = context.obtainStyledAttributes(android.R.style.TextAppearance_DeviceDefault,
new int[]{android.R.attr.fontFamily});