diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index a5ea26752..3fcf7c4cf 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -195,4 +195,6 @@
Remember to check off your Dailies!
Using Skill
Coming Soon
+ Are you sure you want to report this message for violation?
+ Flag Message
\ No newline at end of file
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java
index 9ec484b66..42be02107 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java
@@ -1,12 +1,14 @@
package com.habitrpg.android.habitica.ui.fragments;
import android.content.Context;
+import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -14,6 +16,7 @@ import android.view.View;
import android.view.ViewGroup;
import com.habitrpg.android.habitica.APIHelper;
+import com.habitrpg.android.habitica.MainActivity;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.events.ToggledInnStateEvent;
import com.habitrpg.android.habitica.events.commands.DeleteChatMessageCommand;
@@ -47,8 +50,9 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR
private HabitRPGUser user;
private String userId;
private boolean isTavern;
+ private MainActivity activity;
- public ChatListFragment(Context ctx, String groupId, APIHelper apiHelper, HabitRPGUser user, boolean isTavern) {
+ public ChatListFragment(Context ctx, String groupId, APIHelper apiHelper, HabitRPGUser user, MainActivity activity, boolean isTavern) {
this.ctx = ctx;
this.groupId = groupId;
@@ -56,6 +60,7 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR
this.user = user;
this.userId = user.getId();
this.isTavern = isTavern;
+ this.activity = activity;
// Receive Events
EventBus.getDefault().register(this);
@@ -144,32 +149,27 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR
}
-
- private void showSnackbar(String msg, boolean negative) {
- Snackbar snackbar = Snackbar.make(mRecyclerView, msg, Snackbar.LENGTH_LONG);
-
- if (negative) {
- View snackbarView = snackbar.getView();
-
- //change Snackbar's background color;
- snackbarView.setBackgroundColor(Color.RED);
- }
-
- snackbar.show();
- }
-
public void onEvent(final FlagChatMessageCommand cmd) {
- apiHelper.apiService.flagMessage(cmd.groupId, cmd.chatMessage.id, new Callback() {
- @Override
- public void success(Void aVoid, Response response) {
- showSnackbar("Flagged message by " + cmd.chatMessage.user, false);
- }
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setMessage(R.string.chat_flag_confirmation)
+ .setPositiveButton(R.string.flag_confirm, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ apiHelper.apiService.flagMessage(cmd.groupId, cmd.chatMessage.id, new Callback() {
+ @Override
+ public void success(Void aVoid, Response response) {
+ activity.showSnackbar("Flagged message by " + cmd.chatMessage.user);
+ }
- @Override
- public void failure(RetrofitError error) {
- showSnackbar("Failed to flag message by " + cmd.chatMessage.user, true);
- }
- });
+ @Override
+ public void failure(RetrofitError error) {
+ }
+ }); }
+ })
+ .setNegativeButton(R.string.action_cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ }
+ });
+ builder.show();
}
public void onEvent(final ToggleLikeMessageCommand cmd) {
@@ -180,7 +180,6 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR
@Override
public void failure(RetrofitError error) {
- showSnackbar("Failed to like message by " + cmd.chatMessage.user, true);
}
});
}
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/PartyFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/PartyFragment.java
index 7072ec217..f578fb25b 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/PartyFragment.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/PartyFragment.java
@@ -98,7 +98,7 @@ public class PartyFragment extends BaseFragment {
break;
}
case 1: {
- fragment = new ChatListFragment(activity, "party", mAPIHelper, user, false);
+ fragment = new ChatListFragment(activity, "party", mAPIHelper, user, activity, false);
break;
}
case 2: {
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TavernFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TavernFragment.java
index 3d65f7931..f9ec99874 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TavernFragment.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/TavernFragment.java
@@ -21,7 +21,7 @@ public class TavernFragment extends BaseFragment {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.fragment_tavern, container, false);
- setFragment(new ChatListFragment(activity, "habitrpg", mAPIHelper, user, true));
+ setFragment(new ChatListFragment(activity, "habitrpg", mAPIHelper, user, activity, true));
return v;
}