summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authord34d <clark@cyngn.com>2016-05-17 11:55:28 -0700
committerd34d <clark@cyngn.com>2016-05-17 11:59:10 -0700
commita74e3fbddc106106975341e6a81e19dbd23adf6a (patch)
tree3e30f8c0071c436944e038c1e822af62bfacc8e7
parent75bae064f51a6b0640767d5c583cfd4b1e738bae (diff)
downloadpackages_apps_ThemeChooser-a74e3fbddc106106975341e6a81e19dbd23adf6a.tar.gz
packages_apps_ThemeChooser-a74e3fbddc106106975341e6a81e19dbd23adf6a.tar.bz2
packages_apps_ThemeChooser-a74e3fbddc106106975341e6a81e19dbd23adf6a.zip
Avoid IAE when adding an already added client
This is a weird state and although I don't know how it can happen, there have been logs showing this happening so we can at least do our best to avoid the exception by catching it and carrying on since the exception means our client has already been added. Change-Id: Ibf3e9b798d0193d5701e508821bad09fca822a45 TICKET: CYNGNOS-2853
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java6
-rw-r--r--src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 085b23a..9ae1cdf 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -2208,7 +2208,11 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
= fillMissingComponentsWithDefault(componentsToApply);
ThemeManager tm = getThemeManager();
if (tm != null) {
- tm.addClient(ThemeFragment.this);
+ try {
+ tm.addClient(ThemeFragment.this);
+ } catch (IllegalArgumentException e) {
+ /* ignore since this means we already have a listener added */
+ }
tm.requestThemeChange(getThemeChangeRequestForComponents(fullMap),
true);
}
diff --git a/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java b/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
index 64245d0..4b6857b 100644
--- a/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
+++ b/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
@@ -775,7 +775,11 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
ThemeManager tm = ThemeManager.getInstance(getContext());
ThemeChangeRequest.Builder builder = new ThemeChangeRequest.Builder();
builder.setAppOverlay(appPkgName, themePkgName);
- tm.addClient(PerAppThemingWindow.this);
+ try {
+ tm.addClient(PerAppThemingWindow.this);
+ } catch (IllegalArgumentException e) {
+ /* ignore since this means we already have a listener added */
+ }
tm.requestThemeChange(builder.build(), false);
}
});