Merge "PIP: Handle configuration changes" into nyc-dev
This commit is contained in:
@@ -226,6 +226,13 @@ public class PipManager {
|
||||
(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.
|
||||
*/
|
||||
|
||||
@@ -42,9 +42,9 @@ public class PipRecentsOverlayManager {
|
||||
|
||||
private final PipManager mPipManager = PipManager.getInstance();
|
||||
private final WindowManager mWindowManager;
|
||||
private final View mOverlayView;
|
||||
private final PipRecentsControlsView mPipControlsView;
|
||||
private final View mRecentsView;
|
||||
private View mOverlayView;
|
||||
private PipRecentsControlsView mPipControlsView;
|
||||
private View mRecentsView;
|
||||
|
||||
private final LayoutParams mPipRecentsControlsViewLayoutParams;
|
||||
private final LayoutParams mPipRecentsControlsViewFocusedLayoutParams;
|
||||
@@ -73,6 +73,21 @@ public class PipRecentsOverlayManager {
|
||||
PipRecentsOverlayManager(Context context) {
|
||||
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
|
||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,6 @@ public class PipUI extends SystemUI {
|
||||
if (!mSupportPip) {
|
||||
return;
|
||||
}
|
||||
// TODO: handle configuration change.
|
||||
PipManager.getInstance().onConfigurationChanged();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user