mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 09:33:33 +00:00
Merge branch 'feature-widget-playing' into development
This commit is contained in:
commit
d1e247f9e2
5 changed files with 486 additions and 469 deletions
|
|
@ -27,7 +27,8 @@ public final class WidgetActions {
|
|||
Log.d("TempoWidget", "controller connected, isPlaying=" + c.isPlaying());
|
||||
switch (action) {
|
||||
case WidgetProvider.ACT_PLAY_PAUSE:
|
||||
if (c.isPlaying()) c.pause(); else c.play();
|
||||
if (c.isPlaying()) c.pause();
|
||||
else c.play();
|
||||
break;
|
||||
case WidgetProvider.ACT_NEXT:
|
||||
c.seekToNext();
|
||||
|
|
|
|||
|
|
@ -8,9 +8,12 @@ import android.content.Intent;
|
|||
import android.widget.RemoteViews;
|
||||
|
||||
import com.cappielloantonio.tempo.R;
|
||||
|
||||
import android.app.TaskStackBuilder;
|
||||
import android.app.PendingIntent;
|
||||
|
||||
import com.cappielloantonio.tempo.ui.activity.MainActivity;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
public class WidgetProvider extends AppWidgetProvider {
|
||||
|
|
@ -21,7 +24,8 @@ public class WidgetProvider extends AppWidgetProvider {
|
|||
public static final String ACT_TOGGLE_SHUFFLE = "tempo.widget.SHUFFLE";
|
||||
public static final String ACT_CYCLE_REPEAT = "tempo.widget.REPEAT";
|
||||
|
||||
@Override public void onUpdate(Context ctx, AppWidgetManager mgr, int[] ids) {
|
||||
@Override
|
||||
public void onUpdate(Context ctx, AppWidgetManager mgr, int[] ids) {
|
||||
for (int id : ids) {
|
||||
RemoteViews rv = WidgetUpdateManager.chooseBuild(ctx, id);
|
||||
attachIntents(ctx, rv, id);
|
||||
|
|
@ -29,7 +33,8 @@ public class WidgetProvider extends AppWidgetProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override public void onReceive(Context ctx, Intent intent) {
|
||||
@Override
|
||||
public void onReceive(Context ctx, Intent intent) {
|
||||
super.onReceive(ctx, intent);
|
||||
String a = intent.getAction();
|
||||
Log.d(TAG, "onReceive action=" + a);
|
||||
|
|
@ -41,7 +46,8 @@ public class WidgetProvider extends AppWidgetProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, android.os.Bundle newOptions) {
|
||||
@Override
|
||||
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, android.os.Bundle newOptions) {
|
||||
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
|
||||
RemoteViews rv = WidgetUpdateManager.chooseBuild(context, appWidgetId);
|
||||
attachIntents(context, rv, appWidgetId);
|
||||
|
|
|
|||
|
|
@ -4,5 +4,6 @@ package com.cappielloantonio.tempo.widget;
|
|||
* AppWidget provider entry for the 4x1 widget card. Inherits all behavior
|
||||
* from {@link WidgetProvider}.
|
||||
*/
|
||||
public class WidgetProvider4x1 extends WidgetProvider {}
|
||||
public class WidgetProvider4x1 extends WidgetProvider {
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,17 +6,21 @@ import android.content.Context;
|
|||
import android.graphics.Bitmap;
|
||||
import android.text.TextUtils;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import com.bumptech.glide.request.target.CustomTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.cappielloantonio.tempo.glide.CustomGlideRequest;
|
||||
import com.cappielloantonio.tempo.R;
|
||||
|
||||
import androidx.media3.common.C;
|
||||
import androidx.media3.session.MediaController;
|
||||
import androidx.media3.session.SessionToken;
|
||||
|
||||
import com.cappielloantonio.tempo.service.MediaService;
|
||||
import com.cappielloantonio.tempo.util.MusicUtil;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public final class WidgetUpdateManager {
|
||||
|
|
@ -82,7 +86,8 @@ public final class WidgetUpdateManager {
|
|||
coverArtId,
|
||||
com.cappielloantonio.tempo.util.Preferences.getImageSize(),
|
||||
new CustomTarget<Bitmap>() {
|
||||
@Override public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
@Override
|
||||
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
AppWidgetManager mgr = AppWidgetManager.getInstance(appCtx);
|
||||
int[] ids = mgr.getAppWidgetIds(new ComponentName(appCtx, WidgetProvider4x1.class));
|
||||
for (int id : ids) {
|
||||
|
|
@ -93,7 +98,8 @@ public final class WidgetUpdateManager {
|
|||
}
|
||||
}
|
||||
|
||||
@Override public void onLoadCleared(Drawable placeholder) {
|
||||
@Override
|
||||
public void onLoadCleared(Drawable placeholder) {
|
||||
AppWidgetManager mgr = AppWidgetManager.getInstance(appCtx);
|
||||
int[] ids = mgr.getAppWidgetIds(new ComponentName(appCtx, WidgetProvider4x1.class));
|
||||
for (int id : ids) {
|
||||
|
|
@ -129,8 +135,10 @@ public final class WidgetUpdateManager {
|
|||
String title = null, artist = null, album = null, coverId = null;
|
||||
if (mi != null && mi.mediaMetadata != null) {
|
||||
if (mi.mediaMetadata.title != null) title = mi.mediaMetadata.title.toString();
|
||||
if (mi.mediaMetadata.artist != null) artist = mi.mediaMetadata.artist.toString();
|
||||
if (mi.mediaMetadata.albumTitle != null) album = mi.mediaMetadata.albumTitle.toString();
|
||||
if (mi.mediaMetadata.artist != null)
|
||||
artist = mi.mediaMetadata.artist.toString();
|
||||
if (mi.mediaMetadata.albumTitle != null)
|
||||
album = mi.mediaMetadata.albumTitle.toString();
|
||||
if (mi.mediaMetadata.extras != null) {
|
||||
if (title == null) title = mi.mediaMetadata.extras.getString("title");
|
||||
if (artist == null) artist = mi.mediaMetadata.extras.getString("artist");
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ public final class WidgetViewsFactory {
|
|||
static final int PROGRESS_MAX = 1000;
|
||||
private static final float ALBUM_ART_CORNER_RADIUS_DP = 6f;
|
||||
|
||||
private WidgetViewsFactory() {}
|
||||
private WidgetViewsFactory() {
|
||||
}
|
||||
|
||||
public static RemoteViews buildCompact(Context ctx) {
|
||||
return build(ctx, R.layout.widget_layout_compact, false, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue