11111
This commit is contained in:
@@ -46,7 +46,10 @@
|
||||
<activity
|
||||
android:name=".activity.MainActivity"
|
||||
android:hardwareAccelerated="true"
|
||||
android:screenOrientation="portrait" />
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/noAnimationStyle"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".activity.UserHomeActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -122,6 +125,14 @@
|
||||
<activity
|
||||
android:name=".activity.MyWebViewActivity2"
|
||||
android:screenOrientation="portrait" />
|
||||
<!--融云消息列表界面-->
|
||||
<activity
|
||||
android:name=".activity.PDLiveConversationListActivity"
|
||||
android:hardwareAccelerated="true"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/noAnimationStyle"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -31,6 +31,7 @@ import com.adjust.sdk.AdjustEvent;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.DeviceUtils;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.facebook.AccessToken;
|
||||
import com.facebook.CallbackManager;
|
||||
import com.facebook.FacebookCallback;
|
||||
@@ -65,11 +66,14 @@ import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.LoginData;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.dialog.LoginTipsDialog;
|
||||
@@ -712,8 +716,11 @@ public class EntryActivity extends AppCompatActivity {
|
||||
mShowInvite = obj.getIntValue("isagent") == 1;
|
||||
CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
|
||||
getBaseUserInfo();
|
||||
//友盟统计登录
|
||||
// MobclickAgent.onProfileSignIn(mLoginType, uid);
|
||||
//设置登录信息
|
||||
IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class);
|
||||
IMLoginManager.get(activity).setupLoginUser(model);
|
||||
//融云连接服务器
|
||||
RongcloudIMManager.connectIM(activity);
|
||||
} else {
|
||||
Contexts.startActivity(new Intent(Contexts, BindUserActivity.class).putExtra("uid", uid).putExtra("token", token));
|
||||
}
|
||||
@@ -785,7 +792,6 @@ public class EntryActivity extends AppCompatActivity {
|
||||
});
|
||||
|
||||
}
|
||||
// RecommendActivity.forward(Contexts, mShowInvite);
|
||||
if (CommonAppConfig.IS_GOOGLE_PLAY == true) {
|
||||
EntryActivity.this.startActivity(new Intent(EntryActivity.this, OneLoginActivity.class));
|
||||
}else{
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
@@ -19,6 +20,7 @@ import com.adjust.sdk.AdjustEvent;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.DeviceUtils;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.fm.openinstall.OpenInstall;
|
||||
import com.fm.openinstall.listener.AppInstallAdapter;
|
||||
import com.fm.openinstall.model.AppData;
|
||||
@@ -29,12 +31,15 @@ import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.bean.ConfigBean;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.LoginData;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.http.CommonHttpConsts;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.main.R;
|
||||
@@ -63,7 +68,7 @@ public class LoginActivity extends AbsActivity {
|
||||
private EditText mEditPwd;
|
||||
private View mBtnLogin;
|
||||
private RecyclerView mRecyclerView;
|
||||
// private MobLoginUtil mLoginUtil;
|
||||
// private MobLoginUtil mLoginUtil;
|
||||
private static boolean mFirstLogin;//是否是第一次登录
|
||||
private static boolean mShowInvite;//显示邀请码弹窗
|
||||
private static String mLoginType = Constants.MOB_PHONE;//登录方式
|
||||
@@ -134,19 +139,6 @@ public class LoginActivity extends AbsActivity {
|
||||
mEditPwd.addTextChangedListener(textWatcher);
|
||||
boolean otherLoginType = false;
|
||||
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
|
||||
// if (configBean != null) {
|
||||
// List<MobBean> list = MobBean.getLoginTypeList(configBean.getLoginType());
|
||||
// if (list != null && list.size() > 0) {
|
||||
// mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
|
||||
// mRecyclerView.setHasFixedSize(true);
|
||||
// mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
||||
// LoginTypeAdapter adapter = new LoginTypeAdapter(mContext, list);
|
||||
// adapter.setOnItemClickListener(this);
|
||||
// mRecyclerView.setAdapter(adapter);
|
||||
// mLoginUtil = new MobLoginUtil();
|
||||
// otherLoginType = true;
|
||||
// }
|
||||
// }
|
||||
if (!otherLoginType) {
|
||||
findViewById(R.id.other_login_tip).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
@@ -207,13 +199,6 @@ public class LoginActivity extends AbsActivity {
|
||||
mEditPhone.requestFocus();
|
||||
return;
|
||||
}
|
||||
//屏蔽,原因:国外手机号无法校验合法性
|
||||
// if (!ValidatePhoneUtil.validateMobileNumber(phoneNum)) {
|
||||
// mEditPhone.setError(WordUtil.getString(R.string.login_phone_error));
|
||||
// mEditPhone.requestFocus();
|
||||
// return;
|
||||
// }
|
||||
|
||||
pwd = mEditPwd.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(pwd)) {
|
||||
mEditPwd.setError(WordUtil.getString(R.string.login_input_pwd));
|
||||
@@ -248,7 +233,11 @@ public class LoginActivity extends AbsActivity {
|
||||
getBaseUserInfo();
|
||||
mFirebaseAnalytics.logEvent("FS_createdRole", null);
|
||||
logger.logEvent("FB_createdRole");
|
||||
|
||||
//设置登录信息
|
||||
IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class);
|
||||
IMLoginManager.get(activity).setupLoginUser(model);
|
||||
//融云连接服务器
|
||||
RongcloudIMManager.connectIM(activity);
|
||||
//友盟统计登录
|
||||
// MobclickAgent.onProfileSignIn(mLoginType, uid);
|
||||
|
||||
@@ -264,17 +253,12 @@ public class LoginActivity extends AbsActivity {
|
||||
MainHttpUtil.getBaseInfo(new CommonCallback<UserBean>() {
|
||||
@Override
|
||||
public void callback(UserBean bean) {
|
||||
// if (mFirstLogin) {
|
||||
// RecommendActivity.forward(Contexts, mShowInvite);
|
||||
// } else {
|
||||
|
||||
//完成手机号密码登录
|
||||
AdjustEvent adjustEvent1 = new AdjustEvent("4ncwlv");
|
||||
mFirebaseAnalytics.logEvent("FS_login", null);
|
||||
logger.logEvent("FB_login");
|
||||
Adjust.trackEvent(adjustEvent1);
|
||||
MainActivity.forward(Contexts, mShowInvite);
|
||||
// }
|
||||
EntryActivity.activity.finish();
|
||||
activity.finish();
|
||||
}
|
||||
|
||||
@@ -12,9 +12,6 @@ import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
@@ -22,6 +19,11 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -45,7 +47,7 @@ import com.yunbao.common.bean.LiveSvgGiftBean;
|
||||
import com.yunbao.common.bean.UpdataListBean;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.custom.TabButtonGroup;
|
||||
import com.yunbao.common.event.UpdateTablePoint;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.event.UpdateTablePointMe;
|
||||
import com.yunbao.common.http.CommonHttpConsts;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
@@ -65,11 +67,8 @@ import com.yunbao.common.views.AbsMainViewHolder;
|
||||
import com.yunbao.live.LiveConfig;
|
||||
import com.yunbao.live.activity.LiveAnchorActivity;
|
||||
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
||||
import com.yunbao.live.bean.ImUserBean;
|
||||
import com.yunbao.live.bean.LiveBean;
|
||||
import com.yunbao.live.bean.LiveKsyConfigBean;
|
||||
import com.yunbao.live.bean.RongIMEvent;
|
||||
import com.yunbao.live.http.ImHttpUtil;
|
||||
import com.yunbao.live.http.LiveHttpConsts;
|
||||
import com.yunbao.live.http.LiveHttpUtil;
|
||||
import com.yunbao.live.utils.LiveStorge;
|
||||
@@ -77,10 +76,12 @@ import com.yunbao.live.views.ChatListViewHolder;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.dialog.MainStartDialogFragment;
|
||||
import com.yunbao.main.dialog.SigninDialog;
|
||||
import com.yunbao.main.event.PDLiveConversationListEvent;
|
||||
import com.yunbao.main.http.MainHttpConsts;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
import com.yunbao.main.interfaces.MainAppBarLayoutListener;
|
||||
import com.yunbao.main.interfaces.MainStartChooseCallback;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
import com.yunbao.main.presenter.CheckLivePresenter;
|
||||
import com.yunbao.main.utils.GenerateTestUserSig;
|
||||
import com.yunbao.main.views.MainHomeCommunityViewHolder;
|
||||
@@ -103,17 +104,6 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.rongcloud.rtc.api.RCRTCConfig;
|
||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
||||
import io.rong.imlib.IRongCoreListener;
|
||||
import io.rong.imlib.RongCoreClient;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
import io.rong.message.SightMessage;
|
||||
|
||||
import static io.rong.imlib.IRongCoreListener.ConnectionStatusListener.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT;
|
||||
|
||||
public class MainActivity extends AbsActivity implements MainAppBarLayoutListener {
|
||||
|
||||
public static RelativeLayout rt_main_tab;
|
||||
@@ -127,7 +117,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
private MainHomeVideoViewHolder mainHomeVideoViewHolder;
|
||||
private MainHomeShopViewHolder mListShopViewHolder;
|
||||
private ChatListViewHolder mChatListViewHolder;
|
||||
// private MainHomeChatViewHolder mainHomeChatViewHolder;
|
||||
private MainMeViewHolder mMeViewHolder;
|
||||
private AbsMainViewHolder[] mViewHolders;
|
||||
private View mBottom;
|
||||
@@ -145,7 +134,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
private HttpCallback mGetLiveSdkCallback;
|
||||
private String mUrlCsd;
|
||||
private boolean isReady = false;
|
||||
private View v_table_redpoint, v_table_redpoint_me;
|
||||
private TextView v_table_redpoint;
|
||||
private View v_table_redpoint_me;
|
||||
|
||||
String TAG = "GooglePay";
|
||||
|
||||
@@ -153,9 +143,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
private boolean isWebClose = false;
|
||||
public static boolean isTabClose = false;
|
||||
private boolean isFirstOpen = true;
|
||||
private UserBean bean = null;
|
||||
//判断融云是否初始化成功,不成功在消息列表时重新请求
|
||||
private boolean isInitRongIM = false;
|
||||
private int messageNumber = 0, numberMe = 1;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -242,6 +230,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
ConversationIMListManager.get(this);
|
||||
//谷歌支付
|
||||
GoogleBillingUtil.setIsAutoAcknowledgePurchase(true);//设置自动确认购买
|
||||
googleBillingUtil = GoogleBillingUtil.getInstance()
|
||||
@@ -250,7 +239,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
|
||||
rt_main_tab = (RelativeLayout) findViewById(R.id.rt_main_tab);
|
||||
|
||||
v_table_redpoint = (View) findViewById(R.id.v_table_redpoint);
|
||||
v_table_redpoint = findViewById(R.id.v_table_redpoint);
|
||||
v_table_redpoint_me = (View) findViewById(R.id.v_table_redpoint_me);
|
||||
|
||||
Display mDisplay = getWindowManager().getDefaultDisplay();
|
||||
@@ -341,171 +330,19 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
}
|
||||
checkVersion();
|
||||
loginIM();
|
||||
// ImPushUtil.getInstance().resumePush();
|
||||
CommonAppConfig.getInstance().setLaunched(true);
|
||||
mFristLoad = true;
|
||||
|
||||
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
|
||||
mUrlCsd = configBean.getCustomerServerUrl();
|
||||
getD();
|
||||
|
||||
init();
|
||||
|
||||
initTXIM();
|
||||
|
||||
|
||||
mViewPager.setCurrentItem(0);
|
||||
mTabButtonGroup.setCurPosition(0);
|
||||
|
||||
isInstructor();
|
||||
//获取系统消息
|
||||
if (v_table_redpoint.getVisibility() == View.GONE) {
|
||||
getSystemMessages();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统消息(有未读数展示红点)
|
||||
*/
|
||||
private void getSystemMessages() {
|
||||
//获取系统消息列表
|
||||
ImHttpUtil.getImUserInfo("", new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0) {
|
||||
//获取系统消息列表
|
||||
List<ImUserBean> listUserBean = JSON.parseArray(Arrays.toString(info), ImUserBean.class);
|
||||
if (listUserBean != null && listUserBean.size() >= 2) {
|
||||
//目前就三条消息,需求判断前两条消息是否有未读消息
|
||||
for (int i = 0; i < listUserBean.size() - 2; i++) {
|
||||
//消息对象
|
||||
ImUserBean userBean = listUserBean.get(i);
|
||||
//未读消息数
|
||||
String number = userBean.getNum();
|
||||
//未读消息不为空并且大于0
|
||||
if (!TextUtils.isEmpty(number) && Integer.parseInt(number) > 0) {
|
||||
runOnUiThread(() -> changeTablePoint(Integer.parseInt(number)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// private void getChatPoint() {
|
||||
// RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback<Integer>() {
|
||||
//
|
||||
// @Override
|
||||
// public void onSuccess(Integer unReadCount) {
|
||||
// Log.e("ErrorCode", "sss" + unReadCount);
|
||||
// if (unReadCount > 1) {
|
||||
// v_table_redpoint.setVisibility(View.VISIBLE);
|
||||
// } else {
|
||||
// v_table_redpoint.setVisibility(View.GONE);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(RongIMClient.ErrorCode ErrorCode) {
|
||||
// Log.e("ErrorCode", "错误" + ErrorCode.msg);
|
||||
// v_table_redpoint.setVisibility(View.GONE);
|
||||
// }
|
||||
// });
|
||||
// CommonAppConfig appConfig = CommonAppConfig.getInstance();
|
||||
// UserBean u = appConfig.getUserBean();
|
||||
// if ("0".equals(u.getFront_task())) {
|
||||
// v_table_redpoint_me.setVisibility(View.VISIBLE);
|
||||
// } else {
|
||||
// v_table_redpoint_me.setVisibility(View.GONE);
|
||||
// }
|
||||
// }
|
||||
|
||||
//初始化im
|
||||
private void initRongIM(UserBean bean) {
|
||||
if (bean == null) {
|
||||
//初始化融云服务
|
||||
String[] uidAndToken = SpUtil.getInstance().getMultiStringValue(new String[]{SpUtil.UID, SpUtil.TOKEN});
|
||||
final String uid = uidAndToken[0];
|
||||
final String token = uidAndToken[1];
|
||||
if (!TextUtils.isEmpty(uid) && !TextUtils.isEmpty(token)) {
|
||||
MainHttpUtil.getBaseInfo(uid, token, new CommonCallback<UserBean>() {
|
||||
@Override
|
||||
public void callback(UserBean model) {
|
||||
if (model != null) {
|
||||
initRongIM(model);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
Log.i("ryyyy", bean.getToken_rong());
|
||||
//测试服
|
||||
// String appKey = "pvxdm17jpd3hr";
|
||||
//正式服
|
||||
String appKey = "uwd1c0sxu1p71";
|
||||
// IMLib 初始化
|
||||
RongIMClient.init(this, appKey);
|
||||
// RTCLib 初始化
|
||||
RCRTCConfig.Builder config = RCRTCConfig.Builder.create();
|
||||
RCRTCEngine.getInstance().init(getApplicationContext(), RCRTCConfig.Builder.create().enableEncoderTexture(true).build());
|
||||
|
||||
RongIMClient.connect(bean.getToken_rong(), new RongIMClient.ConnectCallback() {
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
Log.i("ryyyy", "链接成功");
|
||||
isReady = true;
|
||||
RongCoreClient.addConnectionStatusListener(new IRongCoreListener.ConnectionStatusListener() {
|
||||
@Override
|
||||
public void onChanged(ConnectionStatus status) {
|
||||
if (status == KICKED_OFFLINE_BY_OTHER_CLIENT) {
|
||||
ToastUtil.show("登錄過期,請重新登陸");
|
||||
RCRTCEngine.getInstance().unInit();
|
||||
RongIMClient.getInstance().logout();
|
||||
RongCoreClient.removeConnectionStatusListener(null);
|
||||
CommonAppConfig.getInstance().clearLoginInfo();
|
||||
LoginActivity.forward();
|
||||
}
|
||||
}
|
||||
});
|
||||
CommonAppConfig appConfig = CommonAppConfig.getInstance();
|
||||
appConfig.getAnchorLevel(bean.getLevelAnchor());
|
||||
Constants.myUid = bean.getGoodnum();
|
||||
Constants.myAvatar = bean.getAvatar();
|
||||
//没有系统消息去查询融云未读消息
|
||||
if (v_table_redpoint.getVisibility() == View.GONE) {
|
||||
getChatPoint();
|
||||
}
|
||||
isInitRongIM = true;
|
||||
EventBus.getDefault().postSticky(new RongIMEvent().setInitRongIM(true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ConnectionErrorCode connectionErrorCode) {
|
||||
//错误返回34001表示已连接直接获取未读消息,否者继续调用连接接口
|
||||
if (connectionErrorCode.getValue() == 34001) {
|
||||
//没有系统消息去查询融云未读消息
|
||||
if (v_table_redpoint.getVisibility() == View.GONE) {
|
||||
getChatPoint();
|
||||
}
|
||||
} else {
|
||||
initRongIM(null);
|
||||
}
|
||||
Log.i("ryyyy", "链接失败" + connectionErrorCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus databaseOpenStatus) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//视频注册
|
||||
ArrayList<Class<? extends MessageContent>> myMessages = new ArrayList<>();
|
||||
myMessages.add(SightMessage.class);
|
||||
RongIMClient.registerMessageType(myMessages);
|
||||
}
|
||||
|
||||
//初始化腾讯im
|
||||
private void initTXIM() {
|
||||
@@ -615,15 +452,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
} else if (i == R.id.btn_follow) {
|
||||
//关注
|
||||
FollowActivity.forward(mContext, CommonAppConfig.getInstance().getUid(), 0);
|
||||
|
||||
// } else if (i == R.id.btn_csd) {
|
||||
// //客服
|
||||
// WebViewActivity.forward(mContext,mUrlCsd);
|
||||
// }else if (i == R.id.btn_recharge) {
|
||||
// //充值
|
||||
// RouteUtil.forwardMyCoin(mContext);
|
||||
} else if (i == R.id.btn_msg) {
|
||||
// ChatActivity.forward(mContext);
|
||||
} else if (i == R.id.img_trophy) {
|
||||
MainListActivity.forward(this, 0);
|
||||
}
|
||||
@@ -818,31 +646,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
mTabButtonGroup.setCurPosition(Constants.isShowPage);
|
||||
}
|
||||
Constants.isShowPage = -1;
|
||||
//初始化融云服务
|
||||
String[] uidAndToken = SpUtil.getInstance().getMultiStringValue(new String[]{SpUtil.UID, SpUtil.TOKEN});
|
||||
final String uid = uidAndToken[0];
|
||||
final String token = uidAndToken[1];
|
||||
if (!TextUtils.isEmpty(uid) && !TextUtils.isEmpty(token)) {
|
||||
MainHttpUtil.getBaseInfo(uid, token, new CommonCallback<UserBean>() {
|
||||
@Override
|
||||
public void callback(UserBean model) {
|
||||
if (model != null) {
|
||||
bean = model;
|
||||
initRongIM(model);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
MainHttpUtil.getBaseInfo(CommonAppConfig.getInstance().getUid(), CommonAppConfig.getInstance().getToken(), new CommonCallback<UserBean>() {
|
||||
@Override
|
||||
public void callback(UserBean model) {
|
||||
if (model != null) {
|
||||
bean = model;
|
||||
initRongIM(model);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -994,28 +798,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
}
|
||||
}
|
||||
|
||||
//红点(消息中心)
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdateFieldEvent(UpdateTablePoint updateTablePoint) {
|
||||
//判断消息中心红点是否已经展示,如果已经展示并且未读消息大于0则不再执行之后的逻辑
|
||||
if (v_table_redpoint.getVisibility() == View.VISIBLE && updateTablePoint.getPoint() > 0)
|
||||
return;
|
||||
if (updateTablePoint.getPoint() > 0) {
|
||||
v_table_redpoint.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
v_table_redpoint.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
//红点(我的)
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdateFieldEvent(UpdateTablePointMe updateTablePointMe) {
|
||||
if (updateTablePointMe.getPoint() == 0) {
|
||||
v_table_redpoint_me.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
v_table_redpoint_me.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
@@ -1062,15 +844,11 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
mMainHomeCommunityViewHolder = new MainHomeCommunityViewHolder(mContext, parent, this);//社区
|
||||
vh = mMainHomeCommunityViewHolder;
|
||||
} else if (position == 2) {
|
||||
if (!isInitRongIM) {
|
||||
initRongIM(bean);
|
||||
ToastUtil.show("消息列表正在初始化……");
|
||||
return;
|
||||
}
|
||||
if (mChatListViewHolder == null) {
|
||||
mChatListViewHolder = new ChatListViewHolder(mContext, parent, 1);
|
||||
}
|
||||
vh = mChatListViewHolder;
|
||||
//跳转消息列表
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PDLiveConversationListActivity.MESSAGENUMBER, messageNumber);
|
||||
bundle.putInt(PDLiveConversationListActivity.NUMBERME, numberMe);
|
||||
ConversationIMListManager.get(this).jumpConversationList(bundle);
|
||||
} else if (position == 3) {
|
||||
mMeViewHolder = new MainMeViewHolder(mContext, parent);
|
||||
vh = mMeViewHolder;
|
||||
@@ -1177,40 +955,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
}
|
||||
}
|
||||
|
||||
public void getChatPoint() {
|
||||
Conversation.ConversationType[] conversationTypes = {Conversation.ConversationType.PRIVATE, Conversation.ConversationType.GROUP};
|
||||
boolean containBlocked = true;
|
||||
RongIMClient.getInstance().getUnreadCount(conversationTypes, containBlocked,
|
||||
new RongIMClient.ResultCallback<Integer>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(Integer unReadCount) {
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
changeTablePoint(unReadCount);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode ErrorCode) {
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
changeTablePoint(0);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//未读数
|
||||
private void changeTablePoint(int tabPoint) {
|
||||
EventBus.getDefault().post(new UpdateTablePoint(tabPoint));
|
||||
}
|
||||
|
||||
//是否管理员
|
||||
public void isInstructor() {
|
||||
@@ -1256,7 +1000,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
if (info != null && !"".equals(info[0])) {
|
||||
List<ChatRemarksBean> remarksList = new ArrayList<>();
|
||||
Map<String, String> map = JSON.parseObject(info[0], Map.class);
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
map.forEach((key, vlaue) -> {
|
||||
ChatRemarksBean chatRemarksBean = new ChatRemarksBean();
|
||||
chatRemarksBean.setUserId(key);
|
||||
@@ -1274,4 +1017,39 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onPDLiveConversationListEvent(PDLiveConversationListEvent event) {
|
||||
if (event.getPage() == 11) {
|
||||
finish();
|
||||
} else {
|
||||
mViewPager.setCurrentItem(event.getPage());
|
||||
mTabButtonGroup.setCurPosition(event.getPage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//消息中心
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(MessageIMEvent event) {
|
||||
messageNumber = event.getNumber();
|
||||
if (event.getNumber() > 0) {
|
||||
v_table_redpoint.setVisibility(View.VISIBLE);
|
||||
v_table_redpoint.setText(event.getNumber() + "");
|
||||
} else {
|
||||
v_table_redpoint.setVisibility(View.GONE);
|
||||
v_table_redpoint.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
//红点(我的)
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdateFieldEvent(UpdateTablePointMe updateTablePointMe) {
|
||||
numberMe = updateTablePointMe.getPoint();
|
||||
if (updateTablePointMe.getPoint() == 0) {
|
||||
v_table_redpoint_me.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
v_table_redpoint_me.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@ import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -60,6 +62,7 @@ import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
||||
import com.yunbao.live.views.LiveRoomViewHolder;
|
||||
import com.yunbao.main.dialog.EncourageDialog;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
import com.yunbao.video.activity.VideoPlayActivity;
|
||||
import com.yunbao.video.bean.VideoBean;
|
||||
import com.yunbao.video.utils.VideoStorge;
|
||||
@@ -93,6 +96,7 @@ public class MyWebViewActivity extends AbsActivity {
|
||||
private String urlNow = "";
|
||||
private ProcessImageUtil mImageUtil;
|
||||
private boolean isUpdataUser = false;
|
||||
private MyWebViewActivity mContext;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -101,6 +105,7 @@ public class MyWebViewActivity extends AbsActivity {
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
mContext = this;
|
||||
urlNow = getIntent().getStringExtra(Constants.URL);
|
||||
Log.e("bb22", "1121212");
|
||||
if (!"".endsWith(Constants.myUrl)) {
|
||||
@@ -289,7 +294,8 @@ public class MyWebViewActivity extends AbsActivity {
|
||||
@JavascriptInterface
|
||||
public void androidClickSayHiBack(String uid, String name, String img) {
|
||||
Constants.firstInto = 0;
|
||||
SystemMessageActivity.forward(mContext, "-2", uid, name, img);
|
||||
// SystemMessageActivity.forward(mContext, "-2", uid, name, img);
|
||||
ConversationIMListManager.get(mContext).jumpConversation(mContext, uid);
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
|
||||
@@ -0,0 +1,222 @@
|
||||
package com.yunbao.main.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.custom.TabButtonGroup;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.event.UpdateTablePointMe;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.bean.ImUserBean;
|
||||
import com.yunbao.live.http.ImHttpUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.SystemMessageAdapter;
|
||||
import com.yunbao.main.event.PDLiveConversationListEvent;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.imkit.conversationlist.ConversationListFragment;
|
||||
|
||||
/**
|
||||
* pdlive消息中心
|
||||
*/
|
||||
public class PDLiveConversationListActivity extends AbsActivity {
|
||||
//菜单
|
||||
private TabButtonGroup mTabButtonGroup;
|
||||
public static String CLASSNAME = "PDLiveConversationListActivity", MESSAGENUMBER = "messageNumber", NUMBERME = "numberMe";
|
||||
private PDLiveConversationListActivity mContext;
|
||||
private ConversationListFragment conversationListFragment;
|
||||
private FrameLayout container;
|
||||
private long mLastClickBackTime;//上次点击back键的时间
|
||||
private TextView redPoint;
|
||||
private View redpointMe;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_conversation_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
super.main();
|
||||
EventBus.getDefault().register(this);
|
||||
mContext = this;
|
||||
initView();
|
||||
initData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化控件
|
||||
*/
|
||||
private void initView() {
|
||||
//菜单
|
||||
mTabButtonGroup = findViewById(R.id.tab_group);
|
||||
container = findViewById(R.id.container);
|
||||
redPoint = findViewById(R.id.v_table_redpoint);
|
||||
redpointMe = findViewById(R.id.v_table_redpoint_me);
|
||||
|
||||
mTabButtonGroup.setCurPosition(2);
|
||||
|
||||
//选中监听
|
||||
mTabButtonGroup.addTabButtonGroupChangeListener((view, index) -> {
|
||||
Log.e(CLASSNAME, "onPageSelected:" + index);
|
||||
if (index != 2) {
|
||||
//打开主页菜单,关闭消息中心
|
||||
EventBus.getDefault().post(new PDLiveConversationListEvent().setPage(index));
|
||||
//防止重新加载多个
|
||||
startActivity(new Intent(mContext, MainActivity.class));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*/
|
||||
private void initData() {
|
||||
//获取系统消息列表
|
||||
ImHttpUtil.getImUserInfo("", new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0) {
|
||||
container.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
List<ImUserBean> listUserBean = JSON.parseArray(Arrays.toString(info), ImUserBean.class);
|
||||
addSystemMessagesView(listUserBean);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
//刷新列表内用户信息
|
||||
ConversationIMListManager.get(mContext).addUserInfoProvider();
|
||||
//消息中心
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
if (bundle != null) {
|
||||
int messageNumber = bundle.getInt(MESSAGENUMBER, 0);
|
||||
int numberMe = bundle.getInt(NUMBERME, 1);
|
||||
onMessageIMEvent(new MessageIMEvent().setNumber(messageNumber));
|
||||
onUpdateFieldEvent(new UpdateTablePointMe(numberMe));
|
||||
}
|
||||
//获取一下系统通知
|
||||
MessageIMManager.get(this).getSystemMessages();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加头部系统消息
|
||||
*
|
||||
* @param listUserBean 数据源
|
||||
*/
|
||||
private void addSystemMessagesView(List<ImUserBean> listUserBean) {
|
||||
//倒序展示
|
||||
Collections.reverse(listUserBean);
|
||||
//展示会话列表
|
||||
conversationListFragment = new ConversationListFragment();
|
||||
FragmentManager manager = getSupportFragmentManager();
|
||||
FragmentTransaction transaction = manager.beginTransaction();
|
||||
transaction.replace(R.id.container, conversationListFragment);
|
||||
transaction.commit();
|
||||
//自定义空数据背景View
|
||||
conversationListFragment.setEmptyView(com.yunbao.live.R.layout.view_layout_msg);
|
||||
//初始化系统消息界面
|
||||
View rootView = LayoutInflater.from(mContext).inflate(R.layout.view_system_message, null, true);
|
||||
RecyclerView systemMessageList = rootView.findViewById(R.id.system_message_list);
|
||||
SystemMessageAdapter messageAdapter = new SystemMessageAdapter(mContext);
|
||||
messageAdapter.addDataAll(listUserBean);
|
||||
systemMessageList.setHasFixedSize(false);
|
||||
systemMessageList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
|
||||
systemMessageList.setAdapter(messageAdapter);
|
||||
conversationListFragment.addHeaderView(rootView);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mTabButtonGroup != null) {
|
||||
mTabButtonGroup.cancelAnim();
|
||||
}
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestart() {
|
||||
super.onRestart();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
long curTime = System.currentTimeMillis();
|
||||
if (curTime - mLastClickBackTime > 2000) {
|
||||
mLastClickBackTime = curTime;
|
||||
ToastUtil.show(R.string.main_click_next_exit);
|
||||
} else {
|
||||
EventBus.getDefault().post(new PDLiveConversationListEvent().setPage(11));
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
||||
public void onMessageIMEvent(MessageIMEvent event) {
|
||||
if (redPoint == null) return;
|
||||
if (event.getNumber() > 0) {
|
||||
redPoint.setVisibility(View.VISIBLE);
|
||||
redPoint.setText(String.valueOf(event.getNumber()));
|
||||
} else {
|
||||
redPoint.setVisibility(View.GONE);
|
||||
redPoint.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
//红点(我的)
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdateFieldEvent(UpdateTablePointMe updateTablePointMe) {
|
||||
if (redpointMe == null) return;
|
||||
if (updateTablePointMe.getPoint() == 0) {
|
||||
redpointMe.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
redpointMe.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ import com.adjust.sdk.AdjustEvent;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.DeviceUtils;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.facebook.appevents.AppEventsConstants;
|
||||
import com.fm.openinstall.OpenInstall;
|
||||
import com.fm.openinstall.listener.AppInstallAdapter;
|
||||
@@ -34,10 +35,13 @@ import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
@@ -87,6 +91,7 @@ public class RegisterActivity extends AbsActivity {
|
||||
private WebSettings webSettings;
|
||||
private LinearLayout yqm_view;
|
||||
private ArrayList<Country> allCountries = new ArrayList<>();
|
||||
private RegisterActivity activity;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -96,6 +101,13 @@ public class RegisterActivity extends AbsActivity {
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
activity = this;
|
||||
//谷歌
|
||||
mFirebaseAnalytics.logEvent("FS_complete_2nd_loading", null);
|
||||
logger.logEvent("FB_complete_2nd_loading");
|
||||
AdjustEvent adjustEvent = new AdjustEvent("pooqmz");
|
||||
Adjust.trackEvent(adjustEvent);
|
||||
|
||||
// setTitle(WordUtil.getString(R.string.reg_register));
|
||||
|
||||
AdjustEvent adjustEvent = new AdjustEvent("pooqmz");
|
||||
@@ -397,7 +409,7 @@ public class RegisterActivity extends AbsActivity {
|
||||
mDialog.show();
|
||||
}
|
||||
|
||||
MainHttpUtil.register(edit_invitecode_2.getText().toString().trim(),phoneNum, mPromoCode, mUuidDevice, mCountryCode, pwd, pwd2, code, new HttpCallback() {
|
||||
MainHttpUtil.register(edit_invitecode_2.getText().toString().trim(), phoneNum, mPromoCode, mUuidDevice, mCountryCode, pwd, pwd2, code, new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0) {
|
||||
@@ -422,7 +434,6 @@ public class RegisterActivity extends AbsActivity {
|
||||
params1);
|
||||
|
||||
|
||||
|
||||
login(phoneNum, pwd, mUuidDevice);
|
||||
OpenInstall.reportRegister();
|
||||
} else {
|
||||
@@ -454,7 +465,7 @@ public class RegisterActivity extends AbsActivity {
|
||||
if (appData.getData() != null && !appData.getData().equals("")) {
|
||||
JSONObject data = JSON.parseObject(appData.getData());
|
||||
mPromoCode = data.getString("admin_id") + "";
|
||||
if(!mPromoCode.equals("")) {
|
||||
if (!mPromoCode.equals("")) {
|
||||
yqm_view.setVisibility(View.GONE);
|
||||
}
|
||||
Log.d("OpenInstall", "appData.getData()1111= " + mPromoCode);
|
||||
@@ -477,8 +488,11 @@ public class RegisterActivity extends AbsActivity {
|
||||
CommonAppConfig.getInstance().setLoginInfo(uid, token, true);
|
||||
|
||||
getBaseUserInfo();
|
||||
//友盟统计登录
|
||||
// MobclickAgent.onProfileSignIn(Constants.MOB_PHONE, uid);
|
||||
//设置登录信息
|
||||
IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class);
|
||||
IMLoginManager.get(activity).setupLoginUser(model);
|
||||
//融云连接服务器
|
||||
RongcloudIMManager.connectIM(activity);
|
||||
} else {
|
||||
ToastUtil.show(msg);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
package com.yunbao.main.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.adjust.sdk.Adjust;
|
||||
import com.adjust.sdk.AdjustEvent;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.facebook.appevents.AppEventsLogger;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.live.activity.SystemMessageActivity;
|
||||
import com.yunbao.live.bean.ImUserBean;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.views.SystemMessageViewHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统消息适配器
|
||||
*/
|
||||
public class SystemMessageAdapter extends RecyclerView.Adapter {
|
||||
private List<ImUserBean> listUserBean = new ArrayList<>();
|
||||
protected Activity mContext;
|
||||
protected LayoutInflater mInflater;
|
||||
|
||||
public SystemMessageAdapter(Activity mContext) {
|
||||
this.mContext = mContext;
|
||||
mInflater = LayoutInflater.from(mContext);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
//view_system_message_item.xml
|
||||
return new SystemMessageViewHolder(mInflater.inflate(R.layout.view_system_message_item, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
ImUserBean model = listUserBean.get(position);
|
||||
SystemMessageViewHolder messageViewHolder = (SystemMessageViewHolder) holder;
|
||||
ImgLoader.displayWithError(mContext, model.getImage(), messageViewHolder.avatarImage, com.yunbao.live.R.mipmap.chat_head_mo);
|
||||
if (position == 2) {
|
||||
messageViewHolder.userMsg.setText(TextUtils.isEmpty(model.getLink()) ? mContext.getResources().getString(R.string.chat_like) : model.getLink());
|
||||
} else {
|
||||
if (position == 1) {
|
||||
messageViewHolder.userMsg.setText(TextUtils.isEmpty(model.getContent()) ? mContext.getResources().getString(R.string.chat_action_no) : model.getContent());
|
||||
} else {
|
||||
messageViewHolder.userMsg.setText(TextUtils.isEmpty(model.getContent()) ? "" : model.getContent());
|
||||
}
|
||||
}
|
||||
messageViewHolder.userName.setText(model.getTitle());
|
||||
messageViewHolder.lastTime.setText(model.getLastDate());
|
||||
String number = model.getNum();
|
||||
|
||||
if (!TextUtils.isEmpty(number) && !TextUtils.equals(number, "0")) {
|
||||
messageViewHolder.redPoint.setVisibility(View.VISIBLE);
|
||||
messageViewHolder.redPoint.setText(number);
|
||||
} else {
|
||||
messageViewHolder.redPoint.setVisibility(View.GONE);
|
||||
}
|
||||
//系统消息的跳转
|
||||
messageViewHolder.setViewHolderOnClickListener((view, model1) -> {
|
||||
//获取一下系统通知
|
||||
MessageIMManager.get(mContext).getSystemMessages(new MessageIMManager.SystemMessagesHttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code==0){
|
||||
List<ImUserBean> listUserBean = JSON.parseArray(Arrays.toString(info), ImUserBean.class);
|
||||
addSystemMessagesView(listUserBean);
|
||||
}
|
||||
}
|
||||
});
|
||||
if (model1.getContent().equals("在線客服")) {
|
||||
FirebaseAnalytics.getInstance(mContext).logEvent("FS_customer_service", null);
|
||||
AppEventsLogger.newLogger(mContext).logEvent("FB_customer_service");
|
||||
AdjustEvent adjustEvent1 = new AdjustEvent("ww5z2p");
|
||||
Adjust.trackEvent(adjustEvent1);
|
||||
} else if (model1.getContent().equals("新手指導員")) {
|
||||
FirebaseAnalytics.getInstance(mContext).logEvent("FS_guide", null);
|
||||
AppEventsLogger.newLogger(mContext).logEvent("FB_guide", null);
|
||||
AdjustEvent adjustEvent1 = new AdjustEvent("m0nfpn");
|
||||
Adjust.trackEvent(adjustEvent1);
|
||||
}
|
||||
if (!TextUtils.isEmpty(model1.getLink())) {
|
||||
mContext.startActivity(new Intent(mContext, WebViewActivity.class).putExtra("url", model1.getLink()));
|
||||
} else if ("1".equals(model1.getType()) || "2".equals(model1.getType())) {//系统消息,互动消息,猜你喜欢
|
||||
forward(mContext, model1.getType(), "", model1.getTitle(), "");
|
||||
} else if ("3".equals(model1.getType())) {
|
||||
if (model1.getLink() != null && !"".equals(model1.getLink())) {
|
||||
WebViewActivity.forward(mContext, model1.getLink());
|
||||
} else {
|
||||
forward(mContext, model1.getType(), "", model1.getTitle(), "");
|
||||
}
|
||||
}
|
||||
}, model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return listUserBean.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加数据源
|
||||
*
|
||||
* @param mListUserBean 数据源
|
||||
*/
|
||||
public void addDataAll(List<ImUserBean> mListUserBean) {
|
||||
listUserBean.clear();
|
||||
listUserBean.addAll(mListUserBean);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void forward(Context context, String type, String uid, String title, String headImg) {
|
||||
context.startActivity(new Intent(context, SystemMessageActivity.class)
|
||||
.putExtra("type", type)
|
||||
.putExtra("uid", uid)
|
||||
.putExtra("title", title)
|
||||
.putExtra("headImg", headImg));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加头部系统消息
|
||||
*
|
||||
* @param mlistUserBean 数据源
|
||||
*/
|
||||
private void addSystemMessagesView(List<ImUserBean> mlistUserBean) {
|
||||
//倒序展示
|
||||
Collections.reverse(mlistUserBean);
|
||||
listUserBean.clear();
|
||||
listUserBean.addAll(mlistUserBean);
|
||||
notifyDataSetChanged();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yunbao.main.event;
|
||||
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
/**
|
||||
* 消息中心的信息通知
|
||||
*/
|
||||
public class PDLiveConversationListEvent extends BaseModel {
|
||||
private int page = 0;//page=11时退出应用
|
||||
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
|
||||
public PDLiveConversationListEvent setPage(int page) {
|
||||
this.page = page;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
package com.yunbao.main.manager.imrongcloud;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.live.activity.PDLIiveChatActivity;
|
||||
import com.yunbao.live.activity.PDLiveConversationActivity;
|
||||
import com.yunbao.live.bean.SearchUserBean;
|
||||
import com.yunbao.main.activity.PDLiveConversationListActivity;
|
||||
import com.yunbao.main.utils.PDLiveCustomConversationProvider;
|
||||
import com.yunbao.main.utils.PDLiveMessageProcessor;
|
||||
|
||||
import io.rong.imkit.config.RongConfigCenter;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.provider.PrivateConversationProvider;
|
||||
import io.rong.imkit.userinfo.RongUserInfoManager;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.ProviderManager;
|
||||
import io.rong.imlib.model.UserInfo;
|
||||
|
||||
/**
|
||||
* 会话列表管理
|
||||
*/
|
||||
public class ConversationIMListManager {
|
||||
private static ConversationIMListManager manager;
|
||||
private Context mContext;
|
||||
|
||||
private ConversationIMListManager(Context context) {
|
||||
mContext = context;
|
||||
//将自定义会话列表 Activity 注册到 IMKit SDK:
|
||||
RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationListActivity, PDLiveConversationListActivity.class);
|
||||
//将自定义会话列表 Activity 注册到 IMKit SDK:
|
||||
RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationListActivity, PDLIiveChatActivity.class);
|
||||
RongConfigCenter.conversationListConfig().setDataProcessor(new PDLiveMessageProcessor());
|
||||
//获取会话模板管理器
|
||||
ProviderManager<BaseUiConversation> providerManager = RongConfigCenter.conversationListConfig().getProviderManager();
|
||||
//用自定义模板替换 SDK 原有模板
|
||||
providerManager.replaceProvider(PrivateConversationProvider.class, new PDLiveCustomConversationProvider());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单利
|
||||
*/
|
||||
public static ConversationIMListManager get(Context context) {
|
||||
if (null == manager) {
|
||||
manager = new ConversationIMListManager(context);
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳转消息列表
|
||||
*
|
||||
* @param title 会话列表页面标题,如果传空,会显示为默认标题 “会话列表”。
|
||||
*/
|
||||
public void jumpConversationList(String title) {
|
||||
RouteUtils.routeToConversationListActivity(mContext, title);
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳转消息列表
|
||||
*
|
||||
* @param extras 自定义携带数据
|
||||
*/
|
||||
public void jumpConversationList(Bundle extras) {
|
||||
Intent intent = new Intent(mContext, PDLiveConversationListActivity.class);
|
||||
intent.putExtras(extras);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
/**
|
||||
* 跳转消息列表
|
||||
*
|
||||
* @param extras 自定义携带数据
|
||||
*/
|
||||
public void jumpPDLIiveChat(Bundle extras) {
|
||||
RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationActivity, PDLIiveChatActivity.class);
|
||||
Intent intent = new Intent(mContext, PDLIiveChatActivity.class);
|
||||
intent.putExtras(extras);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
/**
|
||||
* 跳转会话页面
|
||||
* @param context 上下文
|
||||
* @param targetId 用户id
|
||||
*/
|
||||
public void jumpConversation(Activity context,String targetId) {
|
||||
RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationActivity, PDLiveConversationActivity.class);
|
||||
Intent intent = new Intent(context, PDLiveConversationActivity.class);
|
||||
intent.putExtra(RouteUtils.TARGET_ID, targetId);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 刷新用户信息(异步)
|
||||
*/
|
||||
public void addUserInfoProvider() {
|
||||
RongUserInfoManager.getInstance().setUserInfoProvider(userId -> {
|
||||
CommonHttpUtil.getUserBaseinfo(userId, new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0 && info.length > 0) {
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
SearchUserBean userBean = JSON.toJavaObject(obj, SearchUserBean.class);
|
||||
UserInfo userInfo = new UserInfo(userId, userBean.getUserNiceName(), Uri.parse(userBean.getAvatar()));
|
||||
//使用空白字段存储自己服务器用户的所有的信息
|
||||
userInfo.setExtra(GsonUtils.toJson(userBean));
|
||||
RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
return null;
|
||||
}, true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.yunbao.main.utils;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.provider.BaseConversationProvider;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
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;
|
||||
|
||||
/**
|
||||
* pdlive自定义会话模板
|
||||
*/
|
||||
public class PDLiveCustomConversationProvider extends BaseConversationProvider {
|
||||
@Override
|
||||
public boolean isItemViewType(BaseUiConversation item) {
|
||||
//根据业务需要,判断 item 是该模板需要处理的会话时,返回 true, 否则返回 false
|
||||
//此处以自定义私聊会话模板为例
|
||||
Log.e("PDLiveCustomConversat","-+++++++++++++++++++++++++++++++++");
|
||||
return item.mCore.getConversationType().equals(Conversation.ConversationType.PRIVATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
//根据业务需要,自定义处理
|
||||
Log.e("PDLiveCustomConversat","------------------------------------------"+viewType);
|
||||
// View view = LayoutInflater.from(parent.getContext()).inflate(layout.rc_conversationlist_item, parent, false);
|
||||
return super.onCreateViewHolder(parent, viewType);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindViewHolder(ViewHolder holder, BaseUiConversation uiConversation, int position, List<BaseUiConversation> list, IViewProviderListener<BaseUiConversation> listener) {
|
||||
for (BaseUiConversation conversation:list){
|
||||
// UserInfo userInfo = conversation.mCore.getLatestMessage().getUserInfo();
|
||||
//// Log.e("PDLiveCustomConversat","getName****************************"+userInfo.getName());
|
||||
// Log.e("PDLiveCustomConversat","getPortraitUri****************************"+userInfo.getPortraitUri().toString());
|
||||
}
|
||||
//根据业务需要,自定义处理
|
||||
Log.e("PDLiveCustomConversat","****************************");
|
||||
super.bindViewHolder(holder, uiConversation, position, list, listener);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.yunbao.main.utils;
|
||||
|
||||
import io.rong.imkit.config.BaseDataProcessor;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
|
||||
/**
|
||||
* 融云消息筛选
|
||||
*/
|
||||
public class PDLiveMessageProcessor extends BaseDataProcessor<Conversation> {
|
||||
/**
|
||||
* 自定义会话列表页面支持的会话类型,此处设置为仅支持单聊
|
||||
*/
|
||||
@Override
|
||||
public Conversation.ConversationType[] supportedTypes() {
|
||||
Conversation.ConversationType[] types = {Conversation.ConversationType.PRIVATE};
|
||||
return types;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -408,7 +408,6 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
watchLive(bean, Constants.LIVE_HOME, position);
|
||||
} else if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
|
||||
String url = CommonAppConfig.HOST + bean.getUrl() + "?a=1";
|
||||
// WeekWebViewActivity.forward(mContext, url, true);
|
||||
LiveHttpUtil.getLiveInfo(bean.getUid(), new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
@@ -443,21 +442,12 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
intoIndex = 1;
|
||||
RouteUtil.forwardUserHome(mContext, bean.getUid(), 0);
|
||||
}
|
||||
// watchLive(bean, Constants.LIVE_HOME, position);
|
||||
}
|
||||
|
||||
public void changeLiveList(int position) {
|
||||
if (mAdapter != null) {
|
||||
// new_data.remove(position);
|
||||
// mAdapter.notifyItemChanged(position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void loadData() {
|
||||
// if (mRefreshView != null) {
|
||||
// mRefreshView.initData();
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -485,11 +475,5 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// if(intoIndex == 1){
|
||||
// intoIndex = 0;
|
||||
// if (mRefreshView != null) {
|
||||
// mRefreshView.initData();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.yunbao.live.bean.ImUserBean;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
/**
|
||||
* 系统消息界面
|
||||
*/
|
||||
public class SystemMessageViewHolder extends RecyclerView.ViewHolder {
|
||||
public RoundedImageView avatarImage;
|
||||
public TextView userName, userMsg, lastTime, redPoint;
|
||||
private ViewHolderOnClickListener listener;
|
||||
private ImUserBean model;
|
||||
|
||||
public SystemMessageViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
avatarImage = itemView.findViewById(R.id.avatar);
|
||||
userName = itemView.findViewById(R.id.name);
|
||||
userMsg = itemView.findViewById(R.id.msg);
|
||||
lastTime = itemView.findViewById(R.id.time);
|
||||
redPoint = itemView.findViewById(R.id.red_point);
|
||||
itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != listener) {
|
||||
listener.onClick(v, model);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public interface ViewHolderOnClickListener {
|
||||
void onClick(View view, ImUserBean model);
|
||||
}
|
||||
|
||||
public void setViewHolderOnClickListener(ViewHolderOnClickListener listener, ImUserBean model) {
|
||||
this.listener = listener;
|
||||
this.model = model;
|
||||
}
|
||||
}
|
||||
171
main/src/main/res/layout/activity_conversation_list.xml
Normal file
171
main/src/main/res/layout/activity_conversation_list.xml
Normal file
@@ -0,0 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="20dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_noback"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="18dp"
|
||||
android:text="@string/message"
|
||||
android:textColor="#ff161616"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<!-- <androidx.recyclerview.widget.RecyclerView-->
|
||||
<!-- android:id="@+id/system_message_list"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="198dp" />-->
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<!-- 此容器用于动态放置 fragment-->
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rt_main_tab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="71dp"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img_main_bg_tab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:background="@mipmap/home_bar_bg" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/bottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="45dp"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<com.yunbao.common.custom.TabButtonGroup
|
||||
android:id="@+id/tab_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.yunbao.common.custom.TabButton
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
app:tbn_checked="true"
|
||||
app:tbn_icon_array_id="@array/main_tab_home"
|
||||
app:tbn_icon_size="28dp"
|
||||
app:tbn_text_color_checked="@color/colorAccent"
|
||||
app:tbn_text_color_unchecked="@color/gray1"
|
||||
app:tbn_text_size="11sp" />
|
||||
|
||||
<com.yunbao.common.custom.TabButton
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginRight="60dp"
|
||||
android:layout_weight="1"
|
||||
app:tbn_icon_array_id="@array/main_tab_video"
|
||||
app:tbn_icon_size="28dp"
|
||||
app:tbn_text_color_checked="@color/colorAccent"
|
||||
app:tbn_text_color_unchecked="@color/gray1"
|
||||
app:tbn_text_size="11sp" />
|
||||
|
||||
<com.yunbao.common.custom.TabButton
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
app:tbn_icon_array_id="@array/main_tab_list"
|
||||
app:tbn_icon_size="28dp"
|
||||
app:tbn_text_color_checked="@color/colorAccent"
|
||||
app:tbn_text_color_unchecked="@color/gray1"
|
||||
app:tbn_text_size="11sp" />
|
||||
|
||||
<com.yunbao.common.custom.TabButton
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
app:tbn_icon_array_id="@array/main_tab_chat"
|
||||
app:tbn_icon_size="28dp"
|
||||
app:tbn_text_color_checked="@color/colorAccent"
|
||||
app:tbn_text_color_unchecked="@color/gray1"
|
||||
app:tbn_text_size="11sp" />
|
||||
|
||||
</com.yunbao.common.custom.TabButtonGroup>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1">
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1">
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/v_table_redpoint"
|
||||
android:layout_width="15dp"
|
||||
android:layout_height="15dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="8dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/background_ff5075"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right">
|
||||
|
||||
<View
|
||||
android:id="@+id/v_table_redpoint_me"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginRight="18dp"
|
||||
android:background="@drawable/background_ff5075"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btn_start"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:onClick="mainClick"
|
||||
android:src="@mipmap/icon_main_start" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
106
main/src/main/res/layout/rc_conversation_fragment.xml
Normal file
106
main/src/main/res/layout/rc_conversation_fragment.xml
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/rc_background_main_color"
|
||||
android:orientation="vertical">
|
||||
|
||||
<io.rong.imkit.widget.refresh.SmartRefreshLayout
|
||||
android:id="@+id/rc_refresh"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/rc_extension"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rc_message_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:overScrollMode="never" />
|
||||
</io.rong.imkit.widget.refresh.SmartRefreshLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_new_message_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:background="@drawable/rc_conversation_newmsg"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="5dp"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="12dp"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintBottom_toBottomOf="@id/rc_refresh"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_unread_message_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/rc_unread_height"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_30"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:background="@drawable/rc_selector_item_unread"
|
||||
android:drawableStart="@drawable/rc_unread_msg_arrow"
|
||||
android:drawablePadding="10dp"
|
||||
android:gravity="center|left"
|
||||
android:maxLines="1"
|
||||
android:minWidth="120dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="100条未读消息" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_mention_message_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/rc_unread_height"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_80"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:background="@drawable/rc_selector_item_unread"
|
||||
android:drawableStart="@drawable/rc_unread_msg_arrow"
|
||||
android:drawablePadding="10dp"
|
||||
android:gravity="center|left"
|
||||
android:maxLines="1"
|
||||
android:minWidth="120dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:text="@string/rc_mention_messages"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="100条@消息" />
|
||||
|
||||
<io.rong.imkit.conversation.extension.RongExtension
|
||||
android:id="@+id/rc_extension"
|
||||
android:layout_width="0dp"
|
||||
app:RCStyle="CE"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/rc_refresh" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/rc_notification_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#660F0F0F"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
134
main/src/main/res/layout/rc_conversationlist_item.xml
Normal file
134
main/src/main/res/layout/rc_conversationlist_item.xml
Normal file
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/rc_conversation_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/rc_conversation_item_height">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_portrait_rl"
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="54dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginRight="15dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_portrait"
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="54dp"
|
||||
android:scaleType="centerCrop" />
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_unread"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_unread_bg"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_centerInParent="true"
|
||||
app:srcCompat="@drawable/rc_unread_count_bg_normal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_unread_count"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="15"
|
||||
android:textColor="@color/rc_white_color"
|
||||
android:textSize="@dimen/rc_font_auxiliary_size" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_title"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/rc_margin_size_12"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_16"
|
||||
android:layout_marginEnd="@dimen/rc_margin_size_12"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="张三"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="@dimen/rc_font_secondary_size"
|
||||
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_date"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_content"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="60dp"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="你好,朋友!"
|
||||
android:textColor="@color/rc_secondary_color"
|
||||
android:textSize="@dimen/rc_font_text_third_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rc_conversation_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_date"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_16"
|
||||
android:layout_marginEnd="@dimen/rc_margin_size_12"
|
||||
android:text="3 月 22 日"
|
||||
android:textColor="@color/rc_auxiliary_color"
|
||||
android:textSize="@dimen/rc_font_nav_or_date_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_no_disturb"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/rc_margin_size_12"
|
||||
android:layout_marginBottom="@dimen/rc_margin_size_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:srcCompat="@drawable/rc_no_disturb" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_read_receipt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/rc_margin_size_2"
|
||||
android:layout_marginBottom="@dimen/rc_margin_size_12"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_no_disturb"
|
||||
app:layout_goneMarginRight="@dimen/rc_margin_size_12"
|
||||
app:srcCompat="@drawable/rc_read_receipt" />
|
||||
|
||||
<View
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0.5dp"
|
||||
android:layout_marginTop="71.5dp"
|
||||
android:background="@color/rc_divider_color"
|
||||
app:layout_constraintStart_toStartOf="@id/rc_conversation_title"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
115
main/src/main/res/layout/rc_extension_input_panel.xml
Normal file
115
main/src/main/res/layout/rc_extension_input_panel.xml
Normal file
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/input_panel_add_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/rc_ext_input_panel_add"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/input_panel_voice_toggle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginBottom="6.5dp"
|
||||
android:src="@drawable/rc_ext_toggle_voice"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toEndOf="@id/input_panel_add_btn"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_btn"
|
||||
style="@style/EditTextStyle.Alignment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="6.5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="6.5dp"
|
||||
android:background="@drawable/rc_ext_panel_editbox_background"
|
||||
android:maxLines="4"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/input_panel_emoji_btn"
|
||||
app:layout_constraintStart_toEndOf="@+id/input_panel_voice_toggle"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/press_to_speech_btn"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/rc_ext_input_panel_editbox_height"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="6.5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="6.5dp"
|
||||
android:background="@drawable/rc_ext_voice_idle_button"
|
||||
android:gravity="center"
|
||||
android:text="@string/rc_voice_press_to_input"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="@dimen/rc_font_nav_or_date_size"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/input_panel_emoji_btn"
|
||||
app:layout_constraintStart_toEndOf="@+id/input_panel_voice_toggle"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/input_panel_emoji_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6.5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="6.5dp"
|
||||
android:src="@drawable/rc_ext_input_panel_emoji"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/input_panel_add_or_send"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/input_panel_add_or_send"
|
||||
android:layout_width="41dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6.5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="6.5dp"
|
||||
android:layout_toEndOf="@id/edit_btn"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/input_panel_send_btn"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:background="@mipmap/btn_sand"
|
||||
android:textSize="@dimen/rc_font_text_third_size"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -105,11 +105,14 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="right">
|
||||
|
||||
<View
|
||||
<TextView
|
||||
android:id="@+id/v_table_redpoint"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_width="15dp"
|
||||
android:layout_height="15dp"
|
||||
android:background="@drawable/background_ff5075"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="8dp"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
12
main/src/main/res/layout/view_system_message.xml
Normal file
12
main/src/main/res/layout/view_system_message.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/system_message_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
74
main/src/main/res/layout/view_system_message_item.xml
Normal file
74
main/src/main/res/layout/view_system_message_item.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp">
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/avatar"
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="54dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:riv_oval="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="9dp"
|
||||
android:layout_toRightOf="@id/avatar"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="dasdas"
|
||||
android:textColor="@color/textColor"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/msg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/name"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginRight="80dp"
|
||||
android:layout_toRightOf="@id/avatar"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="dasd "
|
||||
android:textColor="@color/gray3"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/name"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:text="dasdas "
|
||||
android:textColor="@color/gray3"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/red_point"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="15dp"
|
||||
android:layout_below="@id/time"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:background="@drawable/background_ff50715"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:minWidth="14dp"
|
||||
android:paddingLeft="3dp"
|
||||
android:paddingRight="3dp"
|
||||
android:textColor="#fff"
|
||||
android:textSize="12sp"
|
||||
android:visibility="invisible" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
21
main/src/main/res/values/style.xml
Normal file
21
main/src/main/res/values/style.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- 取消界面转场动画使用-->
|
||||
<style name="noAnimationStyle" parent="AppTheme">
|
||||
<item name="android:windowAnimationStyle">@style/Animation</item>
|
||||
</style>
|
||||
<style name="Animation">
|
||||
<item name="android:activityOpenEnterAnimation">@null</item>
|
||||
<item name="android:activityOpenExitAnimation">@null</item>
|
||||
<item name="android:activityCloseEnterAnimation">@null</item>
|
||||
<item name="android:activityCloseExitAnimation">@null</item>
|
||||
<item name="android:taskOpenEnterAnimation">@null</item>
|
||||
<item name="android:taskOpenExitAnimation">@null</item>
|
||||
<item name="android:taskCloseEnterAnimation">@null</item>
|
||||
<item name="android:taskCloseExitAnimation">@null</item>
|
||||
<item name="android:taskToFrontEnterAnimation">@null</item>
|
||||
<item name="android:taskToFrontExitAnimation">@null</item>
|
||||
<item name="android:taskToBackEnterAnimation">@null</item>
|
||||
<item name="android:taskToBackExitAnimation">@null</item>
|
||||
</style>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user