diff options
author | Clark Scheff <clark@cyngn.com> | 2014-10-08 10:12:06 -0700 |
---|---|---|
committer | Clark Scheff <clark@cyngn.com> | 2014-10-08 10:13:15 -0700 |
commit | 549eb7c6f889cf2396ddd0169b606568b4710c61 (patch) | |
tree | cc54f13663965e3573834ac63d9f4c6602c1638c /src/com | |
parent | cb25c65268f63176b278d37b36bf412aefd2ddd0 (diff) | |
download | packages_apps_ThemeChooser-549eb7c6f889cf2396ddd0169b606568b4710c61.tar.gz packages_apps_ThemeChooser-549eb7c6f889cf2396ddd0169b606568b4710c61.tar.bz2 packages_apps_ThemeChooser-549eb7c6f889cf2396ddd0169b606568b4710c61.zip |
Only update wallpaper if fragment visible or not applying a theme
Change-Id: I956d3821457e52157bb6f106ab9fcf87cbb51d98
REF: THEMES-377
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/cyngn/theme/chooser/MyThemeFragment.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/com/cyngn/theme/chooser/MyThemeFragment.java b/src/com/cyngn/theme/chooser/MyThemeFragment.java index 48c2a22..6d9f695 100644 --- a/src/com/cyngn/theme/chooser/MyThemeFragment.java +++ b/src/com/cyngn/theme/chooser/MyThemeFragment.java @@ -10,6 +10,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ThemeUtils; import android.content.res.Resources; +import android.content.res.ThemeManager; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.Typeface; @@ -194,17 +195,22 @@ public class MyThemeFragment extends ThemeFragment { private BroadcastReceiver mWallpaperChangeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - final WallpaperManager wm = WallpaperManager.getInstance(context); - if (wm.getWallpaperInfo() != null) { - addSurfaceView(mSurfaceView); - } else { - removeSurfaceView(mSurfaceView); - } + // only update if we are the current visible fragment or if there is no theme + // being applied. + ThemeManager tm = (ThemeManager) context.getSystemService(Context.THEME_SERVICE); + if (!tm.isThemeApplying() || getUserVisibleHint()) { + final WallpaperManager wm = WallpaperManager.getInstance(context); + if (wm.getWallpaperInfo() != null) { + addSurfaceView(mSurfaceView); + } else { + removeSurfaceView(mSurfaceView); + } - Drawable wp = context == null ? null : wm.getDrawable(); - if (wp != null) { - mWallpaper.setImageDrawable(wp); - mWallpaperCard.setWallpaper(wp); + Drawable wp = context == null ? null : wm.getDrawable(); + if (wp != null) { + mWallpaper.setImageDrawable(wp); + mWallpaperCard.setWallpaper(wp); + } } } }; |