summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-06-19 23:28:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-06-19 23:28:43 +0000
commit72003e5c6ba50f7973bd39293b16e397a4d458a3 (patch)
tree1fcd272ae3d1d351f49eeee8bdfa5acf7e952f4a
parent8f0dd76335d466891829d15af70e19000a7c0468 (diff)
parentd20c5112ad7f068eff401b402f8390c650598ae2 (diff)
downloadMedia-72003e5c6ba50f7973bd39293b16e397a4d458a3.tar.gz
Merge "Move car api to MediaActivity" into rvc-dev
-rw-r--r--src/com/android/car/media/BrowseViewController.java16
-rw-r--r--src/com/android/car/media/ErrorViewController.java12
-rw-r--r--src/com/android/car/media/MediaActivity.java20
-rw-r--r--src/com/android/car/media/ViewControllerBase.java13
4 files changed, 40 insertions, 21 deletions
diff --git a/src/com/android/car/media/BrowseViewController.java b/src/com/android/car/media/BrowseViewController.java
index 4a88f27..dd6de4b 100644
--- a/src/com/android/car/media/BrowseViewController.java
+++ b/src/com/android/car/media/BrowseViewController.java
@@ -18,6 +18,7 @@ package com.android.car.media;
import static com.android.car.arch.common.LiveDataFunctions.ifThenElse;
+import android.car.content.pm.CarPackageManager;
import android.content.Context;
import android.content.res.Resources;
import android.os.Handler;
@@ -185,9 +186,10 @@ public class BrowseViewController extends ViewControllerBase {
* Creates a new instance of this controller meant to browse the root node.
* @return a fully initialized {@link BrowseViewController}
*/
- public static BrowseViewController newInstance(Callbacks callbacks, ViewGroup container) {
+ public static BrowseViewController newInstance(Callbacks callbacks,
+ CarPackageManager carPackageManager, ViewGroup container) {
boolean isSearchController = false;
- return new BrowseViewController(callbacks, container, isSearchController);
+ return new BrowseViewController(callbacks, carPackageManager, container, isSearchController);
}
/**
@@ -196,9 +198,10 @@ public class BrowseViewController extends ViewControllerBase {
*
* @return a fully initialized {@link BrowseViewController}
*/
- static BrowseViewController newSearchInstance(Callbacks callbacks, ViewGroup container) {
+ static BrowseViewController newSearchInstance(Callbacks callbacks,
+ CarPackageManager carPackageManager, ViewGroup container) {
boolean isSearchController = true;
- return new BrowseViewController(callbacks, container, isSearchController);
+ return new BrowseViewController(callbacks, carPackageManager, container, isSearchController);
}
private void updateSearchQuery(@Nullable String query) {
@@ -236,8 +239,9 @@ public class BrowseViewController extends ViewControllerBase {
updateAppBar();
}
- private BrowseViewController(Callbacks callbacks, ViewGroup container, boolean isSearchController) {
- super(callbacks.getActivity(), container, R.layout.fragment_browse);
+ private BrowseViewController(Callbacks callbacks, CarPackageManager carPackageManager,
+ ViewGroup container, boolean isSearchController) {
+ super(callbacks.getActivity(), carPackageManager, container, R.layout.fragment_browse);
mCallbacks = callbacks;
mIsSearchController = isSearchController;
diff --git a/src/com/android/car/media/ErrorViewController.java b/src/com/android/car/media/ErrorViewController.java
index c7f142e..e455092 100644
--- a/src/com/android/car/media/ErrorViewController.java
+++ b/src/com/android/car/media/ErrorViewController.java
@@ -1,6 +1,7 @@
package com.android.car.media;
import android.app.PendingIntent;
+import android.car.content.pm.CarPackageManager;
import android.car.drivingstate.CarUxRestrictions;
import android.util.Log;
import android.view.View;
@@ -11,7 +12,6 @@ import androidx.fragment.app.FragmentActivity;
import com.android.car.apps.common.UxrButton;
import com.android.car.apps.common.UxrTextView;
-import com.android.car.apps.common.util.CarPackageManagerUtils;
import com.android.car.apps.common.util.ViewUtils;
import com.android.car.media.common.source.MediaSource;
@@ -28,8 +28,9 @@ public class ErrorViewController extends ViewControllerBase {
private final UxrButton mErrorButton;
- ErrorViewController(FragmentActivity activity, ViewGroup container) {
- super(activity, container, R.layout.fragment_error);
+ ErrorViewController(FragmentActivity activity,
+ CarPackageManager carPackageManager, ViewGroup container) {
+ super(activity, carPackageManager, container, R.layout.fragment_error);
mErrorMessageView = mContent.findViewById(R.id.error_message);
mErrorButton = mContent.findViewById(R.id.error_button);
@@ -46,15 +47,14 @@ public class ErrorViewController extends ViewControllerBase {
ViewUtils.hideViewAnimated(mErrorButton, 0);
}
- public void setError(String message, String label, PendingIntent pendingIntent) {
+ public void setError(String message, String label, PendingIntent pendingIntent,
+ boolean isDistractionOptimized) {
mErrorMessageView.setText(message);
// Only show the error button if the error is actionable.
if (label != null && pendingIntent != null) {
mErrorButton.setText(label);
- boolean isDistractionOptimized = CarPackageManagerUtils.getInstance(mActivity)
- .isDistractionOptimized(pendingIntent);
mErrorButton.setUxRestrictions(isDistractionOptimized
? CarUxRestrictions.UX_RESTRICTIONS_BASELINE
: CarUxRestrictions.UX_RESTRICTIONS_NO_SETUP);
diff --git a/src/com/android/car/media/MediaActivity.java b/src/com/android/car/media/MediaActivity.java
index e246d2e..36586d2 100644
--- a/src/com/android/car/media/MediaActivity.java
+++ b/src/com/android/car/media/MediaActivity.java
@@ -24,6 +24,7 @@ import android.app.AlertDialog;
import android.app.Application;
import android.app.PendingIntent;
import android.car.Car;
+import android.car.content.pm.CarPackageManager;
import android.car.drivingstate.CarUxRestrictions;
import android.content.ComponentName;
import android.content.Context;
@@ -51,6 +52,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModelProviders;
import com.android.car.apps.common.util.VectorMath;
+import com.android.car.apps.common.util.CarPackageManagerUtils;
import com.android.car.apps.common.util.ViewUtils;
import com.android.car.media.common.MediaConstants;
import com.android.car.media.common.MediaItemMetadata;
@@ -99,6 +101,9 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
private boolean mCanShowMiniPlaybackControls;
private PlaybackViewModel.PlaybackStateWrapper mCurrentPlaybackStateWrapper;
+ private Car mCar;
+ private CarPackageManager mCarPackageManager;
+
private float mCloseVectorX;
private float mCloseVectorY;
private float mCloseVectorNorm;
@@ -200,8 +205,10 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
.replace(R.id.playback_container, mPlaybackFragment)
.commit();
- mBrowseController = BrowseViewController.newInstance(this, mBrowseContainer);
- mSearchController = BrowseViewController.newSearchInstance(this, mSearchContainer);
+ mBrowseController = BrowseViewController.newInstance(this,
+ mCarPackageManager, mBrowseContainer);
+ mSearchController = BrowseViewController.newSearchInstance(this,
+ mCarPackageManager, mSearchContainer);
playbackViewModel.getPlaybackController().observe(this,
playbackController -> {
@@ -212,6 +219,9 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
playbackViewModel.getPlaybackStateWrapper().observe(this,
state -> handlePlaybackState(state, true));
+ mCar = Car.createCar(this);
+ mCarPackageManager = (CarPackageManager) mCar.getCarManager(Car.PACKAGE_SERVICE);
+
mCarUxRestrictionsUtil = CarUxRestrictionsUtil.getInstance(this);
mRestrictions = CarUxRestrictions.UX_RESTRICTIONS_NO_SETUP;
mCarUxRestrictionsUtil.register(mListener);
@@ -227,6 +237,7 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
@Override
protected void onDestroy() {
mCarUxRestrictionsUtil.unregister(mListener);
+ mCar.disconnect();
super.onDestroy();
}
@@ -287,7 +298,8 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
showToast(displayedMessage);
}
} else {
- getErrorController().setError(displayedMessage, label, intent);
+ getErrorController().setError(displayedMessage, label, intent,
+ CarPackageManagerUtils.isDistractionOptimized(mCarPackageManager, intent));
isFatalError = true;
}
}
@@ -300,7 +312,7 @@ public class MediaActivity extends FragmentActivity implements BrowseViewControl
private ErrorViewController getErrorController() {
if (mErrorController == null) {
- mErrorController = new ErrorViewController(this, mErrorContainer);
+ mErrorController = new ErrorViewController(this, mCarPackageManager, mErrorContainer);
MediaSource mediaSource = getMediaSourceViewModel().getPrimaryMediaSource().getValue();
mErrorController.onMediaSourceChanged(mediaSource);
}
diff --git a/src/com/android/car/media/ViewControllerBase.java b/src/com/android/car/media/ViewControllerBase.java
index fd4410b..a4c413d 100644
--- a/src/com/android/car/media/ViewControllerBase.java
+++ b/src/com/android/car/media/ViewControllerBase.java
@@ -19,6 +19,7 @@ package com.android.car.media;
import static android.car.media.CarMediaManager.MEDIA_SOURCE_MODE_BROWSE;
+import android.car.content.pm.CarPackageManager;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.ResolveInfo;
@@ -49,7 +50,7 @@ abstract class ViewControllerBase {
private static final String TAG = "ViewControllerBase";
private final boolean mShouldShowSoundSettings;
- private final CarPackageManagerUtils mCarPackageManagerUtils;
+ private final CarPackageManager mCarPackageManager;
final FragmentActivity mActivity;
final int mFadeDuration;
@@ -59,13 +60,12 @@ abstract class ViewControllerBase {
private Intent mCurrentSourcePreferences;
-
- ViewControllerBase(FragmentActivity activity, ViewGroup container, @LayoutRes int resource) {
+ ViewControllerBase(FragmentActivity activity, CarPackageManager carPackageManager,
+ ViewGroup container, @LayoutRes int resource) {
mActivity = activity;
Resources res = mActivity.getResources();
mFadeDuration = res.getInteger(R.integer.new_album_art_fade_in_duration);
mShouldShowSoundSettings = res.getBoolean(R.bool.show_sound_settings);
- mCarPackageManagerUtils = CarPackageManagerUtils.getInstance(mActivity);
LayoutInflater inflater = LayoutInflater.from(container.getContext());
mContent = inflater.inflate(resource, container, false);
@@ -76,6 +76,8 @@ abstract class ViewControllerBase {
container.addView(mContent);
+ mCarPackageManager = carPackageManager;
+
mMediaSourceVM = MediaSourceViewModel.get(activity.getApplication(),
MEDIA_SOURCE_MODE_BROWSE);
}
@@ -141,7 +143,8 @@ abstract class ViewControllerBase {
mCurrentSourcePreferences = new Intent(prefsIntent.getAction())
.setClassName(info.activityInfo.packageName, info.activityInfo.name);
mAppBarView.setSettingsDistractionOptimized(
- mCarPackageManagerUtils.isDistractionOptimized(info.activityInfo));
+ CarPackageManagerUtils.isDistractionOptimized(
+ mCarPackageManager, info.activityInfo));
}
}
mAppBarView.setHasSettings(mCurrentSourcePreferences != null);