diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Contact.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Contact.java index 75f278be2305e9898e71f439ad9c49b2ed1c1fb5..9eed21849e5d4cfb6e0281c6675ba3fac5650e47 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Contact.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Contact.java @@ -12,6 +12,9 @@ import java.util.Random; import java.util.UUID; public class Contact extends BaseModelMQQT implements Parcelable { + public static final String FRIEND = "friend"; + public static final String REQUESTED = "not_confirmed"; + public static final String ACCEPT = "confirm"; @Order(1) public String phoneId; @Order(2) public String avatar; @@ -33,8 +36,8 @@ public class Contact extends BaseModelMQQT implements Parcelable { } public String getPhone() { - if (!TextUtils.isEmpty(person_id)) { - String[] split = person_id.split("_"); + if (!TextUtils.isEmpty(phoneId)) { + String[] split = phoneId.split("_"); return split[0]; } return 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 new file mode 100644 index 0000000000000000000000000000000000000000..9b0d1a5044cee4da137560612346727a7b095fb1 --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java @@ -0,0 +1,31 @@ +package com.ninja.mobile.communicator.mvp.presenters; + +import com.arellomobile.mvp.InjectViewState; +import com.ninja.mobile.communicator.data.models.LocalContact; +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; + + +@InjectViewState +public class HistoryPresenter extends BasePresenter { + + + + @Override protected Class[] getFilter() { + //TODO HZ + return new Class[0]; + } + + @Override protected void handleResponse(Response response) { + //TODO HZ + } + + public void getHistory(){ + getViewState().setAllContacts(mDataManager.getProfile().getRoster().userlist); + } + + public void acceptContact(Contact item) { + //TODO + } +} diff --git a/app/src/main/java/com/ninja/mobile/communicator/mvp/view/HistoryView.java b/app/src/main/java/com/ninja/mobile/communicator/mvp/view/HistoryView.java new file mode 100644 index 0000000000000000000000000000000000000000..f0cde78ea5189bdb4fd20f27e219fc8c40778dfb --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/mvp/view/HistoryView.java @@ -0,0 +1,16 @@ +package com.ninja.mobile.communicator.mvp.view; + +import com.arellomobile.mvp.MvpView; +import com.ninja.mobile.communicator.data.models.LocalContact; +import com.ninja.mobile.communicator.data.models.mqtt.Contact; + +import java.util.List; + +public interface HistoryView extends MvpView { + + void setAllContacts(List contactList); + + void showLocalProgress(); + + void hideLocalProgress(); +} diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/activities/HomeActivity.java b/app/src/main/java/com/ninja/mobile/communicator/ui/activities/HomeActivity.java index c74bdb53b304abbdd07302dc05d6ba675dcd80de..8599818540ff2494fc2a58ef81a3256a8d3f2db3 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/activities/HomeActivity.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/activities/HomeActivity.java @@ -15,6 +15,7 @@ import com.ninja.mobile.communicator.ui.base.BaseActivity; import com.ninja.mobile.communicator.ui.base.BaseFragment; import com.ninja.mobile.communicator.ui.fragments.contacts.AddContactByPhoneFragment; import com.ninja.mobile.communicator.ui.fragments.contacts.ContactsFragment; +import com.ninja.mobile.communicator.ui.fragments.contacts.HistoryFragment; import com.ninja.mobile.communicator.ui.fragments.profile.MyProfileFragment; import com.ninja.mobile.communicator.ui.fragments.profile.UserProfileFragment; import com.ninja.mobile.communicator.ui.views.CascadeWheel; @@ -74,6 +75,10 @@ public class HomeActivity extends BaseActivity implements HomeView { navigateToContacts(); break; + case Chats: + havigateToHistory(); + break; + case Search: navigateToAddContact(); break; @@ -114,6 +119,12 @@ public class HomeActivity extends BaseActivity implements HomeView { NynjaApp.getRouter().replaceScreen(MyProfileFragment.class.getSimpleName()); } + + //TODO add at wheel lvl 2 + private void havigateToHistory(){ + NynjaApp.getRouter().replaceScreen(HistoryFragment.class.getSimpleName()); + } + @Override public void showInternetError() { } @@ -157,6 +168,8 @@ public class HomeActivity extends BaseActivity implements HomeView { Object transitionData = replace.getTransitionData(); if (transitionData instanceof Contact) fragment = UserProfileFragment.newInstance((Contact) transitionData); + } else if (HistoryFragment.class.getSimpleName().equalsIgnoreCase(screenKey)){ + fragment = HistoryFragment.newInstance(); } return fragment; } 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 new file mode 100644 index 0000000000000000000000000000000000000000..44b198c248ccf830e764acca1a2a434324c0dda2 --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java @@ -0,0 +1,35 @@ +package com.ninja.mobile.communicator.ui.adapters; + +import android.view.ViewGroup; + +import com.ninja.mobile.communicator.data.models.mqtt.Contact; +import com.ninja.mobile.communicator.intetfaces.OnItemClickListener; +import com.ninja.mobile.communicator.ui.adapters.viewholders.HistoryVh; +import com.ninja.mobile.communicator.ui.base.BaseAdapter; +import com.ninja.mobile.communicator.ui.base.BaseViewHolder; + +import java.util.List; + +public class HistoryAdapter extends BaseAdapter { + + + public HistoryAdapter(List list) { + super(list); + } + + public HistoryAdapter(List list, OnItemClickListener onItemClickListener) { + super(list, onItemClickListener); + } + + @Override + public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + return new HistoryVh(parent); + } + + @Override + public void onBindViewHolder(BaseViewHolder holder, int position) { + holder.setData(getItem(position)); + } + + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..cef9ae2cbeb63e6a7fdcde33cb9f0659a5dfd2ff --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java @@ -0,0 +1,58 @@ +package com.ninja.mobile.communicator.ui.adapters.viewholders; + +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.ninja.mobile.communicator.R; +import com.ninja.mobile.communicator.data.models.mqtt.Contact; +import com.ninja.mobile.communicator.intetfaces.OnItemClickListener; +import com.ninja.mobile.communicator.ui.base.BaseViewHolder; + +import butterknife.BindView; + +public class HistoryVh extends BaseViewHolder { + @BindView(R.id.li_histore_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; + + public HistoryVh(ViewGroup parent) { + super(LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_history, parent, false)); + } + + @Override public void setData(Contact item) { + mName.setText(item.getFullName()); + mPhone.setText(item.getPhone()); + + if (item.status != null){ + String status = item.status.toString(); + + if (status.equalsIgnoreCase(Contact.FRIEND)) { + mAdd.setText(getContext().getString(R.string.history_added)); + mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); + mAdd.setBackground(null); + mAdd.setTextColor(getContext().getResources().getColor(R.color.white)); + } else if (status.equalsIgnoreCase(Contact.ACCEPT)){ + mAdd.setText(getContext().getString(R.string.history_accept)); + mAdd.setGravity(Gravity.CENTER); + mAdd.setBackgroundResource(R.drawable.red_round_button); + mAdd.setTextColor(getContext().getResources().getColor(R.color.pencil_color)); + } else if (status.equalsIgnoreCase(Contact.REQUESTED)){ + mAdd.setText(getContext().getString(R.string.history_requested)); + mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); + mAdd.setBackground(null); + mAdd.setTextColor(getContext().getResources().getColor(R.color.colorAccent)); + } + } + + +// Glide.with(getContext()).load(item.avatar).into(mPhoto); + Glide.with(getContext()).load("").placeholder(R.drawable.contact_placeholder).into(mPhoto); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..d4a1e828d26fa9d54805ffcb46bad80639a2bfee --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java @@ -0,0 +1,66 @@ +package com.ninja.mobile.communicator.ui.fragments.contacts; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; + +import com.arellomobile.mvp.presenter.InjectPresenter; +import com.ninja.mobile.communicator.R; +import com.ninja.mobile.communicator.data.models.mqtt.Contact; +import com.ninja.mobile.communicator.data.models.mqtt.History; +import com.ninja.mobile.communicator.mvp.presenters.HistoryPresenter; +import com.ninja.mobile.communicator.mvp.view.HistoryView; +import com.ninja.mobile.communicator.ui.adapters.HistoryAdapter; +import com.ninja.mobile.communicator.ui.base.BaseFragment; + +import java.util.List; + +import butterknife.BindView; + +public class HistoryFragment extends BaseFragment implements HistoryView { + + @BindView(R.id.f_history_recycler) RecyclerView mRecyclerView; + @BindView(R.id.f_history_progress) ProgressBar mProgressBar; + + @InjectPresenter HistoryPresenter mPresenter; + + private HistoryAdapter mAdapter; + + public static HistoryFragment newInstance(){ + return new HistoryFragment(); + } + + @Nullable @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_history, container, false); + } + + + @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getHistory(); + } + + private void getHistory() { + mPresenter.getHistory(); + } + + @Override public void setAllContacts(List contactList) { + mAdapter = new HistoryAdapter(contactList, (item, position) -> mPresenter.acceptContact(item)); + mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + mRecyclerView.setAdapter(mAdapter); + } + + @Override public void showLocalProgress() { + mProgressBar.setVisibility(View.VISIBLE); + } + + @Override public void hideLocalProgress() { + mProgressBar.setVisibility(View.GONE); + } +} diff --git a/app/src/main/res/drawable/temp_shadow_history_background.xml b/app/src/main/res/drawable/temp_shadow_history_background.xml new file mode 100644 index 0000000000000000000000000000000000000000..b00f8088c09a42cc3195af243b217d37f447fb24 --- /dev/null +++ b/app/src/main/res/drawable/temp_shadow_history_background.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_history.xml b/app/src/main/res/layout/fragment_history.xml new file mode 100644 index 0000000000000000000000000000000000000000..305a09be23dfcff1bc5e14b7a86bc91a957b0eb2 --- /dev/null +++ b/app/src/main/res/layout/fragment_history.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_history.xml b/app/src/main/res/layout/item_history.xml new file mode 100644 index 0000000000000000000000000000000000000000..cc1aed663302a572a4f0e479820832ab169d142e --- /dev/null +++ b/app/src/main/res/layout/item_history.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dd25dfb6ccb215d49c987ad6cb76f9d26ecf9034..8aafca50e3a020edfffc491b5087888cae988cc5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -54,4 +54,9 @@ Enter Phone Number User is not found. + + Accept + Added + Requested +