diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml
index 7e4bfd6a8..66f64ee20 100644
--- a/OneToOne/src/main/AndroidManifest.xml
+++ b/OneToOne/src/main/AndroidManifest.xml
@@ -144,6 +144,7 @@
+
() {
+ @Override
+ public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
+ if (data.getStatus() == 0) {
+ RouteManager.forwardCompleteActivity();
+ }
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+
private void showRedPoint(int count) {
- OTONetManager.getInstance(mContext)
- .getMessageSystemLists(new HttpCallback>() {
- int point = 0;
+ OTONetManager.getInstance(mContext).getMessageSystemLists(new HttpCallback>() {
+ int point = 0;
+ @Override
+ public void onSuccess(List data) {
+ for (OfficialNoticeBean datum : data) {
+ point += datum.getNum();
+ }
+ //大于0则是通过会话未读监听器获取到的数,则不用再调用获取未读数接口了
+ if (count >= 0) {
+ updateUnreadCount(point + count);
+ return;
+ }
+ RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() {
@Override
- public void onSuccess(List data) {
- for (OfficialNoticeBean datum : data) {
- point += datum.getNum();
- }
- //大于0则是通过会话未读监听器获取到的数,则不用再调用获取未读数接口了
- if (count >= 0) {
- updateUnreadCount(point + count);
- return;
- }
- RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() {
- @Override
- public void onSuccess(Integer integer) {
- updateUnreadCount(point + integer);
- }
-
- @Override
- public void onError(RongIMClient.ErrorCode e) {
-
- }
- });
+ public void onSuccess(Integer integer) {
+ updateUnreadCount(point + integer);
}
@Override
- public void onError(String error) {
+ public void onError(RongIMClient.ErrorCode e) {
}
});
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
}
private void updateUnreadCount(int count) {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
index 6c7669273..dc6ca774d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
@@ -34,6 +34,7 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MainMeAdapter;
import com.shayu.onetoone.bean.SlideBean;
+import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.MainHttpConsts;
import com.shayu.onetoone.utils.MainHttpUtil;
import com.shayu.onetoone.view.CustomMyViewHolder;
@@ -114,7 +115,6 @@ public class MyFragment extends BaseFragment implements OnItemClickListener() {
+ @Override
+ public void onSuccess(AvatarBean data) {
+ ImgLoader.display(mContext, file, userAvatar);
+ //txtChoose.setVisibility(View.GONE);
+ avatarUrl = data.getAvatar();
+ ToastUtil.show("上传成功");
+ }
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show("上传失败");
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFailure() {
+
+ }
+ });
+ }
+
+ @SuppressLint("SetTextI18n")
+ private void initView() {
+ editHead = findViewById(R.id.editHead);
+ userAvatar = findViewById(R.id.userAvatar);
+ txtChoose = findViewById(R.id.text_choose);
+ userNickName = findViewById(R.id.userNickName);
+ userSex1 = findViewById(R.id.user_sex_1);
+ userSex2 = findViewById(R.id.user_sex_2);
+ userBirthday = findViewById(R.id.userBirthday);
+ btnRegister = findViewById(R.id.btn_register);
+ avatarUrl = CommonAppConfig.getInstance().getUserBean().getAvatar();
+ if (!StringUtils.isEmpty(avatarUrl)) {
+ ImgLoader.display(ChooseLabelActivity.this, avatarUrl, userAvatar);
+ }
+ if (!StringUtils.isEmpty(CommonAppConfig.getInstance().getUserBean().getUserNiceName())) {
+ userNickName.setText(CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ }
+ editHead.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ chooseImage();
+ }
+ });
+
+ userBirthday.setText(year + " 年 " + (month + 1) + " 月 " + day + " 日 ");
+
+ userSex1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ changeSex(0);
+ }
+ });
+ userSex2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ changeSex(1);
+ }
+ });
+ userBirthday.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //时间选择器
+ Calendar selectedDate = Calendar.getInstance();
+ selectedDate.set(year, month, day);
+ TimePickerView pvTime = new TimePickerBuilder(ChooseLabelActivity.this, new OnTimeSelectListener() {
+ @Override
+ public void onTimeSelect(Date date, View v) {
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ year = calendar.get(Calendar.YEAR);
+ month = calendar.get(Calendar.MONTH);
+ day = calendar.get(Calendar.DAY_OF_MONTH);
+
+ userBirthday.setText(year + " 年 " + (month + 1) + " 月 " + day + " 日 ");
+ }
+ }).setCancelText("生日").setSubmitColor(getResources().getColor(R.color.blue01)).setSubmitText("完成").setContentTextSize(20).setDate(selectedDate).build();
+ pvTime.show();
+ }
+ });
+ btnRegister.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (StringUtils.isEmpty(userNickName.getText().toString())) {
+ Toast.makeText(mContext, "请填写昵称", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (sex == -1) {
+ Toast.makeText(mContext, "请选择性别", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ OTONetManager.getInstance(mContext).setInfo(avatarUrl, userNickName.getText().toString(), sex, year + "-" + month + "-" + day, new HttpCallback() {
+ @Override
+ public void onSuccess(HttpCallbackModel data) {
+ Toast.makeText(mContext, data.getMsg(), Toast.LENGTH_SHORT).show();
+ if (data.getCode() == 0) {
+ Intent intent = new Intent(ChooseLabelActivity.this, MainActivity.class);
+ intent.putExtra(Constants.SHOW_INVITE, false);
+ startActivity(intent);
+
+ RouteManager.forwardMainActivity();
+ finish();
+ }
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+ });
+ }
+
+ /**
+ * 选择图片
+ */
+ private void chooseImage() {
+ UserAvatarPopup userAvatarPopup = new UserAvatarPopup(this, userAvatar1 -> {
+ avatarUrl = userAvatar1;
+ ImgLoader.display(ChooseLabelActivity.this, avatarUrl, userAvatar);
+ //txtChoose.setVisibility(View.GONE);
+ }, isCamera -> {
+ if (isCamera) {
+ cameraUtil.getImageByCamera();
+ } else {
+ cameraUtil.getImageByAlumb();
+ }
+ });
+ new XPopup.Builder(mContext).asCustom(userAvatarPopup).show();
+
+ }
+
+ private void changeSex(int i) {
+ sex = i;
+ if (sex == 0) {
+ userSex1.setTextColor(getResources().getColor(R.color.white));
+ userSex2.setTextColor(getResources().getColor(R.color.text_gray));
+ userSex1.setBackgroundResource(R.mipmap.icon_user_sex_02);
+ userSex2.setBackgroundResource(R.mipmap.icon_user_sex_00);
+ } else {
+ userSex1.setTextColor(getResources().getColor(R.color.text_gray));
+ userSex2.setTextColor(getResources().getColor(R.color.white));
+ userSex1.setBackgroundResource(R.mipmap.icon_user_sex_00);
+ userSex2.setBackgroundResource(R.mipmap.icon_user_sex_01);
+ }
+ }
+}
\ No newline at end of file
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java
index 09699190c..84fa11556 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java
@@ -1,17 +1,71 @@
package com.shayu.onetoone.activity.login;
-import androidx.appcompat.app.AppCompatActivity;
+import android.annotation.SuppressLint;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.bigkoo.pickerview.builder.TimePickerBuilder;
+import com.bigkoo.pickerview.listener.OnTimeSelectListener;
+import com.bigkoo.pickerview.view.TimePickerView;
+import com.blankj.utilcode.util.StringUtils;
+import com.lxj.xpopup.XPopup;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.AbsOTOActivity;
+import com.shayu.onetoone.activity.MainActivity;
+import com.shayu.onetoone.bean.AvatarBean;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.shayu.onetoone.manager.RouteManager;
+import com.shayu.onetoone.view.UserAvatarPopup;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.HttpCallbackModel;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.base.HttpCallback;
+import com.yunbao.common.interfaces.ImageResultCallback;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.ProcessImageUtil;
+import com.yunbao.common.utils.ToastUtil;
+
+import java.io.File;
+import java.util.Calendar;
+import java.util.Date;
+
/**
* 完善个人资料
*/
+@Route(path = RouteManager.ACTIVITY_COMPLETE)
public class CompleteActivity extends AbsOTOActivity {
+ private RelativeLayout editHead; //头像点击事件
+ private ImageView userAvatar; //头像
+ private TextView txtChoose;
+ private EditText userNickName; //昵称
+ private TextView userSex1; //性别
+ private TextView userSex2; //性别
+ private TextView userBirthday; //年龄
+ private Button btnRegister; //提交资料
+
+ private int sex = -1;
+
+ ProcessImageUtil cameraUtil;
+
+ private File mAvatarFile;
+
+ int year;
+ int month;
+ int day;
+
+ private String avatarUrl;
@Override
protected int getLayoutId() {
@@ -20,6 +74,178 @@ public class CompleteActivity extends AbsOTOActivity {
@Override
protected void main(Bundle savedInstanceState) {
+ Calendar calendar = Calendar.getInstance();
+ year = calendar.get(Calendar.YEAR) - 18;
+ month = calendar.get(Calendar.MONTH);
+ day = calendar.get(Calendar.DAY_OF_MONTH);
+
+ initView();
+ initCamera();
+ }
+
+ private void initCamera() {
+ cameraUtil = new ProcessImageUtil(this, "com.shayu.onetoone.fileprovider");
+ cameraUtil.setImageResultCallback(new ImageResultCallback() {
+ @Override
+ public void beforeCamera() {
+
+ }
+
+ @Override
+ public void onSuccess(File file) {
+ L.e("cameraUtil.setImageResultCallback:");
+ if (file != null) {
+ mAvatarFile = file;
+ OTONetManager.getInstance(CompleteActivity.this).updateFile(mAvatarFile, new HttpCallback() {
+ @Override
+ public void onSuccess(AvatarBean data) {
+ ImgLoader.display(mContext, file, userAvatar);
+ //txtChoose.setVisibility(View.GONE);
+ avatarUrl = data.getAvatar();
+ ToastUtil.show("上传成功");
+ }
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show("上传失败");
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFailure() {
+
+ }
+ });
+ }
+
+ @SuppressLint("SetTextI18n")
+ private void initView() {
+ editHead = findViewById(R.id.editHead);
+ userAvatar = findViewById(R.id.userAvatar);
+ txtChoose = findViewById(R.id.text_choose);
+ userNickName = findViewById(R.id.userNickName);
+ userSex1 = findViewById(R.id.user_sex_1);
+ userSex2 = findViewById(R.id.user_sex_2);
+ userBirthday = findViewById(R.id.userBirthday);
+ btnRegister = findViewById(R.id.btn_register);
+ avatarUrl = CommonAppConfig.getInstance().getUserBean().getAvatar();
+ if (!StringUtils.isEmpty(avatarUrl)) {
+ ImgLoader.display(CompleteActivity.this, avatarUrl, userAvatar);
+ }
+ if (!StringUtils.isEmpty(CommonAppConfig.getInstance().getUserBean().getUserNiceName())) {
+ userNickName.setText(CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ }
+ editHead.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ chooseImage();
+ }
+ });
+
+ userBirthday.setText(year + " 年 " + (month + 1) + " 月 " + day + " 日 ");
+
+ userSex1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ changeSex(0);
+ }
+ });
+ userSex2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ changeSex(1);
+ }
+ });
+ userBirthday.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //时间选择器
+ Calendar selectedDate = Calendar.getInstance();
+ selectedDate.set(year, month, day);
+ TimePickerView pvTime = new TimePickerBuilder(CompleteActivity.this, new OnTimeSelectListener() {
+ @Override
+ public void onTimeSelect(Date date, View v) {
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ year = calendar.get(Calendar.YEAR);
+ month = calendar.get(Calendar.MONTH);
+ day = calendar.get(Calendar.DAY_OF_MONTH);
+
+ userBirthday.setText(year + " 年 " + (month + 1) + " 月 " + day + " 日 ");
+ }
+ }).setCancelText("生日").setSubmitColor(getResources().getColor(R.color.blue01)).setSubmitText("完成").setContentTextSize(20).setDate(selectedDate).build();
+ pvTime.show();
+ }
+ });
+ btnRegister.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (StringUtils.isEmpty(userNickName.getText().toString())) {
+ Toast.makeText(mContext, "请填写昵称", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (sex == -1) {
+ Toast.makeText(mContext, "请选择性别", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ OTONetManager.getInstance(mContext).setInfo(avatarUrl, userNickName.getText().toString(), sex, year + "-" + month + "-" + day, new HttpCallback() {
+ @Override
+ public void onSuccess(HttpCallbackModel data) {
+ Toast.makeText(mContext, data.getMsg(), Toast.LENGTH_SHORT).show();
+ if (data.getCode() == 0) {
+ Intent intent = new Intent(CompleteActivity.this, MainActivity.class);
+ intent.putExtra(Constants.SHOW_INVITE, false);
+ startActivity(intent);
+
+ RouteManager.forwardMainActivity();
+ finish();
+ }
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+ });
+ }
+
+ /**
+ * 选择图片
+ */
+ private void chooseImage() {
+ UserAvatarPopup userAvatarPopup = new UserAvatarPopup(this, userAvatar1 -> {
+ avatarUrl = userAvatar1;
+ ImgLoader.display(CompleteActivity.this, avatarUrl, userAvatar);
+ //txtChoose.setVisibility(View.GONE);
+ }, isCamera -> {
+ if (isCamera) {
+ cameraUtil.getImageByCamera();
+ } else {
+ cameraUtil.getImageByAlumb();
+ }
+ });
+ new XPopup.Builder(mContext).asCustom(userAvatarPopup).show();
}
+
+ private void changeSex(int i) {
+ sex = i;
+ if (sex == 0) {
+ userSex1.setTextColor(getResources().getColor(R.color.white));
+ userSex2.setTextColor(getResources().getColor(R.color.text_gray));
+ userSex1.setBackgroundResource(R.mipmap.icon_user_sex_02);
+ userSex2.setBackgroundResource(R.mipmap.icon_user_sex_00);
+ } else {
+ userSex1.setTextColor(getResources().getColor(R.color.text_gray));
+ userSex2.setTextColor(getResources().getColor(R.color.white));
+ userSex1.setBackgroundResource(R.mipmap.icon_user_sex_00);
+ userSex2.setBackgroundResource(R.mipmap.icon_user_sex_01);
+ }
+ }
}
\ No newline at end of file
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
index 2a421a913..ffe2440f1 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java
@@ -201,12 +201,12 @@ public class LoginActivity extends AbsOTOActivity {
}
}
});
-
}
//注册
private void register() {
startActivity(new Intent(mContext, RegisterActivity.class));
+ //RouteManager.forwardCompleteActivity();
}
//忘记密码
@@ -235,19 +235,18 @@ public class LoginActivity extends AbsOTOActivity {
loadingDialog = new LoadingDialog();
loadingDialog.show(getSupportFragmentManager(), "LoadingDialog");
loadingDialog.setShowText(getString(R.string.login_ing));
- OTONetManager.getInstance(mContext)
- .login(phoneNum, pwd, uuid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(IMLoginModel data) {
- onLoginSuccess(data);
- }
+ OTONetManager.getInstance(mContext).login(phoneNum, pwd, uuid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(IMLoginModel data) {
+ onLoginSuccess(data);
+ }
- @Override
- public void onError(String error) {
- ToastUtil.show(error);
- loadingDialog.dismiss();
- }
- });
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
+ loadingDialog.dismiss();
+ }
+ });
hideKeyboard(mEditPwd);
}
@@ -283,46 +282,44 @@ public class LoginActivity extends AbsOTOActivity {
* 获取用户信息
*/
private void getBaseUserInfo() {
- OTONetManager.getInstance(mContext)
- .getBaseInfos(true, new com.yunbao.common.http.base.HttpCallback() {
+ OTONetManager.getInstance(mContext).getBaseInfos(true, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
+ RongcloudIMManager.connectIM(mContext);
+ OTONetManager.getInstance(mContext).getRandJoinAnchor(new com.yunbao.common.http.base.HttpCallback() {
@Override
- public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
- RongcloudIMManager.connectIM(mContext);
- OTONetManager.getInstance(mContext)
- .getRandJoinAnchor(new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(JoinAnchorBean data) {
- if (mFirstLogin) {
- IMLoginManager.get(mContext).setNewUserGif(true);
- IMLoginManager.get(mContext).setisNewUserOne(true);
+ public void onSuccess(JoinAnchorBean data) {
+ if (mFirstLogin) {
+ IMLoginManager.get(mContext).setNewUserGif(true);
+ IMLoginManager.get(mContext).setisNewUserOne(true);
// MainActivity.forward(EntryActivity.this, false);
- if (!StringUtil.isEmpty(data.getHome_zdy_img_us())) {
- home_zdy_img_us = data.getHome_zdy_img_us();
- home_zdy_img_cn = data.getHome_zdy_img_cn();
- }
- if (!StringUtil.isEmpty(data.getHome_zdy_pop())) {
- NoviceInstructorManager.get(mContext).setHomeZdyPop(data.getHome_zdy_pop());
- }
- IMLoginManager.get(mContext).setisNewUserOne(true);
- IMLoginManager.get(mContext).setNewUserGif(true);
- }
- loadingDialog.dismiss();
- RouteManager.forwardMainActivity();
- finish();
- }
-
- @Override
- public void onError(String error) {
- ToastUtil.show(error);
- }
- });
+ if (!StringUtil.isEmpty(data.getHome_zdy_img_us())) {
+ home_zdy_img_us = data.getHome_zdy_img_us();
+ home_zdy_img_cn = data.getHome_zdy_img_cn();
+ }
+ if (!StringUtil.isEmpty(data.getHome_zdy_pop())) {
+ NoviceInstructorManager.get(mContext).setHomeZdyPop(data.getHome_zdy_pop());
+ }
+ IMLoginManager.get(mContext).setisNewUserOne(true);
+ IMLoginManager.get(mContext).setNewUserGif(true);
+ }
+ loadingDialog.dismiss();
+ RouteManager.forwardMainActivity();
+ finish();
}
@Override
public void onError(String error) {
-
+ ToastUtil.show(error);
}
});
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/RegisterActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/RegisterActivity.java
index d16d358c3..458cb3d43 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/RegisterActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/RegisterActivity.java
@@ -25,6 +25,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.DeviceUtils;
import com.blankj.utilcode.util.GsonUtils;
+import com.blankj.utilcode.util.StringUtils;
import com.fm.openinstall.OpenInstall;
import com.fm.openinstall.listener.AppInstallAdapter;
import com.fm.openinstall.model.AppData;
@@ -33,6 +34,7 @@ import com.sahooz.library.CountryPicker;
import com.sahooz.library.OnPick;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.MainActivity;
+import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.MainHttpUtil;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
@@ -52,6 +54,7 @@ import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import org.greenrobot.eventbus.EventBus;
@@ -121,8 +124,8 @@ public class RegisterActivity extends AbsActivity {
getUuidDevice();
getPromoCode();
- mGetCode =mContext.getString(R.string.reg_get_code);
- mGetCodeAgain =mContext.getString(R.string.reg_get_code_again);
+ mGetCode = mContext.getString(R.string.reg_get_code);
+ mGetCodeAgain = mContext.getString(R.string.reg_get_code_again);
mTvCountryCodeClick();
mEditPhone.addTextChangedListener(new TextWatcher() {
@Override
@@ -280,9 +283,9 @@ public class RegisterActivity extends AbsActivity {
} else if (i == R.id.btn_register) {
register();
} else if (i == R.id.btn_tip2) {
- WebViewActivity.forward(mContext, HtmlConfig.REG_PRIVCAY1,false);
+ WebViewActivity.forward(mContext, HtmlConfig.REG_PRIVCAY1, false);
} else if (i == R.id.btn_tip3) {
- WebViewActivity.forward(mContext, HtmlConfig.REG_PRIVCAY2,false);
+ WebViewActivity.forward(mContext, HtmlConfig.REG_PRIVCAY2, false);
}
}
@@ -362,12 +365,12 @@ public class RegisterActivity extends AbsActivity {
mDialog.show();
}
String ti = "";
- if (edit_invitecode_2.getText().toString().trim().equals("此設備已註冊")){
+ if (edit_invitecode_2.getText().toString().trim().equals("此設備已註冊")) {
ti = "";
- }else{
+ } else {
ti = edit_invitecode_2.getText().toString().trim();
}
- MainHttpUtil.register(UserID,ti, phoneNum, mPromoCode, mUuidDevice, mCountryCode, pwd, pwd2, code, new HttpCallback() {
+ MainHttpUtil.register(UserID, ti, phoneNum, mPromoCode, mUuidDevice, mCountryCode, pwd, pwd2, code, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
@@ -402,25 +405,25 @@ public class RegisterActivity extends AbsActivity {
//获取自定义数据
if (appData.getData() != null && !appData.getData().equals("")) {
JSONObject data = JSON.parseObject(appData.getData());
- if (CommonAppConfig.IS_GOOGLE_PLAY == true) {
+ if (CommonAppConfig.IS_GOOGLE_PLAY == true) {
yqm_view.setVisibility(View.VISIBLE);
MainHttpUtil.getDeviceLoginType(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
- if(code == 201){
+ if (code == 201) {
edit_invitecode_2.setText("此設備已註冊");
edit_invitecode_2.setEnabled(false);
}
}
});
- }else{
- yqm_view.setVisibility(View.GONE);
- //推广的码
+ } else {
+ yqm_view.setVisibility(View.GONE);
+ //推广的码
mPromoCode = data.getString("admin_id") + "";
//用户的码
UserID = data.getString("user_id") + "";
}
- Log.d("OpenInstall", UserID+"appData.getData()1111= " + mPromoCode);
+ Log.d("OpenInstall", UserID + "appData.getData()1111= " + mPromoCode);
}
}
});
@@ -483,41 +486,35 @@ public class RegisterActivity extends AbsActivity {
@Override
public void run() {
IMLoginModel userInfo = IMLoginManager.get(activity).getUserInfo();
- HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor")
- .params("uid", userInfo.getId())
- .params("token", userInfo.getToken())
- .execute(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (info[0] != null) {
- JSONObject obj = JSON.parseObject(info[0]);
- IMLoginManager.get(activity).setisNewUserOne(true);
- IMLoginManager.get(activity).setNewUserGif(true);
- if (obj.containsKey("home_zdy_img_us")) {
- home_zdy_img_us = obj.getString("home_zdy_img_us");
- home_zdy_img_cn = obj.getString("home_zdy_img_cn");
- }
- gotoLive(obj.getString("anchor_id"));
- if (obj.containsKey("home_zdy_pop")) {
- NoviceInstructorManager.get(mContext).setHomeZdyPop(obj.getString("home_zdy_pop"));
- }
- jumpMain(false);
- } else {
- jumpMain(false);
- }
-// EventBus.getDefault().post(new RegSuccessEvent());
+ HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor").params("uid", userInfo.getId()).params("token", userInfo.getToken()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info[0] != null) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ IMLoginManager.get(activity).setisNewUserOne(true);
+ IMLoginManager.get(activity).setNewUserGif(true);
+ if (obj.containsKey("home_zdy_img_us")) {
+ home_zdy_img_us = obj.getString("home_zdy_img_us");
+ home_zdy_img_cn = obj.getString("home_zdy_img_cn");
}
- });
+ gotoLive(obj.getString("anchor_id"));
+ if (obj.containsKey("home_zdy_pop")) {
+ NoviceInstructorManager.get(mContext).setHomeZdyPop(obj.getString("home_zdy_pop"));
+ }
+ jumpMain(false);
+ } else {
+ jumpMain(false);
+ }
+// EventBus.getDefault().post(new RegSuccessEvent());
+ }
+ });
}
};
private void jumpMain(boolean showInvite) {
- Intent intent = new Intent(activity, MainActivity.class);
- intent.putExtra(Constants.SHOW_INVITE, showInvite);
- startActivity(intent);
+ RouteManager.forwardCompleteActivity();
}
-
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/UserAvatarSelectAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/UserAvatarSelectAdapter.java
new file mode 100644
index 000000000..e8529aca0
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/UserAvatarSelectAdapter.java
@@ -0,0 +1,109 @@
+package com.shayu.onetoone.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.shayu.onetoone.R;
+import com.yunbao.common.bean.UserAvatarSelectBean;
+import com.yunbao.common.custom.RatioRoundImageView;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.interfaces.OnItemClickListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserAvatarSelectAdapter extends RecyclerView.Adapter {
+ private Context mContext;
+ private List list = new ArrayList<>();
+ private OnItemClickListener onClickListener;
+ private int selectId = -1;
+ private int defId = -1;
+ private UserAvatarSelectBean selectInfo;
+
+ public void setList(List list) {
+ this.list = list;
+ notifyDataSetChanged();
+ }
+
+ public int getSelect() {
+ if (selectId == -1 && getItemCount() > 0) {
+ return list.get(0).getId();
+ }
+ return selectId;
+ }
+
+ public void setOnClickListener(OnItemClickListener onClickListener) {
+ this.onClickListener = onClickListener;
+ }
+
+ public int getDefId() {
+ return defId;
+ }
+
+ public UserAvatarSelectAdapter(Context mContext) {
+ this.mContext = mContext;
+ }
+
+ @NonNull
+ @Override
+ public AvatarSelectViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new AvatarSelectViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_user_avatar_select, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull AvatarSelectViewHolder holder, int position) {
+ holder.setData(list.get(position), position);
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public void setDef(int id) {
+ this.defId = id;
+ }
+
+ public class AvatarSelectViewHolder extends RecyclerView.ViewHolder {
+ private View hide;
+ private View show;
+ private RatioRoundImageView avatar;
+
+ public AvatarSelectViewHolder(@NonNull View itemView) {
+ super(itemView);
+ hide = itemView.findViewById(R.id.hideCover);
+ show = itemView.findViewById(R.id.showCover);
+ avatar = itemView.findViewById(R.id.avatar);
+ itemView.setOnClickListener(v -> {
+ selectInfo = (UserAvatarSelectBean) v.getTag();
+ selectId = selectInfo.getId();
+ notifyDataSetChanged();
+ onClickListener.onItemClick(selectInfo, defId);
+ });
+ }
+
+ public void setData(UserAvatarSelectBean bean, int position) {
+ ImgLoader.display(itemView.getContext(), bean.getPath(), avatar);
+ if (selectId == -1 && bean.getChecked() == 1) {
+ selectId = bean.getId();
+ defId = bean.getId();
+ selectInfo = bean;
+ }
+ hide.setVisibility(View.GONE);
+ /*if (select == bean.getId()) {
+ show.setVisibility(View.VISIBLE);
+ hide.setVisibility(View.GONE);
+ } else {
+ show.setVisibility(View.INVISIBLE);
+ hide.setVisibility(View.VISIBLE);
+ }*/
+ itemView.setTag(bean);
+ }
+ }
+
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/CustomBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/CustomBean.java
new file mode 100644
index 000000000..257d0de8a
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/CustomBean.java
@@ -0,0 +1,37 @@
+package com.shayu.onetoone.bean;
+
+
+import com.yunbao.common.bean.BaseModel;
+
+import java.util.List;
+
+public class CustomBean extends BaseModel {
+
+ public int code;
+ public String msg;
+ public List info;
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setInfo(List info) {
+ this.info = info;
+ }
+
+ public List getInfo() {
+ return info;
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
index 6914c2f7b..27a8a4bc0 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
@@ -9,6 +9,16 @@ public class UserBean extends BaseModel {
UserInfo info;
UserLevel level;
+ int status; //0 需要跳转到 编辑资料页面
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
public UserBean() {
}
@@ -36,7 +46,7 @@ public class UserBean extends BaseModel {
this.level = level;
}
- public static class UserInfo{
+ public static class UserInfo {
private int id;
private String label_id;
private String cn_label;
@@ -267,7 +277,7 @@ public class UserBean extends BaseModel {
}
}
- public static class UserLevel{
+ public static class UserLevel {
private int id;
private int wealth;
private int wealth_level;
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
index 1820a4271..2b5d733ab 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
@@ -6,6 +6,7 @@ import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.bean.AvatarBean;
+import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
@@ -23,6 +24,7 @@ import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
@@ -725,4 +727,64 @@ public class OTONetManager {
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
return MultipartBody.Part.createFormData("file", file.getName(), requestBody);
}
+
+ /**
+ * 获取系统头像
+ *
+ * @param callback
+ */
+ public void getSystemUserAvatar(HttpCallback> callback) {
+ API.get().otoApi(mContext)
+ .getSystemUserAvatar(CommonAppConfig.getInstance().getUid())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>>() {
+ @Override
+ public void accept(ResponseModel> objectResponseModel) throws Exception {
+ if (objectResponseModel.getData().getCode() == 0) {
+ callback.onSuccess(objectResponseModel.getData().getInfo());
+ } else {
+ callback.onError(objectResponseModel.getData().getMsg());
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ if (callback != null) {
+ callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
+ }
+ }
+ }).isDisposed();
+ }
+
+ /**
+ * 设置基本资料
+ */
+ public void setInfo(
+ String avatar,
+ String user_nicename,
+ int sex,
+ String birthday,
+ HttpCallback callback) {
+
+ API.get().otoApi(mContext).setInfo(avatar, user_nicename, sex, birthday)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer>>() {
+ @Override
+ public void accept(ResponseModel> listResponseModel) throws Exception {
+ if (listResponseModel.getData().getCode() == 0) {
+ callback.onSuccess(new HttpCallbackModel(listResponseModel.getData().getCode(), listResponseModel.getData().getMsg()));
+ } else {
+ callback.onError(listResponseModel.getData().getMsg());
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+
+ }
+ }).isDisposed();
+
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
index 12277f21c..0d6033b1a 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
@@ -18,6 +18,36 @@ public class RouteManager {
public static final String ACTIVITY_HOME_SEARCH = "/activity/HomeSearchActivity";
public static final String ACTIVITY_HOME_SCREEN = "/activity/HomeScreenActivity";
public static final String ACTIVITY_CALL_VIDEO="/activity/CallVideoActivity";
+ public static final String PATH_EDITPROFILE = "/main/EditProfileActivity";
+
+ //设置基本资料
+ public static final String ACTIVITY_COMPLETE = "/activity/CompleteActivity";
+
+ //选择标签
+ public static final String ACTIVITY_CHOOSE_LABEL = "/activity/ChooseLabelActivity";
+
+
+ /**
+ * 选择标签
+ */
+ public static void forwardChooseActivity() {
+ ARouter.getInstance().build(ACTIVITY_CHOOSE_LABEL).navigation();
+ }
+
+ /**
+ * 修改个人资料
+ */
+ public static void forwardEditProfileActivity() {
+ ARouter.getInstance().build(PATH_EDITPROFILE).navigation();
+ }
+
+ /**
+ * 填写基础资料
+ */
+ public static void forwardCompleteActivity() {
+ ARouter.getInstance().build(ACTIVITY_COMPLETE).navigation();
+ }
+
public static void forwardMainActivity() {
ARouter.getInstance().build(ACTIVITY_MAIN)
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
index b053c73b4..ff1989dc1 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
@@ -1,6 +1,7 @@
package com.shayu.onetoone.network;
import com.shayu.onetoone.bean.AvatarBean;
+import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
@@ -14,7 +15,9 @@ import com.shayu.onetoone.bean.SystemMessageBean;
import com.shayu.onetoone.bean.TargetUserInfoBean;
import com.shayu.onetoone.bean.UserBean;
import com.yunbao.common.bean.BaseModel;
+import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.http.ResponseModel;
import java.util.List;
@@ -115,9 +118,11 @@ public interface OneToOneApi {
@GET("/api/public/?service=Friendappuser.hot")
Observable>> getHomeHot(@Query("p") String p);
+
@GET("/api/public/?service=Friendappuser.recommend")
Observable>> getHomeRecommend(@Query("p") String p);
+
@GET("/api/public/?service=Message.getListInfo")
Observable>> getSystemMessageList(@Query("type") int type);
@@ -154,6 +159,7 @@ public interface OneToOneApi {
@Query("date") String date
);
+
@GET("/api/public/?service=Friendappuser.list")
Observable>> search(
@Query("keyword") String keyword,
@@ -167,6 +173,36 @@ public interface OneToOneApi {
@GET("/api/public/?service=Friendappuser.like")
Observable>> getSearchRecommend();
+
+
+
+ /**
+ * 设置基本信息
+ */
+ @FormUrlEncoded
+ @POST("/api/public/?service=Friendappinfos.setInfo")
+ Observable>> setInfo(
+ @Field("avatar") String avatar,
+ @Field("user_nicename") String userNicename,
+ @Field("sex") int sex,
+ @Field("birthday") String birthday
+ );
+
+
+ /**
+ * 获取系统默认头像列表
+ */
+ @GET("/api/public/?service=Userhome.getDefaultAvatarList")
+ Observable>> getSystemUserAvatar(@Query("user_id") String uid);
+
+
+ /**
+ * 获取系统标签
+ */
+ @GET("/api/public/?service=Friendapplable.get")
+ Observable>> getSysLabel(
+ );
+
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/UserAvatarPopup.java b/OneToOne/src/main/java/com/shayu/onetoone/view/UserAvatarPopup.java
new file mode 100644
index 000000000..e1b8049b9
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/view/UserAvatarPopup.java
@@ -0,0 +1,123 @@
+package com.shayu.onetoone.view;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.lxj.xpopup.core.BottomPopupView;
+import com.shayu.onetoone.R;
+import com.shayu.onetoone.adapter.UserAvatarSelectAdapter;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.shayu.onetoone.manager.RouteManager;
+import com.yunbao.common.bean.UserAvatarSelectBean;
+import com.yunbao.common.custom.ItemDecoration;
+import com.yunbao.common.http.base.HttpCallback;
+import com.yunbao.common.http.live.LiveNetManager;
+import com.yunbao.common.interfaces.OnItemClickListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserAvatarPopup extends BottomPopupView implements View.OnClickListener {
+
+ RecyclerView recyclerView;
+ private ImageView camera;
+ private ImageView album;
+ private Context mContext;
+
+ UserAvatarSelectAdapter adapter;
+ private OnItemClickListener onItemClickListener;
+
+ public interface OnItemClickListener {
+ void onItemClick(String userAvatar);
+ }
+
+ private onIsCameraClickListener onIsCameraClickListener;
+
+ public interface onIsCameraClickListener {
+ void onIsCamera(boolean isCamera);
+ }
+
+ public UserAvatarPopup(@NonNull Context context, OnItemClickListener onItemClickListener, onIsCameraClickListener onIsCameraClickListener) {
+ super(context);
+ this.mContext = context;
+ this.onIsCameraClickListener = onIsCameraClickListener;
+ this.onItemClickListener = onItemClickListener;
+ }
+
+ @Override
+ public void onClick(View v) {
+
+ }
+
+ // 返回自定义弹窗的布局
+ @Override
+ protected int getImplLayoutId() {
+ return R.layout.dialog_user_avatar;
+ }
+
+ // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
+ @Override
+ protected void onCreate() {
+ super.onCreate();
+ initView();
+ initDate();
+ }
+
+ /**
+ * 加载系统头像
+ */
+ private void initDate() {
+ adapter = new UserAvatarSelectAdapter(mContext);
+ recyclerView.setLayoutManager(new GridLayoutManager(mContext, 4));
+
+ ItemDecoration decoration1 = new ItemDecoration(mContext, 0x00000000, 0, 0);
+ decoration1.setOnlySetItemOffsetsButNoDraw(true);
+ recyclerView.addItemDecoration(decoration1);
+
+ recyclerView.setAdapter(adapter);
+ adapter.setOnClickListener(new com.yunbao.common.interfaces.OnItemClickListener() {
+ @Override
+ public void onItemClick(UserAvatarSelectBean bean, int position) {
+ onItemClickListener.onItemClick(bean.getPath());
+ dismiss();
+ }
+ });
+
+ OTONetManager.getInstance(mContext).getSystemUserAvatar(new HttpCallback>() {
+ @Override
+ public void onSuccess(List data) {
+ adapter.setList(data);
+ }
+
+ @Override
+ public void onError(String error) {
+ adapter.setList(new ArrayList<>());
+ }
+ });
+ }
+
+ private void initView() {
+ recyclerView = findViewById(R.id.recyclerView);
+ camera = findViewById(R.id.camera);
+ album = findViewById(R.id.album);
+ camera.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onIsCameraClickListener.onIsCamera(true);
+ dialog.dismiss();
+ }
+ });
+ album.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onIsCameraClickListener.onIsCamera(false);
+ dialog.dismiss();
+ }
+ });
+ }
+}
diff --git a/OneToOne/src/main/res/drawable/bg_user_avatar.xml b/OneToOne/src/main/res/drawable/bg_user_avatar.xml
new file mode 100644
index 000000000..9ff74fedd
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_user_avatar.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/OneToOne/src/main/res/drawable/bg_user_avatar_select_selected.xml b/OneToOne/src/main/res/drawable/bg_user_avatar_select_selected.xml
new file mode 100644
index 000000000..0a8069452
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_user_avatar_select_selected.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_user_avatar_select_unselected.xml b/OneToOne/src/main/res/drawable/bg_user_avatar_select_unselected.xml
new file mode 100644
index 000000000..5f2e8b64c
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_user_avatar_select_unselected.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_choose_label.xml b/OneToOne/src/main/res/layout/activity_choose_label.xml
new file mode 100644
index 000000000..8860478fd
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_choose_label.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_complete.xml b/OneToOne/src/main/res/layout/activity_complete.xml
index 42dcf4ed3..44dc1123e 100644
--- a/OneToOne/src/main/res/layout/activity_complete.xml
+++ b/OneToOne/src/main/res/layout/activity_complete.xml
@@ -1,7 +1,6 @@
+ android:background="@mipmap/bg_w"
+ android:orientation="vertical">
+ android:layout_marginTop="20dp">
-
-
+
+ android:gravity="center"
+ android:text="去选择"
+ android:textColor="#FFFFFF"
+ android:textSize="12sp" />
+ android:textSize="16sp" />
+ android:textSize="14sp" />
+ android:textSize="16sp" />
+ android:textColor="#999999"
+ android:textColorHint="#999999"
+ android:textSize="14sp" />
+ android:textColor="#999999"
+ android:textColorHint="#999999"
+ android:textSize="14sp" />
+
+ android:textSize="16sp" />
+ android:textSize="14sp" />
+ android:textSize="16sp" />
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/dialog_user_avatar.xml b/OneToOne/src/main/res/layout/dialog_user_avatar.xml
new file mode 100644
index 000000000..59766c336
--- /dev/null
+++ b/OneToOne/src/main/res/layout/dialog_user_avatar.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/item_user_avatar_select.xml b/OneToOne/src/main/res/layout/item_user_avatar_select.xml
new file mode 100644
index 000000000..d3a4605ad
--- /dev/null
+++ b/OneToOne/src/main/res/layout/item_user_avatar_select.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/icon_album.png b/OneToOne/src/main/res/mipmap-xxhdpi/icon_album.png
new file mode 100644
index 000000000..759665572
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/icon_album.png differ
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/icon_camera.png b/OneToOne/src/main/res/mipmap-xxhdpi/icon_camera.png
new file mode 100644
index 000000000..1d82674b2
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/icon_camera.png differ
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_00.png b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_00.png
new file mode 100644
index 000000000..cce2149e2
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_00.png differ
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_01.png b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_01.png
new file mode 100644
index 000000000..480501c15
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_01.png differ
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_02.png b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_02.png
new file mode 100644
index 000000000..760b1e7b0
Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/icon_user_sex_02.png differ
diff --git a/OneToOne/src/main/res/values/colors.xml b/OneToOne/src/main/res/values/colors.xml
index e7f03603c..88ac1ea62 100644
--- a/OneToOne/src/main/res/values/colors.xml
+++ b/OneToOne/src/main/res/values/colors.xml
@@ -1,4 +1,5 @@
#F7F7F7
+ #999999
\ No newline at end of file
diff --git a/common/build.gradle b/common/build.gradle
index 62428bdd8..81d495e34 100644
--- a/common/build.gradle
+++ b/common/build.gradle
@@ -181,7 +181,7 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
api 'com.jakewharton.rxbinding3:rxbinding:3.1.0'
//loading样式库
- api 'com.wang.avi:library:2.1.3'
+ api 'com.wang.avi:library:2.1.3'
api 'com.google.firebase:firebase-messaging:23.0.6'
api 'com.google.firebase:firebase-analytics:21.1.0'
// api 'com.huawei.hms:push:4.0.2.300'
@@ -201,6 +201,12 @@ dependencies {
api 'com.google.android.gms:play-services-auth:15.0.0'
api 'com.google.android.material:material:1.4.0'
+ api 'com.contrarywind:Android-PickerView:4.1.9'
+
+ //UI框架
+ api 'com.github.xuexiangjys:XUI:1.1.6'
+ api 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0'
+
// api files('libs/svgaplayer-release-v1.2.1.aar')
}
diff --git a/common/src/main/res/values/colors.xml b/common/src/main/res/values/colors.xml
index 6e444f1f3..702c1c769 100644
--- a/common/src/main/res/values/colors.xml
+++ b/common/src/main/res/values/colors.xml
@@ -82,4 +82,5 @@
#F6F7FB
#FFF6F6F6
+ #A279E4
diff --git a/main/src/main/res/layout/activity_edit_profile.xml b/main/src/main/res/layout/activity_edit_profile.xml
index 7cfa48adc..510f60fa1 100644
--- a/main/src/main/res/layout/activity_edit_profile.xml
+++ b/main/src/main/res/layout/activity_edit_profile.xml
@@ -21,7 +21,6 @@
android:textColor="@color/textColor"
android:textSize="14sp" />
-
diff --git a/main/src/main/res/layout/item_user_avatar_select.xml b/main/src/main/res/layout/item_user_avatar_select.xml
index 2f82ca3c7..b5782d1f0 100644
--- a/main/src/main/res/layout/item_user_avatar_select.xml
+++ b/main/src/main/res/layout/item_user_avatar_select.xml
@@ -2,8 +2,8 @@