summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorClark Scheff <clark@cyngn.com>2014-10-15 13:52:14 -0700
committerd34d <clark@cyngn.com>2014-10-18 12:02:08 -0700
commitf7aa36dac80d29c18caf4af67c40644b654ee4bf (patch)
treedeb712421e54b7f6f21df258709ea9f11e0d3d8e /src/com
parentbaf7e446291dab9a39883ce272a32345e07c09c8 (diff)
downloadpackages_apps_ThemeChooser-f7aa36dac80d29c18caf4af67c40644b654ee4bf.tar.gz
packages_apps_ThemeChooser-f7aa36dac80d29c18caf4af67c40644b654ee4bf.tar.bz2
packages_apps_ThemeChooser-f7aa36dac80d29c18caf4af67c40644b654ee4bf.zip
Add better handling of themes that are being processed by ThemeManager
Change-Id: I02b3b034091bd1323857d112fd4bcd50dd8e0617
Diffstat (limited to 'src/com')
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java62
1 files changed, 40 insertions, 22 deletions
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 32b9193..4f93db8 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -265,6 +265,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
protected Uri mExternalLockscreenUri;
protected boolean mExpanded;
+ protected boolean mProcessingResources;
protected enum CustomizeResetAction {
Customize,
@@ -488,8 +489,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
super.onResume();
ThemeManager tm = getThemeManager();
if (tm != null) {
- final String pkgName = mBaseThemePkgName != null ? mBaseThemePkgName : mPkgName;
- if (tm.isThemeBeingProcessed(pkgName)) {
+ if (isThemeProcessing()) {
tm.registerProcessingListener(this);
mProcessingThemeLayout.setVisibility(View.VISIBLE);
mCustomize.setVisibility(View.INVISIBLE);
@@ -498,6 +498,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mDelete.setVisibility(View.INVISIBLE);
mDelete.setAlpha(0f);
}
+ mProcessingResources = true;
} else {
mCustomize.setVisibility(View.VISIBLE);
mCustomize.setAlpha(1f);
@@ -505,6 +506,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mDelete.setVisibility(View.VISIBLE);
mDelete.setAlpha(1f);
}
+ mProcessingResources = false;
}
}
}
@@ -545,18 +547,6 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
@Override
public void onFinishedProcessing(String pkgName) {
if (pkgName.equals(mPkgName) || pkgName.equals(mBaseThemePkgName)) {
- if (mProcessingThemeLayout.getVisibility() == View.VISIBLE) {
- mProcessingThemeLayout.animate().alpha(0).withEndAction(new Runnable() {
- @Override
- public void run() {
- mProcessingThemeLayout.setVisibility(View.GONE);
- }
- }).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
- mCustomize.setVisibility(View.VISIBLE);
- mCustomize.animate().alpha(1f).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
- mOverflow.setVisibility(View.VISIBLE);
- mOverflow.animate().alpha(1f).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
- }
ThemeManager tm = getThemeManager();
if (tm != null) {
tm.unregisterProcessingListener(this);
@@ -602,8 +592,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
protected Drawable getWallpaperDrawableFromUri(Uri uri, Point size) {
final Context context = getActivity();
final Resources res = context.getResources();
- Bitmap bmp = WallpaperUtils.createPreview(size, context, uri, null, res,
- 0, 0, false);
+ Bitmap bmp = WallpaperUtils.createPreview(size, context, uri, null, res, 0, 0, false);
if (bmp != null) {
return new BitmapDrawable(res, bmp);
}
@@ -618,13 +607,20 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
Resources res = getResources();
int extraPadding =
res.getDimensionPixelSize(R.dimen.system_bar_height) / 2;
- mScrollView.setPadding(
- mScrollView.getPaddingLeft(),
- mScrollView.getPaddingTop() + extraPadding,
- mScrollView.getPaddingRight(),
+ mScrollView.setPadding(mScrollView.getPaddingLeft(),
+ mScrollView.getPaddingTop() + extraPadding, mScrollView.getPaddingRight(),
mScrollView.getPaddingBottom());
}
+ protected boolean isThemeProcessing() {
+ ThemeManager tm = getThemeManager();
+ if (tm != null) {
+ final String pkgName = mBaseThemePkgName != null ? mBaseThemePkgName : mPkgName;
+ return tm.isThemeBeingProcessed(pkgName);
+ }
+ return false;
+ }
+
protected boolean onPopupMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
/* TODO: Add back in once there is UX available for this feature
@@ -1324,6 +1320,10 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
c.moveToFirst();
switch (mCurrentLoaderId) {
case LOADER_ID_ALL:
+ if (mProcessingResources && !isThemeProcessing()) {
+ mProcessingResources = false;
+ hideProcessingOverlay();
+ }
populateSupportedComponents(c);
loadWallpaper(c, false);
loadStatusBar(c, false);
@@ -2362,6 +2362,23 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mThemeTagLayout.setVisibility(View.GONE);
}
+ public void hideProcessingOverlay() {
+ mProcessingThemeLayout.animate().alpha(0).withEndAction(new Runnable() {
+ @Override
+ public void run() {
+ mProcessingThemeLayout.setVisibility(View.GONE);
+ }
+ }).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
+ mCustomize.setVisibility(View.VISIBLE);
+ mCustomize.setAlpha(0f);
+ mCustomize.animate().alpha(1f).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
+ if (mDelete.getVisibility() != View.GONE) {
+ mDelete.setVisibility(View.VISIBLE);
+ mDelete.setAlpha(0f);
+ mDelete.animate().alpha(1f).setDuration(ANIMATE_APPLY_LAYOUT_DURATION).start();
+ }
+ }
+
public void fadeInCards() {
for (int i = 0; i < mCardIdsToComponentTypes.size(); i++) {
final int key = mCardIdsToComponentTypes.keyAt(i);
@@ -2423,8 +2440,9 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
public void slideContentIntoView(final int yDelta, int selectorHeight) {
Space space = new Space(getActivity());
space.setId(ADDITIONAL_CONTENT_SPACE_ID);
- mAdditionalCards.addView(space, new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, selectorHeight));
+ mAdditionalCards.addView(space,
+ new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
+ selectorHeight));
final int startY = mScrollView.getScrollY();
final ValueAnimator scrollAnimator =
ValueAnimator.ofInt(startY, startY + yDelta);