diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-06-19 23:28:43 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-06-19 23:28:43 +0000 |
commit | 72003e5c6ba50f7973bd39293b16e397a4d458a3 (patch) | |
tree | 1fcd272ae3d1d351f49eeee8bdfa5acf7e952f4a | |
parent | 8f0dd76335d466891829d15af70e19000a7c0468 (diff) | |
parent | d20c5112ad7f068eff401b402f8390c650598ae2 (diff) | |
download | Media-72003e5c6ba50f7973bd39293b16e397a4d458a3.tar.gz |
Merge "Move car api to MediaActivity" into rvc-dev
-rw-r--r-- | src/com/android/car/media/BrowseViewController.java | 16 | ||||
-rw-r--r-- | src/com/android/car/media/ErrorViewController.java | 12 | ||||
-rw-r--r-- | src/com/android/car/media/MediaActivity.java | 20 | ||||
-rw-r--r-- | src/com/android/car/media/ViewControllerBase.java | 13 |
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); |