aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-09-26 21:05:11 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-09-26 21:05:11 +0000
commit18f1a24bc3b2db8d7f5d98666067e6917d45a9f0 (patch)
treec58bfea523be18d03b44b5fc57a2d1edcaaa2996
parent5a39cc81bdc4e36830e121e0c773469ab08d979f (diff)
parent4895c46357151f2252ae61b4b2a56b2b888f5ebc (diff)
downloadtests-android11-qpr1-s2-release.tar.gz
Change-Id: I457bc035b0e675c47d327134a90d5920a03202d2
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java49
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java8
-rw-r--r--build.gradle2
3 files changed, 39 insertions, 20 deletions
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
index 3c3eeb6..61b3a31 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
@@ -33,7 +33,9 @@ import androidx.annotation.Nullable;
import androidx.media.MediaBrowserServiceCompat;
import com.android.car.media.testmediaapp.loader.TmaLoader;
+import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs;
import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaAccountType;
+import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaBrowseNodeType;
import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaReplyDelay;
import com.android.car.media.testmediaapp.prefs.TmaPrefs;
@@ -72,6 +74,10 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
private BrowserRoot mRoot;
+ public TmaBrowser() {
+ super();
+ }
+
@Override
public void onCreate() {
super.onCreate();
@@ -91,14 +97,9 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
mediaSessionExtras.putString(BROWSE_SERVICE_FOR_SESSION_KEY, TmaBrowser.class.getName());
mSession.setExtras(mediaSessionExtras);
- mPrefs.mAccountType.registerChangeListener(
- (oldValue, newValue) -> onAccountChanged(newValue));
-
- mPrefs.mRootNodeType.registerChangeListener(
- (oldValue, newValue) -> invalidateRoot());
-
- mPrefs.mRootReplyDelay.registerChangeListener(
- (oldValue, newValue) -> invalidateRoot());
+ mPrefs.mAccountType.registerChangeListener(mOnAccountChanged);
+ mPrefs.mRootNodeType.registerChangeListener(mOnRootNodeTypeChanged);
+ mPrefs.mRootReplyDelay.registerChangeListener(mOnReplyDelayChanged);
Bundle browserRootExtras = new Bundle();
browserRootExtras.putBoolean(SEARCH_SUPPORTED, true);
@@ -109,23 +110,33 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
@Override
public void onDestroy() {
+ mPrefs.mAccountType.unregisterChangeListener(mOnAccountChanged);
+ mPrefs.mRootNodeType.unregisterChangeListener(mOnRootNodeTypeChanged);
+ mPrefs.mRootReplyDelay.unregisterChangeListener(mOnReplyDelayChanged);
mSession.release();
mHandler = null;
mPrefs = null;
super.onDestroy();
}
- private void onAccountChanged(TmaAccountType accountType) {
- if (PLAYBACK_STATE_UPDATE_FIRST.equals(mPrefs.mLoginEventOrder.getValue())) {
- updatePlaybackState(accountType);
- invalidateRoot();
- } else {
- invalidateRoot();
- (new Handler()).postDelayed(() -> {
- updatePlaybackState(accountType);
- }, 3000);
- }
- }
+ private final TmaPrefs.PrefValueChangedListener<TmaAccountType> mOnAccountChanged =
+ (oldValue, newValue) -> {
+ if (PLAYBACK_STATE_UPDATE_FIRST.equals(mPrefs.mLoginEventOrder.getValue())) {
+ updatePlaybackState(newValue);
+ invalidateRoot();
+ } else {
+ invalidateRoot();
+ (new Handler()).postDelayed(() -> {
+ updatePlaybackState(newValue);
+ }, 3000);
+ }
+ };
+
+ private final TmaPrefs.PrefValueChangedListener<TmaBrowseNodeType> mOnRootNodeTypeChanged =
+ (oldValue, newValue) -> invalidateRoot();
+
+ private final TmaPrefs.PrefValueChangedListener<TmaReplyDelay> mOnReplyDelayChanged =
+ (oldValue, newValue) -> invalidateRoot();
private void updatePlaybackState(TmaAccountType accountType) {
if (accountType == TmaAccountType.NONE) {
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java
index 8e9d89f..dd08cd2 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java
@@ -110,6 +110,14 @@ public class TmaPrefs {
mSharedPrefs.registerOnSharedPreferenceChangeListener(listenerWrapper);
mListeners.put(listener, listenerWrapper);
}
+
+ public void unregisterChangeListener(PrefValueChangedListener<T> listener) {
+ OnSharedPreferenceChangeListener listenerWrapper = mListeners.get(listener);
+ if (listenerWrapper != null) {
+ mSharedPrefs.unregisterOnSharedPreferenceChangeListener(listenerWrapper);
+ mListeners.remove(listener);
+ }
+ }
}
diff --git a/build.gradle b/build.gradle
index 8ea89fa..5493299 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,7 +22,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.0.0'
+ classpath 'com.android.tools.build:gradle:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files