From 1a36077fbab34970ab6dcd992484b66871ae67e5 Mon Sep 17 00:00:00 2001
From: hch <16607480311@163.com>
Date: Wed, 18 Oct 2023 14:32:57 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=B5=84=E6=96=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
OneToOne/src/main/AndroidManifest.xml | 15 +
.../activity/setting/SettingActivity.java | 151 ++++
.../activity/user/EditNameActivity.java | 113 +++
.../activity/user/EditProfileActivity.java | 761 ++++++++++++++++++
.../activity/user/EditSignActivity.java | 95 +++
.../main/res/drawable/background_ffbe41.xml | 9 +
.../src/main/res/drawable/bg_line_ffbe41.xml | 11 +
.../src/main/res/drawable/bt_custom_bg.xml | 10 +
.../main/res/layout/activity_edit_name.xml | 51 ++
.../main/res/layout/activity_edit_profile.xml | 440 ++++++++++
.../main/res/layout/activity_edit_sign.xml | 35 +
.../src/main/res/layout/activity_setting.xml | 422 ++++++++++
OneToOne/src/main/res/layout/dialog_task.xml | 77 ++
.../src/main/res/layout/view_title_custom.xml | 19 +-
.../src/main/res/mipmap-xxhdpi/img_pop.png | Bin 0 -> 87603 bytes
15 files changed, 2208 insertions(+), 1 deletion(-)
create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditNameActivity.java
create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java
create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditSignActivity.java
create mode 100644 OneToOne/src/main/res/drawable/background_ffbe41.xml
create mode 100644 OneToOne/src/main/res/drawable/bg_line_ffbe41.xml
create mode 100644 OneToOne/src/main/res/drawable/bt_custom_bg.xml
create mode 100644 OneToOne/src/main/res/layout/activity_edit_name.xml
create mode 100644 OneToOne/src/main/res/layout/activity_edit_profile.xml
create mode 100644 OneToOne/src/main/res/layout/activity_edit_sign.xml
create mode 100644 OneToOne/src/main/res/layout/activity_setting.xml
create mode 100644 OneToOne/src/main/res/layout/dialog_task.xml
create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/img_pop.png
diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml
index 5de36921a..02276256e 100644
--- a/OneToOne/src/main/AndroidManifest.xml
+++ b/OneToOne/src/main/AndroidManifest.xml
@@ -158,6 +158,21 @@
android:label="設定"
android:windowSoftInputMode="stateHidden|adjustResize" />
+
+
+
+
+
+
() {
+// @Override
+// public void callback(ConfigBean configBean) {
+// if (configBean != null) {
+// if (VersionUtil.isLatest(configBean.getVersion())) {
+// ToastUtil.show(R.string.version_latest);
+// } else {
+// VersionUtil.showDialog(mContext, configBean, configBean.getDownloadApkUrl());
+// }
+// }
+// }
+// });
+ }
+
+ /**
+ * 退出登录
+ */
+ private void logout() {
+ IMLoginManager.get(this).logout(this);
+ CommonAppConfig.getInstance().clearLoginInfo();
+ RCRTCEngine.getInstance().unInit();
+ RongIMClient.getInstance().logout();
+ Intent intent = new Intent(SettingActivity.this, EntryActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ Constants.firstInto = 0;
+ }
+
+ /**
+ * 修改密码
+ */
+ private void forwardModifyPwd() {
+ //startActivity(new Intent(mContext, ModifyPwdActivity.class));
+ }
+
+ /**
+ * 获取缓存
+ */
+ private String getCacheSize() {
+ return GlideCatchUtil.getInstance().getCacheSize();
+ }
+
+ /**
+ * 清除缓存
+ */
+ private void clearCache(final int position) {
+ final Dialog dialog = DialogUitl.loadingDialog(mContext, getString(R.string.setting_clear_cache_ing));
+ dialog.show();
+ GlideCatchUtil.getInstance().clearImageAllCache();
+ File gifGiftDir = new File(CommonAppConfig.GIF_PATH);
+ if (gifGiftDir.exists() && gifGiftDir.length() > 0) {
+ gifGiftDir.delete();
+ }
+ if (mHandler == null) {
+ mHandler = new Handler();
+ }
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ if (dialog != null) {
+ dialog.dismiss();
+ }
+ ToastUtil.show(R.string.setting_clear_cache);
+ }
+ }, 2000);
+ }
+
+
+ @Override
+ protected void onDestroy() {
+ if (mHandler != null) {
+ mHandler.removeCallbacksAndMessages(null);
+ mHandler = null;
+ }
+ //MainHttpUtil.cancel(MainHttpConsts.GET_SETTING_LIST);
+ CommonHttpUtil.cancel(CommonHttpConsts.GET_CONFIG);
+ super.onDestroy();
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditNameActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditNameActivity.java
new file mode 100644
index 000000000..05b583f83
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditNameActivity.java
@@ -0,0 +1,113 @@
+package com.shayu.onetoone.activity.user;
+
+import android.content.Intent;
+import android.text.InputFilter;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.shayu.onetoone.R;
+import com.shayu.onetoone.utils.MainHttpConsts;
+import com.shayu.onetoone.utils.MainHttpUtil;
+import com.tencent.imsdk.v2.V2TIMCallback;
+import com.tencent.imsdk.v2.V2TIMManager;
+import com.tencent.imsdk.v2.V2TIMUserFullInfo;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.activity.AbsActivity;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.ToastUtil;
+
+/**
+ * Created by cxf on 2018/9/29.
+ * 设置昵称
+ */
+
+public class EditNameActivity extends AbsActivity {
+
+ private EditText mEditText;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_edit_name;
+ }
+
+ @Override
+ protected void main() {
+ setTitle(mContext.getString(R.string.edit_profile_update_nickname));
+ mEditText = (EditText) findViewById(R.id.edit);
+ mEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(8)});
+ findViewById(R.id.btSave).setVisibility(View.VISIBLE);
+ findViewById(R.id.btSave).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ editName();
+ }
+ });
+ String content = getIntent().getStringExtra(Constants.NICK_NAME);
+ if (!TextUtils.isEmpty(content)) {
+ if (content.length() > 8) {
+ content = content.substring(0, 8);
+ }
+ mEditText.setText(content);
+ mEditText.setSelection(content.length());
+ }
+ }
+
+ public void editName() {
+ if (!canClick()) {
+ return;
+ }
+ final String content = mEditText.getText().toString().trim();
+ if (TextUtils.isEmpty(content)) {
+ ToastUtil.show(R.string.edit_profile_name_empty);
+ return;
+ }
+ MainHttpUtil.updateFields("{\"user_nicename\":\"" + content + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ if (info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ ToastUtil.show(obj.getString("msg"));
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u != null) {
+ u.setUserNiceName(content);
+ V2TIMUserFullInfo v2TIMUserFullInfo = new V2TIMUserFullInfo();
+ v2TIMUserFullInfo.setNickname(content);
+ V2TIMManager.getInstance().setSelfInfo(v2TIMUserFullInfo, new V2TIMCallback() {
+ @Override
+ public void onError(int code, String desc) {
+ }
+
+ @Override
+ public void onSuccess() {
+ }
+ });
+ }
+ Intent intent = getIntent();
+ intent.putExtra(Constants.NICK_NAME, content);
+ setResult(RESULT_OK, intent);
+ finish();
+ }
+ } else if (code == 2001) {
+ //余额不足,跳转支付页面
+ RouteUtil.forwardMyCoin(mContext);
+ ToastUtil.show(msg);
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onDestroy() {
+ MainHttpUtil.cancel(MainHttpConsts.UPDATE_FIELDS);
+ super.onDestroy();
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java
new file mode 100644
index 000000000..6d744e31b
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java
@@ -0,0 +1,761 @@
+package com.shayu.onetoone.activity.user;
+
+import android.annotation.SuppressLint;
+import android.app.Dialog;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+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.sahooz.library.Country;
+import com.sahooz.library.CountryPicker;
+import com.sahooz.library.OnPick;
+import com.shayu.onetoone.R;
+import com.shayu.onetoone.activity.login.CompleteActivity;
+import com.shayu.onetoone.bean.AvatarBean;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.shayu.onetoone.manager.RouteManager;
+import com.shayu.onetoone.utils.MainHttpUtil;
+import com.shayu.onetoone.view.UserAvatarPopup;
+import com.tencent.imsdk.v2.V2TIMCallback;
+import com.tencent.imsdk.v2.V2TIMManager;
+import com.tencent.imsdk.v2.V2TIMUserFullInfo;
+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.HttpCallbackModel;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.event.UpdateFieldEvent;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.interfaces.ActivityResultCallback;
+import com.yunbao.common.interfaces.CommonCallback;
+import com.yunbao.common.interfaces.ImageResultCallback;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.CityUtil;
+import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.ProcessImageUtil;
+import com.yunbao.common.utils.StringUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.views.CompleteInformationPopup;
+import com.yunbao.common.views.UpdateSexPopup;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+import cn.qqtheme.framework.entity.City;
+import cn.qqtheme.framework.entity.County;
+import cn.qqtheme.framework.entity.Province;
+import cn.qqtheme.framework.picker.AddressPicker;
+
+/**
+ * 我的 编辑资料
+ */
+@Route(path = RouteManager.PATH_EDITPROFILE)
+public class EditProfileActivity extends AbsActivity {
+
+ private ImageView mAvatar;
+ private TextView mName;
+ private TextView mSign;
+ private TextView mBirthday;
+ private TextView mSex;
+ private TextView mCity;
+ private TextView tv_bind_phone;
+ private ProcessImageUtil cameraUtil;
+ private UserBean mUserBean;
+ private String mProvinceVal;
+ private String mCityVal;
+ private String mZoneVal;
+ private boolean isInto = true;
+ private String isBind = "0", mobile = "";
+ private boolean isName = false;
+
+ private String avatarUrl;
+
+ int userSex;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_edit_profile;
+ }
+
+ @Override
+ protected void main() {
+ setTitle(mContext.getString(R.string.edit_profile));
+ mAvatar = (ImageView) findViewById(R.id.avatar);
+ mName = (TextView) findViewById(R.id.name);
+ mSign = (TextView) findViewById(R.id.sign);
+ mBirthday = (TextView) findViewById(R.id.birthday);
+ mSex = (TextView) findViewById(R.id.sex);
+ mCity = (TextView) findViewById(R.id.city);
+ tv_bind_phone = (TextView) findViewById(R.id.tv_bind_phone);
+ mUserBean = CommonAppConfig.getInstance().getUserBean();
+ MainHttpUtil.getBaseInfo(new CommonCallback() {
+ @Override
+ public void callback(UserBean u) {
+ mUserBean = u;
+ showData(u);
+ }
+ });
+ /*if (mUserBean != null) {
+ showData(mUserBean);
+ } else {
+ MainHttpUtil.getBaseInfo(new CommonCallback() {
+ @Override
+ public void callback(UserBean u) {
+ mUserBean = u;
+ showData(u);
+ }
+ });
+ }*/
+ 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) {
+ ImgLoader.display(mContext, file, mAvatar);
+
+ OTONetManager.getInstance(EditProfileActivity.this).updateFile(file, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(AvatarBean data) {
+ ImgLoader.display(mContext, file, mAvatar);
+ //txtChoose.setVisibility(View.GONE);
+ avatarUrl = data.getAvatar();
+ ToastUtil.show("上传成功");
+
+ OTONetManager.getInstance(mContext).setInfo(avatarUrl, mName.getText().toString(), userSex, mBirthday.getText().toString(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(HttpCallbackModel data) {
+ Toast.makeText(mContext, data.getMsg(), Toast.LENGTH_SHORT).show();
+ V2TIMUserFullInfo v2TIMUserFullInfo = new V2TIMUserFullInfo();
+ v2TIMUserFullInfo.setFaceUrl(avatarUrl);
+ V2TIMManager.getInstance().setSelfInfo(v2TIMUserFullInfo, new V2TIMCallback() {
+ @Override
+ public void onError(int code, String desc) {
+ }
+
+ @Override
+ public void onSuccess() {
+ }
+ });
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show("上传失败");
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFailure() {
+
+ }
+ });
+ }
+
+
+ @Override
+ public void onBackPressed() {
+ if (userModel.getUserInfoComplete() == 1) {
+ finish();
+ } else {
+ new XPopup.Builder(mContext).asCustom(new CompleteInformationPopup(mContext, true, new CompleteInformationPopup.CompleteInformationCallBack() {
+ @Override
+ public void onCancel() {
+
+ }
+
+ @Override
+ public void onSure() {
+ finish();
+ }
+ })).show();
+ }
+ }
+
+ private void getTaskType() {
+ MainHttpUtil.getUserFrontTaskType(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info != null) {
+ if (info.length > 0) {
+ if (info[0].equals("0")) {
+ isInto = false;
+ } else {
+ isInto = true;
+ }
+ }
+ }
+ }
+ });
+ }
+
+ public void editProfileClick(View v) {
+ if (!canClick()) {
+ return;
+ }
+ int i = v.getId();
+ if (i == R.id.btn_avatar) {
+ if (isInto) {
+ editAvatar();
+ } else {
+ showTaskDialog();
+ }
+ } else if (i == R.id.btn_name) {
+ if (isInto) {
+ editName();
+ } else {
+ showTaskDialog();
+ }
+ } else if (i == R.id.btn_sign) {
+ if (isInto) {
+ forwardSign();
+ } else {
+ showTaskDialog();
+ }
+ } else if (i == R.id.btn_birthday) {
+ editBirthday();
+
+ } else if (i == R.id.btn_sex) {
+// forwardSex();
+ new XPopup.Builder(mContext).asCustom(new UpdateSexPopup(mContext, userModel.getSex(), new UpdateSexPopup.UpdateSexCallBack() {
+ @Override
+ public void onSex(int sex) {
+ userSex = sex;
+ MainHttpUtil.updateFields("{\"sex\":\"" + sex + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0 && info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ ToastUtil.show(obj.getString("msg"));
+ userModel.setSex(sex);
+ showData(userModel);
+ }
+ }
+ });
+ }
+ })).show();
+ } else if (i == R.id.btn_city) {
+ CountryPicker.newInstance(null, new OnPick() {
+ @Override
+ public void onPick(final Country country) {
+ mCity.setText(country.name);
+ MainHttpUtil.updateFields("{\"location\":\"" + country.name + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ if (info.length > 0) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u != null) {
+ u.setLocation(country.name);
+ }
+ if (userModel != null) {
+ userModel.setLocation(country.name);
+ }
+
+ showData(userModel);
+ EventBus.getDefault().post(new UpdateFieldEvent());
+ }
+ ToastUtil.show(obj.getString("msg"));
+ }
+ }
+ });
+ }
+ }).show(getSupportFragmentManager(), "country");
+ } else if (i == R.id.rt_bind_phone) {
+ /*startActivity(new Intent(mContext, BindUserActivity.class)
+ .putExtra("uid", CommonAppConfig.getInstance().getUid())
+ .putExtra("token", CommonAppConfig.getInstance().getToken())
+ .putExtra("isBind", isBind)
+ .putExtra("mobile", mobile));*/
+ }
+ }
+
+ private void editName() {
+ Intent intent = new Intent(mContext, EditNameActivity.class);
+ intent.putExtra(Constants.NICK_NAME, mUserBean.getUserNiceName());
+ cameraUtil.startActivityForResult(intent, new ActivityResultCallback() {
+ @Override
+ public void onSuccess(Intent intent) {
+ if (intent != null) {
+ String nickName = intent.getStringExtra(Constants.NICK_NAME);
+ mUserBean.setSignature(nickName);
+ mName.setText(nickName);
+ EventBus.getDefault().post(new UpdateFieldEvent());
+ }
+ }
+ });
+ }
+
+ private void showTaskDialog() {
+ final Dialog dialog = new Dialog(EditProfileActivity.this, R.style.dialog);
+ dialog.setContentView(R.layout.dialog_task);
+ dialog.setCancelable(true);
+ dialog.setCanceledOnTouchOutside(true);
+
+ dialog.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dialog.dismiss();
+ }
+ });
+ dialog.findViewById(R.id.tv_into).setOnClickListener(new View.OnClickListener() {
+ @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);
+ dialog.dismiss();
+ }
+ });
+ dialog.show();
+ }
+
+ private void editAvatar() {
+ UserAvatarPopup userAvatarPopup = new UserAvatarPopup(this, userAvatar1 -> {
+ avatarUrl = userAvatar1;
+ ImgLoader.display(EditProfileActivity.this, avatarUrl, mAvatar);
+
+ OTONetManager.getInstance(mContext).setInfo(avatarUrl, mName.getText().toString(), userSex, mBirthday.getText().toString(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(HttpCallbackModel data) {
+ Toast.makeText(mContext, data.getMsg(), Toast.LENGTH_SHORT).show();
+ V2TIMUserFullInfo v2TIMUserFullInfo = new V2TIMUserFullInfo();
+ v2TIMUserFullInfo.setFaceUrl(avatarUrl);
+ V2TIMManager.getInstance().setSelfInfo(v2TIMUserFullInfo, new V2TIMCallback() {
+ @Override
+ public void onError(int code, String desc) {
+ }
+
+ @Override
+ public void onSuccess() {
+ }
+ });
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+
+ //txtChoose.setVisibility(View.GONE);
+ }, isCamera -> {
+ if (isCamera) {
+ cameraUtil.getImageByCamera();
+ } else {
+ cameraUtil.getImageByAlumb();
+ }
+ });
+ new XPopup.Builder(mContext).asCustom(userAvatarPopup).show();
+ }
+
+ private void forwardSign() {
+ if (mUserBean == null) {
+ return;
+ }
+ Intent intent = new Intent(mContext, EditSignActivity.class);
+ intent.putExtra(Constants.SIGN, mUserBean.getSignature());
+ cameraUtil.startActivityForResult(intent, new ActivityResultCallback() {
+ @Override
+ public void onSuccess(Intent intent) {
+ if (intent != null) {
+ String sign = intent.getStringExtra(Constants.SIGN);
+ mUserBean.setSignature(sign);
+ mSign.setText(sign);
+ EventBus.getDefault().post(new UpdateFieldEvent());
+ }
+ }
+ });
+ }
+
+
+ int year;
+ int month;
+ int day;
+
+
+ private void editBirthday() {
+ if (mUserBean == null) {
+ return;
+ }
+
+ String[] times = mUserBean.getBirthday().split("-");
+ year = Integer.parseInt(times[0]);
+ month = Integer.parseInt(times[1]) - 1;
+ day = Integer.parseInt(times[2]);
+
+ //时间选择器
+ Calendar selectedDate = Calendar.getInstance();
+ selectedDate.set(year, month, day);
+ TimePickerView pvTime = new TimePickerBuilder(EditProfileActivity.this, new OnTimeSelectListener() {
+ @SuppressLint("SetTextI18n")
+ @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);
+
+ String strbri = year + "-" + (month + 1) + "-" + day;
+
+ mBirthday.setText(strbri);
+
+ MainHttpUtil.updateFields("{\"birthday\":\"" + strbri + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ if (info.length > 0) {
+ ToastUtil.show(JSON.parseObject(info[0]).getString("msg"));
+ mUserBean.setBirthday(strbri);
+ mBirthday.setText(strbri);
+
+ if (userModel != null) {
+ userModel.setBirthday(strbri);
+ }
+
+ showData(userModel);
+ EventBus.getDefault().post(new UpdateFieldEvent());
+ }
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+ });
+ }
+ }).setCancelText("生日").setSubmitColor(getResources().getColor(R.color.blue01)).setSubmitText("完成").setContentTextSize(20).setDate(selectedDate).build();
+ pvTime.show();
+ }
+
+ private void forwardSex() {
+ if (mUserBean == null) {
+ return;
+ }
+// Intent intent = new Intent(mContext, EditSexActivity.class);
+// intent.putExtra(Constants.SEX, mUserBean.getSex());
+// mImageUtil.startActivityForResult(intent, new ActivityResultCallback() {
+// @Override
+// public void onSuccess(Intent intent) {
+// if (intent != null) {
+// int sex = intent.getIntExtra(Constants.SEX, 0);
+// if (sex == 1) {
+// mSex.setText(R.string.sex_male);
+// mUserBean.setSex(sex);
+// } else if (sex == 2) {
+// mSex.setText(R.string.sex_female);
+// mUserBean.setSex(sex);
+// }
+// EventBus.getDefault().post(new UpdateFieldEvent());
+// }
+// }
+//
+// });
+ }
+
+ @Override
+ protected void onDestroy() {
+ Bus.getOff(this);
+ if (cameraUtil != null) {
+ cameraUtil.release();
+ }
+ //MainHttpUtil.cancel(MainHttpConsts.UPDATE_AVATAR);
+ //MainHttpUtil.cancel(MainHttpConsts.UPDATE_FIELDS);
+ super.onDestroy();
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onEditProfileEvent(/*EditProfileEvent event*/) {
+ MainHttpUtil.getBaseInfo(new CommonCallback() {
+ @Override
+ public void callback(UserBean u) {
+ showData(u);
+ }
+ });
+ }
+
+ private UserBean userModel;
+
+ private void showData(UserBean u) {
+ userModel = u;
+ int index = 0;
+ String birthday = u.getBirthday();
+ String location = u.getLocation();
+ String bindPhone = u.getMobile();
+ String sex = "";
+ if (u.getSex() == 1) {
+ sex = mContext.getString(R.string.sex_male);
+ } else if (u.getSex() == 2) {
+ sex = mContext.getString(R.string.sex_female);
+ }
+ if (!TextUtils.isEmpty(bindPhone)) {
+ index = index + 1;
+ }
+ if (!TextUtils.isEmpty(location)) {
+ index = index + 1;
+ }
+ if (!TextUtils.isEmpty(birthday)) {
+ index = index + 1;
+ }
+ if (!TextUtils.isEmpty(sex)) {
+ index = index + 1;
+ }
+ /*if (index == 0) {
+ completeInformation.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation1.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation2.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation3.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ information.setVisibility(View.VISIBLE);
+ information1.setVisibility(View.VISIBLE);
+ information2.setVisibility(View.VISIBLE);
+ information3.setVisibility(View.VISIBLE);
+ viewProgress1.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ viewProgress2.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ viewProgress3.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ submit.setText(R.string.to_complete);
+ submit.setTextColor(Color.parseColor("#ffffff"));
+ } else if (index == 1) {
+ completeInformation.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation1.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation2.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation3.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ information.setVisibility(View.INVISIBLE);
+ information1.setVisibility(View.VISIBLE);
+ information2.setVisibility(View.VISIBLE);
+ information3.setVisibility(View.VISIBLE);
+ viewProgress1.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ viewProgress2.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ viewProgress3.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ submit.setText(R.string.to_complete);
+ submit.setTextColor(Color.parseColor("#ffffff"));
+ } else if (index == 2) {
+ information.setVisibility(View.INVISIBLE);
+ information1.setVisibility(View.INVISIBLE);
+ information2.setVisibility(View.VISIBLE);
+ information3.setVisibility(View.VISIBLE);
+ completeInformation1.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation2.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ completeInformation3.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ viewProgress1.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ viewProgress2.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ viewProgress3.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ submit.setText(R.string.to_complete);
+ submit.setTextColor(Color.parseColor("#ffffff"));
+ } else if (index == 3) {
+ information.setVisibility(View.INVISIBLE);
+ information1.setVisibility(View.INVISIBLE);
+ information2.setVisibility(View.INVISIBLE);
+ information3.setVisibility(View.VISIBLE);
+ completeInformation.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation1.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation2.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation3.setBackgroundResource(R.mipmap.bg_complete_information_progress);
+ viewProgress1.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ viewProgress2.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ viewProgress3.setBackgroundColor(Color.parseColor("#DEE4F1"));
+ submit.setText(R.string.to_complete);
+ submit.setTextColor(Color.parseColor("#ffffff"));
+ } else if (index == 4) {
+ information.setVisibility(View.INVISIBLE);
+ information1.setVisibility(View.INVISIBLE);
+ information2.setVisibility(View.INVISIBLE);
+ information3.setVisibility(View.INVISIBLE);
+ completeInformation.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation1.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation2.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ completeInformation3.setBackgroundResource(R.mipmap.bg_complete_information_progress2);
+ viewProgress1.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ viewProgress2.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ viewProgress3.setBackgroundColor(Color.parseColor("#FFE5D0"));
+ submit.setText(R.string.to_receive);
+ submit.setTextColor(Color.parseColor("#935902"));
+ submit.setEnabled(true);
+ }*/
+ ImgLoader.displayAvatar(mContext, u.getAvatar(), mAvatar);
+ mName.setText(u.getUserNiceName());
+ mSign.setText(u.getSignature());
+ mBirthday.setText(u.getBirthday());
+ if (u.getSex() == 0) {
+ mSex.setText("");
+ } else if (u.getSex() == 1) {
+ mSex.setText(R.string.sex_male);
+ } else if (u.getSex() == 2) {
+ mSex.setText(R.string.sex_female);
+ }
+
+ mCity.setText(u.getLocation());
+ if ("1".equals(u.getIs_bind())) {
+ mobile = u.getMobile();
+ tv_bind_phone.setText(mobile);
+ isBind = "1";
+ } else {
+ tv_bind_phone.setHint(getResources().getString(R.string.bind_phone_text));
+ isBind = "0";
+ }
+ /*if (u.getUserInfoComplete() == 1) {
+ submit.setText(R.string.live_task_item_complete_true);
+ submit.setBackgroundResource(R.mipmap.bg_submit_cancel);
+ submit.setTextColor(Color.parseColor("#FFFFFF"));
+ submit.setEnabled(false);
+ } else {
+ if (index < 4) {
+ submit.setText(R.string.to_complete);
+ submit.setBackgroundResource(R.mipmap.bg_submit);
+ submit.setTextColor(Color.parseColor("#FFFFFF"));
+ submit.setEnabled(false);
+ } else {
+ submit.setText(R.string.to_receive);
+ submit.setBackgroundResource(R.mipmap.bg_submit);
+ submit.setTextColor(Color.parseColor("#935902"));
+ }
+
+ }*/
+ }
+
+
+ /**
+ * 选择城市
+ */
+ private void chooseCity() {
+ ArrayList list = CityUtil.getInstance().getCityList();
+ if (list == null || list.size() == 0) {
+ final Dialog loading = DialogUitl.loadingDialog(mContext);
+ loading.show();
+ CityUtil.getInstance().getCityListFromAssets(new CommonCallback>() {
+ @Override
+ public void callback(ArrayList newList) {
+ loading.dismiss();
+ if (newList != null) {
+ showChooseCityDialog(newList);
+ }
+ }
+ });
+ } else {
+ showChooseCityDialog(list);
+ }
+ }
+
+ /**
+ * 选择城市
+ */
+ private void showChooseCityDialog(ArrayList list) {
+ String province = mProvinceVal;
+ String city = mCityVal;
+ String district = mZoneVal;
+ if (TextUtils.isEmpty(province)) {
+ province = CommonAppConfig.getInstance().getProvince();
+ }
+ if (TextUtils.isEmpty(city)) {
+ city = CommonAppConfig.getInstance().getCity();
+ }
+ if (TextUtils.isEmpty(district)) {
+ district = CommonAppConfig.getInstance().getDistrict();
+ }
+ DialogUitl.showCityChooseDialog(this, list, province, city, district, new AddressPicker.OnAddressPickListener() {
+ @Override
+ public void onAddressPicked(Province province, final City city, County county) {
+ String provinceName = province.getAreaName();
+ String cityName = city.getAreaName();
+ String zoneName = county.getAreaName();
+ mProvinceVal = provinceName;
+ mCityVal = cityName;
+ mZoneVal = zoneName;
+ final String location = StringUtil.contact(mProvinceVal, mCityVal, mZoneVal);
+ if (mCity != null) {
+ mCity.setText(location);
+ }
+
+ MainHttpUtil.updateFields("{\"location\":\"" + location + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ if (info.length > 0) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u != null) {
+ u.setLocation(location);
+ }
+ EventBus.getDefault().post(new UpdateFieldEvent());
+ }
+ ToastUtil.show(obj.getString("msg"));
+ }
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (Constants.isShowPage != -1) {
+ finish();
+ }
+ MainHttpUtil.getBaseInfo(new CommonCallback() {
+ @Override
+ public void callback(UserBean u) {
+ if (u != null && "1".equals(u.getIs_bind())) {
+ mobile = u.getMobile();
+ tv_bind_phone.setText(mobile);
+ isBind = "1";
+ } else {
+ tv_bind_phone.setHint(getResources().getString(R.string.bind_phone_text));
+ isBind = "0";
+ }
+ }
+ });
+// getTaskType();
+ if (isName) {
+ isName = false;
+ MainHttpUtil.getBaseInfo(CommonAppConfig.getInstance().getUid(), CommonAppConfig.getInstance().getToken(), new CommonCallback() {
+ @Override
+ public void callback(UserBean bean) {
+ if (bean != null) {
+ CommonAppConfig.getInstance().setLoginInfo(CommonAppConfig.getInstance().getUid(), CommonAppConfig.getInstance().getToken(), false);
+ mUserBean = CommonAppConfig.getInstance().getUserBean();
+ mName.setText(mUserBean.getUserNiceName());
+ }
+ }
+ });
+ }
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditSignActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditSignActivity.java
new file mode 100644
index 000000000..1fb2fb5f9
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditSignActivity.java
@@ -0,0 +1,95 @@
+package com.shayu.onetoone.activity.user;
+
+import android.content.Intent;
+import android.text.InputFilter;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.shayu.onetoone.R;
+import com.shayu.onetoone.utils.MainHttpConsts;
+import com.shayu.onetoone.utils.MainHttpUtil;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.activity.AbsActivity;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.utils.ToastUtil;
+
+/**
+ * Created by cxf on 2018/9/29.
+ * 设置签名
+ */
+
+public class EditSignActivity extends AbsActivity {
+
+ private EditText mEditText;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_edit_sign;
+ }
+
+ @Override
+ protected void main() {
+ setTitle(mContext.getString(R.string.edit_profile_update_sign));
+ mEditText = (EditText) findViewById(R.id.edit);
+ mEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
+ findViewById(R.id.btSave).setVisibility(View.VISIBLE);
+ findViewById(R.id.btSave).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ediSign();
+ }
+ });
+ String content = getIntent().getStringExtra(Constants.SIGN);
+ if (!TextUtils.isEmpty(content)) {
+ if (content.length() > 20) {
+ content = content.substring(0, 20);
+ }
+ mEditText.setText(content);
+ mEditText.setSelection(content.length());
+ }
+ }
+
+ public void ediSign() {
+ if (!canClick()) {
+ return;
+ }
+ final String content = mEditText.getText().toString().trim();
+ if (TextUtils.isEmpty(content)) {
+ ToastUtil.show(R.string.edit_profile_sign_empty);
+ return;
+ }
+ MainHttpUtil.updateFields("{\"signature\":\"" + content + "\"}", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ if (info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ ToastUtil.show(obj.getString("msg"));
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+// if (u != null) {
+// u.setUserNiceName(content);
+// }
+ Intent intent = getIntent();
+ intent.putExtra(Constants.SIGN, content);
+ setResult(RESULT_OK, intent);
+ finish();
+ }
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+ });
+ }
+
+
+ @Override
+ protected void onDestroy() {
+ MainHttpUtil.cancel(MainHttpConsts.UPDATE_FIELDS);
+ super.onDestroy();
+ }
+}
diff --git a/OneToOne/src/main/res/drawable/background_ffbe41.xml b/OneToOne/src/main/res/drawable/background_ffbe41.xml
new file mode 100644
index 000000000..1b319366c
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/background_ffbe41.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_line_ffbe41.xml b/OneToOne/src/main/res/drawable/bg_line_ffbe41.xml
new file mode 100644
index 000000000..7d9f642a4
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_line_ffbe41.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bt_custom_bg.xml b/OneToOne/src/main/res/drawable/bt_custom_bg.xml
new file mode 100644
index 000000000..0a1771951
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bt_custom_bg.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_edit_name.xml b/OneToOne/src/main/res/layout/activity_edit_name.xml
new file mode 100644
index 000000000..5ce46c0ca
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_edit_name.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_edit_profile.xml b/OneToOne/src/main/res/layout/activity_edit_profile.xml
new file mode 100644
index 000000000..9b7d594b3
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_edit_profile.xml
@@ -0,0 +1,440 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_edit_sign.xml b/OneToOne/src/main/res/layout/activity_edit_sign.xml
new file mode 100644
index 000000000..0f821df61
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_edit_sign.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_setting.xml b/OneToOne/src/main/res/layout/activity_setting.xml
new file mode 100644
index 000000000..ed3856a3e
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_setting.xml
@@ -0,0 +1,422 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/dialog_task.xml b/OneToOne/src/main/res/layout/dialog_task.xml
new file mode 100644
index 000000000..a456f05a6
--- /dev/null
+++ b/OneToOne/src/main/res/layout/dialog_task.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/view_title_custom.xml b/OneToOne/src/main/res/layout/view_title_custom.xml
index 3e60dec53..7a4ad0812 100644
--- a/OneToOne/src/main/res/layout/view_title_custom.xml
+++ b/OneToOne/src/main/res/layout/view_title_custom.xml
@@ -41,7 +41,6 @@
android:visibility="gone"
app:tint="@color/textColor" />
-
+
+
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/img_pop.png b/OneToOne/src/main/res/mipmap-xxhdpi/img_pop.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe77d476d88dcf29fbffa85ea5662c2f47cfc5d8
GIT binary patch
literal 87603
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