mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Fix issue where clings didn't appear after set up wizard (issue 13077829)
-> Also removed the db-created as a criteria for showing the clings (this was a bit problematic in some cases and going forward) -> Instead, we use database upgrade as a signal to not show the clings. This is used instead of the above criteria (to prevent old users from seeing the migration cling and losing their data.) -> Stripped some old code related to custom clings that's no longer used. Change-Id: Ib5e5285e5ddbc60e69eb998ee9fd092ae879150d
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user