added shortcuts and widgets
This commit is contained in:
parent
d47aeccd87
commit
03aeb88964
54 changed files with 2646 additions and 935 deletions
|
@ -2,6 +2,7 @@ package code.name.monkey.retromusic.service;
|
|||
|
||||
import android.app.PendingIntent;
|
||||
import android.app.Service;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
|
@ -47,6 +48,10 @@ import java.util.Random;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.appwidgets.AppWidgetBig;
|
||||
import code.name.monkey.retromusic.appwidgets.AppWidgetCard;
|
||||
import code.name.monkey.retromusic.appwidgets.AppWidgetClassic;
|
||||
import code.name.monkey.retromusic.appwidgets.AppWidgetSmall;
|
||||
import code.name.monkey.retromusic.glide.BlurTransformation;
|
||||
import code.name.monkey.retromusic.glide.SongGlideRequest;
|
||||
import code.name.monkey.retromusic.helper.ShuffleHelper;
|
||||
|
@ -92,12 +97,10 @@ import static code.name.monkey.retromusic.Constants.SHUFFLE_MODE_CHANGED;
|
|||
*/
|
||||
public class MusicService extends Service implements SharedPreferences.OnSharedPreferenceChangeListener, Playback.PlaybackCallbacks {
|
||||
public static final String TAG = MusicService.class.getSimpleName();
|
||||
|
||||
public static final String SAVED_POSITION = "POSITION";
|
||||
public static final String SAVED_POSITION_IN_TRACK = "POSITION_IN_TRACK";
|
||||
public static final String SAVED_SHUFFLE_MODE = "SHUFFLE_MODE";
|
||||
public static final String SAVED_REPEAT_MODE = "REPEAT_MODE";
|
||||
|
||||
public static final int RELEASE_WAKELOCK = 0;
|
||||
public static final int TRACK_ENDED = 1;
|
||||
public static final int TRACK_WENT_TO_NEXT = 2;
|
||||
|
@ -122,11 +125,35 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
|||
| PlaybackStateCompat.ACTION_STOP
|
||||
| PlaybackStateCompat.ACTION_SEEK_TO;
|
||||
private final IBinder musicBind = new MusicBinder();
|
||||
private AppWidgetBig appWidgetBig = AppWidgetBig.Companion.getInstance();
|
||||
private AppWidgetClassic appWidgetClassic = AppWidgetClassic.Companion.getInstance();
|
||||
private AppWidgetSmall appWidgetSmall = AppWidgetSmall.Companion.getInstance();
|
||||
private AppWidgetCard appWidgetCard = AppWidgetCard.Companion.getInstance();
|
||||
private final BroadcastReceiver widgetIntentReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(final Context context, final Intent intent) {
|
||||
final String command = intent.getStringExtra(EXTRA_APP_WIDGET_NAME);
|
||||
|
||||
final int[] ids = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
|
||||
switch (command) {
|
||||
case AppWidgetClassic.NAME: {
|
||||
appWidgetClassic.performUpdate(MusicService.this, ids);
|
||||
break;
|
||||
}
|
||||
case AppWidgetSmall.NAME: {
|
||||
appWidgetSmall.performUpdate(MusicService.this, ids);
|
||||
break;
|
||||
}
|
||||
case AppWidgetBig.NAME: {
|
||||
appWidgetBig.performUpdate(MusicService.this, ids);
|
||||
break;
|
||||
}
|
||||
case AppWidgetCard.NAME: {
|
||||
appWidgetCard.performUpdate(MusicService.this, ids);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
private Playback playback;
|
||||
|
@ -1083,7 +1110,10 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
|||
|
||||
private void sendChangeInternal(final String what) {
|
||||
sendBroadcast(new Intent(what));
|
||||
|
||||
appWidgetBig.notifyChange(this, what);
|
||||
appWidgetClassic.notifyChange(this, what);
|
||||
appWidgetSmall.notifyChange(this, what);
|
||||
appWidgetCard.notifyChange(this, what);
|
||||
}
|
||||
|
||||
private void handleChangeInternal(@NonNull final String what) {
|
||||
|
|
|
@ -45,10 +45,8 @@ class PlayingNotificationImpl : PlayingNotification() {
|
|||
|
||||
val isPlaying = service.isPlaying
|
||||
|
||||
val notificationLayout = RemoteViews(service.packageName,
|
||||
R.layout.notification)
|
||||
val notificationLayoutBig = RemoteViews(service.packageName,
|
||||
R.layout.notification_big)
|
||||
val notificationLayout = RemoteViews(service.packageName, R.layout.notification)
|
||||
val notificationLayoutBig = RemoteViews(service.packageName, R.layout.notification_big)
|
||||
|
||||
if (TextUtils.isEmpty(song.title) && TextUtils.isEmpty(song.artistName)) {
|
||||
notificationLayout.setViewVisibility(R.id.media_titles, View.INVISIBLE)
|
||||
|
@ -58,8 +56,7 @@ class PlayingNotificationImpl : PlayingNotification() {
|
|||
notificationLayout.setTextViewText(R.id.text, song.artistName)
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(song.title) && TextUtils.isEmpty(song.artistName) && TextUtils
|
||||
.isEmpty(song.albumName)) {
|
||||
if (TextUtils.isEmpty(song.title) && TextUtils.isEmpty(song.artistName) && TextUtils.isEmpty(song.albumName)) {
|
||||
notificationLayoutBig.setViewVisibility(R.id.media_titles, View.INVISIBLE)
|
||||
} else {
|
||||
notificationLayoutBig.setViewVisibility(R.id.media_titles, View.VISIBLE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue