diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml
index 367ccfff4..392bb5ea4 100644
--- a/OneToOne/src/main/AndroidManifest.xml
+++ b/OneToOne/src/main/AndroidManifest.xml
@@ -141,7 +141,7 @@
+ android:value="https://ceshi.yyouou.com" />
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
index 329f01d2a..9af768c17 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
@@ -96,8 +96,10 @@ public class AppContext extends CommonAppContext {
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
- TextMessage content = (TextMessage) message.getContent();
- ToastUtil.show("收到:" + content.getContent());
+ if (message.getContent() instanceof TextMessage) {
+ TextMessage content = (TextMessage) message.getContent();
+ ToastUtil.show("收到:" + content.getContent());
+ }
return false;
}
});
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
index 0de909b71..b92dbf8ff 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
@@ -1,6 +1,8 @@
package com.shayu.onetoone.activity;
import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
@@ -12,6 +14,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.shayu.onetoone.R;
+import com.yunbao.common.manager.IMLoginManager;
/**
* Activity基类
@@ -19,6 +22,16 @@ import com.shayu.onetoone.R;
public abstract class AbsOTOActivity extends AppCompatActivity {
public Context mContext;
+ @Override
+ public Resources getResources() {
+ Resources res = super.getResources();
+ Configuration config = new Configuration();
+ config.setToDefaults();
+ config.locale = IMLoginManager.get(this).getLocaleLanguage();
+ res.updateConfiguration(config, res.getDisplayMetrics());
+ return res;
+ }
+
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/LauncherActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/LauncherActivity.java
index 24fc82da7..1da2e8458 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/LauncherActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/LauncherActivity.java
@@ -1,7 +1,5 @@
package com.shayu.onetoone.activity;
-import static com.yunbao.common.CommonAppContext.home_zdy_img_cn;
-import static com.yunbao.common.CommonAppContext.home_zdy_img_us;
import static com.yunbao.common.CommonAppContext.sInstance;
import android.content.Context;
@@ -19,7 +17,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
-import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -28,9 +25,6 @@ import androidx.core.app.NotificationManagerCompat;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.blankj.utilcode.util.DeviceUtils;
-import com.blankj.utilcode.util.GsonUtils;
-import com.lzy.okgo.model.Response;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.login.EntryActivity;
import com.shayu.onetoone.manager.RouteManager;
@@ -43,24 +37,17 @@ import com.tencent.rtmp.TXLivePlayer;
import com.tencent.rtmp.ui.TXCloudVideoView;
import com.tencent.ugc.TXUGCBase;
import com.yunbao.common.CommonAppConfig;
-import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AdBean;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.IMLoginModel;
-import com.yunbao.common.bean.UserBean;
import com.yunbao.common.custom.CircleProgress;
import com.yunbao.common.event.DataUserInfoEvent;
-import com.yunbao.common.event.UpdateTablePointMe;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
-import com.yunbao.common.http.HttpCallback;
-import com.yunbao.common.http.HttpClient;
-import com.yunbao.common.http.JsonBean;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
-import com.yunbao.common.manager.NoviceInstructorManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DownloadUtil;
import com.yunbao.common.utils.L;
@@ -73,32 +60,8 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
-import com.linecorp.linesdk.Scope;
-import com.linecorp.linesdk.auth.LineAuthenticationParams;
-import com.linecorp.linesdk.auth.LineLoginApi;
-import com.linecorp.linesdk.auth.LineLoginResult;
-import com.twitter.sdk.android.core.Callback;
-import com.twitter.sdk.android.core.DefaultLogger;
-import com.twitter.sdk.android.core.Result;
-import com.twitter.sdk.android.core.Twitter;
-import com.twitter.sdk.android.core.TwitterAuthConfig;
-import com.twitter.sdk.android.core.TwitterAuthToken;
-import com.twitter.sdk.android.core.TwitterConfig;
-import com.twitter.sdk.android.core.TwitterException;
-import com.twitter.sdk.android.core.TwitterSession;
-import com.twitter.sdk.android.core.identity.TwitterLoginButton;
-import com.facebook.AccessToken;
-import com.facebook.CallbackManager;
-import com.facebook.FacebookCallback;
-import com.facebook.FacebookException;
-import com.facebook.Profile;
-import com.facebook.ProfileTracker;
-import com.facebook.login.LoginManager;
-import com.facebook.login.LoginResult;
-
import java.io.File;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
/**
@@ -129,15 +92,6 @@ public class LauncherActivity extends AbsOTOActivity implements View.OnClickList
private int mVideoLastProgress;
private boolean mForward;
- @Override
- public Resources getResources() {
- Resources res = super.getResources();
- Configuration config = new Configuration();
- config.setToDefaults();
- config.locale = IMLoginManager.get(this).getLocaleLanguage();
- res.updateConfiguration(config, res.getDisplayMetrics());
- return res;
- }
@Override
protected int getLayoutId() {
@@ -246,7 +200,7 @@ public class LauncherActivity extends AbsOTOActivity implements View.OnClickList
playAD(obj.getIntValue("type") == 0);
} else {
releaseVideo();
- LauncherActivity.this.startActivity(new Intent(LauncherActivity.this, EntryActivity.class));
+ RouteManager.forwardEntryActivity();
LauncherActivity.this.finish();
}
} else {
@@ -287,7 +241,7 @@ public class LauncherActivity extends AbsOTOActivity implements View.OnClickList
IMLoginManager.get(this).upDataUserInfo();
} else {
releaseVideo();
- this.startActivity(new Intent(this, EntryActivity.class));
+ RouteManager.forwardEntryActivity();
this.finish();
}
@@ -599,7 +553,7 @@ public class LauncherActivity extends AbsOTOActivity implements View.OnClickList
forwardMainActivity();
} else {
releaseVideo();
- this.startActivity(new Intent(this, EntryActivity.class));
+ RouteManager.forwardEntryActivity();
this.finish();
}
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
index a98c1d431..70097a3b6 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
@@ -1,5 +1,6 @@
package com.shayu.onetoone.activity;
+import android.net.Uri;
import android.os.Bundle;
import android.view.View;
@@ -20,6 +21,8 @@ import com.shayu.onetoone.activity.fragments.MessageFragment;
import com.shayu.onetoone.activity.fragments.MyFragment;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.ToastUtil;
@@ -27,7 +30,9 @@ import java.util.ArrayList;
import java.util.List;
import io.rong.imkit.RongIM;
+import io.rong.imkit.userinfo.RongUserInfoManager;
import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.UserInfo;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.functions.Function4;
@@ -82,6 +87,9 @@ public class MainActivity extends AbsOTOActivity {
}
});
RongcloudIMManager.connectIM(mContext);
+ IMLoginModel userInfo = IMLoginManager.get(this).getUserInfo();
+ UserInfo info = new UserInfo(userInfo.getId() + "", userInfo.getUserNicename(), Uri.parse(userInfo.getAvatar()));
+ RongUserInfoManager.getInstance().refreshUserInfoCache(info);
}
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MessageFragment.java
index 23decc80c..ba12a5b17 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MessageFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MessageFragment.java
@@ -46,7 +46,7 @@ public class MessageFragment extends BaseFragment implements View.OnClickListene
DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout);
more = itemView.findViewById(R.id.more);
more.setOnClickListener(this);
- moreXPopup = new XPopup.Builder(getContext()).watchView(more);
+ moreXPopup = new XPopup.Builder(getContext()).atView(more);
viewPager2.setUserInputEnabled(false);
//绑定ViewPager2到tabLayout
ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false);
@@ -74,6 +74,7 @@ public class MessageFragment extends BaseFragment implements View.OnClickListene
public Boolean invoke(View itemView, Integer index, Boolean select, Boolean fromUse) {
if (select) {//设置选择的Fragment
viewPager2.setCurrentItem(index);
+ more.setVisibility(index == 0 ? View.VISIBLE : View.GONE);
}
return false;
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java
index 07a2179ae..b8429bd1d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java
@@ -1,14 +1,20 @@
package com.shayu.onetoone.activity.fragments.message;
+import android.app.Dialog;
+import android.content.Context;
import android.graphics.Color;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.text.SpannableString;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -17,42 +23,60 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.MsgMessageRecyclerViewAdapter;
import com.shayu.onetoone.bean.MsgMessageBean;
+import com.shayu.onetoone.event.MessageMsgBusEvent;
import com.yanzhenjie.recyclerview.OnItemMenuClickListener;
+import com.yanzhenjie.recyclerview.OnItemMenuStateListener;
import com.yanzhenjie.recyclerview.SwipeMenuBridge;
import com.yanzhenjie.recyclerview.SwipeMenuCreator;
import com.yanzhenjie.recyclerview.SwipeMenuItem;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.RandomUtil;
+import com.yunbao.common.utils.StringUtil;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import io.rong.common.RLog;
+import io.rong.imkit.GlideKitImageEngine;
import io.rong.imkit.IMCenter;
import io.rong.imkit.config.ConversationListBehaviorListener;
import io.rong.imkit.config.RongConfigCenter;
-import io.rong.imkit.conversationlist.ConversationListAdapter;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.model.GatheredConversation;
+import io.rong.imkit.conversationlist.model.SingleConversation;
import io.rong.imkit.conversationlist.viewmodel.ConversationListViewModel;
import io.rong.imkit.event.Event;
import io.rong.imkit.model.NoticeContent;
+import io.rong.imkit.userinfo.RongUserInfoManager;
import io.rong.imkit.utils.RouteUtils;
import io.rong.imkit.widget.FixedLinearLayoutManager;
import io.rong.imkit.widget.adapter.BaseAdapter;
import io.rong.imkit.widget.adapter.ViewHolder;
+import io.rong.imkit.widget.dialog.OptionsPopupDialog;
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
import io.rong.imkit.widget.refresh.api.RefreshLayout;
import io.rong.imkit.widget.refresh.constant.RefreshState;
import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener;
import io.rong.imkit.widget.refresh.listener.OnRefreshListener;
import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader;
+import io.rong.imlib.IRongCoreCallback;
+import io.rong.imlib.IRongCoreEnum;
+import io.rong.imlib.RongCoreClient;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.UserInfo;
/**
* 消息-消息
@@ -72,40 +96,204 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
protected Handler mHandler = new Handler(Looper.getMainLooper());
protected boolean delayRefresh = false;
+ View notification, interaction, system;
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ Bus.getOff(this);
+ }
+
+ private class SwipeRunnable {
+ private int menuPosition;
+ private int adapterPosition;
+
+ public SwipeRunnable(int menuPosition, int adapterPosition) {
+ this.menuPosition = menuPosition;
+ this.adapterPosition = adapterPosition;
+ }
+ }
+
+ private SwipeRunnable swipeRunnable = null;
+
@Override
public void initView(View itemView) {
+ Bus.getOn(this);
mList = itemView.findViewById(R.id.recyclerView);
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
mAdapter = new MsgMessageRecyclerViewAdapter();
list = new ArrayList<>();
- initData();
mList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
mList.setSwipeMenuCreator(initSwipeMenuCreator());
- initMoreListener();
mList.setOnItemMenuClickListener(new OnItemMenuClickListener() {
@Override
public void onItemClick(SwipeMenuBridge menuBridge, int adapterPosition) {
+ swipeRunnable = new SwipeRunnable(menuBridge.getPosition(), adapterPosition);
menuBridge.closeMenu();
- if (menuBridge.getPosition() == 0) {
- BaseUiConversation conversation = mAdapter.getData().get(adapterPosition);
- IMCenter.getInstance().setConversationToTop(Conversation.ConversationType.PRIVATE, conversation.mCore.getTargetId(), !conversation.mCore.isTop(), true, new RongIMClient.ResultCallback() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- }
-
- @Override
- public void onError(RongIMClient.ErrorCode e) {
+ }
+ });
+ mList.setOnItemMenuStateListener(new OnItemMenuStateListener() {
+ @Override
+ public void onMenuState(RecyclerView.ViewHolder viewHolder, int menuState) {
+ if (menuState == CLOSED && swipeRunnable != null) {
+ mHandler.postDelayed(() -> {
+ BaseUiConversation conversation = mAdapter.getData().get(swipeRunnable.adapterPosition);
+ if (swipeRunnable.menuPosition == 0) {
+ topItem(conversation, swipeRunnable.adapterPosition);
+ // ToastUtil.showDebug("置顶:" + mAdapter.getList().get(adapterPosition).getNickname());
+ } else {
+ removeItem(conversation, swipeRunnable.adapterPosition);
+ // ToastUtil.showDebug("删除:" + mAdapter.getList().get(adapterPosition).getNickname());
+ //mAdapter.getData().remove(adapterPosition);
+ //mAdapter.notifyDataSetChanged();
}
- });
- // ToastUtil.showDebug("置顶:" + mAdapter.getList().get(adapterPosition).getNickname());
- } else {
- // ToastUtil.showDebug("删除:" + mAdapter.getList().get(adapterPosition).getNickname());
- mAdapter.getData().remove(adapterPosition);
- mAdapter.notifyDataSetChanged();
+ swipeRunnable = null;
+ }, 100);
}
}
});
+ initListTop();
+ initUserInfo(0);
+ initRongConfig();
+ }
+
+ private void initRongConfig() {
+ RongConfigCenter.featureConfig().setKitImageEngine(new GlideKitImageEngine() {
+ @Override
+ public void loadConversationListPortrait(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, Conversation conversation) {
+ super.loadConversationListPortrait(context, url, imageView, conversation);
+ ImgLoader.displayAvatarForCircleCrop(context, url, imageView);
+ }
+ });
+ }
+
+ private void initUserInfo(long timer) {
+ RongIMClient.getInstance().getConversationListByPage(new RongIMClient.ResultCallback>() {
+ @Override
+ public void onSuccess(List conversations) {
+ long destructTime = 0;
+ for (Conversation conversation : conversations) {
+ String targetId = conversation.getTargetId();
+ Log.i(TAG, "targetId = " + targetId);
+ UserInfo info = new UserInfo(targetId, "用户名" + targetId, Uri.parse("https://downs.yaoulive.com/avatar/12.jpg"));
+ JSONObject json = new JSONObject();
+ json.put("sex", RandomUtil.nextInt(20) % 2);
+ json.put("age", RandomUtil.nextInt(40));
+ info.setExtra(json.toJSONString());
+ RongUserInfoManager.getInstance().refreshUserInfoCache(info);
+ if (conversations.size() < 10) {
+ destructTime = conversation.getSentTime();
+ }
+ }
+ if (destructTime > 0) {
+ initUserInfo(destructTime);
+ }
+ }
+
+ @Override
+ public void onError(RongIMClient.ErrorCode e) {
+
+ }
+ }, timer, 10, Conversation.ConversationType.PRIVATE);
+ }
+
+
+ private void initListTop() {
+
+ mAdapter.add(setTopData("官方通知", "测试", "12:00", null, 5), 0);
+ mAdapter.add(setTopData("互动消息", "测试2", "13:00", null, 0), 1);
+ mAdapter.add(setTopData("系统消息", "测试3", "14:00", null, 15), 2);
+
+
+ }
+
+ private SingleConversation setTopData(String title, String content, String time, String avatar, int num) {
+ SingleConversation conversation = new SingleConversation(getContext(), new Conversation());
+ conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
+ conversation.mCore.setSenderUserName(title);
+ conversation.mCore.setConversationTitle(title + "?");
+ conversation.mConversationContent = new SpannableString(content);
+ conversation.mCore.setSentTime(System.currentTimeMillis());
+ conversation.mCore.setUnreadMessageCount(num);
+ conversation.mCore.setTargetId("10000");
+ return conversation;
+ }
+
+ private void clearTopData() {
+
+ }
+
+ public void allRead() {
+ clearTopData();
+ RongCoreClient.getInstance().getUnreadConversationList(new IRongCoreCallback.ResultCallback>() {
+ @Override
+ public void onSuccess(List conversations) {
+ for (Conversation conversation : conversations) {
+ if (conversation.getConversationType() != Conversation.ConversationType.PRIVATE) {
+ continue;
+ }
+ IMCenter.getInstance().clearMessagesUnreadStatus(conversation.getConversationType(),
+ conversation.getTargetId(),
+ new RongIMClient.ResultCallback() {
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ }
+
+ @Override
+ public void onError(RongIMClient.ErrorCode e) {
+ System.out.println("标记失败:" + e.getMessage());
+ }
+ });
+
+ }
+ }
+
+ @Override
+ public void onError(IRongCoreEnum.CoreErrorCode e) {
+ System.err.println(e.getMessage() + "|" + e.code);
+ }
+ }, Conversation.ConversationType.PRIVATE);
+
+ }
+
+ /**
+ * 置顶会话
+ */
+ private void topItem(BaseUiConversation conversation, int adapterPosition) {
+ IMCenter.getInstance().setConversationToTop(conversation.getConversationIdentifier(), !conversation.mCore.isTop(), false, new RongIMClient.ResultCallback() {
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ Log.i(TAG, "置顶 onSuccess: " + aBoolean);
+ mList.requestLayout();
+ mList.invalidate();
+ }
+
+ @Override
+ public void onError(RongIMClient.ErrorCode e) {
+ Log.e(TAG, "置顶 onError: " + e.code + "|" + e.msg);
+ }
+ });
+ }
+
+ /**
+ * 删除会话
+ */
+ private void removeItem(BaseUiConversation conversation, int adapterPosition) {
+ Conversation.ConversationType conversationType = conversation.mCore.getConversationType();
+ String targetId = conversation.mCore.getTargetId();
+ IMCenter.getInstance().removeConversation(conversationType, targetId, new RongIMClient.ResultCallback() {
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ Log.i(TAG, "删除 onSuccess: " + aBoolean);
+ //mRefreshLayout.postInvalidate();
+ }
+
+ @Override
+ public void onError(RongIMClient.ErrorCode e) {
+ Log.e(TAG, "删除 onError: " + e.code + "|" + e.msg);
+ }
+ });
}
@Override
@@ -204,13 +392,13 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
if (MsgMessageFragment.this.mRefreshLayout != null) {
MsgMessageFragment.this.mRefreshLayout.finishLoadMore();
} else {
- RLog.d(MsgMessageFragment.this.TAG, "onChanged finishLoadMore error");
+ RLog.d(TAG, "onChanged finishLoadMore error");
}
} else if (refreshEvent.state.equals(RefreshState.RefreshFinish)) {
if (MsgMessageFragment.this.mRefreshLayout != null) {
MsgMessageFragment.this.mRefreshLayout.finishRefresh();
} else {
- RLog.d(MsgMessageFragment.this.TAG, "onChanged finishRefresh error");
+ RLog.d(TAG, "onChanged finishRefresh error");
}
}
@@ -253,7 +441,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
BaseUiConversation baseUiConversation = (BaseUiConversation) this.mAdapter.getItem(position);
ConversationListBehaviorListener listBehaviorListener = RongConfigCenter.conversationListConfig().getListener();
if (listBehaviorListener != null && listBehaviorListener.onConversationClick(view.getContext(), view, baseUiConversation)) {
- RLog.d(this.TAG, "ConversationList item click event has been intercepted by App.");
+ RLog.d(TAG, "ConversationList item click event has been intercepted by App.");
} else {
if (baseUiConversation != null && baseUiConversation.mCore != null) {
if (baseUiConversation instanceof GatheredConversation) {
@@ -262,7 +450,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
RouteUtils.routeToConversationActivity(view.getContext(), baseUiConversation.getConversationIdentifier());
}
} else {
- RLog.e(this.TAG, "invalid conversation.");
+ RLog.e(TAG, "invalid conversation.");
}
}
@@ -295,41 +483,10 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
return creator;
}
- private void initMoreListener() {
- SwipeRecyclerView.LoadMoreListener moreListener = new SwipeRecyclerView.LoadMoreListener() {
- @Override
- public void onLoadMore() {
- List tmp =
- new ArrayList<>(list);
- initData();
- tmp.addAll(list);
- // mAdapter.setDataCollection(tmp);
- list = new ArrayList<>(tmp);
- mList.loadMoreFinish(false, true);
- }
- };
- mList.setLoadMoreListener(moreListener);
- }
-
-
- private void initData() {
- list = new ArrayList<>();
- for (int i = 0; i < 20; i++) {
- MsgMessageBean bean = new MsgMessageBean();
- bean.setId(i);
- bean.setNickname("名字" + i);
- bean.setContent("内容" + i);
- bean.setTime("时间:" + i);
- if (i % 5 == 0) {
- bean.setNotRead(true);
- bean.setNotReadNum(i);
- }
- if (i % 2 == 0) {
- bean.setAvatar("https://downs.yaoulive.com/%E4%BA%A4%E5%8F%89%2015%403x.png");
- } else {
- bean.setAvatar("https://downs.yaoulive.com/%E4%BA%A4%E5%8F%89%2014%403x.png");
- }
- list.add(bean);
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void busEvent(MessageMsgBusEvent event) {
+ if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) {
+ allRead();
}
}
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/EntryActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/EntryActivity.java
index 3df91b69e..0d0023da3 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/EntryActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/EntryActivity.java
@@ -4,15 +4,12 @@ import static com.yunbao.common.CommonAppContext.home_zdy_img_cn;
import static com.yunbao.common.CommonAppContext.home_zdy_img_us;
import android.annotation.SuppressLint;
-import android.app.Activity;
import android.app.Dialog;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.graphics.Paint;
-import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -26,10 +23,8 @@ import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import android.widget.VideoView;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
@@ -58,7 +53,11 @@ import com.linecorp.linesdk.auth.LineAuthenticationParams;
import com.linecorp.linesdk.auth.LineLoginApi;
import com.linecorp.linesdk.auth.LineLoginResult;
import com.shayu.onetoone.R;
-import com.shayu.onetoone.utils.MainHttpUtil;
+import com.shayu.onetoone.activity.AbsOTOActivity;
+import com.shayu.onetoone.bean.JoinAnchorBean;
+import com.shayu.onetoone.bean.UserBean;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.shayu.onetoone.manager.RouteManager;
import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.DefaultLogger;
import com.twitter.sdk.android.core.Result;
@@ -74,13 +73,12 @@ import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.FaceBookUpModel;
+import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.LoginData;
-import com.yunbao.common.bean.UserBean;
-import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
-import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
@@ -89,6 +87,7 @@ import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import org.greenrobot.eventbus.EventBus;
@@ -105,21 +104,19 @@ import java.util.TimerTask;
/**
* 入口
*/
-@Route(path = RouteUtil.PATH_ENTRY)
-public class EntryActivity extends AppCompatActivity {
+@Route(path = RouteManager.ACTIVITY_ENTRY)
+public class EntryActivity extends AbsOTOActivity {
private ImageView btn_phone, btn_line;
private TextView btn_tip, btn_tip1, tv_customer;
private TwitterLoginButton tt_login_button;
private LinearLayout btn_google;
- public static Activity activity;
private static String mLoginType = Constants.MOB_PHONE;//登录方式
public String mPromoCode = "", UserID = "";//推广码
private String mUuidDevice = "";//手机唯一标识符
private static boolean mFirstLogin;//是否是第一次登录
private static boolean mShowInvite;//显示邀请码弹窗
- private static Context Contexts;
private GoogleSignInClient mGoogleSignInClient;
private LinearLayout lt_btn_twitter, lt_btn_facebook, lt_customer;
private String kefuUrl = "";
@@ -146,11 +143,16 @@ public class EntryActivity extends AppCompatActivity {
}
}
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_entry;
+ }
+
public void Get_hash_key() {
PackageInfo info;
try {
- info = getPackageManager().getPackageInfo("com.pdlive.shayu", PackageManager.GET_SIGNATURES);
+ info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
@@ -169,16 +171,12 @@ public class EntryActivity extends AppCompatActivity {
}
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_entry);
+ protected void main(Bundle savedInstanceState) {
if (getIntent().getBooleanExtra("forwardEntry", false)) {
IMLoginManager.get(this).logout(this);
ToastUtil.show(R.string.login_invalid);
}
Get_hash_key();
- activity = this;
- Contexts = this;
setStatusBar();
lt_btn_facebook = findViewById(R.id.lt_btn_facebook);
lt_btn_twitter = findViewById(R.id.lt_btn_twitter);
@@ -208,21 +206,19 @@ public class EntryActivity extends AppCompatActivity {
btn_tip1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY,false);
+ WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY, false);
}
});
btn_tip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY1,false);
+ WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY1, false);
}
});
-
-
EventBus.getDefault().register(this);
getPromoCode();
@@ -237,13 +233,13 @@ public class EntryActivity extends AppCompatActivity {
}
timerOutBtn(view);
MainNetManager.get(EntryActivity.this)
- .FaceBookUp(new com.yunbao.common.http.base.HttpCallback() {
+ .FaceBookUp(new HttpCallback() {
@Override
public void onSuccess(FaceBookUpModel data) {
if (data.getType().equals("0")) {
LoginManager.getInstance().logInWithReadPermissions(EntryActivity.this, Arrays.asList("public_profile"));
} else {
- WebViewActivity.forward(EntryActivity.this, data.getLink() + "?",false);
+ WebViewActivity.forward(EntryActivity.this, data.getLink() + "?", false);
}
}
@@ -362,23 +358,25 @@ public class EntryActivity extends AppCompatActivity {
public void onClick(View v) {
if (!"".equals(kefuUrl)) {
Constants.LoginKefu = true;
- WebViewActivity.forward(EntryActivity.this, kefuUrl,false);
+ WebViewActivity.forward(EntryActivity.this, kefuUrl, false);
}
}
});
}
private void getUrl() {
- MainHttpUtil.getCustomerService(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (info != null) {
- if (info.length > 0) {
- kefuUrl = info[0];
+ OTONetManager.getInstance(mContext)
+ .getCustomerService(new HttpCallback() {
+ @Override
+ public void onSuccess(String data) {
+ kefuUrl = data;
}
- }
- }
- });
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
}
private void twitterLoginSet() {
@@ -558,9 +556,9 @@ public class EntryActivity extends AppCompatActivity {
super.onResume();
}
- public static void ToLogin() {
- activity.startActivity(new Intent(activity, LoginActivity.class));
- activity.finish();
+ public void ToLogin() {
+ RouteManager.forwardLoginActivity();
+ finish();
}
private static final String EMAIL = "email";
@@ -573,39 +571,36 @@ public class EntryActivity extends AppCompatActivity {
if (CommonAppConfig.IS_GOOGLE_PLAY == true) {
mPromoCode = "";
}
- MainHttpUtil.loginByThird(UserID, data.getOpenID(), mPromoCode, mUuidDevice, data.getNickName(), data.getAvatar(), data.getType(), new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- onLoginSuccess(code, msg, info);
- }
- });
+ OTONetManager.getInstance(mContext)
+ .userLoginByThird(UserID, data.getOpenID(), mPromoCode, mUuidDevice, data.getNickName(), data.getAvatar(), data.getType(),
+ new HttpCallback() {
+ @Override
+ public void onSuccess(IMLoginModel data) {
+ onLoginSuccess(data);
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+
}
//登录成功!
- private void onLoginSuccess(int code, String msg, String[] info) {
- Log.e("他", code + "code" + info.toString());
- if (code == 0 && info.length > 0) {
-
- JSONObject obj = JSON.parseObject(info[0]);
- String uid = obj.getString("id");
- String token = obj.getString("token");
- if (obj.containsKey("need_bind") && obj.getString("need_bind").equals("0")) {
- mFirstLogin = obj.getIntValue("first_login") == 1;
- mShowInvite = obj.getIntValue("isagent") == 1;
- CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
- //设置登录信息
- IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class);
- IMLoginManager.get(activity).setupLoginUser(model);
- //融云连接服务器
- RongcloudIMManager.connectIM(activity);
- getBaseUserInfo();
-
- } else {
-// Contexts.startActivity(new Intent(Contexts, BindUserActivity.class).putExtra("uid", uid).putExtra("token", token));
- }
- } else {
- ToastUtil.show(msg + "11212");
+ private void onLoginSuccess(IMLoginModel data) {
+ String uid = data.getId() + "";
+ String token = data.getToken();
+ if (data.getNeedBind() == 0) {
+ mFirstLogin = data.getFirstLogin() == 1;
+ mShowInvite = data.getIsagent() == 1;
+ CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
+ //设置登录信息
+ IMLoginManager.get(mContext).setupLoginUser(data);
+ //融云连接服务器
+ RongcloudIMManager.connectIM(mContext);
+ getBaseUserInfo();
}
}
@@ -613,78 +608,52 @@ public class EntryActivity extends AppCompatActivity {
* 获取用户信息
*/
private void getBaseUserInfo() {
- MainHttpUtil.getBaseInfo(new CommonCallback() {
- @Override
- public void callback(UserBean bean) {
-
- if (mFirstLogin) {
- if (CommonAppConfig.IS_GOOGLE_PLAY == true) {
-// EntryActivity.this.startActivity(new Intent(EntryActivity.this, OneLoginActivity.class));
- } else {
- HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor")
- .execute(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (info[0] != null) {
- JSONObject obj = JSON.parseObject(info[0]);
- IMLoginManager.get(EntryActivity.this).setNewUserGif(true);
- IMLoginManager.get(EntryActivity.this).setisNewUserOne(true);
+ OTONetManager.getInstance(mContext)
+ .getBaseInfos(true,new HttpCallback() {
+ @Override
+ public void onSuccess(UserBean data) {
+ if (mFirstLogin) {
+ if (CommonAppConfig.IS_GOOGLE_PLAY) {
+ RouteManager.forwardMainActivity();
+ } else {
+ OTONetManager.getInstance(mContext)
+ .getRandJoinAnchor(new HttpCallback() {
+ @Override
+ public void onSuccess(JoinAnchorBean data) {
+ IMLoginManager.get(EntryActivity.this).setNewUserGif(true);
+ IMLoginManager.get(EntryActivity.this).setisNewUserOne(true);
// MainActivity.forward(EntryActivity.this, false);
- gotoLive(obj.getString("anchor_id"));
- if (obj.containsKey("home_zdy_img_us")) {
- home_zdy_img_us = obj.getString("home_zdy_img_us");
- home_zdy_img_cn = obj.getString("home_zdy_img_cn");
- }
- if (obj.containsKey("home_zdy_pop")) {
- NoviceInstructorManager.get(activity).setHomeZdyPop(obj.getString(
- "home_zdy_pop"));
+ if (!StringUtil.isEmpty(data.getHome_zdy_img_us())) {
+ home_zdy_img_us = data.getHome_zdy_img_us();
+ home_zdy_img_cn = data.getHome_zdy_img_cn();
+ }
+ if (!StringUtil.isEmpty(data.getHome_zdy_pop())) {
+ NoviceInstructorManager.get(mContext).setHomeZdyPop(data.getHome_zdy_pop());
+ }
+ RouteManager.forwardMainActivity();
}
- } else {
-// MainActivity.forward(EntryActivity.this, false);
- }
- }
- });
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+
+ } else {
+ RouteManager.forwardMainActivity();
+ }
+ finish();
}
- } else {
-// MainActivity.forward(EntryActivity.this, false);
- }
- EntryActivity.activity.finish();
- }
- });
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
}
- private void gotoLive(final String live_id) {
- LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (code == 0 && info.length > 0) {
- LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
- if (liveBean == null) {
- return;
- }
- new LiveRoomCheckLivePresenter(activity, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
- @Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
- }
-
- @Override
- public void onCheckError(String contextError) {
-
- }
- });
- NoviceInstructorManager.get(activity).setFrist(false);
-
-
- } else {
-// MainActivity.forward(EntryActivity.this, false);
- }
- }
- });
- }
-
private void timerOutBtn(View btn) {
if (mBtnClick) {
return;
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
index 097c8db80..2a421a913 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
@@ -7,6 +7,7 @@ import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -28,7 +29,11 @@ import com.fm.openinstall.listener.AppInstallAdapter;
import com.fm.openinstall.model.AppData;
import com.lzy.okgo.model.Response;
import com.shayu.onetoone.R;
+import com.shayu.onetoone.activity.AbsOTOActivity;
import com.shayu.onetoone.activity.MainActivity;
+import com.shayu.onetoone.bean.JoinAnchorBean;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.MainHttpUtil;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
@@ -55,6 +60,7 @@ import com.yunbao.common.manager.NoviceInstructorManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -67,8 +73,8 @@ import org.greenrobot.eventbus.ThreadMode;
/**
* Created by cxf on 2018/9/17.
*/
-@Route(path = RouteUtil.PATH_LOGIN)
-public class LoginActivity extends AbsActivity {
+@Route(path = RouteManager.ACTIVITY_LOGIN)
+public class LoginActivity extends AbsOTOActivity {
private View mRoot;
// private ImageView mBg;
@@ -94,6 +100,7 @@ public class LoginActivity extends AbsActivity {
return R.layout.activity_login;
}
+
// @Subscribe(threadMode = ThreadMode.MAIN)
// public void onRegSuccessEvent(RegSuccessEvent e) {
// if (!isFinishing()) {
@@ -102,7 +109,7 @@ public class LoginActivity extends AbsActivity {
// }
@Override
- protected void main() {
+ protected void main(Bundle savedInstanceState) {
EventBus.getDefault().register(this);
initUserArea();
mRoot = findViewById(R.id.root);
@@ -176,13 +183,6 @@ public class LoginActivity extends AbsActivity {
}
- public static void forward() {
- Intent intent = new Intent(CommonAppContext.sInstance, LoginActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- CommonAppContext.sInstance.startActivity(intent);
- }
-
-
public void loginClick(View v) {
ViewClicksAntiShake.clicksAntiShake(v, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
@@ -235,12 +235,19 @@ public class LoginActivity extends AbsActivity {
loadingDialog = new LoadingDialog();
loadingDialog.show(getSupportFragmentManager(), "LoadingDialog");
loadingDialog.setShowText(getString(R.string.login_ing));
- MainHttpUtil.login(phoneNum, pwd, uuid, new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- onLoginSuccess(code, msg, info);
- }
- });
+ OTONetManager.getInstance(mContext)
+ .login(phoneNum, pwd, uuid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(IMLoginModel data) {
+ onLoginSuccess(data);
+ }
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
+ loadingDialog.dismiss();
+ }
+ });
hideKeyboard(mEditPwd);
}
@@ -256,102 +263,66 @@ public class LoginActivity extends AbsActivity {
//登录即代表同意服务和隐私条款
private void forwardTip() {
- WebViewActivity.forward(mContext, HtmlConfig.LOGIN_PRIVCAY,false);
+ WebViewActivity.forward(mContext, HtmlConfig.LOGIN_PRIVCAY, false);
}
- private void gotoLive(final String live_id) {
- LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (code == 0 && info.length > 0) {
- LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
- if (liveBean == null) {
- return;
- }
- new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
- @Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
- }
-
- @Override
- public void onCheckError(String contextError) {
-
- }
- });
- NoviceInstructorManager.get(activity).setFrist(false);
-
- } else {
-// MainActivity.forward(LoginActivity.this, false);
- }
- }
- });
- }
-
//登录成功!
- private void onLoginSuccess(int code, String msg, String[] info) {
- if (code == 0 && info.length > 0) {
- JSONObject obj = JSON.parseObject(info[0]);
- String uid = obj.getString("id");
- String token = obj.getString("token");
- mFirstLogin = obj.getIntValue("first_login") == 1;
- mShowInvite = obj.getIntValue("isagent") == 1;
- CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
- //设置登录信息
- IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class);
- IMLoginManager.get(activity).setupLoginUser(model);
- getBaseUserInfo();
- } else {
- ToastUtil.show(msg);
- loadingDialog.dismiss();
- }
+ private void onLoginSuccess(IMLoginModel data) {
+ String uid = data.getId() + "";
+ String token = data.getToken();
+ mFirstLogin = data.getFirstLogin() == 1;
+ mShowInvite = data.getIsagent() == 1;
+ CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
+ //设置登录信息
+ IMLoginManager.get(activity).setupLoginUser(data);
+ getBaseUserInfo();
}
/**
* 获取用户信息
*/
private void getBaseUserInfo() {
- MainHttpUtil.getBaseInfo(new CommonCallback() {
- @Override
- public void callback(UserBean bean) {
- //融云连接服务器
- RongcloudIMManager.connectIM(activity);
- HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor")
- .execute(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (info != null && info.length > 0 && info[0] != null && mFirstLogin) {
- JSONObject obj = JSON.parseObject(info[0]);
- if (obj.containsKey("home_zdy_img_us")) {
- home_zdy_img_us = obj.getString("home_zdy_img_us");
- home_zdy_img_cn = obj.getString("home_zdy_img_cn");
+ OTONetManager.getInstance(mContext)
+ .getBaseInfos(true, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
+ RongcloudIMManager.connectIM(mContext);
+ OTONetManager.getInstance(mContext)
+ .getRandJoinAnchor(new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(JoinAnchorBean data) {
+ if (mFirstLogin) {
+ IMLoginManager.get(mContext).setNewUserGif(true);
+ IMLoginManager.get(mContext).setisNewUserOne(true);
+// MainActivity.forward(EntryActivity.this, false);
+ if (!StringUtil.isEmpty(data.getHome_zdy_img_us())) {
+ home_zdy_img_us = data.getHome_zdy_img_us();
+ home_zdy_img_cn = data.getHome_zdy_img_cn();
+ }
+ if (!StringUtil.isEmpty(data.getHome_zdy_pop())) {
+ NoviceInstructorManager.get(mContext).setHomeZdyPop(data.getHome_zdy_pop());
+ }
+ IMLoginManager.get(mContext).setisNewUserOne(true);
+ IMLoginManager.get(mContext).setNewUserGif(true);
+ }
+ loadingDialog.dismiss();
+ RouteManager.forwardMainActivity();
+ finish();
}
- startActivity(new Intent(LoginActivity.this,MainActivity.class));
- gotoLive(obj.getString("anchor_id"));
- IMLoginManager.get(mContext).setisNewUserOne(true);
- IMLoginManager.get(mContext).setNewUserGif(true);
- if (obj.containsKey("home_zdy_pop")) {
- NoviceInstructorManager.get(mContext).setHomeZdyPop(obj.getString("home_zdy_pop"));
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
}
- } else {
- startActivity(new Intent(LoginActivity.this,MainActivity.class));
- }
- loadingDialog.dismiss();
- finish();
+ });
+ }
- }
+ @Override
+ public void onError(String error) {
- @Override
- public void onError(Response response) {
- super.onError(response);
- String message = response.message();
- System.out.println(">>>>>" + message);
- }
- });
-
- }
- });
+ }
+ });
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/MsgMessageRecyclerViewAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/MsgMessageRecyclerViewAdapter.java
index 6a7831027..9ba773252 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/adapter/MsgMessageRecyclerViewAdapter.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/MsgMessageRecyclerViewAdapter.java
@@ -1,21 +1,14 @@
package com.shayu.onetoone.adapter;
-import android.content.Context;
import android.text.SpannableString;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-import com.shayu.onetoone.R;
-import com.shayu.onetoone.bean.MsgMessageBean;
-import com.yunbao.common.glide.ImgLoader;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import io.rong.imkit.conversationlist.ConversationListAdapter;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
@@ -27,19 +20,43 @@ import io.rong.imlib.model.Conversation;
* 聊天列表适配器
*/
public class MsgMessageRecyclerViewAdapter extends ConversationListAdapter {
+ List conversationList = null;
+ Map map = new HashMap<>();
+
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
- BaseUiConversation uiConversation = mDataList.get(position);
- if (uiConversation.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
- SingleConversation conversation = (SingleConversation) uiConversation;
- if (conversation.mConversationContent.length() >= 6) {
- conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString().substring(0, 6) + "...·");
- } else {
- conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString() + " ·");
- }
- } else if (uiConversation.mCore.getConversationType() == Conversation.ConversationType.GROUP) {
- mDataList.remove(position);
- }
+
super.onBindViewHolder(holder, position);
}
+
+ @Override
+ public void setDataCollection(List data) {
+ List tmp = new ArrayList<>();
+ if(conversationList!=null) {
+ tmp.addAll(conversationList);
+ }
+ for (BaseUiConversation datum : data) {
+ if (datum.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
+ SingleConversation conversation = (SingleConversation) datum;
+ if (conversation.mConversationContent.length() >= 6) {
+ conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString().substring(0, 6) + "...·");
+ } else {
+ conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString() + "·");
+ }
+ tmp.add(datum);
+ }
+ }
+ for (BaseUiConversation conversation : map.keySet()) {
+ if ( map.get(conversation) >= tmp.size()) {
+ tmp.add(conversation);
+ }else{
+ tmp.add(map.get(conversation),conversation);
+ }
+ }
+ super.setDataCollection(tmp);
+ }
+
+ public void add(SingleConversation item, int position) {
+ map.put(item, position);
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/JoinAnchorBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/JoinAnchorBean.java
new file mode 100644
index 000000000..30c7645f6
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/JoinAnchorBean.java
@@ -0,0 +1,54 @@
+package com.shayu.onetoone.bean;
+
+import com.yunbao.common.bean.BaseModel;
+
+public class JoinAnchorBean extends BaseModel {
+ private String anchor_id;
+ private String anchor_stream;
+ private String home_zdy_img_us;
+ private String home_zdy_img_cn;
+ private String home_zdy_pop;
+
+ public JoinAnchorBean() {
+ }
+
+ public String getAnchor_id() {
+ return anchor_id;
+ }
+
+ public void setAnchor_id(String anchor_id) {
+ this.anchor_id = anchor_id;
+ }
+
+ public String getAnchor_stream() {
+ return anchor_stream;
+ }
+
+ public void setAnchor_stream(String anchor_stream) {
+ this.anchor_stream = anchor_stream;
+ }
+
+ public String getHome_zdy_img_us() {
+ return home_zdy_img_us;
+ }
+
+ public void setHome_zdy_img_us(String home_zdy_img_us) {
+ this.home_zdy_img_us = home_zdy_img_us;
+ }
+
+ public String getHome_zdy_img_cn() {
+ return home_zdy_img_cn;
+ }
+
+ public void setHome_zdy_img_cn(String home_zdy_img_cn) {
+ this.home_zdy_img_cn = home_zdy_img_cn;
+ }
+
+ public String getHome_zdy_pop() {
+ return home_zdy_pop;
+ }
+
+ public void setHome_zdy_pop(String home_zdy_pop) {
+ this.home_zdy_pop = home_zdy_pop;
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
new file mode 100644
index 000000000..6914c2f7b
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
@@ -0,0 +1,428 @@
+package com.shayu.onetoone.bean;
+
+
+import com.yunbao.common.bean.BaseModel;
+import com.yunbao.common.bean.IMLoginModel;
+
+public class UserBean extends BaseModel {
+ IMLoginModel user;
+ UserInfo info;
+ UserLevel level;
+
+ public UserBean() {
+ }
+
+ public IMLoginModel getUser() {
+ return user;
+ }
+
+ public void setUser(IMLoginModel user) {
+ this.user = user;
+ }
+
+ public UserInfo getInfo() {
+ return info;
+ }
+
+ public void setInfo(UserInfo info) {
+ this.info = info;
+ }
+
+ public UserLevel getLevel() {
+ return level;
+ }
+
+ public void setLevel(UserLevel level) {
+ this.level = level;
+ }
+
+ public static class UserInfo{
+ private int id;
+ private String label_id;
+ private String cn_label;
+ private String en_label;
+ private int first_mate;
+ private long create_time;
+ private long update_time;
+ private int sex;
+ private int b_y;
+ private int b_ym;
+ private int b_ymd;
+ private int name_auth;
+ private long name_auth_time;
+ private String auth_front;
+ private String auth_back;
+ private String auth_remark;
+ private int sage_auth;
+ private long sage_auth_time;
+ private int is_hot;
+ private String vodie_price;
+ private String price;
+ private int star;
+ private String area;
+ private int is_hello;
+ private String star_name;
+
+ public UserInfo() {
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getLabel_id() {
+ return label_id;
+ }
+
+ public void setLabel_id(String label_id) {
+ this.label_id = label_id;
+ }
+
+ public String getCn_label() {
+ return cn_label;
+ }
+
+ public void setCn_label(String cn_label) {
+ this.cn_label = cn_label;
+ }
+
+ public String getEn_label() {
+ return en_label;
+ }
+
+ public void setEn_label(String en_label) {
+ this.en_label = en_label;
+ }
+
+ public int getFirst_mate() {
+ return first_mate;
+ }
+
+ public void setFirst_mate(int first_mate) {
+ this.first_mate = first_mate;
+ }
+
+ public long getCreate_time() {
+ return create_time;
+ }
+
+ public void setCreate_time(long create_time) {
+ this.create_time = create_time;
+ }
+
+ public long getUpdate_time() {
+ return update_time;
+ }
+
+ public void setUpdate_time(long update_time) {
+ this.update_time = update_time;
+ }
+
+ public int getSex() {
+ return sex;
+ }
+
+ public void setSex(int sex) {
+ this.sex = sex;
+ }
+
+ public int getB_y() {
+ return b_y;
+ }
+
+ public void setB_y(int b_y) {
+ this.b_y = b_y;
+ }
+
+ public int getB_ym() {
+ return b_ym;
+ }
+
+ public void setB_ym(int b_ym) {
+ this.b_ym = b_ym;
+ }
+
+ public int getB_ymd() {
+ return b_ymd;
+ }
+
+ public void setB_ymd(int b_ymd) {
+ this.b_ymd = b_ymd;
+ }
+
+ public int getName_auth() {
+ return name_auth;
+ }
+
+ public void setName_auth(int name_auth) {
+ this.name_auth = name_auth;
+ }
+
+ public long getName_auth_time() {
+ return name_auth_time;
+ }
+
+ public void setName_auth_time(long name_auth_time) {
+ this.name_auth_time = name_auth_time;
+ }
+
+ public String getAuth_front() {
+ return auth_front;
+ }
+
+ public void setAuth_front(String auth_front) {
+ this.auth_front = auth_front;
+ }
+
+ public String getAuth_back() {
+ return auth_back;
+ }
+
+ public void setAuth_back(String auth_back) {
+ this.auth_back = auth_back;
+ }
+
+ public String getAuth_remark() {
+ return auth_remark;
+ }
+
+ public void setAuth_remark(String auth_remark) {
+ this.auth_remark = auth_remark;
+ }
+
+ public int getSage_auth() {
+ return sage_auth;
+ }
+
+ public void setSage_auth(int sage_auth) {
+ this.sage_auth = sage_auth;
+ }
+
+ public long getSage_auth_time() {
+ return sage_auth_time;
+ }
+
+ public void setSage_auth_time(long sage_auth_time) {
+ this.sage_auth_time = sage_auth_time;
+ }
+
+ public int getIs_hot() {
+ return is_hot;
+ }
+
+ public void setIs_hot(int is_hot) {
+ this.is_hot = is_hot;
+ }
+
+ public String getVodie_price() {
+ return vodie_price;
+ }
+
+ public void setVodie_price(String vodie_price) {
+ this.vodie_price = vodie_price;
+ }
+
+ public String getPrice() {
+ return price;
+ }
+
+ public void setPrice(String price) {
+ this.price = price;
+ }
+
+ public int getStar() {
+ return star;
+ }
+
+ public void setStar(int star) {
+ this.star = star;
+ }
+
+ public String getArea() {
+ return area;
+ }
+
+ public void setArea(String area) {
+ this.area = area;
+ }
+
+ public int getIs_hello() {
+ return is_hello;
+ }
+
+ public void setIs_hello(int is_hello) {
+ this.is_hello = is_hello;
+ }
+
+ public String getStar_name() {
+ return star_name;
+ }
+
+ public void setStar_name(String star_name) {
+ this.star_name = star_name;
+ }
+ }
+
+ public static class UserLevel{
+ private int id;
+ private int wealth;
+ private int wealth_level;
+ private int charm;
+ private int charm_level;
+ private int level;
+ private int exp;
+ private long wealth_update;
+ private long wealth_level_update;
+ private long charm_update;
+ private long charm_level_update;
+ private long exp_update;
+ private long level_update;
+ private long create_time;
+ private String icon;
+ private String charm_icon;
+ private String wealth_icon;
+
+ public UserLevel() {
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getWealth() {
+ return wealth;
+ }
+
+ public void setWealth(int wealth) {
+ this.wealth = wealth;
+ }
+
+ public int getWealth_level() {
+ return wealth_level;
+ }
+
+ public void setWealth_level(int wealth_level) {
+ this.wealth_level = wealth_level;
+ }
+
+ public int getCharm() {
+ return charm;
+ }
+
+ public void setCharm(int charm) {
+ this.charm = charm;
+ }
+
+ public int getCharm_level() {
+ return charm_level;
+ }
+
+ public void setCharm_level(int charm_level) {
+ this.charm_level = charm_level;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
+ public int getExp() {
+ return exp;
+ }
+
+ public void setExp(int exp) {
+ this.exp = exp;
+ }
+
+ public long getWealth_update() {
+ return wealth_update;
+ }
+
+ public void setWealth_update(long wealth_update) {
+ this.wealth_update = wealth_update;
+ }
+
+ public long getWealth_level_update() {
+ return wealth_level_update;
+ }
+
+ public void setWealth_level_update(long wealth_level_update) {
+ this.wealth_level_update = wealth_level_update;
+ }
+
+ public long getCharm_update() {
+ return charm_update;
+ }
+
+ public void setCharm_update(long charm_update) {
+ this.charm_update = charm_update;
+ }
+
+ public long getCharm_level_update() {
+ return charm_level_update;
+ }
+
+ public void setCharm_level_update(long charm_level_update) {
+ this.charm_level_update = charm_level_update;
+ }
+
+ public long getExp_update() {
+ return exp_update;
+ }
+
+ public void setExp_update(long exp_update) {
+ this.exp_update = exp_update;
+ }
+
+ public long getLevel_update() {
+ return level_update;
+ }
+
+ public void setLevel_update(long level_update) {
+ this.level_update = level_update;
+ }
+
+ public long getCreate_time() {
+ return create_time;
+ }
+
+ public void setCreate_time(long create_time) {
+ this.create_time = create_time;
+ }
+
+ public String getIcon() {
+ return icon;
+ }
+
+ public void setIcon(String icon) {
+ this.icon = icon;
+ }
+
+ public String getCharm_icon() {
+ return charm_icon;
+ }
+
+ public void setCharm_icon(String charm_icon) {
+ this.charm_icon = charm_icon;
+ }
+
+ public String getWealth_icon() {
+ return wealth_icon;
+ }
+
+ public void setWealth_icon(String wealth_icon) {
+ this.wealth_icon = wealth_icon;
+ }
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
index eb156e2c2..80f847986 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
@@ -7,7 +7,9 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.core.AttachPopupView;
import com.shayu.onetoone.R;
+import com.shayu.onetoone.event.MessageMsgBusEvent;
import com.shayu.onetoone.manager.RouteManager;
+import com.yunbao.common.utils.Bus;
/**
* 消息右上角更多菜单
@@ -39,7 +41,7 @@ public class MsgMoreDialog extends AttachPopupView implements View.OnClickListen
if (id == R.id.ll_config) {
RouteManager.forwardMsgMoreConfigActivity();
} else if (id == R.id.ll_read) {
-
+ Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_ALL_READ));
}
dismiss();
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/event/AbsBusEvent.java b/OneToOne/src/main/java/com/shayu/onetoone/event/AbsBusEvent.java
new file mode 100644
index 000000000..c45d1cd53
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/event/AbsBusEvent.java
@@ -0,0 +1,26 @@
+package com.shayu.onetoone.event;
+
+public abstract class AbsBusEvent {
+ private int type;
+ private String content;
+
+ public AbsBusEvent(int type) {
+ this.type = type;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java b/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java
new file mode 100644
index 000000000..22c71085b
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java
@@ -0,0 +1,9 @@
+package com.shayu.onetoone.event;
+
+public class MessageMsgBusEvent extends AbsBusEvent {
+ public static final int TYPE_ALL_READ = 0;
+
+ public MessageMsgBusEvent(int type) {
+ super(type);
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
index 3f7170245..1475745d6 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
@@ -1,11 +1,20 @@
package com.shayu.onetoone.manager;
import android.content.Context;
+import android.util.Log;
-import com.yunbao.common.bean.GiftNamingInfoModel;
-import com.yunbao.common.http.API;
+import com.shayu.onetoone.bean.JoinAnchorBean;
+import com.shayu.onetoone.bean.UserBean;
+import com.shayu.onetoone.network.API;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.bean.BaseModel;
+import com.yunbao.common.bean.HttpCallbackModel;
+import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.http.base.HttpCallback;
+import com.yunbao.common.utils.MD5Util;
+
+import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
@@ -15,9 +24,13 @@ import io.reactivex.schedulers.Schedulers;
* 网络管理类 使用参考{@link com.yunbao.common.http.live.LiveNetManager}
*/
public class OTONetManager {
+ private static final String TAG = "网络请求";
+ private static final String SALT = "76576076c1f5f657b634e966c8836a06";
+ private static final String DEVICE = "android";
private Context mContext;
private static OTONetManager mInstance;
+
private OTONetManager(Context context) {
this.mContext = context;
}
@@ -28,29 +41,141 @@ public class OTONetManager {
}
return mInstance;
}
-//示例
-/*
- public void getGiftNamingInfo(String giftId, HttpCallback callback) {
- API.get().pdLiveApi(mContext)
- .getGiftNamingInfo(giftId)
+
+ /**
+ * 手机号登录
+ */
+ public void login(String phoneNum, String pwd, String uuid, HttpCallback callback) {
+ API.get().otoApi(mContext).loginByManager(phoneNum, pwd, uuid, "", "Android")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Consumer>() {
+ .subscribe(new Consumer>() {
@Override
- public void accept(ResponseModel liveGiftBeanResponseModel) throws Exception {
- if (callback!=null){
+ public void accept(ResponseModel imLoginModelResponseModel) throws Exception {
+ if (callback != null) {
+ IMLoginModel model = imLoginModelResponseModel.getData().getInfo();
+ callback.onSuccess(model);
+ }
+ }
+ }, throwable -> {
+ Log.e(TAG, "accept: ", throwable);
+ if (callback != null) {
+ callback.onError(throwable.getMessage());
+ }
+ }).isDisposed();
+ }
+
+ public void getBaseInfos(boolean isLogin, HttpCallback callback) {
+ API.get().otoApi(mContext)
+ .getBaseInfos(isLogin ? 1 : 0)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>() {
+ @Override
+ public void accept(ResponseModel liveGiftBeanResponseModel) throws Exception {
+ if (callback != null) {
callback.onSuccess(liveGiftBeanResponseModel.getData().getInfo());
}
}
}, new Consumer() {
@Override
public void accept(Throwable throwable) throws Exception {
+ Log.e(TAG, "accept: ", throwable);
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
-*/
+
+ public void getRandJoinAnchor(HttpCallback callback) {
+ API.get().otoApi(mContext)
+ .getRandJoinAnchor()
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>>() {
+ @Override
+ public void accept(ResponseModel> model) throws Exception {
+ if (callback != null) {
+ callback.onSuccess(model.getData().getInfo().get(0));
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ Log.e(TAG, "accept: ", throwable);
+ if (callback != null) {
+ callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
+ }
+ }
+ }).isDisposed();
+ }
+
+ public void getCustomerService(HttpCallback callback) {
+ API.get().otoApi(mContext)
+ .getCustomerService()
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>>() {
+ @Override
+ public void accept(ResponseModel> model) throws Exception {
+ if (callback != null) {
+ callback.onSuccess(model.getData().getInfo().get(0));
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ Log.e(TAG, "accept: ", throwable);
+ if (callback != null) {
+ callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
+ }
+ }
+ }).isDisposed();
+ }
+
+ public void userLoginByThird(String uid,
+ String openId,
+ String promCode,
+ String uuid,
+ String nickName,
+ String avatar,
+ String type,
+ HttpCallback callback) {
+ String sign = MD5Util.getMD5("openid=" + openId + "&" + SALT);
+ API.get().otoApi(mContext)
+ .userLoginByThird(uid,
+ openId,
+ promCode,
+ uuid,
+ nickName,
+ avatar,
+ CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "3",
+ DEVICE,
+ sign,
+ "Android",
+ type,
+ ""
+ )
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>() {
+ @Override
+ public void accept(ResponseModel model) throws Exception {
+ if (callback != null) {
+ callback.onSuccess(model.getData().getInfo());
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ Log.e(TAG, "accept: ", throwable);
+ if (callback != null) {
+ callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
+ }
+ }
+ }).isDisposed();
+ }
+
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
index 63958998d..d4474d2d9 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
@@ -9,7 +9,8 @@ public class RouteManager {
public static final String ACTIVITY_MAIN = "/activity/MainActivity"; //主页
public static final String ACTIVITY_MSG_MORE_CONFIG_ACTIVITY = "/activity/MsgMoreConfigActivity";//打招呼页面
public static final String ACTIVITY_MSG_CHAT = "/activity/ChatActivity";//聊天页面
-
+ public static final String ACTIVITY_ENTRY = "/activity/EntryActivity";
+ public static final String ACTIVITY_LOGIN = "/activity/LoginActivity";
public static void forwardMainActivity() {
ARouter.getInstance().build(ACTIVITY_MAIN)
@@ -25,4 +26,13 @@ public class RouteManager {
ARouter.getInstance().build(ACTIVITY_MSG_CHAT)
.navigation();
}
+
+ public static void forwardEntryActivity() {
+ ARouter.getInstance().build(ACTIVITY_ENTRY)
+ .navigation();
+ }
+ public static void forwardLoginActivity() {
+ ARouter.getInstance().build(ACTIVITY_LOGIN)
+ .navigation();
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
index 9cb3ee677..0e480bdd9 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
@@ -1,6 +1,8 @@
package com.shayu.onetoone.network;
import com.alibaba.fastjson.JSONObject;
+import com.shayu.onetoone.bean.JoinAnchorBean;
+import com.shayu.onetoone.bean.UserBean;
import com.yunbao.common.bean.ActiveModel;
import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.AnchorRecommendModel;
@@ -75,6 +77,68 @@ import retrofit2.http.QueryMap;
* 1v1网络接口访问 参考 {@link com.yunbao.common.http.PDLiveApi}
*/
public interface OneToOneApi {
+ /**
+ * 用户手机号登录
+ *
+ */
+ @FormUrlEncoded
+ @POST("/api/public/?service=Login.userLogin")
+ Observable> loginByManager(
+ @Field("user_login") String userName,
+ @Field("user_pass") String passWord,
+ @Field("uuid_Device") String uuidDevice,
+ @Field("pushid") String pushid,
+ @Field("lastlogindevice") String lastlogindevice
+ );
+ /**
+ * 用户手机号登录
+ */
+ @GET("/api/public/?service=Friendappinfos.getInfo")
+ Observable> getBaseInfos(@Query("login")int login);
+ @GET("/api/public/?service=Home.getRandJoinAnchor")
+ Observable>> getRandJoinAnchor();
+ @GET("/api/public/?service=Home.getCustomerService")
+ Observable>> getCustomerService();
+ @GET("/api/public/?service=Login.userLoginByThird")
+ Observable> userLoginByThird(@Query("user_id")String uid,
+ @Query("openid") String openId,
+ @Query("admin_id") String promCode,
+ @Query("uuid_Device") String uuid,
+ @Query("nicename") String nickName,
+ @Query("avatar") String avatar,
+ @Query("app_source")String source,
+ @Query("source")String devices,
+ @Query("sign")String sign,
+ @Query("lastlogindevice")String lastlogindevice,
+ @Query("type") String type,
+ @Query("pushid")String pushid
+ );
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/provider/CustomConversationProvider.java b/OneToOne/src/main/java/com/shayu/onetoone/provider/CustomConversationProvider.java
index 999092f29..d74a62b4f 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/provider/CustomConversationProvider.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/provider/CustomConversationProvider.java
@@ -1,12 +1,19 @@
package com.shayu.onetoone.provider;
+import android.text.SpannableString;
+
+import com.alibaba.fastjson.JSONObject;
+import com.shayu.onetoone.R;
+
import java.util.List;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.provider.BaseConversationProvider;
+import io.rong.imkit.userinfo.RongUserInfoManager;
import io.rong.imkit.widget.adapter.IViewProviderListener;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.UserInfo;
public class CustomConversationProvider extends BaseConversationProvider {
@Override
@@ -16,8 +23,17 @@ public class CustomConversationProvider extends BaseConversationProvider {
@Override
public void bindViewHolder(ViewHolder holder, BaseUiConversation uiConversation, int position, List list, IViewProviderListener listener) {
+ String targetId = uiConversation.mCore.getTargetId();
+ UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
+ if(userInfo!=null){
+ JSONObject json=JSONObject.parseObject(userInfo.getExtra());
+ if(json.getInteger("sex")==0){
+ holder.setImageResource(R.id.sex,R.mipmap.ic_message_tab_woman);
+ }else{
+ holder.setImageResource(R.id.sex,R.mipmap.ic_message_tab_man);
+ }
+ }
super.bindViewHolder(holder, uiConversation, position, list, listener);
- BaseUiConversation conversation = list.get(position);
}
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatTipsItemProvider.java b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatTipsItemProvider.java
index 8d7ac2d2a..ceb896172 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatTipsItemProvider.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatTipsItemProvider.java
@@ -2,6 +2,7 @@ package com.shayu.onetoone.provider;
import android.content.Context;
import android.text.Spannable;
+import android.text.SpannableString;
import android.view.ViewGroup;
import com.shayu.onetoone.R;
diff --git a/OneToOne/src/main/res/layout/activity_main.xml b/OneToOne/src/main/res/layout/activity_main.xml
index 9853df0ee..1e5878084 100644
--- a/OneToOne/src/main/res/layout/activity_main.xml
+++ b/OneToOne/src/main/res/layout/activity_main.xml
@@ -46,7 +46,7 @@
android:layout_height="wrap_content"
android:textSize="10sp"
android:gravity="center"
- android:text="TextView1" />
+ android:text="交友" />
+ android:text="动态" />
+ android:text="消息" />
+ android:text="我的" />
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/rc_conversationlist_item.xml b/OneToOne/src/main/res/layout/rc_conversationlist_item.xml
index 19e7d57a5..ac93c3710 100644
--- a/OneToOne/src/main/res/layout/rc_conversationlist_item.xml
+++ b/OneToOne/src/main/res/layout/rc_conversationlist_item.xml
@@ -4,19 +4,40 @@
xmlns:tools="http://schemas.android.com/tools"
android:background="#F7F7F7"
android:layout_width="match_parent"
+ android:layout_marginEnd="16dp"
+ android:layout_marginStart="16dp"
android:layout_height="wrap_content">
-
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
@@ -52,7 +74,6 @@
android:id="@+id/rc_conversation_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginEnd="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
diff --git a/OneToOne/src/main/res/layout/rc_extension_input_panel.xml b/OneToOne/src/main/res/layout/rc_extension_input_panel.xml
index 5545f9965..cc0bac77c 100644
--- a/OneToOne/src/main/res/layout/rc_extension_input_panel.xml
+++ b/OneToOne/src/main/res/layout/rc_extension_input_panel.xml
@@ -32,7 +32,8 @@
android:visibility="visible"
app:layout_constraintEnd_toStartOf="@+id/input_panel_emoji_btn"
app:layout_constraintStart_toEndOf="@+id/input_panel_voice_toggle"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toTopOf="parent"
+ tools:visibility="visible" />
+ app:layout_constraintTop_toTopOf="parent"
+ tools:visibility="gone" />
+ app:layout_constraintTop_toBottomOf="@+id/input_panel_add_or_send">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_man.png b/OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_man.png
new file mode 100644
index 000000000..78af72b4f
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_man.png differ
diff --git a/OneToOne/src/main/res/values/colors.xml b/OneToOne/src/main/res/values/colors.xml
new file mode 100644
index 000000000..e7f03603c
--- /dev/null
+++ b/OneToOne/src/main/res/values/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #F7F7F7
+
\ No newline at end of file
diff --git a/common/build.gradle b/common/build.gradle
index 63742cc78..62428bdd8 100644
--- a/common/build.gradle
+++ b/common/build.gradle
@@ -67,6 +67,7 @@ repositories {
dependencies {
api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
api files('libs/jcc-bate-0.7.3.jar')
+ api files('libs/OpenInstall_v2.3.0.jar')
compileOnly fileTree(dir: '../libs', include: ['*.aar'])
api rootProject.ext.dependencies["appcompat-androidx"]
api rootProject.ext.dependencies["recyclerview-androidx"]
@@ -199,7 +200,7 @@ dependencies {
api 'com.makeramen:roundedimageview:2.3.0'
api 'com.google.android.gms:play-services-auth:15.0.0'
api 'com.google.android.material:material:1.4.0'
- api files('libs/OpenInstall_v2.3.0.jar')
+
// api files('libs/svgaplayer-release-v1.2.1.aar')
}
diff --git a/common/libs/OpenInstall_v2.3.0.jar b/common/libs/OpenInstall_v2.3.0.jar
new file mode 100644
index 000000000..60d2c8f1f
Binary files /dev/null and b/common/libs/OpenInstall_v2.3.0.jar differ
diff --git a/common/src/main/java/com/yunbao/common/bean/IMLoginModel.java b/common/src/main/java/com/yunbao/common/bean/IMLoginModel.java
index c9c22e008..631492d25 100644
--- a/common/src/main/java/com/yunbao/common/bean/IMLoginModel.java
+++ b/common/src/main/java/com/yunbao/common/bean/IMLoginModel.java
@@ -255,6 +255,16 @@ public class IMLoginModel extends BaseModel {
@SerializedName("guard_type")
private String guardType = "";
+ @SerializedName("need_bind")
+ int needBind;
+
+ public int getNeedBind() {
+ return needBind;
+ }
+
+ public void setNeedBind(int needBind) {
+ this.needBind = needBind;
+ }
public String getCreateTime() {
return createTime;
diff --git a/common/src/main/java/com/yunbao/common/glide/ImgLoader.java b/common/src/main/java/com/yunbao/common/glide/ImgLoader.java
index f13262a34..c6f6c01c8 100644
--- a/common/src/main/java/com/yunbao/common/glide/ImgLoader.java
+++ b/common/src/main/java/com/yunbao/common/glide/ImgLoader.java
@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestBuilder;
+import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
@@ -171,6 +172,13 @@ public class ImgLoader {
}
+ public static void displayAvatarForCircleCrop(Context context, String url, ImageView imageView) {
+ Glide.with(context).load(url)
+ .apply(RequestOptions.bitmapTransform(new CircleCrop()))
+ .error(R.mipmap.icon_avatar_placeholder)
+ .into(imageView);
+ }
+
public static void display(Context context, File file, ImageView imageView) {
if (!contextIsExist(context)) {
return;
diff --git a/common/src/main/java/com/yunbao/common/http/HttpClient.java b/common/src/main/java/com/yunbao/common/http/HttpClient.java
index 0378dc175..79b0a2cdd 100644
--- a/common/src/main/java/com/yunbao/common/http/HttpClient.java
+++ b/common/src/main/java/com/yunbao/common/http/HttpClient.java
@@ -14,6 +14,7 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.ToastUtil;
import java.util.HashMap;
import java.util.Map;