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;
|
package com.android.systemui.pip;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
public interface BasePipManager {
|
public interface BasePipManager {
|
||||||
void initialize(Context context);
|
void initialize(Context context);
|
||||||
void showPictureInPictureMenu();
|
void showPictureInPictureMenu();
|
||||||
void onConfigurationChanged();
|
void onConfigurationChanged(Configuration newConfig);
|
||||||
void dump(PrintWriter pw);
|
void dump(PrintWriter pw);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class PipUI extends SystemUI implements CommandQueue.Callbacks {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mPipManager.onConfigurationChanged();
|
mPipManager.onConfigurationChanged(newConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.app.IActivityManager;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ParceledListSlice;
|
import android.content.pm.ParceledListSlice;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -196,7 +197,7 @@ public class PipManager implements BasePipManager {
|
|||||||
/**
|
/**
|
||||||
* Updates the PIP per configuration changed.
|
* Updates the PIP per configuration changed.
|
||||||
*/
|
*/
|
||||||
public void onConfigurationChanged() {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
mTouchHandler.onConfigurationChanged();
|
mTouchHandler.onConfigurationChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.ParceledListSlice;
|
import android.content.pm.ParceledListSlice;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.media.session.MediaController;
|
import android.media.session.MediaController;
|
||||||
@@ -116,6 +117,7 @@ public class PipManager implements BasePipManager {
|
|||||||
private Rect mDefaultPipBounds = new Rect();
|
private Rect mDefaultPipBounds = new Rect();
|
||||||
private Rect mSettingsPipBounds;
|
private Rect mSettingsPipBounds;
|
||||||
private Rect mMenuModePipBounds;
|
private Rect mMenuModePipBounds;
|
||||||
|
private int mLastOrientation = Configuration.ORIENTATION_UNDEFINED;
|
||||||
private boolean mInitialized;
|
private boolean mInitialized;
|
||||||
private int mPipTaskId = TASK_ID_NO_PIP;
|
private int mPipTaskId = TASK_ID_NO_PIP;
|
||||||
private ComponentName mPipComponentName;
|
private ComponentName mPipComponentName;
|
||||||
@@ -237,7 +239,7 @@ public class PipManager implements BasePipManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
loadConfigurationsAndApply();
|
loadConfigurationsAndApply(mContext.getResources().getConfiguration());
|
||||||
mMediaSessionManager =
|
mMediaSessionManager =
|
||||||
(MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE);
|
(MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE);
|
||||||
|
|
||||||
@@ -250,7 +252,14 @@ public class PipManager implements BasePipManager {
|
|||||||
mPipNotification = new PipNotification(context);
|
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();
|
Resources res = mContext.getResources();
|
||||||
mSettingsPipBounds = Rect.unflattenFromString(res.getString(
|
mSettingsPipBounds = Rect.unflattenFromString(res.getString(
|
||||||
R.string.pip_settings_bounds));
|
R.string.pip_settings_bounds));
|
||||||
@@ -267,8 +276,8 @@ public class PipManager implements BasePipManager {
|
|||||||
/**
|
/**
|
||||||
* Updates the PIP per configuration changed.
|
* Updates the PIP per configuration changed.
|
||||||
*/
|
*/
|
||||||
public void onConfigurationChanged() {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
loadConfigurationsAndApply();
|
loadConfigurationsAndApply(newConfig);
|
||||||
mPipNotification.onConfigurationChanged(mContext);
|
mPipNotification.onConfigurationChanged(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user