Moving TV PIP logic to the PIP sub package.
Test: Existing tests pass. Change-Id: I4ca1f68d01206cb2fc7de27f3d445d6ac13d644a
This commit is contained in:
@@ -389,7 +389,7 @@
|
||||
|
||||
<!-- started from PipUI -->
|
||||
<activity
|
||||
android:name="com.android.systemui.tv.pip.PipMenuActivity"
|
||||
android:name=".pip.tv.PipMenuActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/PipTheme"
|
||||
android:launchMode="singleTop"
|
||||
@@ -400,7 +400,7 @@
|
||||
androidprv:alwaysFocusable="true"
|
||||
android:excludeFromRecents="true" />
|
||||
<activity
|
||||
android:name="com.android.systemui.tv.pip.PipOverlayActivity"
|
||||
android:name=".pip.tv.PipOverlayActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/PipTheme"
|
||||
android:taskAffinity=""
|
||||
@@ -409,7 +409,7 @@
|
||||
android:supportsPictureInPicture="true"
|
||||
android:excludeFromRecents="true" />
|
||||
<activity
|
||||
android:name="com.android.systemui.tv.pip.PipOnboardingActivity"
|
||||
android:name=".pip.tv.PipOnboardingActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/PipTheme"
|
||||
android:launchMode="singleTop"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Layout for {@link com.android.systemui.tv.pip.PipControlButtonView}. -->
|
||||
<!-- Layout for {@link com.android.systemui.pip.tv.PipControlButtonView}. -->
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<ImageView android:id="@+id/button"
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Layout for {@link com.android.systemui.tv.pip.PipControlsView}. -->
|
||||
<!-- Layout for {@link com.android.systemui.pip.tv.PipControlsView}. -->
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.android.systemui.tv.pip.PipControlButtonView
|
||||
<com.android.systemui.pip.tv.PipControlButtonView
|
||||
android:id="@+id/full_button"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_fullscreen_white_24dp"
|
||||
android:text="@string/pip_fullscreen" />
|
||||
|
||||
<com.android.systemui.tv.pip.PipControlButtonView
|
||||
<com.android.systemui.pip.tv.PipControlButtonView
|
||||
android:id="@+id/close_button"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -35,7 +35,7 @@
|
||||
android:src="@drawable/ic_close_white"
|
||||
android:text="@string/pip_close" />
|
||||
|
||||
<com.android.systemui.tv.pip.PipControlButtonView
|
||||
<com.android.systemui.pip.tv.PipControlButtonView
|
||||
android:id="@+id/play_pause_button"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
android:gravity="top|center_horizontal"
|
||||
android:clipChildren="false">
|
||||
|
||||
<com.android.systemui.tv.pip.PipControlsView
|
||||
<com.android.systemui.pip.tv.PipControlsView
|
||||
android:id="@+id/pip_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
android:gravity="top|center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.android.systemui.tv.pip.PipRecentsControlsView
|
||||
<com.android.systemui.pip.tv.PipRecentsControlsView
|
||||
android:id="@+id/pip_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -35,13 +35,13 @@
|
||||
android:layout_gravity="top|center_horizontal"
|
||||
android:background="@drawable/tv_pip_recents_overlay_scrim"
|
||||
android:alpha="0" />
|
||||
<com.android.systemui.tv.pip.PipControlsView
|
||||
<com.android.systemui.pip.tv.PipControlsView
|
||||
android:id="@+id/pip_control_contents"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_gravity="top|center_horizontal" />
|
||||
</com.android.systemui.tv.pip.PipRecentsControlsView>
|
||||
</com.android.systemui.pip.tv.PipRecentsControlsView>
|
||||
|
||||
<!-- Placeholder view to handle focus change between Recents row and PIP controls
|
||||
in talkback mode -->
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -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 {
|
||||
@@ -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;
|
||||
@@ -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.
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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.
|
||||
*/
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String> 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user