Loading app/src/main/java/foundation/e/blisslauncher/core/Preferences.java +14 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ public class Preferences { private static final String ADDED_ECLOUD_WIDGET = "added_ecloud_widget"; private static final String ADDED_PRIVACY_WIDGET = "added_privacy_widget"; private static final String AP_MIGRATION_1 = "ap_migration_1"; private Preferences() { } Loading Loading @@ -390,6 +392,18 @@ public class Preferences { getPrefs(context).edit().putBoolean(ADDED_PRIVACY_WIDGET, true).apply(); } public static void setRemovedPrivacyWidget(Context context) { getPrefs(context).edit().putBoolean(ADDED_PRIVACY_WIDGET, false).apply(); } public static void setApMigration1Status(Context context, boolean status) { getPrefs(context).edit().putBoolean(AP_MIGRATION_1, status).apply(); } public static boolean getApMigration1Status(Context context) { return getPrefs(context).getBoolean(AP_MIGRATION_1, false); } public static boolean getAddedPrivacyWidget(Context context) { return getPrefs(context).getBoolean(ADDED_PRIVACY_WIDGET, false); } Loading app/src/main/java/foundation/e/blisslauncher/features/launcher/tasks/LoadDatabaseTask.java +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ import foundation.e.blisslauncher.core.database.LauncherDB; import foundation.e.blisslauncher.core.database.model.LauncherItem; import foundation.e.blisslauncher.core.migrate.Migration; import foundation.e.blisslauncher.features.launcher.AppProvider; import foundation.e.blisslauncher.features.widgets.WidgetMigration; import java.util.List; public class LoadDatabaseTask extends AsyncTask<Void, Void, List<LauncherItem>> { Loading @@ -22,6 +24,7 @@ public class LoadDatabaseTask extends AsyncTask<Void, Void, List<LauncherItem>> @Override protected List<LauncherItem> doInBackground(Void... voids) { Migration.migrateSafely(mAppProvider.getContext()); WidgetMigration.migrateAdvancedPrivacy(mAppProvider.getContext()); return LauncherDB.getDatabase(mAppProvider.getContext()).launcherDao().getAllItems(); } Loading app/src/main/java/foundation/e/blisslauncher/features/widgets/WidgetMigration.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line package foundation.e.blisslauncher.features.widgets import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import foundation.e.blisslauncher.core.Preferences import foundation.e.blisslauncher.core.database.LauncherDB import foundation.e.blisslauncher.features.widgets.DefaultWidgets.privacyWidget import timber.log.Timber object WidgetMigration { @JvmStatic fun migrateAdvancedPrivacy(context: Context) { Timber.tag(TAG).d("Starting widget migration for Advanced Privacy") val addedAp = Preferences.getAddedPrivacyWidget(context) val oldComponent = ComponentName("foundation.e.advancedprivacy", "foundation.e.privacycentralapp.Widget") val shouldMigrate = migrate(context, addedAp, oldComponent) Timber.tag(TAG).d("Should migrate?: $shouldMigrate") if (shouldMigrate && !Preferences.getApMigration1Status(context)) { Preferences.setRemovedPrivacyWidget(context) Preferences.setApMigration1Status(context, true) } } private fun migrate(context: Context, isAdded: Boolean, oldComponent: ComponentName): Boolean { val widgetDao = LauncherDB.getDatabase(context).widgetDao() var containsInDB = false for (widget in widgetDao.all) { val info = AppWidgetManager.getInstance(context).getAppWidgetInfo(widget.id) Timber.tag(TAG).d("Widget Id: ${widget.id} | Widget info: $info") if (info != null && (info.provider == oldComponent || info.provider == privacyWidget)) { Timber.tag(TAG).d("Migrating widget ${info.provider}") containsInDB = true } } if (containsInDB && isAdded) { Preferences.setApMigration1Status(context, true) } return !containsInDB && isAdded } private const val TAG = "WidgetMigration" } Loading
app/src/main/java/foundation/e/blisslauncher/core/Preferences.java +14 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ public class Preferences { private static final String ADDED_ECLOUD_WIDGET = "added_ecloud_widget"; private static final String ADDED_PRIVACY_WIDGET = "added_privacy_widget"; private static final String AP_MIGRATION_1 = "ap_migration_1"; private Preferences() { } Loading Loading @@ -390,6 +392,18 @@ public class Preferences { getPrefs(context).edit().putBoolean(ADDED_PRIVACY_WIDGET, true).apply(); } public static void setRemovedPrivacyWidget(Context context) { getPrefs(context).edit().putBoolean(ADDED_PRIVACY_WIDGET, false).apply(); } public static void setApMigration1Status(Context context, boolean status) { getPrefs(context).edit().putBoolean(AP_MIGRATION_1, status).apply(); } public static boolean getApMigration1Status(Context context) { return getPrefs(context).getBoolean(AP_MIGRATION_1, false); } public static boolean getAddedPrivacyWidget(Context context) { return getPrefs(context).getBoolean(ADDED_PRIVACY_WIDGET, false); } Loading
app/src/main/java/foundation/e/blisslauncher/features/launcher/tasks/LoadDatabaseTask.java +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ import foundation.e.blisslauncher.core.database.LauncherDB; import foundation.e.blisslauncher.core.database.model.LauncherItem; import foundation.e.blisslauncher.core.migrate.Migration; import foundation.e.blisslauncher.features.launcher.AppProvider; import foundation.e.blisslauncher.features.widgets.WidgetMigration; import java.util.List; public class LoadDatabaseTask extends AsyncTask<Void, Void, List<LauncherItem>> { Loading @@ -22,6 +24,7 @@ public class LoadDatabaseTask extends AsyncTask<Void, Void, List<LauncherItem>> @Override protected List<LauncherItem> doInBackground(Void... voids) { Migration.migrateSafely(mAppProvider.getContext()); WidgetMigration.migrateAdvancedPrivacy(mAppProvider.getContext()); return LauncherDB.getDatabase(mAppProvider.getContext()).launcherDao().getAllItems(); } Loading
app/src/main/java/foundation/e/blisslauncher/features/widgets/WidgetMigration.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line package foundation.e.blisslauncher.features.widgets import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import foundation.e.blisslauncher.core.Preferences import foundation.e.blisslauncher.core.database.LauncherDB import foundation.e.blisslauncher.features.widgets.DefaultWidgets.privacyWidget import timber.log.Timber object WidgetMigration { @JvmStatic fun migrateAdvancedPrivacy(context: Context) { Timber.tag(TAG).d("Starting widget migration for Advanced Privacy") val addedAp = Preferences.getAddedPrivacyWidget(context) val oldComponent = ComponentName("foundation.e.advancedprivacy", "foundation.e.privacycentralapp.Widget") val shouldMigrate = migrate(context, addedAp, oldComponent) Timber.tag(TAG).d("Should migrate?: $shouldMigrate") if (shouldMigrate && !Preferences.getApMigration1Status(context)) { Preferences.setRemovedPrivacyWidget(context) Preferences.setApMigration1Status(context, true) } } private fun migrate(context: Context, isAdded: Boolean, oldComponent: ComponentName): Boolean { val widgetDao = LauncherDB.getDatabase(context).widgetDao() var containsInDB = false for (widget in widgetDao.all) { val info = AppWidgetManager.getInstance(context).getAppWidgetInfo(widget.id) Timber.tag(TAG).d("Widget Id: ${widget.id} | Widget info: $info") if (info != null && (info.provider == oldComponent || info.provider == privacyWidget)) { Timber.tag(TAG).d("Migrating widget ${info.provider}") containsInDB = true } } if (containsInDB && isAdded) { Preferences.setApMigration1Status(context, true) } return !containsInDB && isAdded } private const val TAG = "WidgetMigration" }