diff options
| author | 2017-08-10 06:47:35 +0000 | |
|---|---|---|
| committer | 2017-08-10 06:47:35 +0000 | |
| commit | 5f680275061c08ceed07231795c81cdf5cf62d6f (patch) | |
| tree | d68aca3eebff4ce2fc8936703cb1ebac8ff66542 | |
| parent | 7233f04d61a837a88ab280fb9aa571d70a903abf (diff) | |
| parent | 67744e4696e32b022434cc1b96dc6d286f833a32 (diff) | |
Merge "Add permission check before setMain()" into oc-mr1-dev
am: 67744e4696
Change-Id: I26ef67a44b8c041900958bd7a33097c6052c073a
| -rw-r--r-- | media/java/android/media/tv/TvView.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java index 9538e1d5fa74..6b329f8ec694 100644 --- a/media/java/android/media/tv/TvView.java +++ b/media/java/android/media/tv/TvView.java @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.Context; +import android.content.pm.PackageManager; import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.Rect; @@ -680,7 +681,8 @@ public class TvView extends ViewGroup { // Other app may have shown its own main TvView. // Set main again to regain main session. synchronized (sMainTvViewLock) { - if (hasFocus && this == sMainTvView.get() && mSession != null) { + if (hasFocus && this == sMainTvView.get() && mSession != null + && checkChangeHdmiCecActiveSourcePermission()) { mSession.setMain(); } } @@ -848,6 +850,12 @@ public class TvView extends ViewGroup { return frame; } + private boolean checkChangeHdmiCecActiveSourcePermission() { + return getContext().checkSelfPermission( + android.Manifest.permission.CHANGE_HDMI_CEC_ACTIVE_SOURCE) + == PackageManager.PERMISSION_GRANTED; + } + /** * Callback used to receive time shift position changes. */ @@ -1080,7 +1088,8 @@ public class TvView extends ViewGroup { mPendingAppPrivateCommands.clear(); synchronized (sMainTvViewLock) { - if (hasWindowFocus() && TvView.this == sMainTvView.get()) { + if (hasWindowFocus() && TvView.this == sMainTvView.get() + && checkChangeHdmiCecActiveSourcePermission()) { mSession.setMain(); } } |