Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71e03b99 authored by Adam Cohen's avatar Adam Cohen
Browse files

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
parent 36c123ec
Loading
Loading
Loading
Loading
+0 −32
Original line number Diff line number Diff line
<?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>
+0 −12
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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);
+11 −1
Original line number Diff line number Diff line
@@ -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);