Merge "Fix issue with TV PIP clobbering resize on orientation change." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
921078ab31
@@ -17,12 +17,13 @@
|
||||
package com.android.systemui.pip;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
public interface BasePipManager {
|
||||
void initialize(Context context);
|
||||
void showPictureInPictureMenu();
|
||||
void onConfigurationChanged();
|
||||
void onConfigurationChanged(Configuration newConfig);
|
||||
void dump(PrintWriter pw);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public class PipUI extends SystemUI implements CommandQueue.Callbacks {
|
||||
return;
|
||||
}
|
||||
|
||||
mPipManager.onConfigurationChanged();
|
||||
mPipManager.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.app.IActivityManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Handler;
|
||||
import android.os.RemoteException;
|
||||
@@ -196,7 +197,7 @@ public class PipManager implements BasePipManager {
|
||||
/**
|
||||
* Updates the PIP per configuration changed.
|
||||
*/
|
||||
public void onConfigurationChanged() {
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
mTouchHandler.onConfigurationChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Rect;
|
||||
import android.media.session.MediaController;
|
||||
@@ -116,6 +117,7 @@ public class PipManager implements BasePipManager {
|
||||
private Rect mDefaultPipBounds = new Rect();
|
||||
private Rect mSettingsPipBounds;
|
||||
private Rect mMenuModePipBounds;
|
||||
private int mLastOrientation = Configuration.ORIENTATION_UNDEFINED;
|
||||
private boolean mInitialized;
|
||||
private int mPipTaskId = TASK_ID_NO_PIP;
|
||||
private ComponentName mPipComponentName;
|
||||
@@ -237,7 +239,7 @@ public class PipManager implements BasePipManager {
|
||||
}
|
||||
}
|
||||
|
||||
loadConfigurationsAndApply();
|
||||
loadConfigurationsAndApply(mContext.getResources().getConfiguration());
|
||||
mMediaSessionManager =
|
||||
(MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE);
|
||||
|
||||
@@ -250,7 +252,14 @@ public class PipManager implements BasePipManager {
|
||||
mPipNotification = new PipNotification(context);
|
||||
}
|
||||
|
||||
private void loadConfigurationsAndApply() {
|
||||
private void loadConfigurationsAndApply(Configuration newConfig) {
|
||||
if (mLastOrientation != newConfig.orientation) {
|
||||
// Don't resize the pinned stack on orientation change. TV does not care about this case
|
||||
// and this could clobber the existing animation to the new bounds calculated by WM.
|
||||
mLastOrientation = newConfig.orientation;
|
||||
return;
|
||||
}
|
||||
|
||||
Resources res = mContext.getResources();
|
||||
mSettingsPipBounds = Rect.unflattenFromString(res.getString(
|
||||
R.string.pip_settings_bounds));
|
||||
@@ -267,8 +276,8 @@ public class PipManager implements BasePipManager {
|
||||
/**
|
||||
* Updates the PIP per configuration changed.
|
||||
*/
|
||||
public void onConfigurationChanged() {
|
||||
loadConfigurationsAndApply();
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
loadConfigurationsAndApply(newConfig);
|
||||
mPipNotification.onConfigurationChanged(mContext);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user