am 71e03b99: Fix issue where clings didn\'t appear after set up wizard (issue 13077829)

* commit '71e03b9979b5ee4c30daa7eb0a704ec92b38431b':
  Fix issue where clings didn't appear after set up wizard (issue 13077829)
This commit is contained in:
Adam Cohen
2014-02-21 14:40:50 -08:00
committed by Android Git Automerger
4 changed files with 22 additions and 67 deletions
-32
View File
@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- dummy layout, to be replaced in overlays -->
<com.android.launcher3.Cling
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
android:layout_width="match_parent"
android:layout_height="match_parent"
launcher:drawIdentifier="workspace_custom">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:textColor="@android:color/holo_blue_light"
android:text="@string/dummy_custom_cling_error_message"
android:gravity="start"
android:layout_gravity="bottom|start"
/>
</com.android.launcher3.Cling>
-12
View File
@@ -252,18 +252,6 @@ s -->
<!-- Folder name format -->
<string name="folder_name_format">Folder: <xliff:g id="name" example="Games">%1$s</xliff:g></string>
<!-- Strings used in device overlays -->
<!-- Clings -->
<!-- Dummy string [CHAR_LIMIT=40] -->
<string name="custom_workspace_cling_title_1"></string>
<!-- Dummy string [CHAR_LIMIT=60] -->
<string name="custom_workspace_cling_description_1"></string>
<!-- Dummy string [CHAR_LIMIT=40] -->
<string name="custom_workspace_cling_title_2"></string>
<!-- Dummy string [CHAR_LIMIT=60] -->
<string name="custom_workspace_cling_description_2"></string>
<!-- Debug-only activity name. [DO NOT TRANSLATE] -->
<string name="debug_memory_activity">* HPROF</string>
+11 -22
View File
@@ -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);
}
}
}
@@ -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);