From bf8c2c0f99e70514a37da85b1f31d91964daa0c4 Mon Sep 17 00:00:00 2001 From: Winson Date: Tue, 18 Oct 2016 18:56:24 -0700 Subject: [PATCH] Moving TV PIP logic to the PIP sub package. Test: Existing tests pass. Change-Id: I4ca1f68d01206cb2fc7de27f3d445d6ac13d644a --- packages/SystemUI/AndroidManifest.xml | 6 +++--- .../res/layout/tv_pip_control_button.xml | 2 +- .../SystemUI/res/layout/tv_pip_controls.xml | 8 ++++---- packages/SystemUI/res/layout/tv_pip_menu.xml | 2 +- .../res/layout/tv_pip_recents_overlay.xml | 6 +++--- .../src/com/android/systemui/pip/PipUI.java | 4 ++-- .../pip => pip/tv}/PipControlButtonView.java | 3 +-- .../{tv/pip => pip/tv}/PipControlsView.java | 17 +++++------------ .../systemui/{tv/pip => pip/tv}/PipManager.java | 3 +-- .../{tv/pip => pip/tv}/PipMenuActivity.java | 3 +-- .../pip => pip/tv}/PipOnboardingActivity.java | 2 +- .../{tv/pip => pip/tv}/PipOverlayActivity.java | 2 +- .../pip => pip/tv}/PipRecentsControlsView.java | 8 +------- .../tv}/PipRecentsOverlayManager.java | 14 +++++--------- .../recents/misc/SystemServicesProxy.java | 6 ++++-- .../systemui/recents/tv/RecentsTvActivity.java | 4 ++-- .../systemui/recents/tv/RecentsTvImpl.java | 4 +--- .../systemui/statusbar/tv/TvStatusBar.java | 2 +- 18 files changed, 38 insertions(+), 58 deletions(-) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipControlButtonView.java (98%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipControlsView.java (91%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipManager.java (99%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipMenuActivity.java (97%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipOnboardingActivity.java (99%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipOverlayActivity.java (99%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipRecentsControlsView.java (94%) rename packages/SystemUI/src/com/android/systemui/{tv/pip => pip/tv}/PipRecentsOverlayManager.java (93%) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 02518f2f5c699..4d59d574adc8f 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -389,7 +389,7 @@ - + - + - - - - - - - + diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java index 67dda51da2370..617d8adbffcfb 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java +++ b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java @@ -41,7 +41,7 @@ public class PipUI extends SystemUI { return; } if (mIsLeanBackOnly) { - com.android.systemui.tv.pip.PipManager.getInstance().initialize(mContext); + com.android.systemui.pip.tv.PipManager.getInstance().initialize(mContext); } else { com.android.systemui.pip.phone.PipManager.getInstance().initialize(mContext); } @@ -54,7 +54,7 @@ public class PipUI extends SystemUI { return; } if (mIsLeanBackOnly) { - com.android.systemui.tv.pip.PipManager.getInstance().onConfigurationChanged(); + com.android.systemui.pip.tv.PipManager.getInstance().onConfigurationChanged(); } else { com.android.systemui.pip.phone.PipManager.getInstance().onConfigurationChanged(); } diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipControlButtonView.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipControlButtonView.java similarity index 98% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipControlButtonView.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipControlButtonView.java index 80c593c076e96..59cb0860fdfda 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipControlButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipControlButtonView.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.animation.Animator; import android.animation.AnimatorInflater; @@ -22,7 +22,6 @@ import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.LayoutInflater; -import android.view.View.OnFocusChangeListener; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipControlsView.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipControlsView.java similarity index 91% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipControlsView.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipControlsView.java index 71740ce1b3912..a2aff2df52e90 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipControlsView.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipControlsView.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.content.Context; import android.media.session.MediaController; @@ -22,9 +22,6 @@ import android.media.session.PlaybackState; import android.view.View; import android.view.Gravity; import android.view.LayoutInflater; -import android.view.View.OnFocusChangeListener; -import android.widget.ImageView; -import android.widget.TextView; import android.widget.LinearLayout; import android.util.AttributeSet; @@ -33,10 +30,6 @@ import com.android.systemui.R; import static android.media.session.PlaybackState.ACTION_PAUSE; import static android.media.session.PlaybackState.ACTION_PLAY; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_PLAYING; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_PAUSED; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_UNAVAILABLE; - /** * A view containing PIP controls including fullscreen, close, and media controls. @@ -145,9 +138,9 @@ public class PipControlsView extends LinearLayout { } long actions = mMediaController.getPlaybackState().getActions(); int state = mMediaController.getPlaybackState().getState(); - if (mPipManager.getPlaybackState() == PLAYBACK_STATE_PAUSED) { + if (mPipManager.getPlaybackState() == PipManager.PLAYBACK_STATE_PAUSED) { mMediaController.getTransportControls().play(); - } else if (mPipManager.getPlaybackState() == PLAYBACK_STATE_PLAYING) { + } else if (mPipManager.getPlaybackState() == PipManager.PLAYBACK_STATE_PLAYING) { mMediaController.getTransportControls().pause(); } // View will be updated later in {@link mMediaControllerCallback} @@ -188,11 +181,11 @@ public class PipControlsView extends LinearLayout { private void updatePlayPauseView() { int state = mPipManager.getPlaybackState(); - if (state == PLAYBACK_STATE_UNAVAILABLE) { + if (state == PipManager.PLAYBACK_STATE_UNAVAILABLE) { mPlayPauseButtonView.setVisibility(View.GONE); } else { mPlayPauseButtonView.setVisibility(View.VISIBLE); - if (state == PLAYBACK_STATE_PLAYING) { + if (state == PipManager.PLAYBACK_STATE_PLAYING) { mPlayPauseButtonView.setImageResource(R.drawable.ic_pause_white_24dp); mPlayPauseButtonView.setText(R.string.pip_pause); } else { diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java similarity index 99% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java index 65a1b44e8f2fb..5ee825cd89aa1 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.app.ActivityManager.RunningTaskInfo; import android.app.ActivityManager.StackInfo; @@ -38,7 +38,6 @@ import android.text.TextUtils; import android.util.Log; import android.util.Pair; import android.view.IWindowManager; -import android.view.WindowManagerGlobal; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.recents.misc.SystemServicesProxy; diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipMenuActivity.java similarity index 97% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipMenuActivity.java index 542a935b6e125..01d86b67eaf79 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipMenuActivity.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipMenuActivity.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.animation.Animator; import android.animation.AnimatorInflater; @@ -23,7 +23,6 @@ import android.os.Bundle; import android.view.View; import com.android.systemui.R; -import com.android.systemui.Interpolators; /** * Activity to show the PIP menu to control PIP. diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipOnboardingActivity.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipOnboardingActivity.java similarity index 99% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipOnboardingActivity.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipOnboardingActivity.java index 9a87cfc97db5f..57952f43bc175 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipOnboardingActivity.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipOnboardingActivity.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.animation.Animator; import android.animation.AnimatorInflater; diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipOverlayActivity.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipOverlayActivity.java similarity index 99% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipOverlayActivity.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipOverlayActivity.java index 011e159bb12f5..f52121ff119f7 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipOverlayActivity.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipOverlayActivity.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.animation.Animator; import android.animation.AnimatorInflater; diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsControlsView.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsControlsView.java similarity index 94% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsControlsView.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsControlsView.java index 3726fbcf80093..a891d122f3743 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsControlsView.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsControlsView.java @@ -14,26 +14,20 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.animation.Animator; import android.animation.AnimatorInflater; -import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.View; -import android.view.View.OnFocusChangeListener; import android.widget.FrameLayout; import com.android.systemui.R; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_PLAYING; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_PAUSED; -import static com.android.systemui.tv.pip.PipManager.PLAYBACK_STATE_UNAVAILABLE; - /** * An FrameLayout that contains {@link PipControlsView} with its scrim. */ diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsOverlayManager.java similarity index 93% rename from packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java rename to packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsOverlayManager.java index 895b8a228a00d..835bcbc51f0ce 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java +++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipRecentsOverlayManager.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package com.android.systemui.tv.pip; +package com.android.systemui.pip.tv; import android.content.Context; import android.graphics.PixelFormat; -import android.graphics.Rect; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -32,9 +31,6 @@ import com.android.systemui.recents.misc.SystemServicesProxy; import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Gravity.TOP; import static android.view.View.MeasureSpec.UNSPECIFIED; -import static com.android.systemui.tv.pip.PipManager.STATE_PIP_OVERLAY; -import static com.android.systemui.tv.pip.PipManager.STATE_PIP_RECENTS; -import static com.android.systemui.tv.pip.PipManager.STATE_PIP_RECENTS_FOCUSED; public class PipRecentsOverlayManager { private static final String TAG = "PipRecentsOverlayManager"; @@ -158,7 +154,7 @@ public class PipRecentsOverlayManager { mIsPipFocusedInRecent = true; mPipControlsView.startFocusGainAnimation(); mWindowManager.updateViewLayout(mOverlayView, mPipRecentsControlsViewFocusedLayoutParams); - mPipManager.resizePinnedStack(STATE_PIP_RECENTS_FOCUSED); + mPipManager.resizePinnedStack(PipManager.STATE_PIP_RECENTS_FOCUSED); if (mTalkBackEnabled) { mPipControlsView.requestFocus(); mPipControlsView.sendAccessibilityEvent( @@ -177,7 +173,7 @@ public class PipRecentsOverlayManager { mIsPipFocusedInRecent = false; mPipControlsView.startFocusLossAnimation(); mWindowManager.updateViewLayout(mOverlayView, mPipRecentsControlsViewLayoutParams); - mPipManager.resizePinnedStack(STATE_PIP_RECENTS); + mPipManager.resizePinnedStack(PipManager.STATE_PIP_RECENTS); if (mCallback != null) { mCallback.onRecentsFocused(); } @@ -198,7 +194,7 @@ public class PipRecentsOverlayManager { } mIsRecentsShown = true; mIsPipFocusedInRecent = true; - mPipManager.resizePinnedStack(STATE_PIP_RECENTS_FOCUSED); + mPipManager.resizePinnedStack(PipManager.STATE_PIP_RECENTS_FOCUSED); // Overlay view will be added after the resize animation ends, if any. } @@ -212,7 +208,7 @@ public class PipRecentsOverlayManager { removePipRecentsOverlayView(); if (mPipManager.isPipShown()) { - mPipManager.resizePinnedStack(STATE_PIP_OVERLAY); + mPipManager.resizePinnedStack(PipManager.STATE_PIP_OVERLAY); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index e0cdb1ac7c626..d5218eda05cbd 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -79,6 +79,8 @@ import android.view.accessibility.AccessibilityManager; import com.android.internal.app.AssistUtils; import com.android.internal.os.BackgroundThread; import com.android.systemui.R; +import com.android.systemui.pip.tv.PipMenuActivity; +import com.android.systemui.pip.tv.PipOnboardingActivity; import com.android.systemui.recents.RecentsDebugFlags; import com.android.systemui.recents.RecentsImpl; import com.android.systemui.recents.model.Task; @@ -109,8 +111,8 @@ public class SystemServicesProxy { final static List sRecentsBlacklist; static { sRecentsBlacklist = new ArrayList<>(); - sRecentsBlacklist.add("com.android.systemui.tv.pip.PipOnboardingActivity"); - sRecentsBlacklist.add("com.android.systemui.tv.pip.PipMenuActivity"); + sRecentsBlacklist.add(PipOnboardingActivity.class.getName()); + sRecentsBlacklist.add(PipMenuActivity.class.getName()); } private static SystemServicesProxy sSystemServicesProxy; diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java index ecb12d3c9c5c5..a2a819988ff35 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java @@ -58,8 +58,8 @@ import com.android.systemui.recents.tv.views.TaskCardView; import com.android.systemui.recents.tv.views.TaskStackHorizontalGridView; import com.android.systemui.recents.tv.views.TaskStackHorizontalViewAdapter; import com.android.systemui.statusbar.BaseStatusBar; -import com.android.systemui.tv.pip.PipManager; -import com.android.systemui.tv.pip.PipRecentsOverlayManager; +import com.android.systemui.pip.tv.PipManager; +import com.android.systemui.pip.tv.PipRecentsOverlayManager; import java.util.ArrayList; import java.util.Collections; diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java index ef9de53682e40..ac9a217b2892a 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java @@ -25,7 +25,6 @@ import android.graphics.Rect; import android.os.SystemClock; import android.os.UserHandle; -import com.android.systemui.SystemUIApplication; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsActivityLaunchState; import com.android.systemui.recents.RecentsConfiguration; @@ -37,8 +36,7 @@ import com.android.systemui.recents.model.RecentsTaskLoader; import com.android.systemui.recents.model.TaskStack; import com.android.systemui.recents.model.ThumbnailData; import com.android.systemui.recents.tv.views.TaskCardView; -import com.android.systemui.statusbar.tv.TvStatusBar; -import com.android.systemui.tv.pip.PipManager; +import com.android.systemui.pip.tv.PipManager; public class RecentsTvImpl extends RecentsImpl{ public final static String RECENTS_TV_ACTIVITY = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index 3c83921a1e140..f5c60a0003abd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -27,7 +27,7 @@ import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.statusbar.ActivatableNotificationView; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.NotificationData; -import com.android.systemui.tv.pip.PipManager; +import com.android.systemui.pip.tv.PipManager; /** * Status bar implementation for "large screen" products that mostly present no on-screen nav