From b9634570a760a318469bec77bdd9288b1b860f76 Mon Sep 17 00:00:00 2001 From: Krocks Date: Mon, 24 Jul 2017 16:06:09 +0300 Subject: [PATCH 1/5] added history things, working commit, need to add equal statuses --- .../data/models/mqtt/Contact.java | 4 +- .../mvp/presenters/HistoryPresenter.java | 31 +++++++ .../communicator/mvp/view/HistoryView.java | 16 ++++ .../ui/activities/HomeActivity.java | 13 +++ .../ui/adapters/HistoryAdapter.java | 35 +++++++ .../ui/adapters/viewholders/HistoryVh.java | 48 ++++++++++ .../fragments/contacts/HistoryFragment.java | 66 ++++++++++++++ app/src/main/res/layout/fragment_history.xml | 24 +++++ app/src/main/res/layout/item_history.xml | 91 +++++++++++++++++++ 9 files changed, 326 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/HistoryPresenter.java create mode 100644 app/src/main/java/com/ninja/mobile/communicator/mvp/view/HistoryView.java create mode 100644 app/src/main/java/com/ninja/mobile/communicator/ui/adapters/HistoryAdapter.java create mode 100644 app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java create mode 100644 app/src/main/java/com/ninja/mobile/communicator/ui/fragments/contacts/HistoryFragment.java create mode 100644 app/src/main/res/layout/fragment_history.xml create mode 100644 app/src/main/res/layout/item_history.xml 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 75f278be23..2c757be2c6 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 @@ -33,8 +33,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 0000000000..9b0d1a5044 --- /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 0000000000..f0cde78ea5 --- /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 c74bdb53b3..8599818540 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 0000000000..44b198c248 --- /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 0000000000..422585ec6e --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/adapters/viewholders/HistoryVh.java @@ -0,0 +1,48 @@ +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()); + +// String status = item.status.toString(); + + //TODO CODE STATUS CONST +// if (getAdapterPosition() % 2 == 0) { +// mAdd.setText(getContext().getString(R.string.contact_li_text_added)); +// mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); +// mAdd.setBackground(null); +// } else { +// mAdd.setText(getContext().getString(R.string.contact_li_text_add)); +// mAdd.setGravity(Gravity.CENTER); +// mAdd.setBackgroundResource(R.drawable.red_round_button); +// } + + Glide.with(getContext()).load(item.avatar).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 0000000000..d4a1e828d2 --- /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/layout/fragment_history.xml b/app/src/main/res/layout/fragment_history.xml new file mode 100644 index 0000000000..305a09be23 --- /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 0000000000..ff53579f75 --- /dev/null +++ b/app/src/main/res/layout/item_history.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- GitLab From 38015a5441f9559764d441f512e48992d6dd4c94 Mon Sep 17 00:00:00 2001 From: Krocks Date: Mon, 24 Jul 2017 16:48:37 +0300 Subject: [PATCH 2/5] added statuses, temp background, strings --- .../data/models/mqtt/Contact.java | 3 ++ .../ui/adapters/viewholders/HistoryVh.java | 38 ++++++++++++------- .../temp_shadow_history_background.xml | 20 ++++++++++ app/src/main/res/layout/item_history.xml | 3 +- app/src/main/res/values/strings.xml | 5 +++ 5 files changed, 54 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/drawable/temp_shadow_history_background.xml 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 2c757be2c6..9eed21849e 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; 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 422585ec6e..cef9ae2cbe 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 @@ -30,19 +30,29 @@ public class HistoryVh extends BaseViewHolder { mName.setText(item.getFullName()); mPhone.setText(item.getPhone()); -// String status = item.status.toString(); - - //TODO CODE STATUS CONST -// if (getAdapterPosition() % 2 == 0) { -// mAdd.setText(getContext().getString(R.string.contact_li_text_added)); -// mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); -// mAdd.setBackground(null); -// } else { -// mAdd.setText(getContext().getString(R.string.contact_li_text_add)); -// mAdd.setGravity(Gravity.CENTER); -// mAdd.setBackgroundResource(R.drawable.red_round_button); -// } - - Glide.with(getContext()).load(item.avatar).into(mPhoto); + 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/res/drawable/temp_shadow_history_background.xml b/app/src/main/res/drawable/temp_shadow_history_background.xml new file mode 100644 index 0000000000..2b832d904d --- /dev/null +++ b/app/src/main/res/drawable/temp_shadow_history_background.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + \ 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 index ff53579f75..54af86ad2d 100644 --- a/app/src/main/res/layout/item_history.xml +++ b/app/src/main/res/layout/item_history.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:background="@drawable/temp_shadow_history_background"> Enter Phone Number User is not found. + + Accept + Added + Requested + -- GitLab From 2d829940e8b947f864042dd75065e10d81094572 Mon Sep 17 00:00:00 2001 From: BoykoDmytro Date: Mon, 24 Jul 2017 16:58:38 +0300 Subject: [PATCH 3/5] fixed bug with token --- .../mobile/communicator/data/DataManager.java | 33 ++++++++++--------- .../communicator/data/models/mqtt/Auth.java | 14 ++++++++ .../communicator/data/models/mqtt/Error.java | 6 ++++ .../communicator/data/models/mqtt/Io.java | 12 ++++++- .../communicator/data/server/PahoService.java | 4 +-- .../mvp/presenters/LoginPresenter.java | 2 +- 6 files changed, 50 insertions(+), 21 deletions(-) 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 fbc22d6dfb..b7b0c33049 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 @@ -16,13 +16,13 @@ import com.ninja.mobile.communicator.data.models.events.ServerData; import com.ninja.mobile.communicator.data.models.mqtt.Auth; import com.ninja.mobile.communicator.data.models.mqtt.BaseModelMQQT; import com.ninja.mobile.communicator.data.models.mqtt.Confirm; -import com.ninja.mobile.communicator.data.models.mqtt.DecodeFactory; import com.ninja.mobile.communicator.data.models.mqtt.DeleteUser; import com.ninja.mobile.communicator.data.models.mqtt.Friend; import com.ninja.mobile.communicator.data.models.mqtt.History; import com.ninja.mobile.communicator.data.models.mqtt.Io; import com.ninja.mobile.communicator.data.models.mqtt.Person; import com.ninja.mobile.communicator.data.models.mqtt.Profile; +import com.ninja.mobile.communicator.data.models.mqtt.Response; import com.ninja.mobile.communicator.data.models.mqtt.Roster; import com.ninja.mobile.communicator.data.models.mqtt.Token; import com.ninja.mobile.communicator.data.server.bert.BertAtom; @@ -42,7 +42,6 @@ import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import io.reactivex.subjects.BehaviorSubject; -import timber.log.Timber; /** * Created by Max Chervatiuk on 22.06.17. @@ -104,13 +103,25 @@ public class DataManager { public Observable getInputSubject() { return mBus.getInputSubject() + .filter(data -> data.getData() != null) .doOnNext(this::handleRequest); } private void handleRequest(Data data) { if (data instanceof ServerData) { ServerData serverData = (ServerData) data; - tryToSaveToken(serverData); + Response response = new Response(serverData.getData().getPayload()); + if (response.data instanceof Auth) { + tryToSaveToken((Auth) response.data); + } else if (response.data instanceof Io) { + Io io = (Io) response.data; + if (io.isSuccess() && io.data instanceof Auth) { + tryToSaveToken((Auth) io.data); + } + if (Io.Responses.NOT_AUTHORIZED.equalsIgnoreCase(io.getStatus())) { + requestSms(getPhoneNumber(), false); + } + } } else { } @@ -122,17 +133,9 @@ public class DataManager { .map(data -> (ErrorMessage) data); } - - private void tryToSaveToken(ServerData serverData) { - try { - Object o = DecodeFactory.decode(serverData.getData().getPayload()); - if (o instanceof Io && ((Io) o).data instanceof Auth) { - mToken = new Token(((Auth) ((Io) o).data).token); - mPreferenceHelper.saveToken(mToken); - } - } catch (Exception e) { - Timber.i(e); - } + private void tryToSaveToken(Auth auth) { + mToken = new Token(auth.token); + mPreferenceHelper.saveToken(mToken); } //Preferences @@ -292,8 +295,6 @@ public class DataManager { } - - // =========================================================================================== // private Handler mHandler; // public void runTokenUpdater() { diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Auth.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Auth.java index 820afb9f3c..60d3cb95c4 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Auth.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Auth.java @@ -88,4 +88,18 @@ public class Auth extends BaseModelMQQT { result = 31 * result + (services != null ? services.hashCode() : 0); return result; } + + @Override public String toString() { + return "Auth{" + + "token='" + token + '\'' + + ", dev_key='" + dev_key + '\'' + + ", user_id='" + user_id + '\'' + + ", phone='" + phone + '\'' + + ", clientId='" + clientId + '\'' + + ", type=" + type + + ", sms_code='" + sms_code + '\'' + + ", attempts=" + attempts + + ", services=" + services + + '}'; + } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Error.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Error.java index 1e72df5f4c..49d739f7dc 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Error.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Error.java @@ -46,4 +46,10 @@ public class Error extends BaseModelMQQT { @Override public Object encode() { return null; } + + @Override public String toString() { + return "Error{" + + "msg=" + msg + + '}'; + } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Io.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Io.java index b4beed8dae..cbf4c49846 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Io.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Io.java @@ -71,7 +71,7 @@ public class Io extends BaseModelMQQT { } public interface Responses { - + String NOT_AUTHORIZED = "not_authorized"; String LOGIN = "login"; String SMS_SEND = "sms_send"; String NOT_VERIFIED = "not_verified"; @@ -83,4 +83,14 @@ public class Io extends BaseModelMQQT { String SESSION_NOT_FOUND = "session_not_found"; String ALREADY_REGISTERED = "already_registered"; } + + @Override public String toString() { + String mCode = code != null ? code.toString() : "null"; + String mData = data != null ? data.toString() : "null"; + return + "Io{" + + "code=" + mCode + + ", data=" + mData + + '}'; + } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/server/PahoService.java b/app/src/main/java/com/ninja/mobile/communicator/data/server/PahoService.java index 337d2edbf9..de68b8801f 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/server/PahoService.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/server/PahoService.java @@ -3,9 +3,7 @@ package com.ninja.mobile.communicator.data.server; import android.app.Service; import android.content.Context; import android.content.Intent; -import android.os.Handler; import android.os.IBinder; -import android.os.Message; import android.support.annotation.Nullable; import com.ninja.mobile.communicator.BuildConfig; @@ -103,7 +101,7 @@ public class PahoService extends Service { if (data instanceof SendMessage) { SendMessage sendMessage = (SendMessage) data; PostData postData = sendMessage.getData(); - logSentMsg(sendMessage.getData().eventTopic.name(), postData.data); + logSentMsg(sendMessage.getData().eventTopic.name() + " " + getAuthTopic(), postData.data); PahoService.this.publishMessage(sendMessage.getData().eventTopic.ordinal(), getAuthTopic(), postData.data); } else if (data instanceof SubscribeMessage) { diff --git a/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/LoginPresenter.java b/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/LoginPresenter.java index 422f05369d..0800ca3e18 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/LoginPresenter.java +++ b/app/src/main/java/com/ninja/mobile/communicator/mvp/presenters/LoginPresenter.java @@ -72,6 +72,7 @@ public class LoginPresenter extends BasePresenter { getViewState().showProgressDialog(); String phone = getPhone(); mLoginType = loginType; + mDataManager.setPhoneNumber(phone); switch (loginType) { case Sms: mDataManager.requestSms(phone, false); @@ -257,7 +258,6 @@ public class LoginPresenter extends BasePresenter { private void loginUser(Profile profile) { mDataManager.saveProfile(profile); - mDataManager.setPhoneNumber(getPhone()); if (StringUtils.isNotEmpty(profile.getRoster().names)) { navigateToMainScreen(); mDataManager.setIsUserConfirmed(); -- GitLab From b2fa615e102d6459db79ee38514d80ead72129a3 Mon Sep 17 00:00:00 2001 From: Krocks Date: Mon, 24 Jul 2017 17:01:48 +0300 Subject: [PATCH 4/5] changed temp background --- .../drawable/temp_shadow_history_background.xml | 17 ++++++++--------- app/src/main/res/layout/item_history.xml | 3 ++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/drawable/temp_shadow_history_background.xml b/app/src/main/res/drawable/temp_shadow_history_background.xml index 2b832d904d..b00f8088c0 100644 --- a/app/src/main/res/drawable/temp_shadow_history_background.xml +++ b/app/src/main/res/drawable/temp_shadow_history_background.xml @@ -2,19 +2,18 @@ - - + + - + android:bottom="3dp" + android:left="0.5dp" + android:right="3dp" + android:top="0.5dp"> - - + + \ 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 index 54af86ad2d..cc1aed6633 100644 --- a/app/src/main/res/layout/item_history.xml +++ b/app/src/main/res/layout/item_history.xml @@ -4,7 +4,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/temp_shadow_history_background"> + android:background="@drawable/temp_shadow_history_background" + android:layout_margin="12dp"> Date: Mon, 24 Jul 2017 17:28:07 +0300 Subject: [PATCH 5/5] fixed phone display on user profile. --- .../data/models/mqtt/BaseModelMQQT.java | 20 +++++++++ .../communicator/data/models/mqtt/Roster.java | 31 ------------- .../ui/adapters/viewholders/HistoryVh.java | 45 +++++++++---------- .../fragments/profile/MyProfileFragment.java | 4 +- .../profile/UserProfileFragment.java | 2 +- 5 files changed, 45 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/BaseModelMQQT.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/BaseModelMQQT.java index c606c0d867..08da3969ff 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/BaseModelMQQT.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/BaseModelMQQT.java @@ -1,15 +1,20 @@ package com.ninja.mobile.communicator.data.models.mqtt; +import android.os.Build; + import com.ninja.mobile.communicator.data.models.mqtt.annotations.Order; import com.ninja.mobile.communicator.data.server.bert.BertAtom; import com.ninja.mobile.communicator.data.server.bert.BertDecoder; import com.ninja.mobile.communicator.data.server.bert.BertTuple; import java.io.InvalidObjectException; +import java.util.Locale; import timber.log.Timber; +import static android.telephony.PhoneNumberUtils.formatNumber; + /** * Created by dmitro.boiko on 04/07/2017. */ @@ -55,4 +60,19 @@ public abstract class BaseModelMQQT { } return null; } + + public String getFormattedPhone(String phoneNumber) { + if (phoneNumber != null) { + int i = phoneNumber.indexOf("+"); + if (i == -1) { + phoneNumber = "+" + phoneNumber; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + phoneNumber = formatNumber(phoneNumber, Locale.getDefault().getCountry()); + } else { + phoneNumber = formatNumber(phoneNumber); + } + } + return phoneNumber; + } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Roster.java b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Roster.java index f56ee121e8..4cd49855f1 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Roster.java +++ b/app/src/main/java/com/ninja/mobile/communicator/data/models/mqtt/Roster.java @@ -1,9 +1,7 @@ package com.ninja.mobile.communicator.data.models.mqtt; -import android.os.Build; import android.os.Parcel; import android.os.Parcelable; -import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import com.ninja.mobile.communicator.data.models.mqtt.annotations.Order; @@ -11,10 +9,6 @@ import com.ninja.mobile.communicator.data.server.bert.BertAtom; import com.ninja.mobile.communicator.data.server.bert.BertTuple; import java.util.ArrayList; -import java.util.Locale; -import java.util.Random; - -import static android.telephony.PhoneNumberUtils.formatNumber; public class Roster extends BaseModelMQQT implements Parcelable { @@ -36,31 +30,6 @@ public class Roster extends BaseModelMQQT implements Parcelable { return phone + "_" + id; } - public static Roster getMockData() { - Roster roster = new Roster(); - roster.id = new Random().nextLong(); - roster.names = "names"; - roster.surnames = "Surnames"; - for (int i = 0; i < 20; i++) { - roster.userlist.add(Contact.getMockData()); - } - return roster; - } - - public String getFormattedPhone() { - String phoneNumber = phone; - int i = phone.indexOf("+"); - if (i == -1) { - phoneNumber = "+" + phoneNumber; - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - phoneNumber = PhoneNumberUtils.formatNumber(phoneNumber, Locale.getDefault().getCountry()); - } else { - phoneNumber = formatNumber(phoneNumber); - } - return phoneNumber; - } - @Override public Roster decode(BertTuple bertTuple) { return null; } 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 cef9ae2cbe..b1391f20f0 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,8 +1,8 @@ package com.ninja.mobile.communicator.ui.adapters.viewholders; +import android.support.v4.content.ContextCompat; import android.view.Gravity; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -10,7 +10,6 @@ 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; @@ -30,29 +29,29 @@ public class HistoryVh extends BaseViewHolder { mName.setText(item.getFullName()); mPhone.setText(item.getPhone()); - if (item.status != null){ + 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)); + if (Contact.FRIEND.equalsIgnoreCase(status)) { + mAdd.setText(getContext().getString(R.string.history_added)); + mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); + mAdd.setBackground(null); + mAdd.setTextColor(ContextCompat.getColor(getContext(), R.color.white)); + } else if (Contact.ACCEPT.equalsIgnoreCase(status)) { + mAdd.setText(getContext().getString(R.string.history_accept)); + mAdd.setGravity(Gravity.CENTER); + mAdd.setBackgroundResource(R.drawable.red_round_button); + mAdd.setTextColor(ContextCompat.getColor(getContext(), R.color.pencil_color)); + } else if (Contact.REQUESTED.equalsIgnoreCase(status)) { + mAdd.setText(getContext().getString(R.string.history_requested)); + mAdd.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); + mAdd.setBackground(null); + mAdd.setTextColor(ContextCompat.getColor(getContext(), R.color.colorAccent)); + } } - } - - -// Glide.with(getContext()).load(item.avatar).into(mPhoto); - Glide.with(getContext()).load("").placeholder(R.drawable.contact_placeholder).into(mPhoto); + Glide.with(getContext()) + .load(item.avatar == null ? "" : item.avatar) + .placeholder(R.drawable.contact_placeholder) + .into(mPhoto); } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java index 7779eae3f7..1fbc06f4f2 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java @@ -163,7 +163,7 @@ public class MyProfileFragment extends BaseFragment implements MyProfileView, public void initPerson(Profile profile) { Roster roster = profile.getRoster(); mUserName.setText(roster.getFullName()); - mUserPhone.setText(roster.getFormattedPhone()); + mUserPhone.setText(roster.getFormattedPhone(roster.phone)); } @Override @@ -191,7 +191,7 @@ public class MyProfileFragment extends BaseFragment implements MyProfileView, private void setPersonModel(Profile profile) { Roster roster = profile.getRoster(); mUserName.setText(roster.getFullName()); - mUserPhone.setText(roster.getFormattedPhone()); + mUserPhone.setText(roster.getFormattedPhone(roster.phone)); } private void decodePhotoFromGallery(Intent data) { diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/UserProfileFragment.java b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/UserProfileFragment.java index e678f07de3..a580885f48 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/UserProfileFragment.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/profile/UserProfileFragment.java @@ -60,7 +60,7 @@ public class UserProfileFragment extends BaseFragment implements UserProfileView private void initViews(@NonNull Contact contact) { mUserName.setText(contact.getFullName()); - mUserPhone.setText(contact.getPhone()); + mUserPhone.setText(contact.getFormattedPhone(contact.getPhone())); mAddContact.setVisibility(contact.isFriend() ? View.INVISIBLE : View.VISIBLE); } -- GitLab