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

Commit 6268f2db authored by Adam Cohen's avatar Adam Cohen
Browse files

Disable the folder cling in two cases

-> When the user creates a new folder
-> When the user drags an existing folder
-> The folder cling gets cut off in certain instances
   and until we make it more extensible (not worth
   it right now), we're disabling it in the problematic
   cases. Also, in the problematic cases, the user
   is demonstrating some advanced knowledge, so
   it's somewhat justifiable.

issue 14491765

Change-Id: Ib15d2f097c51a9b755f04b95ed6ef468d3bacc60
parent bbe1e24c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4429,7 +4429,9 @@ public class Launcher extends Activity
    public void dismissFolderCling(View v) {
        mLauncherClings.dismissFolderCling(v);
    }

    public void markFolderClingDismissedIfNecessary() {
        mLauncherClings.markFolderClingDismissedIfNecessary();
    }

    /**
     * To be overridden by subclasses to indicate that there is an activity to launch
+9 −6
Original line number Diff line number Diff line
@@ -315,12 +315,6 @@ class LauncherClings {
        editor.commit();
    }

    public void markFolderClingDismissed() {
        SharedPreferences.Editor editor = mLauncher.getSharedPrefs().edit();
        editor.putBoolean(LauncherClings.FOLDER_CLING_DISMISSED_KEY, true);
        editor.apply();
    }

    /** Removes the cling outright from the DragLayer */
    private void removeCling(int id) {
        final View cling = mLauncher.findViewById(id);
@@ -415,6 +409,15 @@ class LauncherClings {
        mLauncher.getSearchBar().showSearchBar(true);
    }

    public void markFolderClingDismissedIfNecessary() {
        SharedPreferences prefs = mLauncher.getSharedPrefs();
        if (!prefs.getBoolean(FOLDER_CLING_DISMISSED_KEY, false)) {
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean(FOLDER_CLING_DISMISSED_KEY, true);
            editor.apply();
        }
    }

    public void dismissMigrationClingCopyApps(View v) {
        // Copy the shortcuts from the old database
        LauncherModel model = mLauncher.getModel();
+11 −2
Original line number Diff line number Diff line
@@ -2719,8 +2719,9 @@ public class Workspace extends SmoothPagedView
            BubbleTextView icon = (BubbleTextView) child;
            icon.clearPressedOrFocusedBackground();
        } else if (child instanceof FolderIcon) {
            // Dismiss the folder cling if we haven't already
            mLauncher.getLauncherClings().markFolderClingDismissed();
            // The folder cling isn't flexible enough to be shown in non-default workspace positions
            // Also if they are dragging it a folder, we assume they don't need to see the cling.
            mLauncher.markFolderClingDismissedIfNecessary();
        }

        if (child.getTag() == null || !(child.getTag() instanceof ItemInfo)) {
@@ -3066,6 +3067,10 @@ public class Workspace extends SmoothPagedView
                // cell also contains a shortcut, then create a folder with the two shortcuts.
                if (!mInScrollArea && createUserFolderIfNecessary(cell, container,
                        dropTargetLayout, mTargetCell, distance, false, d.dragView, null)) {
                    // The folder cling isn't flexible enough to be shown in non-default workspace
                    // positions. Also if they are creating a folder, we assume they don't need to
                    // see the cling.
                    mLauncher.markFolderClingDismissedIfNecessary();
                    return;
                }

@@ -3965,6 +3970,10 @@ public class Workspace extends SmoothPagedView
                d.postAnimationRunnable = exitSpringLoadedRunnable;
                if (createUserFolderIfNecessary(view, container, cellLayout, mTargetCell, distance,
                        true, d.dragView, d.postAnimationRunnable)) {
                    // The folder cling isn't flexible enough to be shown in non-default workspace
                    // positions. Also if they are creating a folder, we assume they don't need to
                    // see the cling.
                    mLauncher.markFolderClingDismissedIfNecessary();
                    return;
                }
                if (addToExistingFolderIfNecessary(view, cellLayout, mTargetCell, distance, d,