Merge branch 'dev_聊天' into dev_改版主分支

# Conflicts:
#	common/src/main/java/com/yunbao/common/http/PDLiveApi.java
#	common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java
This commit is contained in:
2024-03-20 16:21:24 +08:00
74 changed files with 2574 additions and 992 deletions

View File

@@ -170,6 +170,7 @@
android:screenOrientation="portrait" />
<activity android:name=".activity.CompleteUserInfoActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.EditUserHobbyActivity" android:screenOrientation="portrait" />
</application>
</manifest>

View File

@@ -1,29 +1,39 @@
package com.yunbao.main.activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.bigkoo.pickerview.view.TimePickerView;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.NoviceInstructorManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.ViewUtils;
@@ -63,6 +73,20 @@ public class CompleteUserInfoActivity extends AbsActivity {
initView();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ESCAPE || keyCode == KeyEvent.KEYCODE_BACK) {
//onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
// super.onBackPressed();
}
int year;
int month;
int day;
@@ -76,6 +100,9 @@ public class CompleteUserInfoActivity extends AbsActivity {
birthday = findViewById(R.id.birthday);
submit = findViewById(R.id.submit);
userName.setHint(R.string.complete_user_info_username_hint);
userName.setText(IMLoginManager.get(this).getUserInfo().getUserNicename());
initSexView();
initBirthdayView();
initAvatarView();
@@ -102,8 +129,15 @@ public class CompleteUserInfoActivity extends AbsActivity {
new HttpCallback<List<BaseModel>>() {
@Override
public void onSuccess(List<BaseModel> data) {
ToastUtil.show("註冊成功");
finish();
String anchorId = getIntent().getStringExtra("anchor_id");
if (StringUtil.isEmpty(anchorId)) {
Intent intent = new Intent(CompleteUserInfoActivity.this, MainActivity.class);
intent.putExtra(Constants.SHOW_INVITE, false);
startActivity(intent);
finish();
} else {
gotoLive(anchorId);
}
}
@Override
@@ -192,6 +226,7 @@ public class CompleteUserInfoActivity extends AbsActivity {
@Override
public void onItemClick(String bean, int position) {
avatar.setTag(bean);
ImgLoader.display(mContext,bean,avatar);
loading.dismiss();
}
});
@@ -200,8 +235,9 @@ public class CompleteUserInfoActivity extends AbsActivity {
}
void initSexView() {
ViewUtils.findViewById(man, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_select);
ViewUtils.findViewById(man, R.id.sex_bg).setBackgroundResource(R.drawable.complete_user_info_sex_man);
ViewUtils.findViewById(man, R.id.sex_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#00A3FF")));
ViewUtils.findViewById(man, R.id.sex_top_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#00A3FF")));
ViewUtils.findViewById(woman, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_unselect);
@@ -213,7 +249,7 @@ public class CompleteUserInfoActivity extends AbsActivity {
man.setTag("man");
woman.setTag(null);
man.setOnClickListener(view -> {
ViewUtils.findViewById(man, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_select);
ViewUtils.findViewById(man, R.id.sex_bg).setBackgroundResource(R.drawable.complete_user_info_sex_man);
ViewUtils.findViewById(woman, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_unselect);
ViewUtils.findViewById(man, R.id.sex_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#00A3FF")));
ViewUtils.findViewById(man, R.id.sex_top_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#00A3FF")));
@@ -225,7 +261,7 @@ public class CompleteUserInfoActivity extends AbsActivity {
woman.setTag(null);
});
woman.setOnClickListener(view -> {
ViewUtils.findViewById(woman, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_select);
ViewUtils.findViewById(woman, R.id.sex_bg).setBackgroundResource(R.drawable.complete_user_info_sex_woman);
ViewUtils.findViewById(man, R.id.sex_bg).setBackgroundResource(R.drawable.dialog_bg_chat_status_config_unselect);
ViewUtils.findViewById(woman, R.id.sex_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#FF4874")));
ViewUtils.findViewById(woman, R.id.sex_top_icon, ImageView.class).setImageTintList(ColorStateList.valueOf(Color.parseColor("#FF4874")));
@@ -237,4 +273,34 @@ public class CompleteUserInfoActivity extends AbsActivity {
woman.setTag("man");
});
}
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id, new com.yunbao.common.http.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));
NoviceInstructorManager.get(mContext).setFrist(false);
}
@Override
public void onCheckError(String contextError) {
}
});
} else {
MainActivity.forward(CompleteUserInfoActivity.this, false);
}
}
});
}
}

View File

