package com.quickblox.q_municate.utils.helpers;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.text.TextUtils;
import android.view.View;
import com.quickblox.q_municate.R;
import com.quickblox.q_municate.ui.activities.base.BaseActivity;
import com.quickblox.q_municate.ui.activities.chats.BaseDialogActivity;
import com.quickblox.q_municate_core.service.QBServiceConsts;
import com.quickblox.q_municate_db.managers.DataManager;
import com.quickblox.q_municate_db.models.Dialog;
import com.quickblox.q_municate_db.models.DialogOccupant;
import com.quickblox.q_municate_db.models.User;
public class ActivityUIHelper {
private BaseActivity baseActivity;
private User senderUser;
private Dialog messagesDialog;
private String message;
private boolean isPrivateMessage;
public ActivityUIHelper(BaseActivity baseActivity) {
this.baseActivity = baseActivity;
}
public void showChatMessageNotification(Bundle extras) {
senderUser = (User) extras.getSerializable(QBServiceConsts.EXTRA_USER);
message = extras.getString(QBServiceConsts.EXTRA_CHAT_MESSAGE);
String dialogId = extras.getString(QBServiceConsts.EXTRA_DIALOG_ID);
isPrivateMessage = extras.getBoolean(QBServiceConsts.EXTRA_IS_PRIVATE_MESSAGE);
if (isMessagesDialogCorrect(dialogId) && senderUser != null) {
message = baseActivity.getString(R.string.snackbar_new_message_title, senderUser.getFullName(), message);
if (!TextUtils.isEmpty(message)) {
showNewNotification();
}
}
}
private boolean isMessagesDialogCorrect(String dialogId) {
messagesDialog = DataManager.getInstance().getDialogDataManager().getByDialogId(dialogId);
return messagesDialog != null;
}
public void showContactRequestNotification(Bundle extras) {
int senderUserId = extras.getInt(QBServiceConsts.EXTRA_USER_ID);
senderUser = DataManager.getInstance().getUserDataManager().get(senderUserId);
message = extras.getString(QBServiceConsts.EXTRA_MESSAGE);
DialogOccupant dialogOccupant = DataManager.getInstance().getDialogOccupantDataManager().getDialogOccupantForPrivateChat(senderUserId);
if (dialogOccupant != null && senderUser != null) {
String dialogId = dialogOccupant.getDialog().getDialogId();
isPrivateMessage = true;
if (isMessagesDialogCorrect(dialogId)) {
message = baseActivity.getString(R.string.snackbar_new_contact_request_title, senderUser.getFullName());
if (!TextUtils.isEmpty(message)) {
showNewNotification();
}
}
}
}
public void showNewNotification() {
baseActivity.hideSnackBar();
baseActivity.showSnackbar(message, Snackbar.LENGTH_LONG, R.string.dialog_reply,
new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog();
}
});
}
private void showDialog() {
if (baseActivity instanceof BaseDialogActivity) {
baseActivity.finish();
}
if (isPrivateMessage) {
baseActivity.startPrivateChatActivity(senderUser, messagesDialog);
} else {
baseActivity.startGroupChatActivity(messagesDialog);
}
}
}