Merge "PIP: Handle configuration changes" into nyc-dev

This commit is contained in:
Jaewan Kim
2016-05-24 00:05:26 +00:00
committed by Android (Google) Code Review
3 changed files with 36 additions and 15 deletions

View File

@@ -226,6 +226,13 @@ public class PipManager {
(MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE); (MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE);
} }
/**
* Updates the PIP per configuration changed.
*/
void onConfigurationChanged() {
mPipRecentsOverlayManager.onConfigurationChanged(mContext);
}
/** /**
* Shows the picture-in-picture menu if an activity is in picture-in-picture mode. * Shows the picture-in-picture menu if an activity is in picture-in-picture mode.
*/ */

View File

@@ -42,9 +42,9 @@ public class PipRecentsOverlayManager {
private final PipManager mPipManager = PipManager.getInstance(); private final PipManager mPipManager = PipManager.getInstance();
private final WindowManager mWindowManager; private final WindowManager mWindowManager;
private final View mOverlayView; private View mOverlayView;
private final PipRecentsControlsView mPipControlsView; private PipRecentsControlsView mPipControlsView;
private final View mRecentsView; private View mRecentsView;
private final LayoutParams mPipRecentsControlsViewLayoutParams; private final LayoutParams mPipRecentsControlsViewLayoutParams;
private final LayoutParams mPipRecentsControlsViewFocusedLayoutParams; private final LayoutParams mPipRecentsControlsViewFocusedLayoutParams;
@@ -73,6 +73,21 @@ public class PipRecentsOverlayManager {
PipRecentsOverlayManager(Context context) { PipRecentsOverlayManager(Context context) {
mWindowManager = (WindowManager) context.getSystemService(WindowManager.class); mWindowManager = (WindowManager) context.getSystemService(WindowManager.class);
mPipRecentsControlsViewLayoutParams = new WindowManager.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
LayoutParams.TYPE_SYSTEM_DIALOG,
LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
mPipRecentsControlsViewFocusedLayoutParams = new WindowManager.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
LayoutParams.TYPE_SYSTEM_DIALOG,
0,
PixelFormat.TRANSLUCENT);
initViews(context);
}
private void initViews(Context context) {
LayoutInflater inflater = (LayoutInflater) context LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE); .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mOverlayView = inflater.inflate(R.layout.tv_pip_recents_overlay, null); mOverlayView = inflater.inflate(R.layout.tv_pip_recents_overlay, null);
@@ -86,17 +101,6 @@ public class PipRecentsOverlayManager {
} }
} }
}); });
mPipRecentsControlsViewLayoutParams = new WindowManager.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
LayoutParams.TYPE_SYSTEM_DIALOG,
LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
mPipRecentsControlsViewFocusedLayoutParams = new WindowManager.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
LayoutParams.TYPE_SYSTEM_DIALOG,
0,
PixelFormat.TRANSLUCENT);
} }
/** /**
@@ -210,4 +214,14 @@ public class PipRecentsOverlayManager {
boolean isRecentsShown() { boolean isRecentsShown() {
return mIsRecentsShown; return mIsRecentsShown;
} }
/**
* Updates the PIP per configuration changed.
*/
void onConfigurationChanged(Context context) {
if (mIsRecentsShown) {
Log.w(TAG, "Configuration is changed while Recents is shown");
}
initViews(context);
}
} }

View File

@@ -48,6 +48,6 @@ public class PipUI extends SystemUI {
if (!mSupportPip) { if (!mSupportPip) {
return; return;
} }
// TODO: handle configuration change. PipManager.getInstance().onConfigurationChanged();
} }
} }