summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/dialog
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-05-12 18:55:58 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-05-12 18:55:58 +0200
commit155774557cd170cd88941c3daee0f3949c4e26b8 (patch)
treee617edb182b29d3556d804ff7932f173b6268615 /src/de/danoeh/antennapod/dialog
parentaa700fe4b8fb9489e2312dc5ee25975bd3912f9e (diff)
downloadAntennaPod-155774557cd170cd88941c3daee0f3949c4e26b8.zip
Reopen episode dialog on configuration change
Diffstat (limited to 'src/de/danoeh/antennapod/dialog')
-rw-r--r--src/de/danoeh/antennapod/dialog/FeedItemDialog.java30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java
index 25458399b..fdd0cd09b 100644
--- a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java
+++ b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java
@@ -54,7 +54,16 @@ public class FeedItemDialog extends Dialog {
private ImageButton butMore;
private PopupMenu popupMenu;
- public static FeedItemDialog newInstace(Context context, FeedItem item, QueueAccess queue) {
+ public static FeedItemDialog newInstance(Context context, FeedItemDialogSavedInstance savedInstance) {
+ if (savedInstance == null) throw new IllegalArgumentException("savedInstance = null");
+ FeedItemDialog dialog = newInstance(context, savedInstance.item, savedInstance.queueAccess);
+ if (savedInstance.isShowing) {
+ dialog.show();
+ }
+ return dialog;
+ }
+
+ public static FeedItemDialog newInstance(Context context, FeedItem item, QueueAccess queue) {
if (useDarkThemeWorkAround()) {
return new FeedItemDialog(context, R.style.Theme_AntennaPod_Dark, item, queue);
} else {
@@ -362,4 +371,23 @@ public class FeedItemDialog extends Dialog {
public QueueAccess getQueue() {
return queue;
}
+
+ public FeedItemDialogSavedInstance save() {
+ return new FeedItemDialogSavedInstance(item, queue, isShowing());
+ }
+
+ /**
+ * Used to save the FeedItemDialog's state across configuration changes
+ * */
+ public static class FeedItemDialogSavedInstance {
+ final FeedItem item;
+ final QueueAccess queueAccess;
+ final boolean isShowing;
+
+ private FeedItemDialogSavedInstance(FeedItem item, QueueAccess queueAccess, boolean isShowing) {
+ this.item = item;
+ this.queueAccess = queueAccess;
+ this.isShowing = isShowing;
+ }
+ }
}