diff options
author | Jason Monk <jmonk@google.com> | 2014-03-21 13:32:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-03-21 13:32:22 +0000 |
commit | 784305b135f280d29f51b0ae7caf602248227079 (patch) | |
tree | 8ddfe5c760fbfeb93b89678eaacd080c26c1ff8b | |
parent | efb6fe514e8f63aac7c76fbc3d2505821967edc8 (diff) | |
parent | f627f9cd1fb376c206c8a68d052fc36ebc0aaa1d (diff) | |
download | Launcher2-kitkat-mr2-release.tar.gz |
Merge "Add optional flag to clear old preloaded workspace" into klp-devandroid-4.4w_r1android-4.4.4_r2.0.1android-4.4.4_r2android-4.4.4_r1.0.1android-4.4.4_r1android-4.4.3_r1.1.0.1android-4.4.3_r1.1android-4.4.3_r1.0.1android-4.4.3_r1kitkat-wearkitkat-mr2.2-releasekitkat-mr2.1-releasekitkat-mr2-releasekitkat-dev
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherProvider.java | 24 | ||||
-rw-r--r-- | src/com/android/launcher2/PreloadReceiver.java | 7 |
3 files changed, 29 insertions, 4 deletions
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index 4133b1e4..71da90c4 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -1275,7 +1275,7 @@ public class LauncherModel extends BroadcastReceiver { final boolean isSafeMode = manager.isSafeMode(); // Make sure the default workspace is loaded, if needed - mApp.getLauncherProvider().loadDefaultFavoritesIfNecessary(0); + mApp.getLauncherProvider().loadDefaultFavoritesIfNecessary(0, false); synchronized (sBgLock) { sBgWorkspaceItems.clear(); diff --git a/src/com/android/launcher2/LauncherProvider.java b/src/com/android/launcher2/LauncherProvider.java index 8097ac99..2a485737 100644 --- a/src/com/android/launcher2/LauncherProvider.java +++ b/src/com/android/launcher2/LauncherProvider.java @@ -55,6 +55,7 @@ import com.android.launcher2.LauncherSettings.Favorites; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; +import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; @@ -208,10 +209,13 @@ public class LauncherProvider extends ContentProvider { /** * @param workspaceResId that can be 0 to use default or non-zero for specific resource */ - synchronized public void loadDefaultFavoritesIfNecessary(int origWorkspaceResId) { + synchronized public void loadDefaultFavoritesIfNecessary(int origWorkspaceResId, + boolean overridePrevious) { String spKey = LauncherApplication.getSharedPreferencesKey(); SharedPreferences sp = getContext().getSharedPreferences(spKey, Context.MODE_PRIVATE); - if (sp.getBoolean(DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED, false)) { + boolean dbCreatedNoWorkspace = + sp.getBoolean(DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED, false); + if (dbCreatedNoWorkspace || overridePrevious) { int workspaceResId = origWorkspaceResId; // Use default workspace resource if none provided @@ -225,11 +229,27 @@ public class LauncherProvider extends ContentProvider { if (origWorkspaceResId != 0) { editor.putInt(DEFAULT_WORKSPACE_RESOURCE_ID, origWorkspaceResId); } + if (!dbCreatedNoWorkspace && overridePrevious) { + if (LOGD) Log.d(TAG, "Clearing old launcher database"); + // Workspace has already been loaded, clear the database. + deleteDatabase(); + } mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), workspaceResId); editor.commit(); } } + public void deleteDatabase() { + // Are you sure? (y/n) + final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); + final File dbFile = new File(db.getPath()); + mOpenHelper.close(); + if (dbFile.exists()) { + SQLiteDatabase.deleteDatabase(dbFile); + } + mOpenHelper = new DatabaseHelper(getContext()); + } + private static class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG_FAVORITES = "favorites"; private static final String TAG_FAVORITE = "favorite"; diff --git a/src/com/android/launcher2/PreloadReceiver.java b/src/com/android/launcher2/PreloadReceiver.java index 08350b6f..c28c55d8 100644 --- a/src/com/android/launcher2/PreloadReceiver.java +++ b/src/com/android/launcher2/PreloadReceiver.java @@ -28,6 +28,8 @@ public class PreloadReceiver extends BroadcastReceiver { public static final String EXTRA_WORKSPACE_NAME = "com.android.launcher.action.EXTRA_WORKSPACE_NAME"; + public static final String EXTRA_OVERRIDE_PREVIOUS = + "com.android.launcher.action.EXTRA_OVERRIDE_PREVIOUS"; @Override public void onReceive(Context context, Intent intent) { @@ -37,13 +39,16 @@ public class PreloadReceiver extends BroadcastReceiver { String name = intent.getStringExtra(EXTRA_WORKSPACE_NAME); final int workspaceResId = !TextUtils.isEmpty(name) ? context.getResources().getIdentifier(name, "xml", "com.android.launcher") : 0; + + final boolean overridePrevious = + intent.getBooleanExtra(EXTRA_OVERRIDE_PREVIOUS, false); if (LOGD) { Log.d(TAG, "workspace name: " + name + " id: " + workspaceResId); } new Thread(new Runnable() { @Override public void run() { - provider.loadDefaultFavoritesIfNecessary(workspaceResId); + provider.loadDefaultFavoritesIfNecessary(workspaceResId, overridePrevious); } }).start(); } |