diff options
| author | 2016-07-25 17:56:53 +0000 | |
|---|---|---|
| committer | 2016-07-25 17:56:54 +0000 | |
| commit | dbe193a97d4f959b05fd20033e106a1a4d45f3b6 (patch) | |
| tree | 2178c4eb29b8a37cdbd94805960d96b7d0ebafdb | |
| parent | 4312b2dbab27e130a33c1fd9ca4435a4758f5354 (diff) | |
| parent | 5ef619fc2505045b988e2d2f6bb6b37ee3aae644 (diff) | |
Merge "sysui: changed split screen shortcut key behavior."
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java b/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java index 0aeb7b423ca4..15d26f9a7a0c 100644 --- a/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java +++ b/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java @@ -25,6 +25,8 @@ import android.content.Context; import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.os.RemoteException; +import android.os.UserHandle; +import android.util.ArraySet; import android.util.DisplayMetrics; import android.util.Log; import android.view.IWindowManager; @@ -39,6 +41,7 @@ import com.android.settingslib.accessibility.AccessibilityUtils; import com.android.systemui.R; import com.android.systemui.SystemUI; import com.android.systemui.recents.Recents; +import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.stackdivider.Divider; import com.android.systemui.stackdivider.DividerView; import com.android.systemui.statusbar.phone.NavigationBarGestureHelper; @@ -102,8 +105,16 @@ public class ShortcutKeyDispatcher extends SystemUI int dockMode = (shortcutCode == SC_DOCK_LEFT) ? ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT : ActivityManager.DOCKED_STACK_CREATE_MODE_BOTTOM_OR_RIGHT; - recents.dockTopTask(NavigationBarGestureHelper.DRAG_MODE_NONE, dockMode, null, - MetricsEvent.WINDOW_DOCK_SHORTCUTS); + List<ActivityManager.RecentTaskInfo> taskList = + SystemServicesProxy.getInstance(mContext).getRecentTasks(1, + UserHandle.USER_CURRENT, false, new ArraySet<>()); + recents.showRecents( + false /* triggeredFromAltTab */, + false /* fromHome */); + if (!taskList.isEmpty()) { + SystemServicesProxy.getInstance(mContext).startTaskInDockedMode( + taskList.get(0).id, dockMode); + } } else { // If there is already a docked window, we respond by resizing the docking pane. DividerView dividerView = getComponent(Divider.class).getView(); @@ -111,11 +122,11 @@ public class ShortcutKeyDispatcher extends SystemUI int dividerPosition = dividerView.getCurrentPosition(); DividerSnapAlgorithm.SnapTarget currentTarget = snapAlgorithm.calculateNonDismissingSnapTarget(dividerPosition); - int increment = (shortcutCode == SC_DOCK_LEFT) ? -1 : 1; - DividerSnapAlgorithm.SnapTarget target = snapAlgorithm.cycleNonDismissTarget( - currentTarget, increment); + DividerSnapAlgorithm.SnapTarget target = (shortcutCode == SC_DOCK_LEFT) + ? snapAlgorithm.getPreviousTarget(currentTarget) + : snapAlgorithm.getNextTarget(currentTarget); dividerView.startDragging(true /* animate */, false /* touching */); - dividerView.stopDragging(target.position, 0f, true /* avoidDismissStart */, + dividerView.stopDragging(target.position, 0f, false /* avoidDismissStart */, true /* logMetrics */); } } catch (RemoteException e) { |