From a12e65aa0ea130d43b4f899b5cfdbb81dbce6ec1 Mon Sep 17 00:00:00 2001 From: Andrei Shpakovskiy <50966785+AndreiShpakovskiy@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:36:14 +0300 Subject: Manage theme insertion callbacks behaviour (#892) --- .../asynctasks/InsertCustomTheme.java | 50 +++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'app/src/main/java/ml') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/InsertCustomTheme.java b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/InsertCustomTheme.java index 7527e0d1..da0d97fd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/InsertCustomTheme.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/InsertCustomTheme.java @@ -19,33 +19,33 @@ public class InsertCustomTheme { CustomTheme customTheme, boolean checkDuplicate, InsertCustomThemeListener insertCustomThemeListener) { executor.execute(() -> { - if (checkDuplicate) { - if (redditDataRoomDatabase.customThemeDao().getCustomTheme(customTheme.name) != null) { - handler.post(insertCustomThemeListener::duplicate); - } - } CustomTheme previousTheme = redditDataRoomDatabase.customThemeDao().getCustomTheme(customTheme.name); - if (customTheme.isLightTheme) { - redditDataRoomDatabase.customThemeDao().unsetLightTheme(); - CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, lightThemeSharedPreferences); - } else if (previousTheme != null && previousTheme.isLightTheme) { - lightThemeSharedPreferences.edit().clear().apply(); - } - if (customTheme.isDarkTheme) { - redditDataRoomDatabase.customThemeDao().unsetDarkTheme(); - CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, darkThemeSharedPreferences); - } else if (previousTheme != null && previousTheme.isDarkTheme) { - darkThemeSharedPreferences.edit().clear().apply(); - } - if (customTheme.isAmoledTheme) { - redditDataRoomDatabase.customThemeDao().unsetAmoledTheme(); - CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, amoledThemeSharedPreferences); - } else if (previousTheme != null && previousTheme.isAmoledTheme) { - amoledThemeSharedPreferences.edit().clear().apply(); - } - redditDataRoomDatabase.customThemeDao().insert(customTheme); - handler.post(insertCustomThemeListener::success); + if (checkDuplicate && previousTheme != null) { + handler.post(insertCustomThemeListener::duplicate); + } else { + if (customTheme.isLightTheme) { + redditDataRoomDatabase.customThemeDao().unsetLightTheme(); + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, lightThemeSharedPreferences); + } else if (previousTheme != null && previousTheme.isLightTheme) { + lightThemeSharedPreferences.edit().clear().apply(); + } + if (customTheme.isDarkTheme) { + redditDataRoomDatabase.customThemeDao().unsetDarkTheme(); + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, darkThemeSharedPreferences); + } else if (previousTheme != null && previousTheme.isDarkTheme) { + darkThemeSharedPreferences.edit().clear().apply(); + } + if (customTheme.isAmoledTheme) { + redditDataRoomDatabase.customThemeDao().unsetAmoledTheme(); + CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(customTheme, amoledThemeSharedPreferences); + } else if (previousTheme != null && previousTheme.isAmoledTheme) { + amoledThemeSharedPreferences.edit().clear().apply(); + } + redditDataRoomDatabase.customThemeDao().insert(customTheme); + + handler.post(insertCustomThemeListener::success); + } }); } -- cgit v1.2.3