From b85f8a44b51258f22938773ca30dd85845345010 Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Wed, 25 Apr 2012 15:48:32 -0700 Subject: Postpone loading default favorites - postpone until Launcher activity is created - gives setup wizard time to set flags before we load the default workspace --- src/com/android/launcher2/LauncherModel.java | 3 +++ src/com/android/launcher2/LauncherProvider.java | 27 +++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index efe4711aa..37235e960 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -989,6 +989,9 @@ public class LauncherModel extends BroadcastReceiver { final AppWidgetManager widgets = AppWidgetManager.getInstance(context); final boolean isSafeMode = manager.isSafeMode(); + // Make sure the default workspace is loaded, if needed + mApp.getLauncherProvider().loadDefaultFavoritesIfNecessary(); + sWorkspaceItems.clear(); sAppWidgets.clear(); sFolders.clear(); diff --git a/src/com/android/launcher2/LauncherProvider.java b/src/com/android/launcher2/LauncherProvider.java index c8fb09e58..b89d632c2 100644 --- a/src/com/android/launcher2/LauncherProvider.java +++ b/src/com/android/launcher2/LauncherProvider.java @@ -34,6 +34,7 @@ import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.res.Resources; @@ -71,6 +72,8 @@ public class LauncherProvider extends ContentProvider { static final String TABLE_FAVORITES = "favorites"; static final String PARAMETER_NOTIFY = "notify"; + static final String DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED = + "DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED"; /** * {@link Uri} triggered at any registered {@link android.database.ContentObserver} when @@ -197,6 +200,18 @@ public class LauncherProvider extends ContentProvider { return mOpenHelper.generateNewId(); } + public void loadDefaultFavoritesIfNecessary() { + String spKey = LauncherApplication.getSharedPreferencesKey(); + SharedPreferences sp = getContext().getSharedPreferences(spKey, Context.MODE_PRIVATE); + if (sp.getBoolean(DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED, false)) { + // Populate favorites table with initial favorites + SharedPreferences.Editor editor = sp.edit(); + editor.remove(DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED); + mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), R.xml.default_workspace); + editor.commit(); + } + } + private static class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG_FAVORITES = "favorites"; private static final String TAG_FAVORITE = "favorite"; @@ -267,11 +282,19 @@ public class LauncherProvider extends ContentProvider { } if (!convertDatabase(db)) { - // Populate favorites table with initial favorites - loadFavorites(db, R.xml.default_workspace); + // Set a shared pref so that we know we need to load the default workspace later + setFlagToLoadDefaultWorkspaceLater(); } } + private void setFlagToLoadDefaultWorkspaceLater() { + String spKey = LauncherApplication.getSharedPreferencesKey(); + SharedPreferences sp = mContext.getSharedPreferences(spKey, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sp.edit(); + editor.putBoolean(DB_CREATED_BUT_DEFAULT_WORKSPACE_NOT_LOADED, true); + editor.commit(); + } + private boolean convertDatabase(SQLiteDatabase db) { if (LOGD) Log.d(TAG, "converting database from an older format, but not onUpgrade"); boolean converted = false; -- cgit v1.2.3