aboutsummaryrefslogtreecommitdiff
path: root/TestMediaApp
diff options
context:
space:
mode:
authorArnaud Berry <arnaudberry@google.com>2019-08-30 16:35:26 -0700
committerArnaud Berry <arnaudberry@google.com>2019-08-30 16:42:59 -0700
commitead1cd2f7761a2b00d585beb749c5ac68ecf3f38 (patch)
tree66379347c7f2f5a76b9078e123109e240f7a724a /TestMediaApp
parent304a3dd3c1608f8ffd163a6d3625ecca1b1a79be (diff)
downloadtests-ead1cd2f7761a2b00d585beb749c5ac68ecf3f38.tar.gz
Add pref to control the new delay in TmaAssetProvider#openAssetFile
Bug: 140314643 Test: manual Change-Id: I636e649435543adc073102de4eea130985eeca57
Diffstat (limited to 'TestMediaApp')
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java13
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java7
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java6
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java15
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefsFragment.java6
5 files changed, 34 insertions, 13 deletions
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java
index 15406a3..fc9fd49 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java
@@ -24,6 +24,8 @@ import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
+import com.android.car.media.testmediaapp.prefs.TmaPrefs;
+
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -45,10 +47,17 @@ public class TmaAssetProvider extends ContentProvider {
return prefix + localArt;
}
+ private int mAssetDelay = 0;
+
@Override
public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
Log.i(TAG, "TmaAssetProvider#openAssetFile " + uri);
+ try {
+ Thread.sleep(mAssetDelay + (int)(mAssetDelay * (Math.random())));
+ } catch (InterruptedException ignored) {
+ }
+
String file_path = uri.getPath();
if (TextUtils.isEmpty(file_path)) throw new FileNotFoundException();
try {
@@ -64,7 +73,9 @@ public class TmaAssetProvider extends ContentProvider {
@Override
public boolean onCreate() {
- return false;
+ TmaPrefs.getInstance(getContext()).mAssetReplyDelay.registerChangeListener(
+ (oldValue, newValue) -> mAssetDelay = newValue.mReplyDelayMs);
+ return true;
}
@Override
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
index c795610..a51e623 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaBrowser.java
@@ -22,7 +22,6 @@ import android.os.Handler;
import android.support.v4.media.MediaBrowserCompat.MediaItem;
import android.support.v4.media.session.MediaSessionCompat;
import android.support.v4.media.session.PlaybackStateCompat;
-import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -30,7 +29,7 @@ import androidx.media.MediaBrowserServiceCompat;
import com.android.car.media.testmediaapp.loader.TmaLoader;
import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaAccountType;
-import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaNodeReplyDelay;
+import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaReplyDelay;
import com.android.car.media.testmediaapp.prefs.TmaPrefs;
import java.util.ArrayList;
@@ -139,7 +138,7 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
private void getMediaItemsWithDelay(@NonNull String parentId,
@NonNull Result<List<MediaItem>> result, @Nullable String filter) {
// TODO: allow per item override of the delay ?
- TmaNodeReplyDelay delay = mPrefs.mRootReplyDelay.getValue();
+ TmaReplyDelay delay = mPrefs.mRootReplyDelay.getValue();
Runnable task = () -> {
TmaMediaItem node;
if (TmaAccountType.NONE.equals(mPrefs.mAccountType.getValue())) {
@@ -164,7 +163,7 @@ public class TmaBrowser extends MediaBrowserServiceCompat {
result.sendResult(items);
}
};
- if (delay == TmaNodeReplyDelay.NONE) {
+ if (delay == TmaReplyDelay.NONE) {
task.run();
} else {
result.detach();
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
index cbbf92b..ad870b6 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaEnumPrefs.java
@@ -51,17 +51,19 @@ public class TmaEnumPrefs {
}
/** For simulating various reply speeds. */
- public enum TmaNodeReplyDelay implements EnumPrefValue {
+ public enum TmaReplyDelay implements EnumPrefValue {
NONE("None", "none", 0),
SHORT("Short", "short", 50),
+ SHORT_PLUS("Short+", "short+", 150),
MEDIUM("Medium", "medium", 500),
+ MEDIUM_PLUS("Medium+", "medium+", 2000),
LONG("Long", "long", 5000),
EXTRA_LONG("Extra-Long", "extra-long", 10000);
private final PrefValueImpl mPrefValue;
public final int mReplyDelayMs;
- TmaNodeReplyDelay(String displayTitle, String id, int delayMs) {
+ TmaReplyDelay(String displayTitle, String id, int delayMs) {
mPrefValue = new PrefValueImpl(displayTitle + "(" + delayMs + ")", id);
mReplyDelayMs = delayMs;
}
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 e3f9417..3305a06 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefs.java
@@ -24,7 +24,7 @@ import androidx.preference.PreferenceManager;
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.TmaNodeReplyDelay;
+import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaReplyDelay;
import java.util.HashMap;
import java.util.Map;
@@ -40,7 +40,10 @@ public class TmaPrefs {
public final PrefEntry<TmaBrowseNodeType> mRootNodeType;
/** Wait time before sending a node reply, unless overridden in json (when supported). */
- public final PrefEntry<TmaNodeReplyDelay> mRootReplyDelay;
+ public final PrefEntry<TmaReplyDelay> mRootReplyDelay;
+
+ /** Wait time for openAssetFile. */
+ public final PrefEntry<TmaReplyDelay> mAssetReplyDelay;
public synchronized static TmaPrefs getInstance(Context context) {
@@ -58,7 +61,8 @@ public class TmaPrefs {
private enum TmaPrefKey {
ACCOUNT_TYPE_KEY,
ROOT_NODE_TYPE_KEY,
- ROOT_REPLY_DELAY_KEY
+ ROOT_REPLY_DELAY_KEY,
+ ASSET_REPLY_DELAY_KEY
}
/**
@@ -120,7 +124,10 @@ public class TmaPrefs {
TmaBrowseNodeType.values(), TmaBrowseNodeType.NULL);
mRootReplyDelay = new EnumPrefEntry<>(TmaPrefKey.ROOT_REPLY_DELAY_KEY,
- TmaNodeReplyDelay.values(), TmaNodeReplyDelay.NONE);
+ TmaReplyDelay.values(), TmaReplyDelay.NONE);
+
+ mAssetReplyDelay = new EnumPrefEntry<>(TmaPrefKey.ASSET_REPLY_DELAY_KEY,
+ TmaReplyDelay.values(), TmaReplyDelay.NONE);
}
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefsFragment.java b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefsFragment.java
index 31cf4ae..482de16 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefsFragment.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/prefs/TmaPrefsFragment.java
@@ -26,7 +26,7 @@ import androidx.preference.PreferenceScreen;
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.TmaNodeReplyDelay;
+import com.android.car.media.testmediaapp.prefs.TmaEnumPrefs.TmaReplyDelay;
import com.android.car.media.testmediaapp.prefs.TmaPrefs.PrefEntry;
public class TmaPrefsFragment extends PreferenceFragmentCompat {
@@ -43,7 +43,9 @@ public class TmaPrefsFragment extends PreferenceFragmentCompat {
screen.addPreference(createEnumPref(context, "Root node type", prefs.mRootNodeType,
TmaBrowseNodeType.values()));
screen.addPreference(createEnumPref(context, "Root reply delay", prefs.mRootReplyDelay,
- TmaNodeReplyDelay.values()));
+ TmaReplyDelay.values()));
+ screen.addPreference(createEnumPref(context, "Asset delay: random value in [v, 2v]",
+ prefs.mAssetReplyDelay, TmaReplyDelay.values()));
setPreferenceScreen(screen);
}