diff options
12 files changed, 44 insertions, 64 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java index d86ba6aa6..1eaa8bc92 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java @@ -18,8 +18,6 @@ package com.android.launcher3.uioverrides; import static com.android.launcher3.LauncherAnimUtils.ALL_APPS_TRANSITION_MS; import static com.android.launcher3.anim.Interpolators.DEACCEL_2; -import android.view.View; - import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; @@ -62,11 +60,6 @@ public class AllAppsState extends LauncherState { } @Override - public View getFinalFocus(Launcher launcher) { - return launcher.getAppsView(); - } - - @Override public float[] getWorkspaceScaleAndTranslation(Launcher launcher) { float[] scaleAndTranslation = LauncherState.OVERVIEW.getWorkspaceScaleAndTranslation( launcher); diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java index 0116a8e0e..9169ffbc1 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java @@ -83,11 +83,6 @@ public class OverviewState extends LauncherState { DiscoveryBounce.showForOverviewIfNeeded(launcher); } - @Override - public View getFinalFocus(Launcher launcher) { - return launcher.getOverviewPanel(); - } - public PageAlphaProvider getWorkspacePageAlphaProvider(Launcher launcher) { return new PageAlphaProvider(DEACCEL_2) { @Override diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java index e93c80789..191c237f6 100644 --- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -273,8 +273,8 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> { | STATE_SCALED_CONTROLLER_APP, this::notifyTransitionCancelled); - mStateCallback.addCallback(STATE_LAUNCHER_STARTED | STATE_QUICK_SCRUB_START, - this::onQuickScrubStart); + mStateCallback.addCallback(STATE_LAUNCHER_STARTED | STATE_QUICK_SCRUB_START + | STATE_APP_CONTROLLER_RECEIVED, this::onQuickScrubStart); mStateCallback.addCallback(STATE_LAUNCHER_STARTED | STATE_QUICK_SCRUB_START | STATE_SCALED_CONTROLLER_RECENTS, this::onFinishedTransitionToQuickScrub); mStateCallback.addCallback(STATE_LAUNCHER_STARTED | STATE_CURRENT_TASK_FINISHED diff --git a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java index cc24f1d8a..a654482f9 100644 --- a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java +++ b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java @@ -227,12 +227,16 @@ public class ClipAnimationHelper { dl.getDescendantRectRelativeToSelf(ttv, targetRect.rect); updateTargetRect(targetRect); - // Transform the clip relative to the target rect. - float scale = mTargetRect.width() / mSourceRect.width(); - mSourceWindowClipInsets.left = mSourceWindowClipInsets.left * scale; - mSourceWindowClipInsets.top = mSourceWindowClipInsets.top * scale; - mSourceWindowClipInsets.right = mSourceWindowClipInsets.right * scale; - mSourceWindowClipInsets.bottom = mSourceWindowClipInsets.bottom * scale; + if (target == null) { + // Transform the clip relative to the target rect. Only do this in the case where we + // aren't applying the insets to the app windows (where the clip should be in target app + // space) + float scale = mTargetRect.width() / mSourceRect.width(); + mSourceWindowClipInsets.left = mSourceWindowClipInsets.left * scale; + mSourceWindowClipInsets.top = mSourceWindowClipInsets.top * scale; + mSourceWindowClipInsets.right = mSourceWindowClipInsets.right * scale; + mSourceWindowClipInsets.bottom = mSourceWindowClipInsets.bottom * scale; + } } private void updateStackBoundsToMultiWindowTaskSize(BaseDraggingActivity activity) { diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 2f6ce8a3e..dee15d0d7 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -271,6 +271,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl .getDimensionPixelSize(R.dimen.recents_empty_message_text_padding); setWillNotDraw(false); updateEmptyMessage(); + setFocusable(false); } public boolean isRtl() { @@ -931,16 +932,6 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl return true; } - @Override - public void onVisibilityAggregated(boolean isVisible) { - super.onVisibilityAggregated(isVisible); - if (isVisible && !isFocused()) { - // Having focus, even in touch mode, keeps us from losing [Alt+]Tab by preventing - // switching to keyboard mode. - requestFocus(); - } - } - private void runDismissAnimation(PendingAnimation pendingAnim) { AnimatorPlaybackController controller = AnimatorPlaybackController.wrap( pendingAnim.anim, DISMISS_TASK_DURATION); @@ -1285,6 +1276,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl private void onChildViewsChanged() { final int childCount = getChildCount(); mClearAllButton.setVisibility(childCount == 0 ? INVISIBLE : VISIBLE); + setFocusable(childCount != 0); } public void revealClearAllButton() { diff --git a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java index 3391214de..31c8b6448 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java +++ b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java @@ -113,8 +113,15 @@ public class RecentsViewContainer extends InsettableFrameLayout { @Override public void addFocusables(ArrayList<View> views, int direction, int focusableMode) { - // Carousel is first in tab order. - views.add(mRecentsView); - views.add(mClearAllButton); + if (mRecentsView.getChildCount() > 0) { + // Carousel is first in tab order. + views.add(mRecentsView); + views.add(mClearAllButton); + } + } + + public boolean requestFocus(int direction, Rect previouslyFocusedRect) { + return mRecentsView.requestFocus(direction, previouslyFocusedRect) || + super.requestFocus(direction, previouslyFocusedRect); } }
\ No newline at end of file diff --git a/res/values/styles.xml b/res/values/styles.xml index 631626f44..2b760f349 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -45,7 +45,7 @@ <style name="LauncherTheme" parent="@style/BaseLauncherThemeWithCustomAttrs"></style> - <style name="LauncherThemeDarkText" parent="@style/LauncherTheme"> + <style name="LauncherTheme.DarkText" parent="@style/LauncherTheme"> <item name="workspaceTextColor">#FF212121</item> <item name="workspaceShadowColor">@android:color/transparent</item> <item name="workspaceAmbientShadowColor">@android:color/transparent</item> @@ -70,6 +70,15 @@ <item name="isMainColorDark">true</item> </style> + <style name="LauncherThemeDark.DarKText" parent="@style/LauncherThemeDark"> + <item name="workspaceTextColor">#FF212121</item> + <item name="workspaceShadowColor">@android:color/transparent</item> + <item name="workspaceAmbientShadowColor">@android:color/transparent</item> + <item name="workspaceKeyShadowColor">@android:color/transparent</item> + <item name="isWorkspaceDarkText">true</item> + <item name="workspaceStatusBarScrim">@null</item> + </style> + <!-- Theme overrides to element on homescreen, i.e., which are drawn on top on wallpaper. Various foreground colors are overridden to be workspaceTextColor so that they are properly diff --git a/src/com/android/launcher3/BaseDraggingActivity.java b/src/com/android/launcher3/BaseDraggingActivity.java index d9e7d2033..8af9acc24 100644 --- a/src/com/android/launcher3/BaseDraggingActivity.java +++ b/src/com/android/launcher3/BaseDraggingActivity.java @@ -90,11 +90,11 @@ public abstract class BaseDraggingActivity extends BaseActivity protected int getThemeRes(WallpaperColorInfo wallpaperColorInfo) { if (wallpaperColorInfo.isDark()) { - return R.style.LauncherThemeDark; - } else if (wallpaperColorInfo.supportsDarkText()) { - return R.style.LauncherThemeDarkText; + return wallpaperColorInfo.supportsDarkText() ? + R.style.LauncherThemeDark_DarKText : R.style.LauncherThemeDark; } else { - return R.style.LauncherTheme; + return wallpaperColorInfo.supportsDarkText() ? + R.style.LauncherTheme_DarkText : R.style.LauncherTheme; } } diff --git a/src/com/android/launcher3/LauncherState.java b/src/com/android/launcher3/LauncherState.java index 76681f280..5b010dc2d 100644 --- a/src/com/android/launcher3/LauncherState.java +++ b/src/com/android/launcher3/LauncherState.java @@ -18,11 +18,11 @@ package com.android.launcher3; import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_AUTO; import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS; import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; + import static com.android.launcher3.anim.Interpolators.ACCEL_2; import static com.android.launcher3.states.RotationHelper.REQUEST_NONE; import android.graphics.Rect; -import android.view.View; import android.view.animation.Interpolator; import com.android.launcher3.states.SpringLoadedState; @@ -196,10 +196,6 @@ public class LauncherState { public void onStateDisabled(Launcher launcher) { } - public View getFinalFocus(Launcher launcher) { - return launcher.getWorkspace(); - } - public int getVisibleElements(Launcher launcher) { if (launcher.getDeviceProfile().isVerticalBarLayout()) { return HOTSEAT_ICONS | VERTICAL_SWIPE_INDICATOR; diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java index 4069feade..b5eef8bd3 100644 --- a/src/com/android/launcher3/LauncherStateManager.java +++ b/src/com/android/launcher3/LauncherStateManager.java @@ -17,6 +17,7 @@ package com.android.launcher3; import static android.view.View.VISIBLE; + import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_FADE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCALE; @@ -35,7 +36,6 @@ import android.animation.AnimatorSet; import android.os.Handler; import android.os.Looper; import android.support.annotation.IntDef; -import android.view.View; import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.anim.AnimatorPlaybackController; @@ -251,7 +251,7 @@ public class LauncherStateManager { prepareForAtomicAnimation(mState, state, builder); AnimatorSet animation = createAnimationToNewWorkspaceInternal( state, builder, onCompleteRunnable); - Runnable runnable = new StartAnimRunnable(animation, state.getFinalFocus(mLauncher)); + Runnable runnable = new StartAnimRunnable(animation); if (delay > 0) { mUiHandler.postDelayed(runnable, delay); } else { @@ -392,6 +392,8 @@ public class LauncherStateManager { } UiFactory.onLauncherStateOrResumeChanged(mLauncher); + + mLauncher.getDragLayer().requestFocus(); } public void onWindowFocusChanged() { @@ -475,11 +477,9 @@ public class LauncherStateManager { private class StartAnimRunnable implements Runnable { private final AnimatorSet mAnim; - private final View mViewToFocus; - public StartAnimRunnable(AnimatorSet anim, View viewToFocus) { + public StartAnimRunnable(AnimatorSet anim) { mAnim = anim; - mViewToFocus = viewToFocus; } @Override @@ -487,9 +487,6 @@ public class LauncherStateManager { if (mConfig.mCurrentAnimation != mAnim) { return; } - if (mViewToFocus != null) { - mViewToFocus.requestFocus(); - } mAnim.start(); } } diff --git a/src/com/android/launcher3/states/SpringLoadedState.java b/src/com/android/launcher3/states/SpringLoadedState.java index aa7d0d5a3..35f7f8831 100644 --- a/src/com/android/launcher3/states/SpringLoadedState.java +++ b/src/com/android/launcher3/states/SpringLoadedState.java @@ -19,7 +19,6 @@ import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_TRANSITION_M import static com.android.launcher3.states.RotationHelper.REQUEST_LOCK; import android.graphics.Rect; -import android.view.View; import com.android.launcher3.DeviceProfile; import com.android.launcher3.InstallShortcutReceiver; @@ -98,9 +97,4 @@ public class SpringLoadedState extends LauncherState { InstallShortcutReceiver.disableAndFlushInstallQueue( InstallShortcutReceiver.FLAG_DRAG_AND_DROP, launcher); } - - @Override - public View getFinalFocus(Launcher launcher) { - return null; - } } diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsState.java b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsState.java index 4a2f544e8..f7bb25456 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsState.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsState.java @@ -19,8 +19,6 @@ import static com.android.launcher3.LauncherAnimUtils.ALL_APPS_TRANSITION_MS; import static com.android.launcher3.allapps.DiscoveryBounce.HOME_BOUNCE_SEEN; import static com.android.launcher3.anim.Interpolators.DEACCEL_2; -import android.view.View; - import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; @@ -68,11 +66,6 @@ public class AllAppsState extends LauncherState { } @Override - public View getFinalFocus(Launcher launcher) { - return launcher.getAppsView(); - } - - @Override public float[] getWorkspaceScaleAndTranslation(Launcher launcher) { return new float[] { 1f, 0, -launcher.getAllAppsController().getShiftRange() * PARALLAX_COEFFICIENT}; |