Merge pull request #183 from jasper-apps:bugfix/make-download-notification-appear-immediately

PiperOrigin-RevId: 482165983
This commit is contained in:
Rohit Singh 2022-10-24 10:38:13 +00:00
commit 1565a2daba
2 changed files with 21 additions and 0 deletions

View File

@ -30,6 +30,8 @@
* Fix potential infinite loop in `ProgressiveDownloader` caused by
simultaneous download and playback with the same `PriorityTaskManager`
([#10570](https://github.com/google/ExoPlayer/pull/10570)).
* Make download notification appear immediately
([#183](https://github.com/androidx/media/pull/183))
* Audio:
* Adds `AudioOffloadListener.onExperimentalOffloadedPlayback` for the
AudioTrack offload state.

View File

@ -15,15 +15,21 @@
*/
package androidx.media3.exoplayer.offline;
import static androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import androidx.annotation.DoNotInline;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes;
import androidx.core.app.NotificationCompat;
import androidx.media3.common.C;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.R;
import androidx.media3.exoplayer.scheduler.Requirements;
import java.util.List;
@ -237,6 +243,19 @@ public final class DownloadNotificationHelper {
notificationBuilder.setProgress(maxProgress, currentProgress, indeterminateProgress);
notificationBuilder.setOngoing(ongoing);
notificationBuilder.setShowWhen(showWhen);
if (Util.SDK_INT >= 31) {
Api31.setForegroundServiceBehavior(notificationBuilder);
}
return notificationBuilder.build();
}
@RequiresApi(31)
private static final class Api31 {
@SuppressLint("WrongConstant") // TODO(b/254277605): remove lint suppression
@DoNotInline
public static void setForegroundServiceBehavior(
NotificationCompat.Builder notificationBuilder) {
notificationBuilder.setForegroundServiceBehavior(FOREGROUND_SERVICE_IMMEDIATE);
}
}
}