Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 921078ab authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix issue with TV PIP clobbering resize on orientation change." into oc-dev

parents 3afc07ae 0c5a5929
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
}
+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ public class PipUI extends SystemUI implements CommandQueue.Callbacks {
            return;
        }

        mPipManager.onConfigurationChanged();
        mPipManager.onConfigurationChanged(newConfig);
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -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();
    }

+13 −4
Original line number Diff line number Diff line
@@ -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);
    }