From a74e3fbddc106106975341e6a81e19dbd23adf6a Mon Sep 17 00:00:00 2001 From: d34d Date: Tue, 17 May 2016 11:55:28 -0700 Subject: 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 --- src/com/cyngn/theme/chooser/ThemeFragment.java | 6 +++++- src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java | 6 +++++- 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); } }); -- cgit v1.1