summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/cyngn/theme/chooser/ChooserActivity.java2
-rw-r--r--src/com/cyngn/theme/chooser/MyThemeFragment.java8
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java44
3 files changed, 40 insertions, 14 deletions
diff --git a/src/com/cyngn/theme/chooser/ChooserActivity.java b/src/com/cyngn/theme/chooser/ChooserActivity.java
index 75d81f9..ee6f7db 100644
--- a/src/com/cyngn/theme/chooser/ChooserActivity.java
+++ b/src/com/cyngn/theme/chooser/ChooserActivity.java
@@ -761,6 +761,7 @@ public class ChooserActivity extends FragmentActivity
ThemeFragment f = getCurrentFragment();
if (f != null) {
f.setWallpaperImageUri(uri);
+ showSaveApplyButton();
}
}
} else if (resultCode == RESULT_OK && requestCode == REQUEST_PICK_LOCKSCREEN_IMAGE) {
@@ -769,6 +770,7 @@ public class ChooserActivity extends FragmentActivity
ThemeFragment f = getCurrentFragment();
if (f != null) {
f.setLockscreenImageUri(uri);
+ showSaveApplyButton();
}
}
} else {
diff --git a/src/com/cyngn/theme/chooser/MyThemeFragment.java b/src/com/cyngn/theme/chooser/MyThemeFragment.java
index 67a49d2..800faea 100644
--- a/src/com/cyngn/theme/chooser/MyThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/MyThemeFragment.java
@@ -385,6 +385,14 @@ public class MyThemeFragment extends ThemeFragment {
componentsToApply.put(component, selectedPkg);
}
}
+ if (mExternalLockscreenUri != null) {
+ if (mCurrentTheme.containsKey(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN)) {
+ componentsToApply.put(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN, LOCKSCREEN_NONE);
+ }
+ if (mCurrentTheme.containsKey(ThemesColumns.MODIFIES_LOCKSCREEN)) {
+ componentsToApply.put(ThemesColumns.MODIFIES_LOCKSCREEN, LOCKSCREEN_NONE);
+ }
+ }
}
return componentsToApply;
}
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 7cd04ff..577ffc9 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -193,6 +193,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
private static final int DEFAULT_CLOCK_COLOR = Color.WHITE;
protected static final String WALLPAPER_NONE = "";
+ protected static final String LOCKSCREEN_NONE = "";
protected static final String ARG_PACKAGE_NAME = "pkgName";
protected static final String ARG_COMPONENT_ID = "cmpntId";
@@ -652,10 +653,18 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
}
});
if (isSuccess) {
+ if (mExternalLockscreenUri != null) {
+ // Handle setting an external wallpaper in a separate thread
+ // Need to do this AFTER ThemeMgr is done processing our change request.
+ // The external lock screen that we just applied would be removed when
+ // the change request is setting/clearing the lock screen
+ new Thread(mApplyExternalLockscreenRunnable).start();
+ }
Map<String, String> appliedComponents = getComponentsToApply();
- String modLLS = appliedComponents.get(MODIFIES_LIVE_LOCK_SCREEN);
- if (modLLS != null) {
- if (TextUtils.equals(modLLS, "")) {
+ boolean modLLS = appliedComponents.containsKey(MODIFIES_LIVE_LOCK_SCREEN);
+ if (modLLS) {
+ String pkgName = appliedComponents.get(MODIFIES_LIVE_LOCK_SCREEN);
+ if (pkgName.equals(LOCKSCREEN_NONE)) {
setLiveLockScreenAsKeyguard(false);
} else {
setLiveLockScreenAsKeyguard(true);
@@ -707,8 +716,12 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mExternalLockscreenUri = uri;
final Point size = new Point(mLockScreenCard.getWidth(), mLockScreenCard.getHeight());
final Drawable wp = getWallpaperDrawableFromUri(uri, size);
+ if (mLockScreenCard.isShowingEmptyView()) {
+ mLockScreenCard.setEmptyViewEnabled(false);
+ }
mLockScreenCard.setWallpaper(wp);
// remove the entry from mSelectedComponentsMap
+ mSelectedComponentsMap.remove(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN);
mSelectedComponentsMap.remove(ThemesColumns.MODIFIES_LOCKSCREEN);
}
@@ -983,10 +996,6 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
// Handle setting an external wallpaper in a separate thread
new Thread(mApplyExternalWallpaperRunnable).start();
}
- if (mExternalLockscreenUri != null) {
- // Handle setting an external wallpaper in a separate thread
- new Thread(mApplyExternalLockscreenRunnable).start();
- }
}
mExpanded = false;
}
@@ -1570,16 +1579,20 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
&& (mBaseThemeSupportedComponents.contains(MODIFIES_LOCKSCREEN) ||
mBaseThemeSupportedComponents.contains(MODIFIES_LIVE_LOCK_SCREEN)))) {
if (isLiveLockScreen) {
- if (mSelectedComponentsMap.containsKey(MODIFIES_LOCKSCREEN)) {
- mSelectedComponentsMap.put(MODIFIES_LOCKSCREEN, "");
- }
mSelectedComponentsMap.put(MODIFIES_LIVE_LOCK_SCREEN, pkgName);
+ if (mCurrentTheme.containsKey(MODIFIES_LOCKSCREEN)) {
+ mSelectedComponentsMap.put(MODIFIES_LOCKSCREEN, LOCKSCREEN_NONE);
+ } else {
+ mSelectedComponentsMap.remove(MODIFIES_LOCKSCREEN);
+ }
setCardTitle(mLockScreenCard, pkgName,
getString(R.string.live_lock_screen_label));
} else {
mSelectedComponentsMap.put(MODIFIES_LOCKSCREEN, pkgName);
- if (mSelectedComponentsMap.containsKey(MODIFIES_LIVE_LOCK_SCREEN)) {
- mSelectedComponentsMap.put(MODIFIES_LIVE_LOCK_SCREEN, "");
+ if (mCurrentTheme.containsKey(MODIFIES_LIVE_LOCK_SCREEN)) {
+ mSelectedComponentsMap.put(MODIFIES_LIVE_LOCK_SCREEN, LOCKSCREEN_NONE);
+ } else {
+ mSelectedComponentsMap.remove(MODIFIES_LIVE_LOCK_SCREEN);
}
setCardTitle(mLockScreenCard, pkgName, getString(R.string.lockscreen_label));
}
@@ -2065,6 +2078,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mSelectedComponentsMap.put(ThemesColumns.MODIFIES_LAUNCHER, WALLPAPER_NONE);
setCardTitle(mWallpaperCard, WALLPAPER_NONE,
getString(R.string.wallpaper_label));
+ getChooserActivity().showSaveApplyButton();
} else if (ComponentSelector.EXTERNAL_WALLPAPER.equals(pkgName)) {
// Check if we have READ_EXTERNAL_STORAGE permission and if not request it,
// otherwise let the user pick an image
@@ -2093,15 +2107,17 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
|| MODIFIES_LIVE_LOCK_SCREEN.equals(component)) {
if (pkgName != null && TextUtils.isEmpty(pkgName)) {
mLockScreenCard.setWallpaper(null);
- mSelectedComponentsMap.put(ThemesColumns.MODIFIES_LOCKSCREEN, WALLPAPER_NONE);
+ mSelectedComponentsMap.put(ThemesColumns.MODIFIES_LOCKSCREEN, LOCKSCREEN_NONE);
+
if(mSelectedComponentsMap.containsKey(MODIFIES_LIVE_LOCK_SCREEN)) {
- mSelectedComponentsMap.put(MODIFIES_LIVE_LOCK_SCREEN,WALLPAPER_NONE);
+ mSelectedComponentsMap.put(MODIFIES_LIVE_LOCK_SCREEN, LOCKSCREEN_NONE);
}
setCardTitle(mLockScreenCard, WALLPAPER_NONE,
getString(R.string.lockscreen_label));
if (mLockScreenCard.isShowingEmptyView()) {
mLockScreenCard.setEmptyViewEnabled(false);
}
+ getChooserActivity().showSaveApplyButton();
} else if (ComponentSelector.EXTERNAL_WALLPAPER.equals(pkgName)) {
// Check if we have READ_EXTERNAL_STORAGE permission and if not request it,
// otherwise let the user pick an image