aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-05-18 23:46:15 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-05-18 23:46:15 +0900
commit99fd825ce94883ee17fcfac4489f8a07dbc9a210 (patch)
treea37e87824020e3f595e85a48fde75e4a248691fe /app/src/main/java/net/lacolaco
parente1f1e77aa3772cc30a415177e296134a363800de (diff)
downloadSmileEssence-99fd825ce94883ee17fcfac4489f8a07dbc9a210.tar.gz
Improve dialog handling
* All dialogs stack * Dismiss MenuDialogFragment(s) when menu item is selected
Diffstat (limited to 'app/src/main/java/net/lacolaco')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/IntentRouter.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java4
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java55
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java1
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java1
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/PostState.java4
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java12
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/DialogHelper.java97
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java9
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java15
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java19
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java6
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java4
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java6
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java23
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java19
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java22
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java13
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java6
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java6
39 files changed, 165 insertions, 204 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java b/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java
index db0cb4c4..13e93298 100644
--- a/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java
@@ -37,7 +37,7 @@ import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.util.UIHandler;
import net.lacolaco.smileessence.view.adapter.PostState;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.StatusDetailDialogFragment;
import twitter4j.Status;
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java
index f967ce04..98e7b11c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java
@@ -41,7 +41,7 @@ import net.lacolaco.smileessence.entity.ExtractionWord;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.util.Themes;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.EditTextDialogFragment;
import java.util.List;
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java
index d87be8fb..b146ec77 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java
@@ -41,7 +41,7 @@ import net.lacolaco.smileessence.entity.Template;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.util.Themes;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.EditTextDialogFragment;
import java.util.List;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java
index e7f99ad9..558bb415 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java
@@ -26,7 +26,7 @@ package net.lacolaco.smileessence.command;
import android.app.Activity;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.HashtagDialogFragment;
import twitter4j.HashtagEntity;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java
index d304e0c9..c14506ca 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java
@@ -29,7 +29,7 @@ import android.app.Activity;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.entity.Template;
import net.lacolaco.smileessence.view.dialog.ChooseTemplateDialogFragment;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
public class CommandOpenTemplateList extends Command {
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java
index 290b01cf..dda629cd 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java
@@ -32,7 +32,7 @@ import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.ShowUserTask;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment;
import twitter4j.User;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java
index 2c4f8534..e8de560b 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java
@@ -27,7 +27,7 @@ package net.lacolaco.smileessence.command.message;
import android.app.Activity;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SearchOnGoogleDialogFragment;
import twitter4j.DirectMessage;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java
index 505f26fa..ac08b98c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java
@@ -27,7 +27,7 @@ package net.lacolaco.smileessence.command.status;
import android.app.Activity;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.QuoteDialogFragment;
import twitter4j.Status;
@@ -58,7 +58,7 @@ public class StatusCommandOpenQuoteDialog extends StatusCommand {
public boolean execute() {
QuoteDialogFragment dialogFragment = new QuoteDialogFragment();
dialogFragment.setStatusID(getOriginalStatus().getId());
- DialogHelper.showDialog(getActivity(), dialogFragment, "quoteDialog");
+ DialogHelper.showDialog(getActivity(), dialogFragment);
return false;
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java
index fbc4ffe9..79e48fed 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java
@@ -28,7 +28,7 @@ import android.app.Activity;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.entity.Account;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.TalkChainDialogFragment;
import twitter4j.Status;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java
index 7eec5526..755e9628 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java
@@ -27,7 +27,7 @@ package net.lacolaco.smileessence.command.status;
import android.app.Activity;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.ReviewDialogFragment;
import twitter4j.Status;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java
index 5b556475..0ecf8ca3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java
@@ -27,7 +27,7 @@ package net.lacolaco.smileessence.command.status;
import android.app.Activity;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SearchOnGoogleDialogFragment;
import twitter4j.Status;
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java
index 43982030..ee966031 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java
@@ -28,7 +28,7 @@ import android.app.Activity;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.entity.Account;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SendMessageDialogFragment;
import twitter4j.User;
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java b/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java
new file mode 100644
index 00000000..f920ecaa
--- /dev/null
+++ b/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java
@@ -0,0 +1,55 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2012-2014 lacolaco.net
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package net.lacolaco.smileessence.view;
+
+import android.app.Activity;
+
+import net.lacolaco.smileessence.view.dialog.StackableDialogFragment;
+
+import java.util.LinkedHashSet;
+import java.util.UUID;
+
+public class DialogHelper {
+ private static LinkedHashSet<String> dialogStack = new LinkedHashSet<>();
+
+ public static void closeAllDialogs(Activity activity) {
+ for (String tag : new LinkedHashSet<String>(dialogStack)) {
+ StackableDialogFragment dialog = (StackableDialogFragment) activity.getFragmentManager().findFragmentByTag(tag);
+ if (dialog != null) {
+ dialog.dismiss();
+ }
+ }
+ }
+
+ public static int showDialog(Activity activity, StackableDialogFragment dialogFragment) {
+ String tag = "stacking_dialog_" + dialogFragment.getClass().getSimpleName() + UUID.randomUUID().toString();
+ dialogStack.add(tag);
+ return dialogFragment.show(activity.getFragmentManager().beginTransaction(), tag);
+ }
+
+ public static void unregisterDialog(String tag) {
+ dialogStack.remove(tag);
+ }
+}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
index 9c8a255b..e7a5d45c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
@@ -52,7 +52,6 @@ import net.lacolaco.smileessence.util.BitmapThumbnailTask;
import net.lacolaco.smileessence.util.IntentUtils;
import net.lacolaco.smileessence.util.UIHandler;
import net.lacolaco.smileessence.view.adapter.PostState;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
import net.lacolaco.smileessence.view.dialog.PostMenuDialogFragment;
import net.lacolaco.smileessence.view.dialog.SelectImageDialogFragment;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
@@ -335,7 +334,7 @@ public class PostFragment extends Fragment implements TextWatcher, View.OnFocusC
setStateFromView();
hideIME();
PostMenuDialogFragment menuDialogFragment = new PostMenuDialogFragment();
- DialogHelper.showDialog(getActivity(), menuDialogFragment, PostMenuDialogFragment.TAG);
+ DialogHelper.showDialog(getActivity(), menuDialogFragment);
}
private void removeImage() {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
index 4da3fd46..de5b4ac2 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
@@ -52,7 +52,6 @@ import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.SearchTask;
import net.lacolaco.smileessence.util.UIHandler;
import net.lacolaco.smileessence.view.adapter.SearchListAdapter;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SelectSearchQueryDialogFragment;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
@@ -319,7 +318,7 @@ public class SearchFragment extends CustomListFragment implements View.OnClickLi
editText.setText(query.query);
hideIME();
}
- }, SEARCH_QUERY_DIALOG);
+ });
}
private void saveQuery() {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
index 006a43ba..f45e11e8 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
@@ -39,7 +39,6 @@ import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.view.dialog.ConfirmDialogFragment;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SimpleDialogFragment;
import static android.content.SharedPreferences.OnSharedPreferenceChangeListener;
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
index 6f8f1420..05b60649 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
@@ -46,7 +46,6 @@ import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.UserListStatusesTask;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.util.UIHandler;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
import net.lacolaco.smileessence.view.dialog.SelectUserListDialogFragment;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import net.lacolaco.smileessence.viewmodel.UserListListAdapter;
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PostState.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PostState.java
index c3810408..72399541 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PostState.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PostState.java
@@ -25,7 +25,7 @@
package net.lacolaco.smileessence.view.adapter;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import twitter4j.StatusUpdate;
@@ -189,7 +189,7 @@ public class PostState {
}
public void commitWithOpen(MainActivity activity) {
- DialogHelper.closeAll(activity);
+ DialogHelper.closeAllDialogs(activity);
PostState.getState().copy(state).postStateChange();
activity.openPostPage();
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
index ec9c512a..f1f1f126 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
@@ -27,19 +27,18 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
-public abstract class ConfirmDialogFragment extends DialogFragment {
+public abstract class ConfirmDialogFragment extends StackableDialogFragment {
// ------------------------------ FIELDS ------------------------------
public static final String ARG_TEXT = "text";
- public static final String TAG = "confirmDialog";
private final DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -47,7 +46,6 @@ public abstract class ConfirmDialogFragment extends DialogFragment {
dialog.dismiss();
}
};
- private int layoutResourceID;
private String text;
// -------------------------- STATIC METHODS --------------------------
@@ -72,14 +70,14 @@ public abstract class ConfirmDialogFragment extends DialogFragment {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
if (onOK != null) {
- this.dismiss();
+ dismiss();
onOK.run();
}
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
if (onCancel != null) {
- this.dismiss();
+ dismiss();
onCancel.run();
}
break;
@@ -88,7 +86,7 @@ public abstract class ConfirmDialogFragment extends DialogFragment {
}
};
fragment.setText(text);
- DialogHelper.showDialog(activity, fragment, TAG);
+ DialogHelper.showDialog(activity, fragment);
}
// --------------------- GETTER / SETTER METHODS ---------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/DialogHelper.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/DialogHelper.java
deleted file mode 100644
index 20e229e2..00000000
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/DialogHelper.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2012-2014 lacolaco.net
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package net.lacolaco.smileessence.view.dialog;
-
-import android.app.Activity;
-import android.app.DialogFragment;
-import android.app.FragmentTransaction;
-
-import java.util.Stack;
-
-public class DialogHelper {
-
- // ------------------------------ FIELDS ------------------------------
-
- private static final String TAG_DIALOG = "dialog";
-
- private static Stack<String> dialogStack = new Stack<>();
- private final Activity activity;
- private final DialogFragment dialogFragment;
-
- // -------------------------- STATIC METHODS --------------------------
-
- public DialogHelper(Activity activity, DialogFragment dialogFragment) {
- this.activity = activity;
- this.dialogFragment = dialogFragment;
- }
-
- public static void closeDialog(Activity activity) {
- close(activity, TAG_DIALOG);
- }
-
- /**
- * Close all stacked dialog
- */
- public static void closeAll(Activity activity) {
- while (dialogStack.size() > 0) {
- String tag = dialogStack.pop();
- close(activity, tag);
- }
- }
-
- public static void showDialog(Activity activity, DialogFragment dialogFragment) {
- showDialog(activity, dialogFragment, TAG_DIALOG);
- }
-
- /**
- * Please expressly closing
- */
- public static void showDialog(Activity activity, DialogFragment dialogFragment, String tag) {
- close(activity, tag);
- dialogStack.push(tag);
- dialogFragment.show(activity.getFragmentManager().beginTransaction(), tag);
- }
-
- // --------------------------- CONSTRUCTORS ---------------------------
-
- public static void close(Activity activity, String tag) {
- if (activity != null) {
- FragmentTransaction transaction = activity.getFragmentManager().beginTransaction();
- DialogFragment oldDialog = (DialogFragment) activity.getFragmentManager().findFragmentByTag(tag);
- if (oldDialog != null) {
- transaction.remove(oldDialog);
- // oldDialog.dismiss();
- }
- // transaction.addToBackStack(null);
- transaction.commit();
- }
- }
-
- // -------------------------- OTHER METHODS --------------------------
-
- public void show() {
- showDialog(activity, dialogFragment);
- }
-}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java
index 23211a8d..70b6e7d7 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
@@ -34,7 +33,7 @@ import android.widget.EditText;
import net.lacolaco.smileessence.R;
-public abstract class EditTextDialogFragment extends DialogFragment {
+public abstract class EditTextDialogFragment extends StackableDialogFragment {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java
index 63d06bb1..049ed55a 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java
@@ -24,7 +24,6 @@
package net.lacolaco.smileessence.view.dialog;
-import android.app.DialogFragment;
import android.view.View;
import android.widget.AdapterView;
@@ -32,7 +31,7 @@ import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.IConfirmable;
-public abstract class MenuDialogFragment extends DialogFragment {
+public abstract class MenuDialogFragment extends StackableDialogFragment{
// ------------------------------ FIELDS ------------------------------
@@ -44,10 +43,8 @@ public abstract class MenuDialogFragment extends DialogFragment {
};
protected void executeCommand(Command command) {
- if (command.execute()) {
- dismiss();
- DialogHelper.closeAll(getActivity());
- }
+ dismiss();
+ command.execute();
}
protected void onItemClick(AdapterView<?> adapterView, int i) {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
index eb846196..76b6e99d 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
@@ -27,7 +27,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
@@ -47,19 +46,20 @@ import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.DeleteMessageTask;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.adapter.MessageListAdapter;
import net.lacolaco.smileessence.view.listener.ListItemClickListener;
import net.lacolaco.smileessence.viewmodel.MessageViewModel;
-import twitter4j.DirectMessage;
-import twitter4j.MediaEntity;
-import twitter4j.URLEntity;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-public class MessageDetailDialogFragment extends DialogFragment implements View.OnClickListener {
+import twitter4j.DirectMessage;
+import twitter4j.MediaEntity;
+import twitter4j.URLEntity;
+
+public class MessageDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
@@ -239,7 +239,6 @@ public class MessageDetailDialogFragment extends DialogFragment implements View.
@Override
public void run() {
command.execute();
- dismiss();
}
}));
commandsLayout.addView(commandView);
@@ -259,6 +258,6 @@ public class MessageDetailDialogFragment extends DialogFragment implements View.
private void openMenu(MainActivity activity) {
MessageMenuDialogFragment fragment = new MessageMenuDialogFragment();
fragment.setMessageID(getMessageID());
- DialogHelper.showDialog(activity, fragment, "messageMenuDialog");
+ DialogHelper.showDialog(activity, fragment);
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
index 51282b35..9b513d01 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
@@ -33,20 +33,23 @@ import android.widget.ListView;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.command.*;
+import net.lacolaco.smileessence.command.Command;
+import net.lacolaco.smileessence.command.CommandOpenHashtagDialog;
+import net.lacolaco.smileessence.command.CommandOpenURL;
+import net.lacolaco.smileessence.command.CommandOpenUserDetail;
+import net.lacolaco.smileessence.command.CommandSaveAsTemplate;
import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import net.lacolaco.smileessence.viewmodel.MessageViewModel;
+
+import java.util.ArrayList;
+import java.util.List;
import twitter4j.DirectMessage;
import twitter4j.HashtagEntity;
import twitter4j.MediaEntity;
import twitter4j.URLEntity;
-import java.util.ArrayList;
-import java.util.List;
-
public class MessageMenuDialogFragment extends MenuDialogFragment {
// ------------------------------ FIELDS ------------------------------
@@ -69,10 +72,8 @@ public class MessageMenuDialogFragment extends MenuDialogFragment {
@Override
protected void executeCommand(Command command) {
- if (command.execute()) {
- dismiss();
- DialogHelper.close(getActivity(), MessageViewModel.DETAIL_DIALOG);
- }
+ dismiss();
+ command.execute();
}
@Override
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java
index aca73f33..527a5645 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java
@@ -79,10 +79,8 @@ public class PostMenuDialogFragment extends MenuDialogFragment {
@Override
protected void executeCommand(Command command) {
- if (command.execute()) {
- dismiss();
- DialogHelper.close(getActivity(), TAG);
- }
+ dismiss();
+ command.execute();
}
// -------------------------- OTHER METHODS --------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
index ba8240b6..de9cacac 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
@@ -40,11 +40,11 @@ import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import twitter4j.Status;
-
import java.util.ArrayList;
import java.util.List;
+import twitter4j.Status;
+
public class QuoteDialogFragment extends MenuDialogFragment {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
index 8b4e8cee..36cb1f6e 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
@@ -42,7 +41,7 @@ import net.lacolaco.smileessence.view.adapter.PostState;
import twitter4j.Status;
-public class ReviewDialogFragment extends DialogFragment implements View.OnClickListener {
+public class ReviewDialogFragment extends StackableDialogFragment implements View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java
index ca8655be..795f4851 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
@@ -40,8 +39,9 @@ import android.widget.Button;
import android.widget.EditText;
import net.lacolaco.smileessence.R;
+import net.lacolaco.smileessence.view.DialogHelper;
-public class SearchOnGoogleDialogFragment extends DialogFragment implements TextWatcher, View.OnClickListener {
+public class SearchOnGoogleDialogFragment extends StackableDialogFragment implements TextWatcher, View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
@@ -127,6 +127,6 @@ public class SearchOnGoogleDialogFragment extends DialogFragment implements Text
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, editText.getText().toString());
getActivity().startActivity(intent);
- DialogHelper.closeAll(getActivity());
+ DialogHelper.closeAllDialogs(getActivity());
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java
index def91eb1..7e350648 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
@@ -50,7 +49,7 @@ import net.lacolaco.smileessence.view.adapter.PostState;
import twitter4j.Twitter;
-public class SendMessageDialogFragment extends DialogFragment implements TextWatcher, View.OnClickListener {
+public class SendMessageDialogFragment extends StackableDialogFragment implements TextWatcher, View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java
index 3c7d4d10..304bb001 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -34,7 +33,7 @@ import android.view.View;
import net.lacolaco.smileessence.R;
-public class SimpleDialogFragment extends DialogFragment {
+public class SimpleDialogFragment extends StackableDialogFragment {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java
new file mode 100644
index 00000000..925017b7
--- /dev/null
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java
@@ -0,0 +1,23 @@
+package net.lacolaco.smileessence.view.dialog;
+
+import android.app.DialogFragment;
+
+import net.lacolaco.smileessence.view.DialogHelper;
+
+public class StackableDialogFragment extends DialogFragment {
+ public int show() {
+ return DialogHelper.showDialog(this.getActivity(), this);
+ }
+
+ @Override
+ public void dismiss() {
+ super.dismiss();
+ DialogHelper.unregisterDialog(getTag());
+ }
+
+ @Override
+ public void dismissAllowingStateLoss() {
+ super.dismissAllowingStateLoss();
+ DialogHelper.unregisterDialog(getTag());
+ }
+}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java
index 4f7e0358..118273b9 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java
@@ -27,11 +27,14 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
-import android.widget.*;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.TextView;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
@@ -46,19 +49,20 @@ import net.lacolaco.smileessence.twitter.task.FavoriteTask;
import net.lacolaco.smileessence.twitter.task.RetweetTask;
import net.lacolaco.smileessence.twitter.task.UnfavoriteTask;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.adapter.PostState;
import net.lacolaco.smileessence.view.adapter.StatusListAdapter;
import net.lacolaco.smileessence.view.listener.ListItemClickListener;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
+import java.util.ArrayList;
+
import twitter4j.MediaEntity;
import twitter4j.Status;
import twitter4j.URLEntity;
import twitter4j.User;
-import java.util.ArrayList;
-
-public class StatusDetailDialogFragment extends DialogFragment implements View.OnClickListener {
+public class StatusDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
@@ -231,7 +235,6 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O
@Override
public void run() {
command.execute();
- dismiss();
}
}));
commandsLayout.addView(commandView);
@@ -284,7 +287,7 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O
private void openMenu(MainActivity activity) {
StatusMenuDialogFragment fragment = new StatusMenuDialogFragment();
fragment.setStatusID(getStatusID());
- DialogHelper.showDialog(activity, fragment, "statusMenuDialog");
+ DialogHelper.showDialog(activity, fragment);
}
private void replyToStatus(MainActivity activity, Account account, Status status) {
@@ -312,7 +315,6 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O
} else {
new FavoriteTask(TwitterApi.getTwitter(account), statusID, activity).execute();
}
- dismiss();
}
private void toggleRetweet(final MainActivity activity, final Account account, final Status status, final Long retweetID) {
@@ -324,7 +326,6 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O
} else {
new RetweetTask(TwitterApi.getTwitter(account), TwitterUtils.getOriginalStatus(status).getId(), activity).execute();
}
- dismiss();
}
});
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
index 6572c49a..5f362d42 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
@@ -33,20 +33,23 @@ import android.widget.ListView;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.command.*;
+import net.lacolaco.smileessence.command.Command;
+import net.lacolaco.smileessence.command.CommandOpenHashtagDialog;
+import net.lacolaco.smileessence.command.CommandOpenURL;
+import net.lacolaco.smileessence.command.CommandOpenUserDetail;
+import net.lacolaco.smileessence.command.CommandSaveAsTemplate;
import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import net.lacolaco.smileessence.viewmodel.StatusViewModel;
+
+import java.util.ArrayList;
+import java.util.List;
import twitter4j.HashtagEntity;
import twitter4j.MediaEntity;
import twitter4j.Status;
import twitter4j.URLEntity;
-import java.util.ArrayList;
-import java.util.List;
-
public class StatusMenuDialogFragment extends MenuDialogFragment {
// ------------------------------ FIELDS ------------------------------
@@ -67,15 +70,6 @@ public class StatusMenuDialogFragment extends MenuDialogFragment {
// ------------------------ OVERRIDE METHODS ------------------------
-
- @Override
- protected void executeCommand(Command command) {
- if (command.execute()) {
- dismiss();
- DialogHelper.close(getActivity(), StatusViewModel.STATUS_DIALOG);
- }
- }
-
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity activity = (MainActivity) getActivity();
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
index 0f7d8667..9cd010a9 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
@@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
@@ -46,7 +45,7 @@ import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
-public class TalkChainDialogFragment extends DialogFragment {
+public class TalkChainDialogFragment extends StackableDialogFragment {
// ------------------------------ FIELDS ------------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
index 77e92604..5d597e0c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
@@ -27,14 +27,17 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.View;
-import android.widget.*;
+import android.widget.AbsListView;
+import android.widget.Button;
+import android.widget.ListView;
+import android.widget.TabHost;
+import android.widget.TextView;
import com.android.volley.toolbox.NetworkImageView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
@@ -55,6 +58,7 @@ import net.lacolaco.smileessence.twitter.task.UserTimelineTask;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.util.Themes;
import net.lacolaco.smileessence.util.UIHandler;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
import net.lacolaco.smileessence.view.adapter.StatusListAdapter;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
@@ -64,12 +68,11 @@ import twitter4j.Relationship;
import twitter4j.Twitter;
import twitter4j.User;
-public class UserDetailDialogFragment extends DialogFragment implements View.OnClickListener,
+public class UserDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener,
PullToRefreshBase.OnRefreshListener2<ListView> {
// ------------------------------ FIELDS ------------------------------
- public static final String USER_MENU_DIALOG = "userMenuDialog";
private static final String KEY_USER_ID = "userID";
private static final int ADAPTER_INDEX = 100;
private TextView textViewScreenName;
@@ -362,7 +365,7 @@ public class UserDetailDialogFragment extends DialogFragment implements View.OnC
}
};
menuFragment.setUserID(user.getId());
- DialogHelper.showDialog(activity, menuFragment, USER_MENU_DIALOG);
+ DialogHelper.showDialog(activity, menuFragment);
}
private void setFollowButtonState(boolean isFollowing, Drawable unfollowColor, Drawable followColor) {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
index 96f2cc30..e9bf12a5 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
@@ -40,11 +40,11 @@ import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-import twitter4j.User;
-
import java.util.ArrayList;
import java.util.List;
+import twitter4j.User;
+
public class UserMenuDialogFragment extends MenuDialogFragment {
// ------------------------------ FIELDS ------------------------------
@@ -100,8 +100,8 @@ public class UserMenuDialogFragment extends MenuDialogFragment {
@Override
protected void onItemClick(AdapterView<?> adapterView, int i) {
- super.onItemClick(adapterView, i);
dismiss();
+ super.onItemClick(adapterView, i);
}
// -------------------------- OTHER METHODS --------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
index 79e9e505..b8315a49 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
@@ -39,7 +39,7 @@ import net.lacolaco.smileessence.data.ImageCache;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.util.StringUtils;
import net.lacolaco.smileessence.util.Themes;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment;
import net.lacolaco.smileessence.view.listener.ListItemClickListener;
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
index 12d57b0b..bde1b607 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
@@ -41,7 +41,7 @@ import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.util.NameStyles;
import net.lacolaco.smileessence.util.StringUtils;
import net.lacolaco.smileessence.util.Themes;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.MessageDetailDialogFragment;
import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment;
import net.lacolaco.smileessence.view.listener.ListItemClickListener;
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
index e65de8df..abff50b3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
@@ -47,7 +47,7 @@ import net.lacolaco.smileessence.util.Morse;
import net.lacolaco.smileessence.util.NameStyles;
import net.lacolaco.smileessence.util.StringUtils;
import net.lacolaco.smileessence.util.Themes;
-import net.lacolaco.smileessence.view.dialog.DialogHelper;
+import net.lacolaco.smileessence.view.DialogHelper;
import net.lacolaco.smileessence.view.dialog.StatusDetailDialogFragment;
import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment;
import net.lacolaco.smileessence.view.listener.ListItemClickListener;
@@ -62,7 +62,6 @@ public class StatusViewModel implements IViewModel {
// ------------------------------ FIELDS ------------------------------
- public static final String STATUS_DIALOG = "statusDialog";
private long id;
private long userID;
private String screenName;
@@ -408,11 +407,10 @@ public class StatusViewModel implements IViewModel {
private void onClick(Activity activity) {
StatusDetailDialogFragment fragment = new StatusDetailDialogFragment();
fragment.setStatusID(getID());
- DialogHelper.showDialog(activity, fragment, STATUS_DIALOG);
+ DialogHelper.showDialog(activity, fragment);
}
private void onIconClick(Activity activity) {
- DialogHelper.close(activity, STATUS_DIALOG);
UserDetailDialogFragment dialogFragment = new UserDetailDialogFragment();
dialogFragment.setUserID(isRetweet() ? getRetweetedStatus().userID : userID);
DialogHelper.showDialog(activity, dialogFragment);