diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-05-12 18:55:58 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-05-12 18:55:58 +0200 |
commit | 155774557cd170cd88941c3daee0f3949c4e26b8 (patch) | |
tree | e617edb182b29d3556d804ff7932f173b6268615 /src/de/danoeh/antennapod/dialog/FeedItemDialog.java | |
parent | aa700fe4b8fb9489e2312dc5ee25975bd3912f9e (diff) | |
download | AntennaPod-155774557cd170cd88941c3daee0f3949c4e26b8.zip |
Reopen episode dialog on configuration change
Diffstat (limited to 'src/de/danoeh/antennapod/dialog/FeedItemDialog.java')
-rw-r--r-- | src/de/danoeh/antennapod/dialog/FeedItemDialog.java | 30 |
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; + } + } } |