diff --git a/res/layout/custom_workspace_cling.xml b/res/layout/custom_workspace_cling.xml deleted file mode 100644 index 3744f2e4bc..0000000000 --- a/res/layout/custom_workspace_cling.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - diff --git a/res/values/strings.xml b/res/values/strings.xml index 2c6306a56e..9cb6c293b0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -252,18 +252,6 @@ s --> Folder: %1$s - - - - - - - - - - - - * HPROF diff --git a/src/com/android/launcher3/LauncherClings.java b/src/com/android/launcher3/LauncherClings.java index 9d2778cfac..894f64da4f 100644 --- a/src/com/android/launcher3/LauncherClings.java +++ b/src/com/android/launcher3/LauncherClings.java @@ -41,7 +41,6 @@ class LauncherClings { private static final String FOLDER_CLING_DISMISSED_KEY = "cling_gel.folder.dismissed"; private static final boolean DISABLE_CLINGS = false; - private static final boolean DISABLE_CUSTOM_CLINGS = true; private static final int SHOW_CLING_DURATION = 250; private static final int DISMISS_CLING_DURATION = 200; @@ -196,8 +195,7 @@ class LauncherClings { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); return areClingsEnabled() && !sharedPrefs.getBoolean(FIRST_RUN_CLING_DISMISSED_KEY, false) && - !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false) && - LauncherAppState.getLauncherProvider().wasNewDbCreated(); + !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false); } public void removeFirstRunAndMigrationClings() { @@ -213,24 +211,6 @@ class LauncherClings { */ public void showFirstRunCling() { if (!skipCustomClingIfNoAccounts()) { - SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); - // If we're not using the default workspace layout, replace workspace cling - // with a custom workspace cling (usually specified in an overlay) - // For now, only do this on tablets - if (!DISABLE_CUSTOM_CLINGS) { - if (sharedPrefs.getInt(LauncherProvider.DEFAULT_WORKSPACE_RESOURCE_ID, 0) != 0 && - mLauncher.getResources().getBoolean(R.bool.config_useCustomClings)) { - // Use a custom cling - View cling = mLauncher.findViewById(R.id.workspace_cling); - ViewGroup clingParent = (ViewGroup) cling.getParent(); - int clingIndex = clingParent.indexOfChild(cling); - clingParent.removeViewAt(clingIndex); - View customCling = mInflater.inflate(R.layout.custom_workspace_cling, - clingParent, false); - clingParent.addView(customCling, clingIndex); - customCling.setId(R.id.workspace_cling); - } - } Cling cling = (Cling) mLauncher.findViewById(R.id.first_run_cling); if (cling != null) { String sbHintStr = mLauncher.getFirstRunClingSearchBarHint(); @@ -292,6 +272,7 @@ class LauncherClings { removeCling(R.id.workspace_cling); } } + public Cling showFoldersCling() { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); // Enable the clings only if they have not been dismissed before @@ -314,6 +295,14 @@ class LauncherClings { } } + public static void synchonouslyMarkFirstRunClingDismissed(Context ctx) { + SharedPreferences prefs = ctx.getSharedPreferences( + LauncherAppState.getSharedPreferencesKey(),Context.MODE_PRIVATE); + SharedPreferences.Editor editor = prefs.edit(); + editor.putBoolean(LauncherClings.FIRST_RUN_CLING_DISMISSED_KEY, true); + editor.commit(); + } + /** Removes the cling outright from the DragLayer */ private void removeCling(int id) { final View cling = mLauncher.findViewById(id); @@ -453,4 +442,4 @@ class LauncherClings { dismissCling(cling, null, FOLDER_CLING_DISMISSED_KEY, DISMISS_CLING_DURATION, true); } -} \ No newline at end of file +} diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index a69f4235d8..b952729bd0 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -71,7 +71,7 @@ public class LauncherProvider extends ContentProvider { private static final String DATABASE_NAME = "launcher.db"; - private static final int DATABASE_VERSION = 16; + private static final int DATABASE_VERSION = 17; static final String OLD_AUTHORITY = "com.android.launcher2.settings"; static final String AUTHORITY = ProviderConfig.AUTHORITY; @@ -769,6 +769,16 @@ public class LauncherProvider extends ContentProvider { } } + if (version < 17) { + // We use the db version upgrade here to identify users who may not have seen + // clings yet (because they weren't available), but for whom the clings are now + // available (tablet users). Because one of the possible cling flows (migration) + // is very destructive (wipes out workspaces), we want to prevent this from showing + // until clear data. We do so by marking that the clings have been shown. + LauncherClings.synchonouslyMarkFirstRunClingDismissed(mContext); + version = 17; + } + if (version != DATABASE_VERSION) { Log.w(TAG, "Destroying all old data."); db.execSQL("DROP TABLE IF EXISTS " + TABLE_FAVORITES);