From 6268f2db4c129e33d8d77513cb9df0f4799c7520 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 16 May 2014 16:42:35 -0700 Subject: [PATCH] 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 --- src/com/android/launcher3/Launcher.java | 4 +++- src/com/android/launcher3/LauncherClings.java | 15 +++++++++------ src/com/android/launcher3/Workspace.java | 13 +++++++++++-- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 3636107c27..1823451c71 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -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 diff --git a/src/com/android/launcher3/LauncherClings.java b/src/com/android/launcher3/LauncherClings.java index 97138eeaa2..a2cce1ab8d 100644 --- a/src/com/android/launcher3/LauncherClings.java +++ b/src/com/android/launcher3/LauncherClings.java @@ -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(); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 0669f3a2d0..d734abdcd5 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -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,