diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:25:15 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:25:15 +0000 |
commit | bc7f5b09be0fd5c22fb25313cec1e94c5bd73eeb (patch) | |
tree | 570566844f54e0de1d84743cbd81322e352986be | |
parent | e7cb020b5dcf64f84bb5b50aeb33cc51530e3a00 (diff) | |
parent | d52c1b46dc734a17afee894007a6ba689e681b10 (diff) | |
download | LocalMediaPlayer-bc7f5b09be0fd5c22fb25313cec1e94c5bd73eeb.tar.gz |
Snap for 8564071 from d52c1b46dc734a17afee894007a6ba689e681b10 to mainline-os-statsd-releaseaml_sta_331910000aml_sta_331811000aml_sta_331711010aml_sta_331610000aml_sta_331511000aml_sta_331410000aml_sta_331311000aml_sta_331010010aml_sta_330910000android13-mainline-os-statsd-release
Change-Id: If32660137f4b728f2d34a43592d508cc2999000a
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | AndroidManifest.xml | 3 | ||||
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/com/android/car/media/localmediaplayer/DataModel.java | 4 | ||||
-rw-r--r-- | src/com/android/car/media/localmediaplayer/LocalMediaBrowserService.java | 2 | ||||
-rw-r--r-- | src/com/android/car/media/localmediaplayer/Player.java | 26 |
6 files changed, 33 insertions, 7 deletions
@@ -15,6 +15,10 @@ // // Proto dependencies +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + java_library { name: "LocalMediaPlayer-proto", srcs: ["proto/**/*.proto"], diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 22ece79..5535e6f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -20,9 +20,10 @@ <uses-sdk android:minSdkVersion="23" - android:targetSdkVersion="23" /> + android:targetSdkVersion="29" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <application android:allowBackup="true" diff --git a/res/values/strings.xml b/res/values/strings.xml index ac6d4a1..987f291 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -30,4 +30,5 @@ <string name="play">Play</string> <string name="pause">Pause</string> <string name="next">Next</string> + <string name="notification_channel_name">Media playback notifications</string> </resources> diff --git a/src/com/android/car/media/localmediaplayer/DataModel.java b/src/com/android/car/media/localmediaplayer/DataModel.java index 3d4ee2f..30bf471 100644 --- a/src/com/android/car/media/localmediaplayer/DataModel.java +++ b/src/com/android/car/media/localmediaplayer/DataModel.java @@ -174,9 +174,9 @@ public class DataModel { Uri albumArtUri = ContentUris.withAppendedId(ART_BASE_URI, cursor.getLong(albumId)); try { - InputStream dummy = mResolver.openInputStream(albumArtUri); + InputStream unused = mResolver.openInputStream(albumArtUri); albumArt = albumArtUri.toString(); - dummy.close(); + unused.close(); } catch (IOException e) { // Ignored because the albumArt is intialized correctly anyway. } diff --git a/src/com/android/car/media/localmediaplayer/LocalMediaBrowserService.java b/src/com/android/car/media/localmediaplayer/LocalMediaBrowserService.java index 26a440f..48a0ee5 100644 --- a/src/com/android/car/media/localmediaplayer/LocalMediaBrowserService.java +++ b/src/com/android/car/media/localmediaplayer/LocalMediaBrowserService.java @@ -128,7 +128,7 @@ public class LocalMediaBrowserService extends MediaBrowserService { filter.addAction(ACTION_PAUSE); filter.addAction(ACTION_NEXT); filter.addAction(ACTION_PREV); - registerReceiver(mNotificationReceiver, filter); + registerReceiver(mNotificationReceiver, filter, Context.RECEIVER_NOT_EXPORTED); } @Override diff --git a/src/com/android/car/media/localmediaplayer/Player.java b/src/com/android/car/media/localmediaplayer/Player.java index e39b394..5c5cab2 100644 --- a/src/com/android/car/media/localmediaplayer/Player.java +++ b/src/com/android/car/media/localmediaplayer/Player.java @@ -16,6 +16,7 @@ package com.android.car.media.localmediaplayer; import android.app.Notification; +import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; @@ -31,6 +32,7 @@ import android.media.session.MediaSession; import android.media.session.MediaSession.QueueItem; import android.media.session.PlaybackState; import android.media.session.PlaybackState.CustomAction; +import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -55,6 +57,7 @@ public class Player extends MediaSession.Callback { private static final String TAG = "LMPlayer"; private static final String SHARED_PREFS_NAME = "com.android.car.media.localmediaplayer.prefs"; private static final String CURRENT_PLAYLIST_KEY = "__CURRENT_PLAYLIST_KEY__"; + private static final String CHANNEL_ID = "com.android.car.media.localmediaplayer.player"; private static final int NOTIFICATION_ID = 42; private static final int REQUEST_CODE = 94043; @@ -143,11 +146,14 @@ public class Player extends MediaSession.Callback { .addAction(prevAction) .addAction(playAction) .addAction(nextAction); + + createNotificationChannel(); } private Notification.Action makeNotificationAction(String action, int iconId, int stringId) { PendingIntent intent = PendingIntent.getBroadcast(mContext, REQUEST_CODE, - new Intent(action), PendingIntent.FLAG_UPDATE_CURRENT); + new Intent(action), + PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); Notification.Action notificationAction = new Notification.Action.Builder(iconId, mContext.getString(stringId), intent) .build(); @@ -235,7 +241,8 @@ public class Player extends MediaSession.Callback { Intent prefsIntent = new Intent(); prefsIntent.setClass(mContext, PermissionsActivity.class); prefsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, prefsIntent, 0); + PendingIntent pendingIntent = + PendingIntent.getActivity(mContext, 0, prefsIntent, PendingIntent.FLAG_IMMUTABLE); Bundle extras = new Bundle(); extras.putString(Utils.ERROR_RESOLUTION_ACTION_LABEL, @@ -378,7 +385,9 @@ public class Player extends MediaSession.Callback { if (mQueue == null) { return; } - + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + builder.setChannelId(CHANNEL_ID); + } MediaDescription current = mQueue.get(mCurrentQueueIdx).getDescription(); Notification notification = builder .setStyle(new Notification.MediaStyle().setMediaSession(mSession.getSessionToken())) @@ -637,4 +646,15 @@ public class Player extends MediaSession.Callback { safeAdvance(); } }; + + private void createNotificationChannel() { + // Create the NotificationChannel, but only on API 26+ because + // the NotificationChannel class is new and not in the support library + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + CharSequence name = mContext.getString(R.string.notification_channel_name); + int importance = NotificationManager.IMPORTANCE_DEFAULT; + NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); + mNotificationManager.createNotificationChannel(channel); + } + } } |