diff options
author | Brad Pitcher <bradpitcher@gmail.com> | 2019-04-12 17:56:53 -0700 |
---|---|---|
committer | Brad Pitcher <bradpitcher@gmail.com> | 2019-04-12 17:56:53 -0700 |
commit | 25915453ba20d0cbb73618e51ca1bc25cc27195e (patch) | |
tree | 92d20a23141963eb254f85142e16a69a36d74414 /core | |
parent | 64ddf6ec96a3a0e08367bae21c80c99929f8ee1f (diff) | |
download | AntennaPod-25915453ba20d0cbb73618e51ca1bc25cc27195e.zip |
hide widget text when displaying < 3 columns
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java b/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java index 4a192d2a0..05b7fb062 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.content.ServiceConnection; import android.graphics.Bitmap; import android.os.Build; +import android.os.Bundle; import android.os.IBinder; import android.support.annotation.NonNull; import android.support.v4.app.SafeJobIntentService; @@ -74,10 +75,25 @@ public class PlayerWidgetJobService extends SafeJobIntentService { } } + /** + * Returns number of cells needed for given size of the widget. + * + * @param size Widget size in dp. + * @return Size in number of cells. + */ + private static int getCellsForSize(int size) { + int n = 2; + while (70 * n - 30 < size) { + ++n; + } + return n - 1; + } + private void updateViews() { ComponentName playerWidget = new ComponentName(this, PlayerWidget.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); + int[] widgetIds = manager.getAppWidgetIds(playerWidget); RemoteViews views = new RemoteViews(getPackageName(), R.layout.player_widget); PendingIntent startMediaplayer = PendingIntent.getActivity(this, 0, PlaybackService.getPlayerActivityIntent(this), 0); @@ -155,7 +171,21 @@ public class PlayerWidgetJobService extends SafeJobIntentService { views.setImageViewResource(R.id.butPlay, R.drawable.ic_play_arrow_white_24dp); } - manager.updateAppWidget(playerWidget, views); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { + for (int id : widgetIds) { + Bundle options = manager.getAppWidgetOptions(id); + int minWidth = options.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH); + int columns = getCellsForSize(minWidth); + if(columns < 3) { + views.setViewVisibility(R.id.layout_center, android.view.View.INVISIBLE); + } else { + views.setViewVisibility(R.id.layout_center, android.view.View.VISIBLE); + } + manager.updateAppWidget(id, views); + } + } else { + manager.updateAppWidget(playerWidget, views); + } } /** |