summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/launcher3/LauncherAppState.java6
-rw-r--r--src/com/android/launcher3/LauncherBackupAgentHelper.java15
-rw-r--r--src/com/android/launcher3/LauncherModel.java24
-rw-r--r--src/com/android/launcher3/LauncherProvider.java85
-rw-r--r--src/com/android/launcher3/LauncherSettings.java21
-rw-r--r--src/com/android/launcher3/Workspace.java4
-rw-r--r--src/com/android/launcher3/model/MigrateFromRestoreTask.java5
7 files changed, 107 insertions, 53 deletions
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index f0e34e513..6ce7c5fdd 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -134,7 +134,7 @@ public class LauncherAppState {
}
LauncherModel setLauncher(Launcher launcher) {
- getLauncherProvider().setLauncherProviderChangeListener(launcher);
+ sLauncherProvider.get().setLauncherProviderChangeListener(launcher);
mModel.initialize(launcher);
mAccessibilityDelegate = ((launcher != null) && Utilities.ATLEAST_LOLLIPOP) ?
new LauncherAccessibilityDelegate(launcher) : null;
@@ -157,10 +157,6 @@ public class LauncherAppState {
sLauncherProvider = new WeakReference<LauncherProvider>(provider);
}
- public static LauncherProvider getLauncherProvider() {
- return sLauncherProvider.get();
- }
-
public WidgetPreviewLoader getWidgetCache() {
return mWidgetCache;
}
diff --git a/src/com/android/launcher3/LauncherBackupAgentHelper.java b/src/com/android/launcher3/LauncherBackupAgentHelper.java
index 8eb4e6369..2a5f1974e 100644
--- a/src/com/android/launcher3/LauncherBackupAgentHelper.java
+++ b/src/com/android/launcher3/LauncherBackupAgentHelper.java
@@ -73,7 +73,8 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper {
}
// Clear dB before restore
- LauncherAppState.getLauncherProvider().createEmptyDB();
+ LauncherSettings.Settings.call(getContentResolver(),
+ LauncherSettings.Settings.METHOD_CREATE_EMPTY_DB);
boolean hasData;
try {
@@ -90,12 +91,14 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper {
}
if (hasData && mHelper.restoreSuccessful) {
- LauncherAppState.getLauncherProvider().clearFlagEmptyDbCreated();
+ LauncherSettings.Settings.call(getContentResolver(),
+ LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG);
LauncherClings.synchonouslyMarkFirstRunClingDismissed(this);
// Rank was added in v4.
if (mHelper.restoredBackupVersion <= 3) {
- LauncherAppState.getLauncherProvider().updateFolderItemsRank();
+ LauncherSettings.Settings.call(getContentResolver(),
+ LauncherSettings.Settings.METHOD_UPDATE_FOLDER_ITEMS_RANK);
}
if (MigrateFromRestoreTask.ENABLED && mHelper.shouldAttemptWorkspaceMigration()) {
@@ -105,10 +108,12 @@ public class LauncherBackupAgentHelper extends BackupAgentHelper {
mHelper.widgetSizes);
}
- LauncherAppState.getLauncherProvider().convertShortcutsToLauncherActivities();
+ LauncherSettings.Settings.call(getContentResolver(),
+ LauncherSettings.Settings.METHOD_CONVERT_SHORTCUTS_TO_ACTIVITIES);
} else {
if (VERBOSE) Log.v(TAG, "Nothing was restored, clearing DB");
- LauncherAppState.getLauncherProvider().createEmptyDB();
+ LauncherSettings.Settings.call(getContentResolver(),
+ LauncherSettings.Settings.METHOD_CREATE_EMPTY_DB);
}
}
}
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 5711db0a9..4ad4695f3 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -481,7 +481,9 @@ public class LauncherModel extends BroadcastReceiver
if (!found) {
// Still no position found. Add a new screen to the end.
- screenId = LauncherAppState.getLauncherProvider().generateNewScreenId();
+ screenId = LauncherSettings.Settings.call(context.getContentResolver(),
+ LauncherSettings.Settings.METHOD_NEW_SCREEN_ID)
+ .getLong(LauncherSettings.Settings.EXTRA_VALUE);
// Save the screen id for binding in the workspace
workspaceScreens.add(screenId);
@@ -990,7 +992,9 @@ public class LauncherModel extends BroadcastReceiver
final ContentResolver cr = context.getContentResolver();
item.onAddToDatabase(context, values);
- item.id = LauncherAppState.getLauncherProvider().generateNewItemId();
+ item.id = LauncherSettings.Settings.call(cr, LauncherSettings.Settings.METHOD_NEW_ITEM_ID)
+ .getLong(LauncherSettings.Settings.EXTRA_VALUE);
+
values.put(LauncherSettings.Favorites._ID, item.id);
final StackTraceElement[] stackTrace = new Throwable().getStackTrace();
@@ -1727,17 +1731,20 @@ public class LauncherModel extends BroadcastReceiver
if ((mFlags & LOADER_FLAG_CLEAR_WORKSPACE) != 0) {
Log.d(TAG, "loadWorkspace: resetting launcher database");
- LauncherAppState.getLauncherProvider().deleteDatabase();
+ LauncherSettings.Settings.call(contentResolver,
+ LauncherSettings.Settings.METHOD_DELETE_DB);
}
if ((mFlags & LOADER_FLAG_MIGRATE_SHORTCUTS) != 0) {
// append the user's Launcher2 shortcuts
Log.d(TAG, "loadWorkspace: migrating from launcher2");
- LauncherAppState.getLauncherProvider().migrateLauncher2Shortcuts();
+ LauncherSettings.Settings.call(contentResolver,
+ LauncherSettings.Settings.METHOD_MIGRATE_LAUNCHER2_SHORTCUTS);
} else {
// Make sure the default workspace is loaded
Log.d(TAG, "loadWorkspace: loading default favorites");
- LauncherAppState.getLauncherProvider().loadDefaultFavoritesIfNecessary();
+ LauncherSettings.Settings.call(contentResolver,
+ LauncherSettings.Settings.METHOD_LOAD_DEFAULT_FAVORITES);
}
synchronized (sBgLock) {
@@ -2232,8 +2239,11 @@ public class LauncherModel extends BroadcastReceiver
}
// Remove any empty folder
- for (long folderId : LauncherAppState.getLauncherProvider()
- .deleteEmptyFolders()) {
+ ArrayList<Long> deletedFolderIds = (ArrayList<Long>) LauncherSettings.Settings
+ .call(contentResolver,
+ LauncherSettings.Settings.METHOD_DELETE_EMPTY_FOLDERS)
+ .getSerializable(LauncherSettings.Settings.EXTRA_VALUE);
+ for (long folderId : deletedFolderIds) {
sBgWorkspaceItems.remove(sBgFolders.get(folderId));
sBgFolders.remove(folderId);
sBgItemsIdMap.remove(folderId);
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 230bedb21..17e282048 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -62,7 +62,6 @@ import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
-import java.util.List;
public class LauncherProvider extends ContentProvider {
private static final String TAG = "LauncherProvider";
@@ -91,10 +90,6 @@ public class LauncherProvider extends ContentProvider {
return true;
}
- public boolean wasNewDbCreated() {
- return mOpenHelper.wasNewDbCreated();
- }
-
public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) {
mListener = listener;
mOpenHelper.mListener = mListener;
@@ -271,6 +266,50 @@ public class LauncherProvider extends ContentProvider {
result.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, value);
return result;
}
+ case LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG: {
+ clearFlagEmptyDbCreated();
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_DELETE_EMPTY_FOLDERS: {
+ Bundle result = new Bundle();
+ result.putSerializable(LauncherSettings.Settings.EXTRA_VALUE, deleteEmptyFolders());
+ return result;
+ }
+ case LauncherSettings.Settings.METHOD_NEW_ITEM_ID: {
+ Bundle result = new Bundle();
+ result.putLong(LauncherSettings.Settings.EXTRA_VALUE, mOpenHelper.generateNewItemId());
+ return result;
+ }
+ case LauncherSettings.Settings.METHOD_NEW_SCREEN_ID: {
+ Bundle result = new Bundle();
+ result.putLong(LauncherSettings.Settings.EXTRA_VALUE, mOpenHelper.generateNewScreenId());
+ return result;
+ }
+ case LauncherSettings.Settings.METHOD_CREATE_EMPTY_DB: {
+ createEmptyDB();
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_LOAD_DEFAULT_FAVORITES: {
+ loadDefaultFavoritesIfNecessary();
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_MIGRATE_LAUNCHER2_SHORTCUTS: {
+ mOpenHelper.migrateLauncher2Shortcuts(mOpenHelper.getWritableDatabase(),
+ Uri.parse(getContext().getString(R.string.old_launcher_provider_uri)));
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_UPDATE_FOLDER_ITEMS_RANK: {
+ mOpenHelper.updateFolderItemsRank(mOpenHelper.getWritableDatabase(), false);
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_CONVERT_SHORTCUTS_TO_ACTIVITIES: {
+ mOpenHelper.convertShortcutsToLauncherActivities(mOpenHelper.getWritableDatabase());
+ return null;
+ }
+ case LauncherSettings.Settings.METHOD_DELETE_DB: {
+ deleteDatabase();
+ return null;
+ }
}
return null;
}
@@ -279,8 +318,8 @@ public class LauncherProvider extends ContentProvider {
* Deletes any empty folder from the DB.
* @return Ids of deleted folders.
*/
- public List<Long> deleteEmptyFolders() {
- ArrayList<Long> folderIds = new ArrayList<Long>();
+ private ArrayList<Long> deleteEmptyFolders() {
+ ArrayList<Long> folderIds = new ArrayList<>();
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
db.beginTransaction();
try {
@@ -297,7 +336,7 @@ public class LauncherProvider extends ContentProvider {
folderIds.add(c.getLong(0));
}
c.close();
- if (folderIds.size() > 0) {
+ if (!folderIds.isEmpty()) {
db.delete(TABLE_FAVORITES, Utilities.createDbSelectionQuery(
LauncherSettings.Favorites._ID, folderIds), null);
}
@@ -323,22 +362,14 @@ public class LauncherProvider extends ContentProvider {
values.put(LauncherSettings.ChangeLogColumns.MODIFIED, System.currentTimeMillis());
}
- public long generateNewItemId() {
- return mOpenHelper.generateNewItemId();
- }
-
- public long generateNewScreenId() {
- return mOpenHelper.generateNewScreenId();
- }
-
/**
* Clears all the data for a fresh start.
*/
- synchronized public void createEmptyDB() {
+ synchronized private void createEmptyDB() {
mOpenHelper.createEmptyDB(mOpenHelper.getWritableDatabase());
}
- public void clearFlagEmptyDbCreated() {
+ private void clearFlagEmptyDbCreated() {
Utilities.getPrefs(getContext()).edit().remove(EMPTY_DATABASE_CREATED).commit();
}
@@ -349,7 +380,7 @@ public class LauncherProvider extends ContentProvider {
* 3) From a partner configuration APK, already in the system image
* 4) The default configuration for the particular device
*/
- synchronized public void loadDefaultFavoritesIfNecessary() {
+ synchronized private void loadDefaultFavoritesIfNecessary() {
SharedPreferences sp = Utilities.getPrefs(getContext());
if (sp.getBoolean(EMPTY_DATABASE_CREATED, false)) {
@@ -434,21 +465,7 @@ public class LauncherProvider extends ContentProvider {
mOpenHelper, getContext().getResources(), defaultLayout);
}
- public void migrateLauncher2Shortcuts() {
- mOpenHelper.migrateLauncher2Shortcuts(mOpenHelper.getWritableDatabase(),
- Uri.parse(getContext().getString(R.string.old_launcher_provider_uri)));
- }
-
- public void updateFolderItemsRank() {
- mOpenHelper.updateFolderItemsRank(mOpenHelper.getWritableDatabase(), false);
- }
-
- public void convertShortcutsToLauncherActivities() {
- mOpenHelper.convertShortcutsToLauncherActivities(mOpenHelper.getWritableDatabase());
- }
-
-
- public void deleteDatabase() {
+ private void deleteDatabase() {
// Are you sure? (y/n)
final SQLiteDatabase db = mOpenHelper.getWritableDatabase();
final File dbFile = new File(db.getPath());
diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java
index 8a5804f34..9ee6a2199 100644
--- a/src/com/android/launcher3/LauncherSettings.java
+++ b/src/com/android/launcher3/LauncherSettings.java
@@ -16,7 +16,9 @@
package com.android.launcher3;
+import android.content.ContentResolver;
import android.net.Uri;
+import android.os.Bundle;
import android.provider.BaseColumns;
import com.android.launcher3.config.ProviderConfig;
@@ -321,8 +323,27 @@ public class LauncherSettings {
public static final String METHOD_GET_BOOLEAN = "get_boolean_setting";
public static final String METHOD_SET_BOOLEAN = "set_boolean_setting";
+ public static final String METHOD_CLEAR_EMPTY_DB_FLAG = "clear_empty_db_flag";
+
+ public static final String METHOD_DELETE_EMPTY_FOLDERS = "delete_empty_folders";
+ public static final String METHOD_UPDATE_FOLDER_ITEMS_RANK = "update_folder_items_rank";
+ public static final String METHOD_CONVERT_SHORTCUTS_TO_ACTIVITIES =
+ "convert_shortcuts_to_launcher_activities";
+
+ public static final String METHOD_NEW_ITEM_ID = "generate_new_item_id";
+ public static final String METHOD_NEW_SCREEN_ID = "generate_new_screen_id";
+
+ public static final String METHOD_CREATE_EMPTY_DB = "create_empty_db";
+ public static final String METHOD_DELETE_DB = "delete_db";
+
+ public static final String METHOD_LOAD_DEFAULT_FAVORITES = "load_default_favorites";
+ public static final String METHOD_MIGRATE_LAUNCHER2_SHORTCUTS = "migrate_l2_shortcuts";
public static final String EXTRA_VALUE = "value";
public static final String EXTRA_DEFAULT_VALUE = "default_value";
+
+ public static Bundle call(ContentResolver cr, String method) {
+ return cr.call(CONTENT_URI, method, null, null);
+ }
}
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 4efa21f60..407dc4f89 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -799,7 +799,9 @@ public class Workspace extends PagedView
mWorkspaceScreens.remove(EXTRA_EMPTY_SCREEN_ID);
mScreenOrder.remove(EXTRA_EMPTY_SCREEN_ID);
- long newId = LauncherAppState.getLauncherProvider().generateNewScreenId();
+ long newId = LauncherSettings.Settings.call(getContext().getContentResolver(),
+ LauncherSettings.Settings.METHOD_NEW_SCREEN_ID)
+ .getLong(LauncherSettings.Settings.EXTRA_VALUE);
mWorkspaceScreens.put(newId, cl);
mScreenOrder.add(newId);
diff --git a/src/com/android/launcher3/model/MigrateFromRestoreTask.java b/src/com/android/launcher3/model/MigrateFromRestoreTask.java
index 786ab6009..9cabc8d41 100644
--- a/src/com/android/launcher3/model/MigrateFromRestoreTask.java
+++ b/src/com/android/launcher3/model/MigrateFromRestoreTask.java
@@ -135,7 +135,10 @@ public class MigrateFromRestoreTask {
new boolean[mTrgX][mTrgY], deepCopy(mCarryOver), true);
placement.find();
if (placement.finalPlacedItems.size() > 0) {
- long newScreenId = LauncherAppState.getLauncherProvider().generateNewScreenId();
+ long newScreenId = LauncherSettings.Settings.call(
+ mContext.getContentResolver(),
+ LauncherSettings.Settings.METHOD_NEW_SCREEN_ID)
+ .getLong(LauncherSettings.Settings.EXTRA_VALUE);
allScreens.add(newScreenId);
for (DbEntry item : placement.finalPlacedItems) {
if (!mCarryOver.remove(itemMap.get(item.id))) {