diff --git a/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt b/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt index 564edb1a..bc165eef 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt @@ -1,6 +1,8 @@ package com.audiobookshelf.app.player import android.app.* +import android.appwidget.AppWidgetManager +import android.content.ComponentName import android.content.Context import android.content.Intent import android.graphics.Bitmap @@ -21,12 +23,15 @@ import android.support.v4.media.session.MediaControllerCompat import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.PlaybackStateCompat import android.util.Log +import android.view.View +import android.widget.RemoteViews import androidx.annotation.RequiresApi import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import androidx.media.MediaBrowserServiceCompat import androidx.media.utils.MediaConstants import com.audiobookshelf.app.BuildConfig +import com.audiobookshelf.app.MediaPlayerWidget import com.audiobookshelf.app.R import com.audiobookshelf.app.data.* import com.audiobookshelf.app.data.DeviceInfo @@ -184,6 +189,13 @@ class PlayerNotificationService : MediaBrowserServiceCompat() { override fun onTaskRemoved(rootIntent: Intent?) { super.onTaskRemoved(rootIntent) Log.d(tag, "onTaskRemoved") + // Updates widget to hide buttons when app is force closed + val appWidgetManager = AppWidgetManager.getInstance(this) + val remoteViews = RemoteViews(this.packageName, R.layout.media_player_widget) + val thisWidget = ComponentName(this, MediaPlayerWidget::class.java) + remoteViews.setViewVisibility(R.id.widgetButtonContainer, View.GONE) + appWidgetManager.updateAppWidget(thisWidget, remoteViews) + stopSelf() } @@ -334,6 +346,13 @@ class PlayerNotificationService : MediaBrowserServiceCompat() { initializeMPlayer() currentPlayer = mPlayer + + // Updates widget to show buttons when app is opened + val appWidgetManager = AppWidgetManager.getInstance(this) + val remoteViews = RemoteViews(this.packageName, R.layout.media_player_widget) + val thisWidget = ComponentName(this, MediaPlayerWidget::class.java) + remoteViews.setViewVisibility(R.id.widgetButtonContainer, View.VISIBLE) + appWidgetManager.updateAppWidget(thisWidget, remoteViews) } private fun initializeMPlayer() { diff --git a/android/app/src/main/res/drawable-nodpi/example_appwidget_preview.png b/android/app/src/main/res/drawable-nodpi/example_appwidget_preview.png deleted file mode 100644 index 894b069a..00000000 Binary files a/android/app/src/main/res/drawable-nodpi/example_appwidget_preview.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-nodpi/media_player_widget_preview.png b/android/app/src/main/res/drawable-nodpi/media_player_widget_preview.png index f286b61f..27a07efe 100644 Binary files a/android/app/src/main/res/drawable-nodpi/media_player_widget_preview.png and b/android/app/src/main/res/drawable-nodpi/media_player_widget_preview.png differ diff --git a/android/app/src/main/res/layout/media_player_widget.xml b/android/app/src/main/res/layout/media_player_widget.xml index 8603a29b..a71a7d33 100644 --- a/android/app/src/main/res/layout/media_player_widget.xml +++ b/android/app/src/main/res/layout/media_player_widget.xml @@ -3,13 +3,13 @@ android:id="@+id/widgetBackground" android:layout_width="fill_parent" android:layout_height="fill_parent" - android:orientation="vertical" + android:orientation="horizontal" android:theme="@style/AppTheme.AppWidgetContainer" style="@style/Widget.Android.AppWidget.Container"> @@ -42,12 +45,49 @@ + + + + + + + + + - - - - - - - - - diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 862b1660..4234d998 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -37,6 +37,6 @@ diff --git a/android/app/src/main/res/values/themes.xml b/android/app/src/main/res/values/themes.xml index 25c0e184..fc7585c3 100644 --- a/android/app/src/main/res/values/themes.xml +++ b/android/app/src/main/res/values/themes.xml @@ -2,21 +2,16 @@ - -