diff options
| author | 2020-11-27 08:32:32 +0000 | |
|---|---|---|
| committer | 2020-11-27 08:32:32 +0000 | |
| commit | 7ada26bbe0d571729ea00212a60ed29eaa2cd48c (patch) | |
| tree | 390c7b1ff455c24052aaa361ac0e73e73954a512 | |
| parent | 3a1c6e6b9e52ae57004fe57bfe1e8e9dd95a72bf (diff) | |
| parent | ade2da5f4c605f2d3b1750518cb833541e90a5b0 (diff) | |
Merge "Add context to customization class constructors" am: ade2da5f4c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1426657
Change-Id: I7515da6563f96845cfee21e9e05d16848e79699d
3 files changed, 17 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/media/MediaKeyDispatcher.java b/services/core/java/com/android/server/media/MediaKeyDispatcher.java index 5933723f01b6..fc7c82ac5fd1 100644 --- a/services/core/java/com/android/server/media/MediaKeyDispatcher.java +++ b/services/core/java/com/android/server/media/MediaKeyDispatcher.java @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.PendingIntent; +import android.content.Context; import android.media.session.ISessionManager; import android.media.session.MediaSession; import android.os.Binder; @@ -60,7 +61,7 @@ public abstract class MediaKeyDispatcher { private Map<Integer, Integer> mOverriddenKeyEvents; - public MediaKeyDispatcher() { + public MediaKeyDispatcher(Context context) { // Constructor used for reflection mOverriddenKeyEvents = new HashMap<>(); mOverriddenKeyEvents.put(KeyEvent.KEYCODE_MEDIA_PLAY, 0); diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index b02b90092b7a..4eda7a79f17b 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -96,7 +96,6 @@ import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; /** * System implementation of MediaSessionManager @@ -152,7 +151,6 @@ public class MediaSessionService extends SystemService implements Monitor { private SessionPolicyProvider mCustomSessionPolicyProvider; private MediaKeyDispatcher mCustomMediaKeyDispatcher; - private Map<Integer, Integer> mOverriddenKeyEventsMap; public MediaSessionService(Context context) { super(context); @@ -771,7 +769,6 @@ public class MediaSessionService extends SystemService implements Monitor { private void instantiateCustomDispatcher(String nameFromTesting) { synchronized (mLock) { mCustomMediaKeyDispatcher = null; - mOverriddenKeyEventsMap = null; String customDispatcherClassName = (nameFromTesting == null) ? mContext.getResources().getString(R.string.config_customMediaKeyDispatcher) @@ -779,9 +776,10 @@ public class MediaSessionService extends SystemService implements Monitor { try { if (!TextUtils.isEmpty(customDispatcherClassName)) { Class customDispatcherClass = Class.forName(customDispatcherClassName); - Constructor constructor = customDispatcherClass.getDeclaredConstructor(); - mCustomMediaKeyDispatcher = (MediaKeyDispatcher) constructor.newInstance(); - mOverriddenKeyEventsMap = mCustomMediaKeyDispatcher.getOverriddenKeyEvents(); + Constructor constructor = + customDispatcherClass.getDeclaredConstructor(Context.class); + mCustomMediaKeyDispatcher = + (MediaKeyDispatcher) constructor.newInstance(mContext); } } catch (ClassNotFoundException | InstantiationException | InvocationTargetException | IllegalAccessException | NoSuchMethodException e) { @@ -801,9 +799,10 @@ public class MediaSessionService extends SystemService implements Monitor { try { if (!TextUtils.isEmpty(customProviderClassName)) { Class customProviderClass = Class.forName(customProviderClassName); - Constructor constructor = customProviderClass.getDeclaredConstructor(); + Constructor constructor = + customProviderClass.getDeclaredConstructor(Context.class); mCustomSessionPolicyProvider = - (SessionPolicyProvider) constructor.newInstance(); + (SessionPolicyProvider) constructor.newInstance(mContext); } } catch (ClassNotFoundException | InstantiationException | InvocationTargetException | IllegalAccessException | NoSuchMethodException e) { @@ -2398,9 +2397,12 @@ public class MediaSessionService extends SystemService implements Monitor { return; } - int overriddenKeyEvents = (mCustomMediaKeyDispatcher == null) ? 0 - : mCustomMediaKeyDispatcher.getOverriddenKeyEvents() - .get(keyEvent.getKeyCode()); + int overriddenKeyEvents = 0; + if (mCustomMediaKeyDispatcher == null + && mCustomMediaKeyDispatcher.getOverriddenKeyEvents() != null) { + overriddenKeyEvents = mCustomMediaKeyDispatcher.getOverriddenKeyEvents() + .get(keyEvent.getKeyCode()); + } cancelTrackingIfNeeded(packageName, pid, uid, asSystemService, keyEvent, needWakeLock, opPackageName, stream, musicOnly, overriddenKeyEvents); if (!needTracking(keyEvent, overriddenKeyEvents)) { diff --git a/services/core/java/com/android/server/media/SessionPolicyProvider.java b/services/core/java/com/android/server/media/SessionPolicyProvider.java index 5f02a075344e..332c85adec01 100644 --- a/services/core/java/com/android/server/media/SessionPolicyProvider.java +++ b/services/core/java/com/android/server/media/SessionPolicyProvider.java @@ -18,6 +18,7 @@ package com.android.server.media; import android.annotation.IntDef; import android.annotation.NonNull; +import android.content.Context; import android.media.session.MediaSession; import java.lang.annotation.Retention; @@ -54,7 +55,7 @@ public abstract class SessionPolicyProvider { */ static final int SESSION_POLICY_IGNORE_BUTTON_SESSION = 1 << 1; - public SessionPolicyProvider() { + public SessionPolicyProvider(Context context) { // Constructor used for reflection } |