Loading packages/SystemUI/src/com/android/systemui/pip/phone/PipAppOpsListener.java +11 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,7 @@ public class PipAppOpsListener { private Handler mHandler; private IActivityManager mActivityManager; private AppOpsManager mAppOpsManager; private PipMotionHelper mMotionHelper; private Callback mCallback; private AppOpsManager.OnOpChangedListener mAppOpsChangedListener = new OnOpChangedListener() { @Override Loading @@ -52,7 +51,7 @@ public class PipAppOpsListener { if (appInfo.packageName.equals(topPipActivityInfo.first.getPackageName()) && mAppOpsManager.checkOpNoThrow(OP_PICTURE_IN_PICTURE, appInfo.uid, packageName) != MODE_ALLOWED) { mHandler.post(() -> mMotionHelper.dismissPip()); mHandler.post(() -> mCallback.dismissPip()); } } } catch (NameNotFoundException e) { Loading @@ -63,12 +62,12 @@ public class PipAppOpsListener { }; public PipAppOpsListener(Context context, IActivityManager activityManager, PipMotionHelper motionHelper) { Callback callback) { mContext = context; mHandler = new Handler(mContext.getMainLooper()); mActivityManager = activityManager; mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mMotionHelper = motionHelper; mCallback = callback; } public void onActivityPinned(String packageName) { Loading @@ -89,4 +88,10 @@ public class PipAppOpsListener { private void unregisterAppOpsListener() { mAppOpsManager.stopWatchingMode(mAppOpsChangedListener); } /** Callback for PipAppOpsListener to request changes to the PIP window. */ public interface Callback { /** Dismisses the PIP window. */ void dismissPip(); } } packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java +3 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ import java.io.PrintWriter; /** * A helper to animate and manipulate the PiP. */ public class PipMotionHelper implements Handler.Callback { public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Callback { private static final String TAG = "PipMotionHelper"; private static final boolean DEBUG = false; Loading Loading @@ -172,7 +172,8 @@ public class PipMotionHelper implements Handler.Callback { /** * Dismisses the pinned stack. */ void dismissPip() { @Override public void dismissPip() { if (DEBUG) { Log.d(TAG, "dismissPip: callers=\n" + Debug.getCallers(5, " ")); } Loading Loading
packages/SystemUI/src/com/android/systemui/pip/phone/PipAppOpsListener.java +11 −6 Original line number Diff line number Diff line Loading @@ -36,8 +36,7 @@ public class PipAppOpsListener { private Handler mHandler; private IActivityManager mActivityManager; private AppOpsManager mAppOpsManager; private PipMotionHelper mMotionHelper; private Callback mCallback; private AppOpsManager.OnOpChangedListener mAppOpsChangedListener = new OnOpChangedListener() { @Override Loading @@ -52,7 +51,7 @@ public class PipAppOpsListener { if (appInfo.packageName.equals(topPipActivityInfo.first.getPackageName()) && mAppOpsManager.checkOpNoThrow(OP_PICTURE_IN_PICTURE, appInfo.uid, packageName) != MODE_ALLOWED) { mHandler.post(() -> mMotionHelper.dismissPip()); mHandler.post(() -> mCallback.dismissPip()); } } } catch (NameNotFoundException e) { Loading @@ -63,12 +62,12 @@ public class PipAppOpsListener { }; public PipAppOpsListener(Context context, IActivityManager activityManager, PipMotionHelper motionHelper) { Callback callback) { mContext = context; mHandler = new Handler(mContext.getMainLooper()); mActivityManager = activityManager; mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mMotionHelper = motionHelper; mCallback = callback; } public void onActivityPinned(String packageName) { Loading @@ -89,4 +88,10 @@ public class PipAppOpsListener { private void unregisterAppOpsListener() { mAppOpsManager.stopWatchingMode(mAppOpsChangedListener); } /** Callback for PipAppOpsListener to request changes to the PIP window. */ public interface Callback { /** Dismisses the PIP window. */ void dismissPip(); } }
packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java +3 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ import java.io.PrintWriter; /** * A helper to animate and manipulate the PiP. */ public class PipMotionHelper implements Handler.Callback { public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Callback { private static final String TAG = "PipMotionHelper"; private static final boolean DEBUG = false; Loading Loading @@ -172,7 +172,8 @@ public class PipMotionHelper implements Handler.Callback { /** * Dismisses the pinned stack. */ void dismissPip() { @Override public void dismissPip() { if (DEBUG) { Log.d(TAG, "dismissPip: callers=\n" + Debug.getCallers(5, " ")); } Loading