diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/DataManager.java b/app/src/main/java/com/ninja/mobile/communicator/data/DataManager.java index 1354b1f837d42558804b24fed9627167f8a38b9d..39f50e5719c42ea965da7b23080d09f1de52e28d 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/DataManager.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/DataManager.java @@ -405,6 +405,16 @@ public class DataManager { return chatModelList; } + public ChatModel getChatWith(Contact contact) { + List chats = getChats(); + for (ChatModel chatModel : chats) { + if (chatModel.members.get(0).equals(contact)) { //for beta with single chat + return chatModel; + } + } + return null; + } + public void uploadFile(File file) { uploadFile(file, null); } diff --git a/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java b/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java index ba12efd1d44427893693030bead6dc9301d4e526..81cc53e7f0e6bf621f6554d31b9674ef008c4ec9 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java +++ b/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java @@ -1,9 +1,11 @@ package com.ninja.mobile.communicator.mvp.presenters; import com.arellomobile.mvp.InjectViewState; +import com.ninja.mobile.communicator.data.models.ChatModel; import com.ninja.mobile.communicator.data.models.mqtt.Contact; import com.ninja.mobile.communicator.data.models.mqtt.Response; import com.ninja.mobile.communicator.mvp.view.HistoryView; +import com.ninja.mobile.communicator.ui.fragments.chats.ChatFragment; import java.util.ArrayList; import java.util.Collections; @@ -31,6 +33,11 @@ public class HistoryPresenter extends BasePresenter { mDataManager.confirmFriendRequest(item.phoneId); } + public void openChat(Contact item) { + ChatModel chatModel = mDataManager.getChatWith(item); + mRouter.replaceScreen(ChatFragment.class.getSimpleName(), chatModel); + } + private ArrayList filterList(ArrayList userList, String userPhone) { ArrayList filtredList = new ArrayList<>(); for (Contact contact : userList) { diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java index 373a0f655e087fb2afe3f4e17fa4c9acfe5892d3..75f57079a6097510092e819fa491a54c0a97821d 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java @@ -11,7 +11,7 @@ import java.util.List; public class HistoryAdapter extends BaseAdapter { - public HistoryAdapter(List list, OnItemClickListener onItemClickListener) { + public HistoryAdapter(List list, OnHistoryItemClickListener onItemClickListener) { super(list, onItemClickListener); } @@ -20,4 +20,8 @@ public class HistoryAdapter extends BaseAdapter { return new HistoryVh(parent); } + public interface OnHistoryItemClickListener extends OnItemClickListener { + void onAddClick(Contact contact); + } + } diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java index 55662799c2ebef488a6a1f3daadb97a88e12ea7a..37a259a58054a68dc5a52aec9641aa2448f19389 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java @@ -1,6 +1,7 @@ package com.ninja.mobile.communicator.ui.adapters.viewholders; import android.support.v4.content.ContextCompat; +import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -13,11 +14,14 @@ import com.ninja.mobile.communicator.ui.base.BaseViewHolder; import butterknife.BindView; +import static com.ninja.mobile.communicator.ui.adapters.HistoryAdapter.OnHistoryItemClickListener; + public class HistoryVh extends BaseViewHolder { @BindView(R.id.li_history_tv_name) TextView mName; @BindView(R.id.li_history_tv_phone) TextView mPhone; @BindView(R.id.li_history_tv_status) TextView mAdd; @BindView(R.id.li_history_iv_photo) ImageView mPhoto; + @BindView(R.id.li_history_root) View mRoot; public HistoryVh(ViewGroup parent) { super(parent, R.layout.li_history); @@ -34,6 +38,7 @@ public class HistoryVh extends BaseViewHolder { mAdd.setText(R.string.history_added); mAdd.setBackground(null); mAdd.setTextColor(ContextCompat.getColor(getContext(), R.color.pencil_color)); + mRoot.setOnClickListener(v -> mListener.onItemClick(contact, getAdapterPosition())); } else if (BaseModelMQQT.Statuses.REQUEST.toString().equalsIgnoreCase(status)) { mAdd.setText(R.string.history_requested); mAdd.setBackground(null); @@ -44,7 +49,7 @@ public class HistoryVh extends BaseViewHolder { mAdd.setText(R.string.history_accept); mAdd.setBackgroundResource(R.drawable.red_round_button); mAdd.setTextColor(ContextCompat.getColor(getContext(), R.color.white)); - mAdd.setOnClickListener(v -> mListener.onItemClick(contact, getAdapterPosition())); + mAdd.setOnClickListener(v -> ((OnHistoryItemClickListener) mListener).onAddClick(contact)); } } Glide.with(getContext()) diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/base/BaseAdapter.java b/app/src/main/java/com/ninja/mobile/communicator/ui/base/BaseAdapter.java index 0ed51e49441857bba245fa72184fff23aada9c94..1f87ff5e3444851fe5caeb3876c637d6e2af40ec 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/base/BaseAdapter.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/base/BaseAdapter.java @@ -26,7 +26,7 @@ import java.util.List; public abstract class BaseAdapter, Out> extends RecyclerView.Adapter { private List mList; - private OnItemClickListener mOnItemClickListener; + protected OnItemClickListener mOnItemClickListener; public BaseAdapter(List list) { mList = list; diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java index 4875fdd1159fc77bbbf934b06aff32ed3d7f0ac6..80ab2b94ebc9a13505d2de7eea7dd9d76f537910 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java @@ -21,7 +21,8 @@ import java.util.List; import butterknife.BindView; -public class HistoryFragment extends BaseFragment implements HistoryView { +public class HistoryFragment extends BaseFragment implements HistoryView, + HistoryAdapter.OnHistoryItemClickListener { @BindView(R.id.f_history_recycler) RecyclerView mRecyclerView; @BindView(R.id.f_history_progress) ProgressBar mProgressBar; @@ -47,7 +48,7 @@ public class HistoryFragment extends BaseFragment implements HistoryView { } @Override public void setAllContacts(List contactList) { - HistoryAdapter adapter = new HistoryAdapter(contactList, (item, position) -> mPresenter.acceptContact(item)); + HistoryAdapter adapter = new HistoryAdapter(contactList, this); mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); mRecyclerView.setAdapter(adapter); } @@ -59,4 +60,13 @@ public class HistoryFragment extends BaseFragment implements HistoryView { @Override public void hideLocalProgress() { mProgressBar.setVisibility(View.GONE); } + + @Override public void onAddClick(Contact contact) { + mPresenter.acceptContact(contact); + } + + @Override public void onItemClick(Contact item, int position) { + mPresenter.openChat(item); + } + } diff --git a/app/src/main/res/layout/li_history.xml b/app/src/main/res/layout/li_history.xml index 2676f5c1db1f3f8a2f52b5afde59d303a75a9745..72bd7601f38aabc0c70a75c498f92e3dbab452a3 100644 --- a/app/src/main/res/layout/li_history.xml +++ b/app/src/main/res/layout/li_history.xml @@ -1,10 +1,11 @@ - + + app:layout_constraintWidth_default="spread" + tools:text="User Name"/> + app:layout_constraintWidth_default="spread" + tools:text="User phone"/> + app:layout_constraintTop_toTopOf="@+id/li_history_iv_photo"/> + tools:layout_editor_absoluteX="8dp"/> + tools:layout_editor_absoluteX="352dp" + tools:layout_editor_absoluteY="0dp"/> + tools:layout_editor_absoluteX="0dp" + tools:layout_editor_absoluteY="8dp"/> + tools:layout_editor_absoluteX="0dp" + tools:layout_editor_absoluteY="68dp"/> \ No newline at end of file