@@ -13,6 +13,10 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.configure.PickerOptions;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.interfaces.XPopupCallback;
@@ -27,6 +31,9 @@ import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.CareerBean;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.MessageUserInfoBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.event.UpdateFieldEvent;
import com.yunbao.common.glide.ImgLoader;
@@ -59,6 +66,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import cn.qqtheme.framework.entity.City;
import cn.qqtheme.framework.entity.County;
@@ -90,6 +99,7 @@ public class EditProfileActivity extends AbsActivity {
private View viewProgress1, viewProgress2, viewProgress3;
private FrameLayout completeInformation, completeInformation1, completeInformation2, completeInformation3;
private TextView information, information1, information2, information3, submit;
private MessageUserInfoBean userInfoBean;
@Override
protected int getLayoutId() {
@@ -130,10 +140,10 @@ public class EditProfileActivity extends AbsActivity {
public void onSuccess(File file) {
if (file != null) {
System.err.println("头像---->收到头像文件 file = "+file.getAbsolutePath()+" | length = "+file.length());
if (file.getName().contains(".gif")){
ToastUtil.show(WordUtil.isNewZh()?"暫不支持該文件":"This file is not supported");
}else {
System.err.println("头像---->收到头像文件 file = " + file.getAbsolutePath() + " | length = " + file.length());
if (file.getName().contains(".gif")) {
ToastUtil.show(WordUtil.isNewZh() ? "暫不支持該文件" : "This file is not supported");
} else {
ImgLoader.display(mContext, file, mAvatar);
MainHttpUtil.updateAvatar(file, new HttpCallback() {
@Override
@@ -185,12 +195,14 @@ public class EditProfileActivity extends AbsActivity {
mUserBean = CommonAppConfig.getInstance().getUserBean();
if (mUserBean != null) {
showData(mUserBean);
initUserInfoData();
} else {
MainHttpUtil.getBaseInfo(new CommonCallback<UserBean>() {
@Override
public void callback(UserBean u) {
mUserBean = u;
showData(u);
initUserInfoData();
}
});
}
@@ -399,9 +411,102 @@ public class EditProfileActivity extends AbsActivity {
.putExtra("token", CommonAppConfig.getInstance().getToken())
.putExtra("isBind", isBind)
.putExtra("mobile", mobile));
} else if (i == R.id.btn_occupation) {
showOccupationDialog();
} else if (i == R.id.btn_height) {
showUserHeightDialog();
} else if (i == R.id.btn_hobby) {
startActivity(new Intent(this, EditUserHobbyActivity.class));
}
}
List<CareerBean> careerBeans;
private void showOccupationDialog() {
LiveNetManager.get(mContext)
.getCareer(new com.yunbao.common.http.base.HttpCallback<List<CareerBean>>() {
@Override
public void onSuccess(List<CareerBean> data) {
careerBeans = new ArrayList<>(data);
List<String> items1 = new ArrayList<>();
List<List<String>> items2 = new ArrayList<>();
for (CareerBean bean : data) {
items1.add(WordUtil.isNewZh() ? bean.getTitleCn() : bean.getTitleEn());
List<String> tmp = new ArrayList<>();
for (CareerBean child : bean.getChildren()) {
tmp.add(WordUtil.isNewZh() ? child.getTitleCn() : child.getTitleEn());
}
items2.add(tmp);
}
OptionsPickerView<String> pickerView = new OptionsPickerBuilder(mContext, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int i, int i1, int i2, View view) {
CareerBean val = careerBeans.get(i).getChildren().get(i1);
setOccupation(val.getTitleCn(), val.getTitleEn());
}
private void setOccupation(String cn, String en) {
LiveNetManager.get(mContext)
.setCareer(cn, en, new com.yunbao.common.http.base.HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show(data.getMsg());
((TextView) findViewById(R.id.occupation)).setText(WordUtil.isNewZh() ? cn : en);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}).build();
pickerView.setPicker(items1, items2);
pickerView.show();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
private void showUserHeightDialog() {
List<String> height = new ArrayList<>();
for (int i = 50; i <= 250; i++) {
height.add(i + "cm");
}
OptionsPickerView<String> pickerView = new OptionsPickerBuilder(mContext, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int i, int i1, int i2, View view) {
String height = (i + 50) + "";
setUserHeight(height);
}
private void setUserHeight(String height) {
LiveNetManager.get(mContext)
.setUserHeight(height, new com.yunbao.common.http.base.HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show(data.getMsg());
((TextView) findViewById(R.id.height)).setText(height + "cm");
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}).setSelectOptions(120)
.build();
pickerView.setPicker(height);
pickerView.show();
}
private void showTaskDialog() {
final Dialog dialog = new Dialog(EditProfileActivity.this, com.yunbao.live.R.style.dialog);
dialog.setContentView(R.layout.dialog_task);
@@ -418,7 +523,7 @@ public class EditProfileActivity extends AbsActivity {
@Override
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&tabIndex=1";
WebViewActivity.forward(mContext, url,false);
WebViewActivity.forward(mContext, url, false);
dialog.dismiss();
}
});
@@ -453,7 +558,7 @@ public class EditProfileActivity extends AbsActivity {
}
Constants.myIntoIndex = 2;
Intent intent = new Intent(mContext, MyWebViewActivity2.class);
intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/table/Modify-information.html" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/table/Modify-information.html" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
startActivity(intent);
}
@@ -767,12 +872,37 @@ public class EditProfileActivity extends AbsActivity {
});
}
private void initUserInfoData() {
LiveNetManager.get(mContext)
.getOtherInfo(userModel.getId() + "", new com.yunbao.common.http.base.HttpCallback<MessageUserInfoBean>() {
@Override
public void onSuccess(MessageUserInfoBean data) {
userInfoBean = data;
((TextView) findViewById(R.id.occupation)).setText(data.getInfo().getCareer());
((TextView) findViewById(R.id.height)).setText(data.getInfo().getHeight() + "cm");
List<String> tags = WordUtil.isNewZh() ? data.getInfo().getCn_label() : data.getInfo().getEn_label();
if (tags == null || tags.isEmpty()) return;
StringBuilder sb = new StringBuilder();
for (String tag : tags) {
sb.append(tag).append(",");
}
((TextView) findViewById(R.id.hobby)).setText(sb.substring(0, sb.length() - 1));
}
@Override
public void onError(String error) {
}
});
}
@Override
protected void onResume() {
super.onResume();
if (Constants.isShowPage != -1) {
finish();
}
initUserInfoData();
MainHttpUtil.getBaseInfo(new CommonCallback<UserBean>() {
@Override
public void callback(UserBean u) {

View File

@@ -0,0 +1,126 @@
package com.yunbao.main.activity;
import android.widget.Button;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSONArray;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.CareerBean;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.MessageUserInfoBean;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.main.R;
import com.yunbao.main.adapter.EditUserHobbyAdapter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class EditUserHobbyActivity extends AbsActivity {
TextView mNumber;
RecyclerView recyclerView;
EditUserHobbyAdapter adapter;
Button mSave, mCancel;
@Override
protected int getLayoutId() {
return R.layout.activity_edit_user_hobby;
}
@Override
protected void main() {
super.main();
mNumber = findViewById(R.id.number);
recyclerView = findViewById(R.id.recyclerView);
mSave = findViewById(R.id.btn_save);
mCancel = findViewById(R.id.btn_cancel);
adapter = new EditUserHobbyAdapter();
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(new OnItemClickListener<List<String>>() {
@Override
public void onItemClick(List<String> bean, int position) {
mNumber.setText(String.format("(%s/%s)", position, "5"));
System.out.println(JSONArray.toJSONString(bean));
}
});
initData();
mCancel.setOnClickListener(view -> {
finish();
});
mSave.setOnClickListener(view -> {
List<String> strings = adapter.getmSelectedList();
uploadSelectData(strings);
});
}
private void uploadSelectData(List<String> strings) {
StringBuilder sb = new StringBuilder();
String hobby = "";
for (String tag : strings) {
if (!StringUtil.isEmpty(tag)) {
sb.append(tag).append(",");
}
}
if (sb.length() != 0) {
hobby = sb.substring(0, sb.length() - 1);
}
LiveNetManager.get(mContext)
.setHobby(hobby, new HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show(data.getMsg());
finish();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
private void initData() {
LiveNetManager.get(mContext)
.getHobby(new HttpCallback<List<CareerBean>>() {
@Override
public void onSuccess(List<CareerBean> data) {
adapter.setHobbyData(data);
adapter.notifyDataSetChanged();
}
@Override
public void onError(String error) {
}
});
LiveNetManager.get(mContext)
.getOtherInfo(CommonAppConfig.getInstance().getUid(), new HttpCallback<MessageUserInfoBean>() {
@Override
public void onSuccess(MessageUserInfoBean data) {
String labelIds = data.getInfo().getLabel_id();
if (StringUtil.isEmpty(labelIds)) {
adapter.setSelectData(new ArrayList<>());
return;
}
List<String> list = new ArrayList<>(Arrays.asList(labelIds.split(",")));
mNumber.setText(String.format("(%s/%s)", list.size(), "5"));
adapter.setSelectData(list);
adapter.notifyDataSetChanged();
}
@Override
public void onError(String error) {
}
});
}
}

View File

@@ -59,6 +59,7 @@ import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.ChatRemarksBean;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.FirstLoginBean;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.LiveSvgGiftBean;
@@ -82,6 +83,7 @@ import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.APKManager;
@@ -536,6 +538,23 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
ConversationIMListManager.get(this).getUserInstructor(this);
checkVersion();
MessageSayHiNotifyManager.getInstance().start();
showFirstLogin();
}
private void showFirstLogin(){
LiveNetManager.get(mContext)
.isFirstLogin(new com.yunbao.common.http.base.HttpCallback<FirstLoginBean>() {
@Override
public void onSuccess(FirstLoginBean data) {
if(data.getStatus()==0){
mContext.startActivity(new Intent(mContext, CompleteUserInfoActivity.class));
}
}
@Override
public void onError(String error) {
}
});
}
/**

View File

@@ -61,6 +61,7 @@ import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.views.LiveRoomViewHolder;
import com.yunbao.main.dialog.EncourageDialog;
import com.yunbao.main.http.MainHttpUtil;
import com.yunbao.share.bean.ShareBean;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.video.activity.VideoPlayActivity;
import com.yunbao.video.utils.VideoStorge;
@@ -592,8 +593,13 @@ public class MyWebViewActivity extends AbsActivity {
} else if (TextUtils.equals(event.getMethod(), "androidCommunityShare")) {
JSONObject json = JSONObject.parseObject(event.getData());
new SharePopDialog(mContext)
.setShareType(SharePopDialog.TYPE_DYNAMIC)
.setShareData(ShareBean.ShareBuilder
.create()
.setAnchorAvatar(json.getString("avatar"))
.build()
)
.setShareLink(CommonAppConfig.HOST + json.getString("link"))
.setAnchorAvatar(json.getString("avatar"))
.showDialog();
} else if (TextUtils.equals(event.getMethod(), "androidCancelAnchorAttention")) {
if (!StringUtil.isEmpty(LiveAudienceActivity.is_fans)) {

View File

@@ -1,21 +1,16 @@
package com.yunbao.main.activity;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
@@ -27,12 +22,13 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.activity.SelectImageActivity;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.ImageEntity;
import com.yunbao.common.bean.MessageChatUserBean;
import com.yunbao.common.bean.MessageUserInfoBean;
import com.yunbao.common.bean.NoviceInstructorModel;
import com.yunbao.common.bean.SetAttentsModel;
@@ -40,11 +36,9 @@ import com.yunbao.common.event.PDChatInputModeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnSendMessageListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.NoviceInstructorManager;
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
import com.yunbao.common.message.content.MessageChatTipsContent;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -59,13 +53,14 @@ import com.yunbao.live.views.PDLiveConversationFragment;
import com.yunbao.main.R;
import com.yunbao.main.adapter.MessageChatTopImageListAdapter;
import com.yunbao.main.adapter.MessageChatTopTopListAdapter;
import com.yunbao.main.fragment.MyAddressBookFragment;
import com.yunbao.main.http.MainHttpUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.rong.imkit.IMCenter;
@@ -113,6 +108,12 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
MessageIMManager.get(this).addConversationClickListener();
}
@Override
protected void onResume() {
super.onResume();
setUserCard();
}
private void hideUserCard() {
if (card.getTag() != null) return;
card.setTag("fold");
@@ -185,7 +186,6 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
//绑定聊天用户id
inputPanel.setTargetId(targetId);
ToastUtil.show("id:" + targetId);
//获取用户信息
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
setUserCard();
@@ -262,29 +262,37 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
@Override
public void onSuccess(MessageUserInfoBean data) {
userInfoBean = data;
titleView.setText(data.getUser().getUserNicename() + "_");
titleView.setText(data.getUser().getUserNicename());
ImgLoader.display(mContext, data.getUser().getAvatar(), ViewUtils.findViewById(card, R.id.rc_conversation_portrait, ImageView.class));
ViewUtils.findViewById(card, R.id.userName, TextView.class).setText(data.getUser().getUserNicename());
ViewUtils.findViewById(card, R.id.sign, TextView.class).setText(data.getUser().getSignature());
if (data.getInfo().getRongOnline() == 1) {
ViewUtils.findViewById(card, R.id.user_status, TextView.class).setText(R.string.activity_msg_chat_top_status_online);
ViewUtils.findViewById(card, R.id.userStatusIcon, ImageView.class).setImageResource(R.mipmap.icon_green);
} else {
ViewUtils.findViewById(card, R.id.user_status, TextView.class).setText(R.string.activity_msg_chat_top_status_offline);
ViewUtils.findViewById(card, R.id.userStatusIcon, ImageView.class).setImageResource(R.mipmap.icon_green);
}
showBanner();
showTag();
if(data.getUser().getAttention()==0){
ViewUtils.findViewById(card,R.id.follow, Button.class).setOnClickListener(new View.OnClickListener() {
if (data.getUser().getAttention() == 0) {
ViewUtils.findViewById(card, R.id.follow, Button.class).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
follow((Button) view,userInfoBean.getUser().getId()+"");
follow((Button) view, userInfoBean.getUser().getId() + "");
}
});
}else{
ViewUtils.findViewById(card,R.id.follow, Button.class).setVisibility(View.INVISIBLE);
} else {
ViewUtils.findViewById(card, R.id.follow, Button.class).setVisibility(View.INVISIBLE);
}
getRemarkName();
}
@Override
public void onError(String error) {
}
private void showBanner() {
LiveNetManager.get(mContext)
.getUserHomeBanner(targetId, new HttpCallback<List<String>>() {
@@ -305,30 +313,31 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
}
});
}
private void showTag(){
List<String> tags=new ArrayList<>();
private void showTag() {
List<String> tags = new ArrayList<>();
tags.add(userInfoBean.getInfo().getAge());
if(!StringUtil.isEmpty(userInfoBean.getInfo().getCareer())){
if (!StringUtil.isEmpty(userInfoBean.getInfo().getCareer())) {
tags.add(userInfoBean.getInfo().getCareer());
}
if(!StringUtil.isEmpty(userInfoBean.getInfo().getHeight())&&!userInfoBean.getInfo().getHeight().equals("0")) {
if (!StringUtil.isEmpty(userInfoBean.getInfo().getHeight()) && !userInfoBean.getInfo().getHeight().equals("0")) {
tags.add(userInfoBean.getInfo().getHeight());
}
List<String> t;
if(WordUtil.isNewZh()) {
t=userInfoBean.getInfo().getCn_label();
}else{
t=userInfoBean.getInfo().getEn_label();
if (WordUtil.isNewZh()) {
t = userInfoBean.getInfo().getCn_label();
} else {
t = userInfoBean.getInfo().getEn_label();
}
if(t!=null){
if (t != null) {
for (String tag : t) {
if(!StringUtil.isEmpty(tag)){
if (!StringUtil.isEmpty(tag)) {
tags.add(tag);
}
}
}
MessageChatTopTopListAdapter adapter=new MessageChatTopTopListAdapter();
MessageChatTopTopListAdapter adapter = new MessageChatTopTopListAdapter();
RecyclerView avatarList = ViewUtils.findViewById(card, R.id.tag_list, RecyclerView.class);
avatarList.setAdapter(adapter);
adapter.setUrls(tags);
@@ -337,6 +346,23 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
}
private void getRemarkName() {
MainHttpUtil.getInstructorRemark(new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
JSONArray array = JSONArray.parseArray(Arrays.toString(info));
for (int i = 0; i < array.size(); i++) {
JSONObject json = array.getJSONObject(0);
if (json.containsKey(targetId)) {
titleView.setText(json.getString(targetId));
ViewUtils.findViewById(card, R.id.userName, TextView.class).setText(json.getString(targetId));
return;
}
}
}
});
}
@Override
public void onClick(View v) {
int id = v.getId();
@@ -418,12 +444,13 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
}
}
}
private void follow(Button btn, String id) {
LiveNetManager.get(btn.getContext())
.setAttents(id, new HttpCallback<SetAttentsModel>() {
@Override
public void onSuccess(SetAttentsModel data) {
btn.setVisibility(View.INVISIBLE);
btn.setVisibility(View.INVISIBLE);
}
@Override
@@ -432,6 +459,7 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
@@ -448,7 +476,7 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageIMEvent(String event) {
if (!TextUtils.isEmpty(event)) {
titleView.setText(event);
//titleView.setText(event);
}
}

View File

@@ -404,7 +404,7 @@ public class RegisterActivity extends AbsActivity {
//获取自定义数据
if (appData.getData() != null && !appData.getData().equals("")) {
JSONObject data = JSON.parseObject(appData.getData());
if (CommonAppConfig.IS_GOOGLE_PLAY == 1 || CommonAppConfig.IS_GOOGLE_PLAY == 2|| CommonAppConfig.IS_GOOGLE_PLAY == 3) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1 || CommonAppConfig.IS_GOOGLE_PLAY == 2 || CommonAppConfig.IS_GOOGLE_PLAY == 3) {
yqm_view.setVisibility(View.VISIBLE);
MainHttpUtil.getDeviceLoginType(new HttpCallback() {
@Override
@@ -496,13 +496,13 @@ public class RegisterActivity extends AbsActivity {
home_zdy_img_us = obj.getString("home_zdy_img_us");
home_zdy_img_cn = obj.getString("home_zdy_img_cn");
}
gotoLive(obj.getString("anchor_id"));
// gotoLive(obj.getString("anchor_id"));
if (obj.containsKey("home_zdy_pop")) {
NoviceInstructorManager.get(mContext).setHomeZdyPop(obj.getString("home_zdy_pop"));
}
jumpMain(false);
jumpMain(false, obj.getString("anchor_id"));
} else {
jumpMain(false);
jumpMain(false, null);
}
EventBus.getDefault().post(new RegSuccessEvent());
}
@@ -510,9 +510,10 @@ public class RegisterActivity extends AbsActivity {
}
};
private void jumpMain(boolean showInvite) {
Intent intent = new Intent(activity, MainActivity.class);
private void jumpMain(boolean showInvite, String anchorId) {
Intent intent = new Intent(activity, CompleteUserInfoActivity.class);
intent.putExtra(Constants.SHOW_INVITE, showInvite);
intent.putExtra("anchor_id", anchorId);
startActivity(intent);
}

View File

@@ -0,0 +1,86 @@
package com.yunbao.main.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.bean.CareerBean;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.main.R;
import java.util.ArrayList;
import java.util.List;
public class EditUserHobbyAdapter extends RecyclerView.Adapter<EditUserHobbyAdapter.ViewHolder> {
List<CareerBean> mList = new ArrayList<>();
List<String> mSelectedList = new ArrayList<>();
OnItemClickListener<List<String>> onItemClickListener;
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_edit_user_hobby, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.setData(mList.get(position), position);
}
public void setOnItemClickListener(OnItemClickListener<List<String>> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@Override
public int getItemCount() {
return mList.size();
}
public void setSelectData(List<String> list) {
mSelectedList = list;
}
public List<String> getmSelectedList() {
return mSelectedList;
}
public void setHobbyData(List<CareerBean> data) {
mList = data;
}
public class ViewHolder extends RecyclerView.ViewHolder {
Button button;
public ViewHolder(@NonNull View itemView) {
super(itemView);
button = itemView.findViewById(R.id.btn);
}
public void setData(CareerBean careerBean, int position) {
button.setBackgroundResource(R.drawable.dialog_bg_chat_status_config);
String tag = careerBean.getId() + "";
for (String select : mSelectedList) {
if (select.equals(tag)) {
button.setBackgroundResource(R.drawable.dialog_bg_chat_status_config_select);
}
}
button.setOnClickListener(view -> {
if (mSelectedList.contains(tag)) {
mSelectedList.remove(tag);
} else if (mSelectedList.size() < 5) {
mSelectedList.add(tag);
}
if (onItemClickListener != null) {
onItemClickListener.onItemClick(mSelectedList, mSelectedList.size());
}
notifyDataSetChanged();
});
button.setText(WordUtil.isNewZh() ? careerBean.getTitleCn() : careerBean.getTitleEn());
}
}
}

View File

@@ -2,6 +2,7 @@ package com.yunbao.main.adapter;
import android.content.Context;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.util.Log;
@@ -14,6 +15,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.message.content.MessageChatCardContent;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.ListUtils;
import com.yunbao.common.utils.StringUtil;
@@ -30,6 +32,7 @@ import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.model.SingleConversation;
import io.rong.imkit.utils.RouteUtils;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.model.Conversation;
public class MainConversationListAdapter extends ConversationListAdapter {
public static final int TYPE_SEARCH_TITLE = 500;
@@ -125,7 +128,14 @@ public class MainConversationListAdapter extends ConversationListAdapter {
for (BaseUiConversation item : data) {
BaseUiConversation cn = new SingleConversation(mContext, item.mCore);
srcList.add(cn);
if (item.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
if (item.mCore.getLatestMessage() instanceof MessageChatCardContent) {
item.mConversationContent = new SpannableString(WordUtil.getNewString(R.string.activity_msg_chat_list_card));
}
}
}
super.setDataCollection(data);
}

View File

@@ -96,11 +96,16 @@ public class MainHomeComAdapter extends RefreshAdapter<ActiveBean> {
isVideo.setVisibility(View.VISIBLE);
}
name.setText(bean.getUser_name());
JSONObject json = JSONObject.parseObject(bean.getContent());
if (json != null) {
String content = (String) json.get("msg");
title.setText(content);
try {
JSONObject json = JSONObject.parseObject(bean.getContent());
if (json != null) {
String content = (String) json.get("msg");
title.setText(content);
}
}catch (Exception e){
e.printStackTrace();
}
likeCount.setText(bean.getLove_num());
ImgLoader.display(mContext, bean.getUser_avatar(), author);

View File

@@ -65,6 +65,7 @@ import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MyWalletActivity;
import com.yunbao.main.dialog.EncourageDialog;
import com.yunbao.main.utils.BottomBarUtil;
import com.yunbao.share.bean.ShareBean;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.video.activity.VideoPlayActivity;
import com.yunbao.video.utils.VideoStorge;
@@ -376,8 +377,10 @@ public class MainHomeCommunityFragment extends BaseFragment {
} else if (TextUtils.equals(event.getMethod(), "androidCommunityShare")) {
JSONObject json = JSONObject.parseObject(event.getData());
new SharePopDialog(mContext)
.setShareData(ShareBean.ShareBuilder.create()
.setAnchorAvatar(json.getString("avatar"))
.build())
.setShareLink(CommonAppConfig.HOST + json.getString("link"))
.setAnchorAvatar(json.getString("avatar"))
.showDialog();
}
}

View File

@@ -1,8 +1,6 @@
package com.yunbao.main.fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -10,7 +8,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@@ -24,9 +21,6 @@ import io.rong.imkit.conversationlist.ConversationListAdapter;
import io.rong.imkit.conversationlist.ConversationListFragment;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.model.SingleConversation;
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.SearchConversationResult;
@@ -63,7 +57,7 @@ public class MainMessageChatFragment extends ConversationListFragment {
System.err.println(" ----------------------->" + mAdapter.getData().size());
for (BaseUiConversation cn : ((MainConversationListAdapter) mAdapter).getSrcList()) {
System.err.println(" ----------------------->" + cn.mCore.getConversationTitle() + "|" + cn.mCore.getSenderUserName());
if(StringUtil.isEmpty(cn.mCore.getConversationTitle()))continue;
if (StringUtil.isEmpty(cn.mCore.getConversationTitle())) continue;
if (cn.mCore.getConversationTitle().contains(search)) {
conversation = new SingleConversation(getContext(), new Conversation());
conversation.mCore.setObjectName("SEARCH_USER" + search);
@@ -74,7 +68,6 @@ public class MainMessageChatFragment extends ConversationListFragment {
conversation.mCore.setSenderUserId(cn.mCore.getSenderUserId());
data.add(conversation);
}
}
if (data.size() == 1) {
data.get(0).mCore.setMentionedCount(3);

View File

@@ -57,6 +57,7 @@ import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.UserInfo;
import io.rong.sight.SightExtensionModule;
import com.yunbao.main.R;
import com.yunbao.main.views.MessageChatExtensionConfig;
@@ -68,6 +69,7 @@ public class ConversationIMListManager {
private Context mContext;
//指导员ID
private String targetId;
private String topContent;
private Handler conversationIMListHandler = new Handler();
private ConversationIMListManager(Context context) {
@@ -246,11 +248,30 @@ public class ConversationIMListManager {
}
};
private void setConversationToTop(String targetId) {
setConversationToTop(null, targetId);
}
/**
* 消息置顶
*/
private void setConversationToTop(String targetId) {
IMCenter.getInstance().setConversationToTop(Conversation.ConversationType.PRIVATE, targetId, true, false, null
private void setConversationToTop(BaseUiConversation conversation, String targetId) {
boolean top = true;
Conversation.ConversationType type = Conversation.ConversationType.PRIVATE;
if (conversation != null) {
top = !conversation.mCore.isTop();
targetId = conversation.mCore.getTargetId();
type = conversation.mCore.getConversationType();
}
IMCenter.getInstance().setConversationToTop(type, targetId, top, false, new RongIMClient.ResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean aBoolean) {
}
@Override
public void onError(RongIMClient.ErrorCode e) {
}
}
);
}
@@ -283,7 +304,12 @@ public class ConversationIMListManager {
//非指导员都可以点击
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(baseUiConversation.mCore.getTargetId());
String[] list;
list = new String[]{WordUtil.getNewString(R.string.top),WordUtil.getNewString(R.string.delete)};
if (baseUiConversation.mCore.isTop()) {
topContent = WordUtil.getNewString(R.string.untop);
} else {
topContent = WordUtil.getNewString(R.string.top);
}
list = new String[]{topContent, WordUtil.getNewString(R.string.delete)};
if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
if (!TextUtils.equals(model.getIsAdmin(), "1")) {
@@ -300,10 +326,10 @@ public class ConversationIMListManager {
.setOnItemClickListener(new OnItemClickListener<String>() {
@Override
public void onItemClick(String bean, int position) {
if (bean.equals(WordUtil.getNewString(R.string.top))) {
// copyText(baseUiConversation,context);
setConversationToTop(targetId);
} else if(bean.equals(WordUtil.getNewString(R.string.delete))){
if (bean.equals(topContent)) {
// copyText(baseUiConversation,context);
setConversationToTop(baseUiConversation, targetId);
} else if (bean.equals(WordUtil.getNewString(R.string.delete))) {
delete(baseUiConversation.mCore.getTargetId());
}
}
@@ -402,7 +428,8 @@ public class ConversationIMListManager {
public String getTargetId() {
return targetId;
}
private void copyText(UiMessage uiMessage,Context context) {
private void copyText(UiMessage uiMessage, Context context) {
ClipboardManager cm = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", uiMessage.getContentSpannable());
cm.setPrimaryClip(clipData);

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="153dp" android:height="72dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ff00a3ff" />
<solid android:color="#fff4fcff" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="153dp" android:height="72dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffff4874" />
<solid android:color="#fffff4f8" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
<?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">
<include
android:id="@+id/include5"
layout="@layout/view_title_not_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/titleView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:text="@string/edit_profile_hobby"
android:textColor="#333333"
android:textSize="30sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include5" />
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="(0/5)"
android:textColor="#777777"
android:textSize="11sp"
app:layout_constraintStart_toStartOf="@+id/titleView"
app:layout_constraintTop_toBottomOf="@+id/titleView" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="15dp"
android:layout_marginTop="20dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/number"
app:spanCount="4"
tools:listitem="@layout/item_edit_user_hobby" />
<Button
android:id="@+id/btn_save"
android:layout_width="186dp"
android:layout_height="54dp"
android:textColor="#FFFFFF"
android:layout_marginEnd="21dp"
android:layout_marginBottom="112dp"
android:background="@drawable/bg_msg_address_book_user_btn_fan"
android:text="@string/edit_profile_hobby_save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="122dp"
android:layout_height="54dp"
android:layout_marginStart="21dp"
android:layout_marginBottom="112dp"
android:background="@drawable/dialog_bg_chat_status_config"
android:text="@string/edit_profile_hobby_cancel"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btn_save"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -38,7 +38,7 @@
android:src="@mipmap/ic_message_hi_config_image_add"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title"
app:riv_corner_radius="10dp" />
app:riv_corner_radius="25dp" />
<Button
android:id="@+id/btn_change"
@@ -46,8 +46,13 @@
android:layout_height="34dp"
android:layout_marginTop="-34dp"
android:background="@drawable/bg_btn_activity_user_info_avatar_change"
android:text="更换"
android:text="@string/activity_reg_user_info_avatar_change"
android:textSize="13sp"
android:maxLines="2"
app:autoSizeMaxTextSize="13sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
app:layout_constraintEnd_toEndOf="@+id/avatar"
app:layout_constraintTop_toBottomOf="@+id/avatar" />
@@ -58,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:layout_marginTop="20dp"
android:text="@string/activity_reg_user_info_sex_title"
android:text="@string/activity_reg_user_info_sex_sex"
android:textColor="#333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
@@ -82,7 +87,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:layout_marginTop="25dp"
android:text="昵称"
android:text="@string/activity_reg_user_info_sex_title"
android:textColor="#333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
@@ -140,10 +145,23 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:text="@string/aristocrat_determine"
android:text="@string/activity_reg_user_info_submit"
android:textAllCaps="false"
android:background="@drawable/bg_msg_address_book_user_btn_fan"
android:textColor="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="#FF4874"
android:textSize="11sp"
android:text="@string/activity_reg_user_info_sex_sex_tips"
app:layout_constraintBottom_toBottomOf="@+id/title2"
app:layout_constraintStart_toEndOf="@+id/title2"
app:layout_constraintTop_toTopOf="@+id/title2" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginEnd="15dp"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:background="@drawable/dialog_bg_chat_status_config"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>

View File

@@ -3,16 +3,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
android:layout_height="wrap_content">
<RelativeLayout
android:layout_marginTop="20dp"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:paddingTop="24dp"
android:layout_height="52dp"
android:layout_marginTop="20dp"
android:paddingTop="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -49,10 +48,10 @@
<ImageView
android:id="@+id/img_more"
android:layout_width="40dp"
android:scaleType="center"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:padding="9dp"
android:scaleType="center"
android:src="@mipmap/btn_more_black"
android:visibility="visible" />
</RelativeLayout>
@@ -109,17 +108,31 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/user_status"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="在线"
android:textColor="#AAAAAA"
android:textSize="8sp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="@+id/userName"
app:layout_constraintStart_toEndOf="@+id/userName"
app:layout_constraintTop_toTopOf="@+id/userName" />
app:layout_constraintTop_toTopOf="@+id/userName">
<TextView
android:id="@+id/user_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="在线"
android:textColor="#AAAAAA"
android:textSize="8sp" />
<ImageView
android:id="@+id/userStatusIcon"
android:layout_width="5dp"
android:layout_height="5dp"
android:layout_gravity="top"
android:layout_marginStart="5dp"
android:src="@mipmap/icon_green" />
</LinearLayout>
<TextView
android:id="@+id/info"
@@ -184,13 +197,13 @@
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:layout_marginBottom="60dp"
tools:listitem="@layout/view_msg_chat_top_image"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="9"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageView"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"
tools:itemCount="9"
tools:listitem="@layout/view_msg_chat_top_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/tag_list"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -19,24 +19,25 @@
<string name="battlepass_reward_item_lock">暫未達到等級</string>
<string name="battlepass_reward_item_get">領取成功</string>
<string name="top">置頂</string>
<string name="untop">取消置頂</string>
<string name="delete">刪除</string>
<string name="activity_msg_title">消息</string>
<string name="activity_msg_news_notice">官方通知</string>
<string name="activity_msg_system_message">通知</string>
<string name="activity_msg_system_message">通知</string>
<string name="activity_msg_newts_interaction">互動消息</string>
<string name="activity_msg_news_online">在線客服</string>
<string name="activity_msg_search_hint">搜索昵稱或聊天記錄</string>
<string name="activity_msg_list_include">包含:</string>
<string name="activity_msg_list_title_contacts">聯繫人</string>
<string name="activity_msg_list_title_chat_records">聊天記錄</string>
<string name="activity_msg_addressbook_layout_title">讯录</string>
<string name="activity_msg_addressbook_layout_title">訊錄</string>
<string name="activity_msg_addressbook_search_hint">搜索昵稱</string>
<string name="activity_msg_addressbook_tab_follow">已關注</string>
<string name="activity_msg_addressbook_tab_follow2">關注</string>
<string name="activity_msg_addressbook_tab_fan">粉絲</string>
<string name="activity_msg_addressbook_tab_fan2">回關</string>
<string name="activity_msg_addressbook_tab_mutual">互相關注</string>
<string name="activity_msg_chat_top_tip1">赠送礼物陪伴TA</string>
<string name="activity_msg_chat_top_tip1">贈送禮物陪伴TA</string>
<string name="dialog_msg_m_config">消息設置</string>
<string name="dialog_msg_status_config">接單設置</string>
<string name="dialog_msg_status_online_config">在線</string>
@@ -56,18 +57,31 @@
<string name="dialog_msg_hi_config_audio_btn_play">點擊播放</string>
<string name="dialog_msg_hi_config_audio_btn_reset">重錄</string>
<string name="dialog_msg_hi_config_audio_btn_save">保存</string>
<string name="dialog_msg_hi_config_audio_refuse_save_image">至少传一张图</string>
<string name="dialog_msg_hi_config_audio_refuse_save_text">至少传一条文字消息</string>
<string name="dialog_msg_hi_config_audio_refuse_save_audio">至少传一条语音消息</string>
<string name="dialog_msg_hi_config_audio_refuse_save_image">至少傳一張圖</string>
<string name="dialog_msg_hi_config_audio_refuse_save_text">至少傳一條文字消息</string>
<string name="dialog_msg_hi_config_audio_refuse_save_audio">至少傳一條語音消息</string>
<string name="activity_reg_user_info_title">完善個人信息</string>
<string name="activity_reg_user_info_sex_title">性别</string>
<string name="activity_reg_user_info_sex_title">暱稱</string>
<string name="activity_reg_user_info_sex_sex">性別</string>
<string name="activity_reg_user_info_sex_sex_tips">*只有一次選擇性別的機會,請謹慎選擇</string>
<string name="activity_reg_user_info_avatar_change">更換</string>
<string name="activity_reg_user_info_sex_man">男生</string>
<string name="activity_reg_user_info_sex_woman">女生</string>
<string name="activity_reg_user_info_birthday_title">生日</string>
<string name="activity_reg_user_info_birthday_text">选择你的生日</string>
<string name="activity_reg_user_info_birthday_text">選擇你的生日</string>
<string name="activity_reg_user_info_submit">完成</string>
<string name="dialog_user_info_album">圖庫</string>
<string name="dialog_user_info_camera">相機</string>
<string name="year"></string>
<string name="month"></string>
<string name="day"></string>
<string name="activity_msg_chat_top_status_online">在線</string>
<string name="activity_msg_chat_top_status_offline">離線</string>
<string name="activity_msg_chat_list_card">[名片]</string>
<string name="edit_profile_occupation">職業</string>
<string name="edit_profile_height">身高</string>
<string name="edit_profile_hobby">愛好</string>
<string name="edit_profile_hobby_save">完成</string>
<string name="edit_profile_hobby_cancel">退出</string>
<string name="complete_user_info_username_hint">請輸入暱稱</string>
</resources>

View File

@@ -19,6 +19,7 @@
<string name="battlepass_reward_item_lock">Not yet reached level</string>
<string name="battlepass_reward_item_get">Successfully claimed</string>
<string name="top">置頂</string>
<string name="untop">取消置頂</string>
<string name="delete">刪除</string>
<string name="activity_msg_title">Information</string>
<string name="activity_msg_news_notice">Activities</string>
@@ -59,15 +60,28 @@
<string name="dialog_msg_hi_config_audio_refuse_save_image">至少传一张图片</string>
<string name="dialog_msg_hi_config_audio_refuse_save_text">至少传一条文字消息</string>
<string name="dialog_msg_hi_config_audio_refuse_save_audio">至少传一条语音消息</string>
<string name="activity_reg_user_info_title">完善個人信息</string>
<string name="activity_reg_user_info_sex_title">Sex</string>
<string name="activity_reg_user_info_sex_man">Man</string>
<string name="activity_reg_user_info_sex_woman">Woman</string>
<string name="activity_reg_user_info_title">Personal information</string>
<string name="activity_reg_user_info_sex_title">Nickname</string>
<string name="activity_reg_user_info_sex_sex">Sex</string>
<string name="activity_reg_user_info_sex_sex_tips">*Only one chance to choose gender, choose wisely.</string>
<string name="activity_reg_user_info_sex_man">Boys</string>
<string name="activity_reg_user_info_sex_woman">Girl</string>
<string name="activity_reg_user_info_avatar_change">Replace</string>
<string name="activity_reg_user_info_birthday_title">Birthday</string>
<string name="activity_reg_user_info_birthday_text">Select your Birthday</string>
<string name="activity_reg_user_info_birthday_text">Choose your birthday</string>
<string name="activity_reg_user_info_submit">Finish</string>
<string name="dialog_user_info_album">Album</string>
<string name="dialog_user_info_camera">Camera</string>
<string name="year"></string>
<string name="month"></string>
<string name="day"></string>
<string name="year">Year</string>
<string name="month">Month</string>
<string name="day">Day</string>
<string name="activity_msg_chat_top_status_online">Online</string>
<string name="activity_msg_chat_top_status_offline">Offline</string>
<string name="activity_msg_chat_list_card">[Card]</string>
<string name="edit_profile_occupation">Profession</string>
<string name="edit_profile_height">Height</string>
<string name="edit_profile_hobby">Hobby</string>
<string name="edit_profile_hobby_save">Save</string>
<string name="edit_profile_hobby_cancel">Cancel</string>
<string name="complete_user_info_username_hint">Please enter a nickname</string>
</resources>