summaryrefslogtreecommitdiff
path: root/src/com/android/launcher2/LauncherProvider.java
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2014-03-21 13:32:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-03-21 13:32:22 +0000
commit784305b135f280d29f51b0ae7caf602248227079 (patch)
tree8ddfe5c760fbfeb93b89678eaacd080c26c1ff8b /src/com/android/launcher2/LauncherProvider.java
parentefb6fe514e8f63aac7c76fbc3d2505821967edc8 (diff)
parentf627f9cd1fb376c206c8a68d052fc36ebc0aaa1d (diff)
downloadLauncher2-784305b135f280d29f51b0ae7caf602248227079.tar.gz
Diffstat (limited to 'src/com/android/launcher2/LauncherProvider.java')
-rw-r--r--src/com/android/launcher2/LauncherProvider.java24
1 files changed, 22 insertions, 2 deletions
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";