From 62e03918dadfe89310a55a3a12390926354f7101 Mon Sep 17 00:00:00 2001 From: "androidTwo@admin.com" Date: Wed, 22 Apr 2026 20:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=B5=84=E6=96=99=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=BF=AE=E6=94=B9=E5=92=8C=E6=8E=A5=E5=8F=A3=E8=B5=B0?= =?UTF-8?q?=E9=80=9A=EF=BC=8Cup=E8=AE=A4=E8=AF=81=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=B7=B2=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 12 + .../register/manager/RegisterManager.java | 2 + .../model/settings/InvitationTotal.java | 10 +- .../model/settings/UserInfoBean.java | 18 + .../view/settings/InfoEditActivity.java | 354 +++++++++++-- .../view/settings/InvitationActivity.java | 2 +- .../view/settings/PersonalJobActivity.java | 102 ++++ .../view/settings/PersonalSchoolActivity.java | 102 ++++ .../settings/PersonalSignatureActivity.java | 2 +- .../view/settings/PhotoListTwoActivity.java | 469 ++++++++++++++++++ .../view/settings/RealNameTwoActivity.java | 2 - .../view/settings/UpPrivilegeActivity.java | 367 +++++++------- .../settings/UploadPhotoCoverActivity.java | 2 - .../view/settings/WxCodeActivity.java | 6 +- .../main/res/drawable-xxhdpi/ic_card_fm.png | Bin 0 -> 21835 bytes .../main/res/drawable-xxhdpi/ic_card_sc.png | Bin 0 -> 14760 bytes .../main/res/drawable-xxhdpi/ic_card_zm.png | Bin 0 -> 20313 bytes .../res/drawable-xxhdpi/ic_photo_empty.png | Bin 0 -> 2295 bytes .../res/drawable-xxhdpi/ic_photo_tips.png | Bin 0 -> 845 bytes app/src/main/res/drawable/custom_progress.xml | 13 + .../main/res/layout/activity_personal_job.xml | 81 +++ .../res/layout/activity_personal_school.xml | 81 +++ .../layout/activity_personal_signature.xml | 86 ++-- .../res/layout/activity_photo_list_two.xml | 73 +++ .../res/layout/activity_real_name_two.xml | 72 ++- .../layout/activity_settings_info_edit.xml | 285 ++++++++++- .../layout/activity_upload_photo_cover.xml | 2 +- app/src/main/res/layout/activity_wx_code.xml | 26 +- .../main/res/layout/item_info_edit_photo.xml | 6 +- 29 files changed, 1871 insertions(+), 304 deletions(-) create mode 100644 app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalJobActivity.java create mode 100644 app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSchoolActivity.java create mode 100644 app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PhotoListTwoActivity.java create mode 100644 app/src/main/res/drawable-xxhdpi/ic_card_fm.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_card_sc.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_card_zm.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_photo_empty.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_photo_tips.png create mode 100644 app/src/main/res/drawable/custom_progress.xml create mode 100644 app/src/main/res/layout/activity_personal_job.xml create mode 100644 app/src/main/res/layout/activity_personal_school.xml create mode 100644 app/src/main/res/layout/activity_photo_list_two.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a82eb30..3659438 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -174,6 +174,18 @@ + + + + + + diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/register/manager/RegisterManager.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/register/manager/RegisterManager.java index 3935d0a..5d10840 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/register/manager/RegisterManager.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/register/manager/RegisterManager.java @@ -194,6 +194,8 @@ public class RegisterManager { builder.addParam("cityId", (String) map.get("city")); builder.addParam("birthday", (String) map.get("birthday")); builder.addParam("job", (String) map.get("job")); + builder.addParam("height", (String) map.get("height")); + builder.addParam("school", (String) map.get("school")); builder.addParam("del_video", (String) map.get("del_video")); if (null != map.get("inviteId") && !"".equals(map.get("inviteId"))) { builder.addParam("invite_code", (String) map.get("inviteId")); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/InvitationTotal.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/InvitationTotal.java index a05a552..3d4c163 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/InvitationTotal.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/InvitationTotal.java @@ -2,7 +2,7 @@ package com.xuebiping.bolizhuzi.model.settings; public class InvitationTotal { private int total_reward; - private int total_invite_reward; + private int total_commission_coin; private int total_invite; private int total_commission; private int recharge_count; @@ -48,11 +48,11 @@ public class InvitationTotal { this.auth_count = auth_count; } - public int getTotal_invite_reward() { - return total_invite_reward; + public int getTotal_commission_coin() { + return total_commission_coin; } - public void setTotal_invite_reward(int total_invite_reward) { - this.total_invite_reward = total_invite_reward; + public void setTotal_commission_coin(int total_commission_coin) { + this.total_commission_coin = total_commission_coin; } } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java index 4b3dc67..e5e6fe9 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/settings/UserInfoBean.java @@ -38,11 +38,29 @@ public class UserInfoBean { private int newer_win_status;//新用户弹窗标识:1=新用户、0=旧用户 private String job; private String signature; + private String school; private UserFrameBean user_frame; + private int height; private int user_type; private int online_status; private int do_not_disturb; + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + public String getSchool() { + return school; + } + + public void setSchool(String school) { + this.school = school; + } + public int getDo_not_disturb() { return do_not_disturb; } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InfoEditActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InfoEditActivity.java index ec8d904..e0510ac 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InfoEditActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InfoEditActivity.java @@ -1,6 +1,7 @@ package com.xuebiping.bolizhuzi.view.settings; import android.Manifest; +import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; @@ -8,6 +9,7 @@ import android.graphics.Bitmap; import android.graphics.Color; import android.media.ThumbnailUtils; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.text.Html; @@ -19,10 +21,12 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; @@ -89,6 +93,9 @@ import com.fengliyan.uikit.sketch.SketchImageView; import com.fengliyan.uikit.toast.MaleToast; import java.io.File; +import java.time.LocalDate; +import java.time.Period; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -110,6 +117,8 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen private String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; public static final int VIDEO_COVER_REQUEST = 501;//封面视频 public static final int SIGNATURE_REQUEST = 502;//个性签名 + public static final int JOB_REQUEST = 503;//职业 + public static final int SCHOOL_REQUEST = 504;//学校 public static final int MULTI_SELECTOR_REQUEST = 200; public static final int PERMISSION_REQUEST_CODE = 101; public static final int REQUEST_EDIT_NICKNAME = 210; @@ -170,6 +179,8 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen private String mOldBirthday = ""; private String mOldCity = ""; private String mOldJob = ""; + private String mOldSchool = ""; + private String mOldHeight = ""; private WQTipsDialog mWQTipsDialog; private String mEdit_nickname_tip; private String mNickname_tip; @@ -185,7 +196,21 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen TextView videoStatusLabel; View videoBtn; private String del_video = "0"; - private String job = "自由职业-自由职业"; + //private String job = "自由职业-自由职业"; + private SimpleDraweeView photosImageView; + private TextView settings_info_edit_age; + private TextView settings_info_edit_xz; + private TextView settings_info_edit_gender; + private TextView settings_info_edit_school; + private TextView settings_info_edit_height; + private String height; + private RelativeLayout photosBtn; + private String album; + private String mOldalbum; + private RelativeLayout settings_info_edit_height_layout; + private RelativeLayout settings_info_edit_xx_layout; + private TextView tv_finish_bfb; + private ProgressBar progress_bar_bfb; @Override public void onCreate(Bundle onSavedInstance) { @@ -200,6 +225,11 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } private void initView() { + tv_finish_bfb = findViewById(R.id.tv_finish_bfb); + progress_bar_bfb = findViewById(R.id.progress_bar_bfb); + + progress_bar_bfb.setMax(100); + videoStatusLabel = findViewById(R.id.videoStatusLabel); avatarImageView = findViewById(R.id.avatarImageView); videoCoverImageView = findViewById(R.id.videoCoverImageView); @@ -221,7 +251,17 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } }); + photosImageView = findViewById(R.id.photosImageView); + photosBtn = findViewById(R.id.photosBtn); + settings_info_edit_age = findViewById(R.id.settings_info_edit_age); + settings_info_edit_xz = findViewById(R.id.settings_info_edit_xz); + settings_info_edit_gender = findViewById(R.id.settings_info_edit_gender); + settings_info_edit_school = findViewById(R.id.settings_info_edit_school); + settings_info_edit_xx_layout = findViewById(R.id.settings_info_edit_xx_layout); + settings_info_edit_height_layout = findViewById(R.id.settings_info_edit_height_layout); + settings_info_edit_height = findViewById(R.id.settings_info_edit_height); mPhotoListView = findViewById(R.id.settings_info_edit_photos); + mPhotoListView.setVisibility(View.GONE); mNickNameLayout = findViewById(R.id.settings_info_edit_nick_name_layout); mBirthDayLayout = findViewById(R.id.settings_info_edit_birthday_layout); mJobLayout = findViewById(R.id.settings_info_edit_job_layout); @@ -246,9 +286,15 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen mSignLayout.setOnClickListener(this); mConfirmButton.setOnClickListener(this); info_video_delete.setOnClickListener(this); + photosBtn.setOnClickListener(this); + settings_info_edit_height_layout.setOnClickListener(this); + settings_info_edit_xx_layout.setOnClickListener(this); + + initHeightOptionPicker(); + videoBtn = findViewById(R.id.videoBtn); if (UserManager.getUserInfo().isWomen()) { - videoBtn.setVisibility(View.VISIBLE); + videoBtn.setVisibility(View.GONE); } else { videoBtn.setVisibility(View.GONE); } @@ -314,6 +360,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen if (!file.exists()) { file.mkdirs(); } + } private PermissionDialog permissionDialog; @@ -515,15 +562,10 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen // 最后一步之前检测视频和头像是否有变化 private void editProfile(String albums) { - if (videoFile != null && videoUrl == null && videoCoverUrl == null) { + /*if (videoFile != null && videoUrl == null && videoCoverUrl == null) { uploadVideo(albums); return; - } - if (avatarPath != null && avatarUrl == null) { - //uploadAvatar - uploadAvatar(albums); - return; - } + }*/ if (mUserInfo == null) { return; } @@ -537,7 +579,9 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen map.put("gender", mUserInfo.getGender() + ""); map.put("avatar", avatarUrl); map.put("city", mCityId); - map.put("job", job); + map.put("job", mJob.getText().toString()); + map.put("height", height); + map.put("school", settings_info_edit_school.getText().toString()); map.put("birthday", mBirthDay.getText().toString()); map.put("del_video", del_video); if (videoUrl != null) { @@ -607,11 +651,26 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } else if (view == mConfirmButton) { submit(); } else if (view == mJobLayout) { - pvOptions.show(); + //pvOptions.show(); + Intent intent = new Intent(this, PersonalJobActivity.class); + intent.putExtra("job", mJob.getText()); + startActivityForResult(intent, JOB_REQUEST); } else if (view == mSignLayout) { Intent intent = new Intent(this, PersonalSignatureActivity.class); intent.putExtra("signature", mSign.getText()); startActivityForResult(intent, SIGNATURE_REQUEST); + }else if(view == photosBtn){ + Intent intent = new Intent(this, PhotoListTwoActivity.class); + if(!TextUtils.isEmpty(mOldalbum)){ + intent.putExtra("album", mOldalbum); + } + startActivityForResult(intent,206); + }else if(view == settings_info_edit_xx_layout){ + Intent intent = new Intent(this, PersonalSchoolActivity.class); + intent.putExtra("school", settings_info_edit_school.getText().toString()); + startActivityForResult(intent, SCHOOL_REQUEST); + }else if(view == settings_info_edit_height_layout){ + pvHeighttions.show(); } } @@ -639,7 +698,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen }); } - void uploadAvatar(String albums) { + void uploadAvatar(String avatarPath) { UploadFile uploadFile = new UploadFile(System.currentTimeMillis() + ".jpg", avatarPath); UploadFile[] files = new UploadFile[]{uploadFile}; DynamicsManager.uploadImage(this, files, "album", @@ -647,7 +706,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen @Override public void onSuccess(BaseActivity activity, List result, String message) { avatarUrl = result.get(0).getUrl(); - editProfile(albums); + //editProfile(albums); } @Override @@ -728,24 +787,29 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen */ private void updateData() { boolean hasPhoto = false; - for (String path : mPhotoDataList) { + /*for (String path : mPhotoDataList) { if (path.equals("") || path.equals("selector")) { continue; } + hasPhoto = true; + }*/ + + + if(!TextUtils.isEmpty(album)){ hasPhoto = true; } if (!hasPhoto) { editProfile(null); } else { - new Thread(new Runnable() { + /* new Thread(new Runnable() { @Override public void run() { compressAndUpload(); } - }).start(); - + }).start();*/ + editProfile(album); } } @@ -792,13 +856,35 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DATE); int year = calendar.get(Calendar.YEAR); - mBirthDay.setText(year + "-" + month + "-" + day + " "); + + String mm = ""; + if(String.valueOf(month).length() == 1) { + mm = "0"+month; + }else { + mm = month+""; + } + + String dd = ""; + if(String.valueOf(day).length() == 1) { + dd = "0"+day; + }else { + dd = day+""; + } + mBirthDay.setText(year + "-" + mm + "-" + dd); + int age = calculateAge(mBirthDay.getText().toString().trim()); + String zodiac = getZodiac(mBirthDay.getText().toString().trim()); + + settings_info_edit_age.setText(age+""); + settings_info_edit_xz.setText(zodiac); + } }).setRangDate(startCalendar, endCalendar).build(); mAgePicker.setDate(endCalendar); - initOptionPicker(); + //initOptionPicker(); } + + int progress = 0; public void getUserInfo() { SettingManager.getHomeUser(this, new HttpUiCallBack() { @@ -813,7 +899,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen videoCoverImageView.setVisibility(View.VISIBLE); info_video_delete.setVisibility(View.VISIBLE); videoStatusLabel.setVisibility(View.GONE); - videoCoverImageView.setImageURI(StrU.getResourcePath(result.getUserinfo().getVideo_cover_url(),activity)); + videoCoverImageView.setImageURI(StrU.getResourcePath(result.getUserinfo().getVideo_cover_url(), activity)); /*RequestOptions requestOptions = new RequestOptions() .centerCrop() .override(100, 100); @@ -830,6 +916,11 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen //旧生日初始化 mOldBirthday = result.getUserinfo().getBirthday(); mBirthDay.setText(result.getUserinfo().getBirthday()); + int age = calculateAge(mOldBirthday); + settings_info_edit_age.setText(age+""); + String zodiac = getZodiac(mOldBirthday); + settings_info_edit_xz.setText(zodiac); + //旧城市初始化 mOldCity = result.getUserinfo().getCity(); mCity.setText(result.getUserinfo().getCity()); @@ -843,15 +934,39 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen mNickname_tip = result.getUserinfo().getNickname_tip(); mEdit_nickname_tip = result.getUserinfo().getEdit_nickname_tip(); + if(result.getUserinfo().getGender() == 1) { + settings_info_edit_gender.setText("男"); + }else { + settings_info_edit_gender.setText("女"); + } + + mOldHeight = result.getUserinfo().getHeight()+""; + if(result.getUserinfo().getHeight() > 0) { + settings_info_edit_height.setText(result.getUserinfo().getHeight() + "CM"); + } + + mOldSchool = result.getUserinfo().getSchool(); + settings_info_edit_school.setText(result.getUserinfo().getSchool()); + List album_list = result.getUserinfo().getAlbum_list(); mRequestArray.addAll(album_list); int size = album_list.size(); if (size > 0) { + photosImageView.setImageURI(StrU.getResourcePath(album_list.get(0), activity)); + StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < size; i++) { mPhotoDataList.set(i, album_list.get(i)); mOldPhotoDataList.set(i, album_list.get(i)); + String str = album_list.get(i); + stringBuilder.append(str); + if (i < size - 1) { + stringBuilder.append(","); + } } + + mOldalbum = stringBuilder.toString(); + if (size < 6) { mPhotoDataList.set(size, "selector"); mOldPhotoDataList.set(size, "selector"); @@ -861,18 +976,22 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } } //职业 - if (!TextUtils.isEmpty(result.getUserinfo().getJob())) { + /*if (!TextUtils.isEmpty(result.getUserinfo().getJob())) { job = result.getUserinfo().getJob(); } else { job = "自由职业-自由职业"; - } - List jobList = Arrays.asList(job.split("-")); + }*/ + /* List jobList = Arrays.asList(job.split("-")); if (jobList.size() > 0) { mJob.setText(jobList.get(jobList.size() - 1)); - } + } else { + mJob.setText(jobList.get(0)); + }*/ + + mJob.setText(result.getUserinfo().getJob()); if (result.getIp_info() != null) { - settings_info_edit_ip_city_layout.setVisibility(View.VISIBLE); + settings_info_edit_ip_city_layout.setVisibility(View.GONE); settings_info_edit_ip_city.setText(!TextUtils.isEmpty(result.getIp_info().getProvince()) ? result.getIp_info().getProvince() : !TextUtils.isEmpty(result.getIp_info().getCity()) ? result.getIp_info().getCity() : "未知"); if (mCityId == null) { if (!TextUtils.isEmpty(result.getIp_info().getCity())) { @@ -883,6 +1002,45 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen mCity.setText(!TextUtils.isEmpty(result.getIp_info().getProvince()) ? result.getIp_info().getProvince() : !TextUtils.isEmpty(result.getIp_info().getCity()) ? result.getIp_info().getCity() : "未知"); } } + + if(!TextUtils.isEmpty(mUserInfo.getNickname())){ + progress = progress + 10; + } + + if(!TextUtils.isEmpty(mUserInfo.getAvatar())){ + progress = progress + 10; + } + + if(mUserInfo.getAlbum_list() != null && mUserInfo.getAlbum_list().size() > 0){ + progress = progress + 10; + } + + if(mUserInfo.getGender() == 1 || mUserInfo.getGender() == 2) { + progress = progress + 10; + } + + if(!TextUtils.isEmpty(mUserInfo.getBirthday())){ + progress = progress + 20; + } + + if(mUserInfo.getHeight() != 0){ + progress = progress + 10; + } + + if(!TextUtils.isEmpty(mUserInfo.getJob())){ + progress = progress + 10; + } + + if(!TextUtils.isEmpty(mUserInfo.getSchool())){ + progress = progress + 10; + } + + if(!TextUtils.isEmpty(mUserInfo.getSignature())){ + progress = progress + 10; + } + + tv_finish_bfb.setText(progress+"%"); + progress_bar_bfb.setProgress(progress); } @Override @@ -965,7 +1123,8 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } else if (requestCode == VIDEO_COVER_REQUEST) {//封面视频 if (data != null) { String videoPath = data.getStringExtra("VideoPath"); - if (ConstUrl.LOGDEBUG) Log.i(TAG, "onActivityResult: videoPath----------->" + videoPath); + if (ConstUrl.LOGDEBUG) + Log.i(TAG, "onActivityResult: videoPath----------->" + videoPath); String md5 = MD5.getStreamMD5(videoPath); String filename = md5 + "." + FileUtil.getExtensionName(videoPath); @@ -1018,6 +1177,29 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen isSignature = true; mSign.setText(city); } + }else if (requestCode == JOB_REQUEST && resultCode == RESULT_OK) { + if (null != data) { + String job = data.getStringExtra("job"); + isJob = true; + mJob.setText(job); + } + }else if (requestCode == SCHOOL_REQUEST && resultCode == RESULT_OK) { + if (null != data) { + String school = data.getStringExtra("school"); + isSchool = true; + settings_info_edit_school.setText(school); + } + }else if(requestCode == 206){ + if(data != null) { + album = data.getStringExtra("album"); + mOldalbum = album; + if(!TextUtils.isEmpty(album) && album.contains(",")) { + String[] split = album.split(","); + if (split.length > 0) { + photosImageView.setImageURI(ConstUrl.IMAGE_URL + split[0]); + } + } + } } } @@ -1027,6 +1209,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen this.avatarPath = path; avatarUrl = null; avatarImageView.setImageURI("file://" + this.avatarPath); + uploadAvatar(avatarPath); return; } if (null != path && !TextUtils.isEmpty(path)) { @@ -1069,15 +1252,24 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen } private boolean isSignature = false; + private boolean isJob = false; + private boolean isSchool = false; private void isChange() { - boolean isPhoto = photoChange(mPhotoDataList, mOldPhotoDataList); + boolean isPhoto = !TextUtils.isEmpty(album);//photoChange(mPhotoDataList, mOldPhotoDataList); boolean isName = mOldNickName.equals(mNickName.getText()); boolean isBirthday = mOldBirthday.equals(mBirthDay.getText()); - boolean isCity = mOldCity.equals(mCity.getText()); + //boolean isCity = mOldCity.equals(mCity.getText()); boolean avatarChange = TextUtils.isEmpty(avatarPath); - boolean isJob = TextUtils.equals(mOldJob, job); - if (isName && isBirthday && isCity && avatarChange && isJob && videoFile == null && !isSignature) { //没有改变 + String height = ""; + if(TextUtils.isEmpty(settings_info_edit_height.getText().toString())){ + height = "0CM"; + }else { + height = settings_info_edit_height.getText().toString(); + } + boolean isHeight = mOldHeight.equals(height.replace("CM","")); + //boolean isSchool = mOldSchool.equals(settings_info_edit_school.getText().toString()); + if (isName && isBirthday && isHeight && avatarChange && !isJob && !isSchool && videoFile == null && !isSignature) { //没有改变 if (!isPhoto) { finish(); } else { @@ -1123,21 +1315,21 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen private List options1Items = new ArrayList<>(); private ArrayList> options2Items = new ArrayList<>(); - private void initOptionPicker() {//条件选择器初始化 + /* private void initOptionPicker() {//条件选择器初始化 options1Items.clear(); options2Items.clear(); String s = SysSPUtils.getString(this, ConsUser.PROFILE); Gson gson = new Gson(); GlobalConfigBean.ProfileBean bean = gson.fromJson(s, GlobalConfigBean.ProfileBean.class); - if(bean != null && bean.getJob_list().size() > 0) { + if (bean != null && bean.getJob_list().size() > 0) { for (int i = 0; i < bean.getJob_list().size(); i++) { options1Items.add(bean.getJob_list().get(i).getName()); options2Items.add(bean.getJob_list().get(i).getMenu()); } } - /** + *//** * 注意 :如果是三级联动的数据(省市区等),请参照 JsonDataActivity 类里面的写法。 - */ + *//* pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int options2, int options3, View v) { @@ -1146,7 +1338,7 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen String occupation = options2Items.get(options1).get(options2); mJob.setText(occupation); job = options1Items.get(options1) + "-" + options2Items.get(options1).get(options2); - if (ConstUrl.LOGDEBUG) Log.i(TAG, "onOptionsSelect: ----------->" + job); + if (ConstUrl.LOGDEBUG) Log.i(TAG, "onOptionsSelect: ----------->" + job); } } }) @@ -1167,7 +1359,95 @@ public class InfoEditActivity extends BaseActivity implements View.OnClickListen if (options1Items.size() > 0 && options2Items.size() > 0) { pvOptions.setPicker(options1Items, options2Items);//二级选择器 } + }*/ + + + @SuppressLint("NewApi") + public int calculateAge(String birthDateString) { + LocalDate birthDate = LocalDate.parse(birthDateString, FORMATTER); + LocalDate today = LocalDate.now(); + int age = Period.between(birthDate, today).getYears(); + return age; } + + + @SuppressLint("NewApi") + private final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + @SuppressLint("NewApi") + public String getZodiac(String birthDateString) { + LocalDate birthDate = LocalDate.parse(birthDateString, FORMATTER); + int month = birthDate.getMonthValue(); + int day = birthDate.getDayOfMonth(); + + String chinese; + if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) { + chinese = "水瓶座"; + } else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) { + chinese = "双鱼座"; + } else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) { + chinese = "白羊座"; + } else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) { + chinese = "金牛座"; + } else if ((month == 5 && day >= 21) || (month == 6 && day <= 20)) { + chinese = "双子座"; + } else if ((month == 6 && day >= 21) || (month == 7 && day <= 22)) { + chinese = "巨蟹座"; + } else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) { + chinese = "狮子座"; + } else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) { + chinese = "处女座"; + } else if ((month == 9 && day >= 23) || (month == 10 && day <= 22)) { + chinese = "天秤座"; + } else if ((month == 10 && day >= 23) || (month == 11 && day <= 21)) { + chinese = "天蝎座"; + } else if ((month == 11 && day >= 22) || (month == 12 && day <= 21)) { + chinese = "射手座"; + } else { + chinese = "摩羯座"; + } + return chinese; + } + + public List heightLists=new ArrayList<>(); + private OptionsPickerView pvHeighttions; + + private void initHeightOptionPicker() {//条件选择器初始化 + heightLists.clear(); + for (int i = 160; i < 191; i++) { + heightLists.add(i+"CM"); + } + /** + * 注意 :如果是三级联动的数据(省市区等),请参照 JsonDataActivity 类里面的写法。 + */ + pvHeighttions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int options1, int options2, int options3, View v) { + //返回的分别是三个级别的选中位置 + if (heightLists.size() > 0) { + String occupation = heightLists.get(options1); + settings_info_edit_height.setText(occupation); + height = heightLists.get(options1).replace("CM",""); + } + } + }) + .setTitleText("身高") + .setSelectOptions(0, 0)//默认选中项 + .setTitleBgColor(Color.WHITE) + .isRestoreItem(true)//切换时是否还原,设置默认选中第一项。 + .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 + .setOptionsSelectChangeListener(new OnOptionsSelectChangeListener() { + @Override + public void onOptionsSelectChanged(int options1, int options2, int options3) { + String str = "options1: " + options1 + "\noptions2: " + options2 + "\noptions3: " + options3; + //Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show(); + } + }) + .build(); + + if (heightLists.size() > 0) { + pvHeighttions.setPicker(heightLists);//二级选择器 + } + } + } - - diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java index 08a1903..1885d2e 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/InvitationActivity.java @@ -219,7 +219,7 @@ public class InvitationActivity extends BaseActivity implements binding.fourLabel.setText(result.getReward().getFour() + ""); posterList = result.getAvatar_list(); binding.totalPeopleLabel.setText(result.getTotal().getTotal_invite() + ""); - binding.totalRewardLabel.setText(result.getTotal().getTotal_invite_reward() + ""); + binding.totalRewardLabel.setText(result.getTotal().getTotal_commission_coin() + ""); binding.totalTiChengLabel.setText(result.getTotal().getAuth_count() + ""); tv_rule_txt.setText(result.getInvite_rule()); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalJobActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalJobActivity.java new file mode 100644 index 0000000..b5751b8 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalJobActivity.java @@ -0,0 +1,102 @@ +package com.xuebiping.bolizhuzi.view.settings; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.fengliyan.uikit.dialog.BaseMessageDialog; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.utils.StrU; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; + +public class PersonalJobActivity extends BaseActivity implements View.OnClickListener { + private RelativeLayout tv_finish; + private TextView tv_save; + private EditText et_signature; + private TextView tv_text_num; + + @Override + public void onCreate(Bundle onSavedInstance) { + super.onCreate(onSavedInstance); + setContentView(R.layout.activity_personal_job); + hideTitleBar(); + initView(); + et_signature.setText(getIntent().getStringExtra("job")); + et_signature.setSelection(et_signature.getText().length()); + } + + private void initView() { + tv_finish = findViewById(R.id.rl_finish); + tv_save = findViewById(R.id.tv_save); + et_signature = findViewById(R.id.nick_name_edit_input); + tv_text_num = findViewById(R.id.tv_text_num); + + tv_finish.setOnClickListener(this); + tv_save.setOnClickListener(this); + et_signature.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //tv_text_num.setText(et_signature.getText().toString().length() + "/20"); + } + + @Override + public void afterTextChanged(Editable s) { + + } + }); + } + + @Override + public void onClick(View view) { + if (view == tv_finish) { + saveDialog(); + } else if (view == tv_save) { + String signature = et_signature.getText().toString(); + setResult(RESULT_OK, new Intent().putExtra("job", signature)); + finish(); + } + } + + @Override + public void onBackPressed() { + saveDialog(); + } + + private BaseMessageDialog saveDialog; + + public void saveDialog() { + if (!StrU.isEmpty(et_signature.getText().toString())) { + saveDialog = new BaseMessageDialog.Builder(this).setMessage("是否保存?") + .setCancelable(true) + .setPositiveButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + saveDialog.dismiss(); + String signature = et_signature.getText().toString(); + setResult(RESULT_OK, new Intent().putExtra("job", signature)); + finish(); + } + }).setNegative("取消").setNegativeButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + saveDialog.dismiss(); + finish(); + } + }).build(); + saveDialog.show(); + } else { + finish(); + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSchoolActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSchoolActivity.java new file mode 100644 index 0000000..0b4c40a --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSchoolActivity.java @@ -0,0 +1,102 @@ +package com.xuebiping.bolizhuzi.view.settings; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.fengliyan.uikit.dialog.BaseMessageDialog; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.utils.StrU; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; + +public class PersonalSchoolActivity extends BaseActivity implements View.OnClickListener { + private RelativeLayout tv_finish; + private TextView tv_save; + private EditText et_signature; + private TextView tv_text_num; + + @Override + public void onCreate(Bundle onSavedInstance) { + super.onCreate(onSavedInstance); + setContentView(R.layout.activity_personal_school); + hideTitleBar(); + initView(); + et_signature.setText(getIntent().getStringExtra("school")); + et_signature.setSelection(et_signature.getText().length()); + } + + private void initView() { + tv_finish = findViewById(R.id.rl_finish); + tv_save = findViewById(R.id.tv_save); + et_signature = findViewById(R.id.nick_name_edit_input); + tv_text_num = findViewById(R.id.tv_text_num); + + tv_finish.setOnClickListener(this); + tv_save.setOnClickListener(this); + et_signature.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //tv_text_num.setText(et_signature.getText().toString().length() + "/20"); + } + + @Override + public void afterTextChanged(Editable s) { + + } + }); + } + + @Override + public void onClick(View view) { + if (view == tv_finish) { + saveDialog(); + } else if (view == tv_save) { + String signature = et_signature.getText().toString(); + setResult(RESULT_OK, new Intent().putExtra("school", signature)); + finish(); + } + } + + @Override + public void onBackPressed() { + saveDialog(); + } + + private BaseMessageDialog saveDialog; + + public void saveDialog() { + if (!StrU.isEmpty(et_signature.getText().toString())) { + saveDialog = new BaseMessageDialog.Builder(this).setMessage("是否保存?") + .setCancelable(true) + .setPositiveButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + saveDialog.dismiss(); + String signature = et_signature.getText().toString(); + setResult(RESULT_OK, new Intent().putExtra("school", signature)); + finish(); + } + }).setNegative("取消").setNegativeButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + saveDialog.dismiss(); + finish(); + } + }).build(); + saveDialog.show(); + } else { + finish(); + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSignatureActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSignatureActivity.java index b1c7515..b787fdb 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSignatureActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PersonalSignatureActivity.java @@ -46,7 +46,7 @@ public class PersonalSignatureActivity extends BaseActivity implements View.OnCl @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - tv_text_num.setText(et_signature.getText().toString().length() + "/20"); + //tv_text_num.setText(et_signature.getText().toString().length() + "/20"); } @Override diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PhotoListTwoActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PhotoListTwoActivity.java new file mode 100644 index 0000000..6b084ef --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/PhotoListTwoActivity.java @@ -0,0 +1,469 @@ +package com.xuebiping.bolizhuzi.view.settings; + +import android.Manifest; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.ItemTouchHelper; +import androidx.recyclerview.widget.RecyclerView; + +import com.fengliyan.http.httprequest.UploadFile; +import com.fengliyan.uikit.photopicker.MultiImageSelector; +import com.fengliyan.uikit.sketch.SketchImageView; +import com.fengliyan.uikit.toast.MaleToast; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.XXPermissions; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.constant.Constant; +import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; +import com.xuebiping.bolizhuzi.controller.settings.adapter.InfoEditPhotoRecyclerAdapter; +import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; +import com.xuebiping.bolizhuzi.controller.settings.manager.UserAvatarManager; +import com.xuebiping.bolizhuzi.model.dynamics.UploadImageBean; +import com.xuebiping.bolizhuzi.utils.PermissionUtil; +import com.xuebiping.bolizhuzi.utils.SimpleItemTouchCallBack; +import com.xuebiping.bolizhuzi.utils.StrU; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; +import com.xuebiping.bolizhuzi.view.base.utils.ImageUtils; +import com.xuebiping.bolizhuzi.view.diooto.Diooto; +import com.xuebiping.bolizhuzi.view.diooto.config.DiootoConfig; +import com.xuebiping.bolizhuzi.view.diooto.tools.Utils; +import com.xuebiping.bolizhuzi.view.main.dialog.CustomAlertDialog; +import com.xuebiping.bolizhuzi.view.main.dialog.PermissionDialog; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +public class PhotoListTwoActivity extends BaseActivity implements UserAvatarManager.UserImgListener { + + private RecyclerView mPhotoListView; + private InfoEditPhotoRecyclerAdapter mPhotoAdapter; + + private String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE}; + + private List mPhotoDataList = new ArrayList() { + { + add("selector"); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + } + }; + + private List mOldPhotoDataList = new ArrayList() { + { + add("selector"); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + add(""); + } + }; + + private MultiImageSelector mSelector; + private PermissionDialog permissionDialog; + + private UserAvatarManager mManager; + public static final int MULTI_SELECTOR_REQUEST = 200; + private HashMap photoListIndexMap; + private StringBuilder mImages; + private String album; + private List albumList=new ArrayList<>(); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_photo_list_two); + setTitleName("相册"); + + mSelector = MultiImageSelector.create().multi().count(9); + + mManager = new UserAvatarManager(this); + + Intent intent = getIntent(); + album = intent.getStringExtra("album"); + + if(!TextUtils.isEmpty(album)) { + if(album.contains(",")){ + String[] split = album.split(","); + if(split.length > 0) { + for (int i = 0; i < split.length; i++) { + albumList.add(split[i]); + } + } + }else { + albumList.add(album); + } + } + + initView(); + + } + + private void initView() { + mPhotoListView = findViewById(R.id.rv_list); + + mPhotoListView.setLayoutManager(new GridLayoutManager(this, 3)); + mPhotoListView.setNestedScrollingEnabled(false); + ViewGroup.LayoutParams layoutParams = mPhotoListView.getLayoutParams(); + layoutParams.height = Utils.dip2px(this, 360); + mPhotoListView.setLayoutParams(layoutParams); + + mPhotoAdapter = new InfoEditPhotoRecyclerAdapter(this); + mPhotoAdapter.setPhotoList(mPhotoDataList); + mPhotoAdapter.setOnSelectorClickedListener(new InfoEditPhotoRecyclerAdapter + .OnSelectorClickedListener() { + @Override + public void onSelectorClicked() { + checkPermission(2); + } + + @Override + public void onClickImage(List mPhotoList, int position) { + if (null != mPhotoList && mPhotoList.size() != 0) { + List imageUrl = new ArrayList<>(); + for (String imagePath : mPhotoList) { + if (!TextUtils.isEmpty(imagePath) && !imagePath.equals("selector")) { + if (imagePath.contains("uploads/")) { + imageUrl.add(StrU.getResourcePath(imagePath, PhotoListTwoActivity.this)); + } else { + imageUrl.add("file://" + imagePath); + } + } + } + clickImage((ArrayList) imageUrl, position); + } + } + }); + mPhotoListView.setAdapter(mPhotoAdapter); + // 拖拽移动和左滑删除 + SimpleItemTouchCallBack simpleItemTouchCallBack = new SimpleItemTouchCallBack(mPhotoAdapter); + ItemTouchHelper helper = new ItemTouchHelper(simpleItemTouchCallBack); + helper.attachToRecyclerView(mPhotoListView); + + findViewById(R.id.submit_button).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //这里需要调接口上传 提交 + updateData(); + } + }); + + int size = albumList.size(); + if (size > 0) { + for (int i = 0; i < size; i++) { + mPhotoDataList.set(i, albumList.get(i)); + mOldPhotoDataList.set(i, albumList.get(i)); + + } + if (size < 9) { + mPhotoDataList.set(size, "selector"); + mOldPhotoDataList.set(size, "selector"); + } + mPhotoAdapter.setPhotoList(mPhotoDataList); + mPhotoAdapter.notifyDataSetChanged(); + } + } + + /** + * @param type 0.封面视频 1.头像 2.相册 + */ + private void checkPermission(int type) { + permissionDialog = new PermissionDialog(PhotoListTwoActivity.this, permissions); + permissionDialog.show(); + XXPermissions.with(PhotoListTwoActivity.this) + .permission(permissions) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + permissionDialog.dismiss(); + startImageSelector(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + if (never) { + CustomAlertDialog customAlertDialog = new CustomAlertDialog(PhotoListTwoActivity.this); + customAlertDialog.setTitle("芊颜需要开启读写权限,以便查看本地图库内容"); + customAlertDialog.hideContent(true); + customAlertDialog.setRightBtnText("去开启"); + customAlertDialog.setRightOnClickListener(new CustomAlertDialog.OnDialogRightClickListener() { + @Override + public void rightClick() { + PermissionUtil.jumpPermissionPage(PhotoListTwoActivity.this); + } + }); + customAlertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + permissionDialog.dismiss(); + } + }); + customAlertDialog.show(); + } else { + permissionDialog.dismiss(); + } + } + }); + } + + /** + * 跳到图片展示页 + * + * @param pathList + * @param innerCount + */ + private void clickImage(ArrayList pathList, int innerCount) { + String[] strings = new String[pathList.size()]; + for (int i = 0; i < pathList.size(); i++) { + strings[i] = pathList.get(i); + } + Diooto diooto = new Diooto(this) + .urls(strings) + .type(DiootoConfig.PHOTO) + .immersive(true) + .position(innerCount, 0) + .views(mPhotoListView, R.id.info_edit_photo_normal, pathList.size()) + .loadPhotoBeforeShowBigImage(new Diooto.OnLoadPhotoBeforeShowBigImageListener() { + @Override + public void loadView(SketchImageView sketchImageView, int position) { + sketchImageView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + return false; + } + }); + } + }) + .start(); + } + + public void startImageSelector() { + mSelector.multi(); + mSelector.count(1); + mSelector.start(this, MULTI_SELECTOR_REQUEST); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { +// if (isChooseVideo) { +// helper.onGetLocalVideoResult(data); +// return; +// } + super.onActivityResult(requestCode, resultCode, data); + if (mManager != null) { + mManager.onActivityResult(requestCode, resultCode, data); + } + if (requestCode == MULTI_SELECTOR_REQUEST && resultCode == RESULT_OK) { + List albumList = data.getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT); + String s = "file://" + albumList.get(0); + mManager.whoStartCropWithUi(Uri.parse(s)); + } + } + + @Override + public void getUserImg(@Nullable final String path) { + if (null != path && !TextUtils.isEmpty(path)) { + List albumList = new ArrayList<>(); + + albumList.add(path); + + for (int i = 0; i < albumList.size(); i++) { + if (8 - i >= 0) { + mPhotoDataList.remove(8 - i); + } + } + + int realSize = 0; + for (int i = 0; i < mPhotoDataList.size(); i++) { + if (!"".equals(mPhotoDataList.get(i)) && !"selector".equals(mPhotoDataList.get(i))) { + realSize++; + } + } + + mPhotoDataList.addAll(realSize, albumList); + mPhotoAdapter.notifyDataSetChanged(); + } + } + + /** + * 更新数据 + */ + private void updateData() { + boolean hasPhoto = false; + for (String path : mPhotoDataList) { + if (path.equals("") || path.equals("selector")) { + continue; + } + + hasPhoto = true; + } + + if (!hasPhoto) { + //editProfile(null); + finishActivity(); + } else { + new Thread(new Runnable() { + @Override + public void run() { + compressAndUpload(); + } + }).start(); + + } + } + + private void compressAndUpload() { + List photoList = mPhotoAdapter.getmPhotoList(); + Iterator i = photoList.iterator(); + int realSize = 0; + int currentListCount = 9; + photoListIndexMap = new HashMap<>(); + for (int index = 0; index < photoList.size(); index++) { + String path = photoList.get(index); + if ("selector".equals(path)) { + currentListCount = index; + } + if ("".equals(path) || "selector".equals(path) || path.contains("uploads/")) { + continue; + } + photoListIndexMap.put(realSize, index); + realSize++; + } + + final UploadFile[] uploadFiles = new UploadFile[realSize]; + int count = 0; + while (i.hasNext()) { + String path = i.next(); + if ("".equals(path) || "selector".equals(path) || path.contains("uploads/")) { + continue; + } + path = ImageUtils.compressImage(this, path, Constant.IMAGE_MEMORY_SIZE, true); + File file = new File(path); + UploadFile uploadFile = new UploadFile("file[" + count + "]", file); + uploadFiles[count] = uploadFile; + count++; + } + + if (null != uploadFiles) { + if (uploadFiles.length != 0) { + if (uploadFiles[0].getFile().exists()) { + runOnUiThread(new Runnable() { + @Override + public void run() { + uploadImage(uploadFiles); + } + }); + } + } else { + mImages = new StringBuilder(); + for (int i1 = 0; i1 < currentListCount; i1++) { + String str = photoList.get(i1); + if (TextUtils.isEmpty(str) || "selector".equals(str)) { + continue; + } + mImages.append(str); + if (i1 < currentListCount - 1) { + mImages.append(","); + } + } + runOnUiThread(new Runnable() { + @Override + public void run() { + finishActivity(); + } + }); + } + } + } + + private void uploadImage(final UploadFile[] uploadFiles) { + DynamicsManager.uploadImage(this, uploadFiles, "album", + new HttpUiCallBack>() { + @Override + public void onSuccess(BaseActivity activity, List result, String message) { + mImages = new StringBuilder(); + List photoList = mPhotoAdapter.getmPhotoList(); + for (int i = 0; i < result.size(); i++) { + Integer integer = photoListIndexMap.get(i); + photoList.set(integer, result.get(i).getUrl()); + } + + for (int i = 0; i < photoList.size(); i++) { + String str = photoList.get(i); + if (TextUtils.isEmpty(str) || "selector".equals(str)) { + continue; + } + mImages.append(str); + if (i < photoList.size() - 1) { + mImages.append(","); + } + } + + photoListIndexMap.clear(); + + //上传成功后删掉本地图片 + new Thread(new Runnable() { + @Override + public void run() { + for (UploadFile uploadFile : uploadFiles) { + File file = uploadFile.getFile(); + if (file.exists()) { + file.delete(); + } + } + } + }).start(); + + finishActivity(); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + MaleToast.showMessage(activity, tip); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + MaleToast.showMessage(activity, "图片上传失败"); + } + }); + } + + + @Override + public void finishActivity() { + Intent intent = new Intent(); + if(mImages != null) { + intent.putExtra("album",mImages.toString()); + }else { + intent.putExtra("album",album); + } + setResult(206,intent); + finish(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/RealNameTwoActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/RealNameTwoActivity.java index 3edb6ef..918e961 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/RealNameTwoActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/RealNameTwoActivity.java @@ -137,8 +137,6 @@ public class RealNameTwoActivity extends BaseActivity implements UserAvatarManag @Override public void onClick(View view) { if (checkIsEnable()) { - //TODO 调接口提交 - if (TextUtils.isEmpty(ed_name.getText().toString().trim())) { ToastHelper.showToast(RealNameTwoActivity.this, "请输入真实姓名"); return; diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java index bb679ff..6668989 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UpPrivilegeActivity.java @@ -98,7 +98,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis private PermissionDialog permissionDialog; private TimePickerView mAgePicker; - private String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_PHONE_STATE}; + private String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; public static final int MULTI_SELECTOR_REQUEST = 200; public static final int VIDEO_COVER_REQUEST = 501;//封面视频 @@ -122,9 +122,9 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis private String sanwwei = "未填写"; private int gender = 0; - String bust = ""; - String waist = ""; - String hip = ""; + String bust = ""; + String waist = ""; + String hip = ""; private UserAvatarManager mManager; private SimpleDraweeView sd_avatar; @@ -255,7 +255,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis @Override public void afterTextChanged(Editable editable) { - if(editable.length() > 0) { + if (editable.length() > 0) { up_auth_saveSign(editable.toString()); } } @@ -274,7 +274,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis @Override public void afterTextChanged(Editable editable) { - if(editable.length() > 0) { + if (editable.length() > 0) { up_auth_saveJob(editable.toString()); } } @@ -282,14 +282,14 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } - public void up_auth_detail(){ + public void up_auth_detail() { SettingManager.up_auth_detail(this, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, UpAuthDetailBean result, String tips) { - if(result != null) { + if (result != null) { formDTO = result.getForm(); - if(formDTO != null) { + if (formDTO != null) { sd_avatar.setImageURI(ConstUrl.IMAGE_URL + formDTO.getAvatar()); //sd_avatar.setImageURI("http://oss.jindashengkj.cn/uploads/album/202604/02/c0b2434c43939911a34f5dffb03f2101_.pic.jpg"); @@ -301,7 +301,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis avatarUrl = formDTO.getAvatar(); - sd_video_cover.setImageURI(ConstUrl.IMAGE_URL + formDTO.getVideo_url()); + sd_video_cover.setImageURI(ConstUrl.IMAGE_URL + formDTO.getVideo_cover_url()); video_verify_code = formDTO.getVideo_verify_code(); video_verify_text = formDTO.getVideo_verify_text(); @@ -316,51 +316,51 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis gender = formDTO.getGender(); - if(!TextUtils.isEmpty(formDTO.getBirthday())){ + if (!TextUtils.isEmpty(formDTO.getBirthday())) { tv_birthday.setText(formDTO.getBirthday()); } - if(formDTO.getWeight() > 0) { + if (formDTO.getWeight() > 0) { tizhong = formDTO.getWeight() + "KG"; - tv_tiz.setText(formDTO.getWeight()+"KG"); + tv_tiz.setText(formDTO.getWeight() + "KG"); } - if(formDTO.getHeight() > 0) { - height = formDTO.getHeight() +"CM"; - tv_height.setText(formDTO.getHeight()+"CM"); + if (formDTO.getHeight() > 0) { + height = formDTO.getHeight() + "CM"; + tv_height.setText(formDTO.getHeight() + "CM"); } - if(formDTO.getBust() > 0) { - bust = formDTO.getBust()+""; + if (formDTO.getBust() > 0) { + bust = formDTO.getBust() + ""; } - if(formDTO.getWaist() > 0) { + if (formDTO.getWaist() > 0) { waist = formDTO.getWaist() + ""; } - if(formDTO.getHip() > 0) { + if (formDTO.getHip() > 0) { hip = formDTO.getHip() + ""; } tv_sanwei.setText(formDTO.getBust() + " " + formDTO.getWaist() + " " + formDTO.getHip()); - if(!TextUtils.isEmpty(formDTO.getConstellation())){ + if (!TextUtils.isEmpty(formDTO.getConstellation())) { xingzuo = formDTO.getConstellation(); tv_xz.setText(formDTO.getConstellation()); } - if(!TextUtils.isEmpty(formDTO.getCity_name())){ - mCityId = formDTO.getCity_id()+""; + if (!TextUtils.isEmpty(formDTO.getCity_name())) { + mCityId = formDTO.getCity_id() + ""; tv_city.setText(formDTO.getCity_name()); } - if(!TextUtils.isEmpty(formDTO.getWechat_no())){ + if (!TextUtils.isEmpty(formDTO.getWechat_no())) { wxCode = formDTO.getWechat_no(); tv_wxcode.setText(formDTO.getWechat_no()); } List album_images = formDTO.getAlbum_images(); - if(album_images != null && album_images.size() > 0) { - album = album_images.toString().replace("]","").replace("[",""); + if (album_images != null && album_images.size() > 0) { + album = album_images.toString().replace("]", "").replace("[", ""); //Log.i("TAG666","相册 - == "+ album); sd_photo.setImageURI(ConstUrl.IMAGE_URL + album_images.get(0)); } @@ -370,43 +370,44 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } UpAuthDetailBean.SectionStatusDTO section_status = result.getSection_status(); - if(section_status != null) { + if (section_status != null) { UpAuthDetailBean.SectionStatusDTO.IdentityDTO identity = section_status.getIdentity(); tv_card.setText(identity.getText()); - if(identity.getStatus() == 2) { + if (identity.getStatus() == 2) { rl_card_layout.setEnabled(false); - }else { + } else { rl_card_layout.setEnabled(true); } } UpAuthDetailBean.SectionStatusDTO.VideoCoverDTO video_cover = section_status.getVideo_cover(); - if(video_cover != null) { - if(video_cover.getStatus() == 2) { + if (video_cover != null) { + if (video_cover.getStatus() == 2) { rl_video_cover_layout.setEnabled(false); - }else { + } else { rl_video_cover_layout.setEnabled(true); } } UpAuthDetailBean.SectionStatusDTO.VideoVerifyDTO video_verify = section_status.getVideo_verify(); - if(video_verify != null) { - tv_video_rz.setText(video_cover.getText()); - if(video_verify.getStatus() == 2) { + if (video_verify != null) { + tv_video_rz.setText(video_verify.getText()); + if (video_verify.getStatus() == 2) { rl_video_rz_layout.setEnabled(false); - }else { + } else { rl_video_rz_layout.setEnabled(true); } } - if(result.getStatus() == 2) { //当前已审核通过 + if (result.getStatus() == 2) { //当前已审核通过 submit_button.setText("已通过"); btnStatus(false); - }if(result.getStatus() == 1) { + } + if (result.getStatus() == 1) { submit_button.setText("审核中"); btnStatus(false); - }else { + } else { btnStatus(true); } } @@ -424,7 +425,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - public void btnStatus(boolean status){ + public void btnStatus(boolean status) { tv_nikename.setEnabled(status); tv_sign.setEnabled(status); tv_zybq.setEnabled(status); @@ -453,136 +454,134 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis pvGenderttions.show(); } else if (view.getId() == R.id.rl_cover_layout) { Intent intent = new Intent(this, UploadPhotoCoverActivity.class); - if(formDTO != null) { - intent.putExtra("cover",formDTO.getCover_image()); + if (formDTO != null) { + intent.putExtra("cover", formDTO.getCover_image()); } - startActivityForResult(intent,202); + startActivityForResult(intent, 202); } else if (view.getId() == R.id.rl_card_layout) { Intent intent = new Intent(this, RealNameTwoActivity.class); - if(formDTO != null) { - intent.putExtra("real_name",formDTO.getReal_name()); - intent.putExtra("ic_card_no",formDTO.getId_card_no()); - intent.putExtra("ic_card_front",formDTO.getId_card_front()); - intent.putExtra("ic_card_back",formDTO.getId_card_back()); - intent.putExtra("ic_card_hold",formDTO.getId_card_hold()); + if (formDTO != null) { + intent.putExtra("real_name", formDTO.getReal_name()); + intent.putExtra("ic_card_no", formDTO.getId_card_no()); + intent.putExtra("ic_card_front", formDTO.getId_card_front()); + intent.putExtra("ic_card_back", formDTO.getId_card_back()); + intent.putExtra("ic_card_hold", formDTO.getId_card_hold()); } - startActivityForResult(intent,203); + startActivityForResult(intent, 203); } else if (view.getId() == R.id.rl_video_rz_layout) { Intent intent = new Intent(this, VideoRenzhengActivity.class); - intent.putExtra("video_code",video_verify_code); - intent.putExtra("video_text",video_verify_text); - startActivityForResult(intent,204); + intent.putExtra("video_code", video_verify_code); + intent.putExtra("video_text", video_verify_text); + startActivityForResult(intent, 204); } else if (view.getId() == R.id.rl_birthday_layout) { mAgePicker.show(); } else if (view.getId() == R.id.rl_wxcode_layout) { Intent intent = new Intent(this, WxCodeActivity.class); - if(formDTO != null) { - intent.putExtra("wxCode",formDTO.getWechat_no()); - } + intent.putExtra("wxCode", wxCode); startActivityForResult(intent, 205); } else if (view.getId() == R.id.rl_sanwei_layout) { pvSanWeittions.show(); } else if (view.getId() == R.id.rl_photo_layout) { Intent intent = new Intent(this, PhotoListActivity.class); - if(formDTO != null) { + if (formDTO != null) { intent.putStringArrayListExtra("album", (ArrayList) formDTO.getAlbum_images()); } - startActivityForResult(intent,206); - }else if (view.getId() == R.id.rl_height_layout) { + startActivityForResult(intent, 206); + } else if (view.getId() == R.id.rl_height_layout) { pvHeighttions.show(); - }else if (view.getId() == R.id.rl_tiz_layout) { + } else if (view.getId() == R.id.rl_tiz_layout) { pvTiZhongttions.show(); - }else if (view.getId() == R.id.rl_xz_layout) { + } else if (view.getId() == R.id.rl_xz_layout) { pvXingZuottions.show(); - }else if (view.getId() == R.id.rl_video_cover_layout) { + } else if (view.getId() == R.id.rl_video_cover_layout) { checkPermission(0); - }else if (view.getId() == R.id.rl_city_layout) { + } else if (view.getId() == R.id.rl_city_layout) { Intent intent = new Intent(this, CityPickerActivity.class); startActivityForResult(intent, 1001); - }else if (view.getId() == R.id.submit_button) { + } else if (view.getId() == R.id.submit_button) { //这个调提交接口 - if(TextUtils.isEmpty(tv_nikename.getText().toString())){ - ToastHelper.showToast(this,"未输入昵称"); + if (TextUtils.isEmpty(tv_nikename.getText().toString())) { + ToastHelper.showToast(this, "未输入昵称"); return; } - if(TextUtils.isEmpty(avatarUrl)){ - ToastHelper.showToast(this,"未上传头像"); + if (TextUtils.isEmpty(avatarUrl)) { + ToastHelper.showToast(this, "未上传头像"); return; } - if(TextUtils.isEmpty(tv_sign.getText().toString().trim())){ - ToastHelper.showToast(this,"未输入签名"); + if (TextUtils.isEmpty(tv_sign.getText().toString().trim())) { + ToastHelper.showToast(this, "未输入签名"); return; } - if(TextUtils.isEmpty(tv_gender.getText().toString().trim())){ - ToastHelper.showToast(this,"未选择性别"); + if (TextUtils.isEmpty(tv_gender.getText().toString().trim())) { + ToastHelper.showToast(this, "未选择性别"); return; } - if(TextUtils.isEmpty(tv_zybq.getText().toString().trim())){ - ToastHelper.showToast(this,"未输入职业标签"); + if (TextUtils.isEmpty(tv_zybq.getText().toString().trim())) { + ToastHelper.showToast(this, "未输入职业标签"); return; } - if(TextUtils.isEmpty(cover)){ - ToastHelper.showToast(this,"未选择封面图"); + if (TextUtils.isEmpty(cover)) { + ToastHelper.showToast(this, "未选择封面图"); return; } - if(TextUtils.isEmpty(real_name)){ - ToastHelper.showToast(this,"未进行身份认证"); + if (TextUtils.isEmpty(real_name)) { + ToastHelper.showToast(this, "未进行身份认证"); return; } - if(TextUtils.isEmpty(videoRzUrl)){ - ToastHelper.showToast(this,"未进行视频认证"); + if (TextUtils.isEmpty(videoRzUrl)) { + ToastHelper.showToast(this, "未进行视频认证"); return; } - if(TextUtils.isEmpty(tv_birthday.getText().toString().trim())){ - ToastHelper.showToast(this,"未选择出生日期"); + if (TextUtils.isEmpty(tv_birthday.getText().toString().trim())) { + ToastHelper.showToast(this, "未选择出生日期"); return; } - if(TextUtils.isEmpty(wxCode)){ - ToastHelper.showToast(this,"未添加微信号"); + if (TextUtils.isEmpty(wxCode)) { + ToastHelper.showToast(this, "未添加微信号"); return; } - if(TextUtils.isEmpty(sanwwei)){ - ToastHelper.showToast(this,"未填写三围信息"); + if (TextUtils.isEmpty(sanwwei)) { + ToastHelper.showToast(this, "未填写三围信息"); return; } - if(TextUtils.isEmpty(album)){ - ToastHelper.showToast(this,"未上传相册"); + if (TextUtils.isEmpty(album)) { + ToastHelper.showToast(this, "未上传相册"); return; } - if(TextUtils.isEmpty(videoCoverUrl)){ - ToastHelper.showToast(this,"未上传视频信息"); + if (TextUtils.isEmpty(videoCoverUrl)) { + ToastHelper.showToast(this, "未上传视频信息"); return; } - if(TextUtils.isEmpty(height)){ - ToastHelper.showToast(this,"未填写身高"); + if (TextUtils.isEmpty(height)) { + ToastHelper.showToast(this, "未填写身高"); return; } - if(TextUtils.isEmpty(tizhong)){ - ToastHelper.showToast(this,"未填写体重"); + if (TextUtils.isEmpty(tizhong)) { + ToastHelper.showToast(this, "未填写体重"); return; } - if(TextUtils.isEmpty(xingzuo)){ - ToastHelper.showToast(this,"未填写星座"); + if (TextUtils.isEmpty(xingzuo)) { + ToastHelper.showToast(this, "未填写星座"); return; } - if(TextUtils.isEmpty(tv_city.getText().toString().trim())){ - ToastHelper.showToast(this,"未填写城市"); + if (TextUtils.isEmpty(tv_city.getText().toString().trim())) { + ToastHelper.showToast(this, "未填写城市"); return; } @@ -734,40 +733,44 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } }); } - }else if(requestCode == 202){ //上传封面图返回 - //TODO - if(data != null) { - String pathcover = data.getStringExtra("cover"); + } else if (requestCode == 202) { //上传封面图返回 + if (data != null) { cover = data.getStringExtra("upload_cover"); - sd_cover.setImageURI("file://" + pathcover); + if(!TextUtils.isEmpty(cover)) { + sd_cover.setImageURI("file://" + cover); + up_auth_detail(); + } } - }else if(requestCode == 203){ //修改身份认证状态 - //TODO - if(data != null) { + } else if (requestCode == 203) { //修改身份认证状态 + if (data != null) { id_card_front = data.getStringExtra("id_card_front"); id_card_back = data.getStringExtra("id_card_back"); id_card_hold = data.getStringExtra("id_card_hold"); real_name = data.getStringExtra("real_name"); id_card_no = data.getStringExtra("id_card_no"); - tv_card.setText("已填写"); + if (!TextUtils.isEmpty(id_card_no) + && !TextUtils.isEmpty(real_name) + && !TextUtils.isEmpty(id_card_front) + && !TextUtils.isEmpty(id_card_back) + && !TextUtils.isEmpty(id_card_hold)) + tv_card.setText("已填写"); } - }else if(requestCode == 204){ //视频认证结果 - //TODO - if(data != null) { + } else if (requestCode == 204) { //视频认证结果 + if (data != null) { videoRzUrl = data.getStringExtra("videoUrl"); - if(!TextUtils.isEmpty(videoRzUrl)){ + if (!TextUtils.isEmpty(videoRzUrl)) { tv_video_rz.setText("已填写"); } } - }else if(requestCode == 205){ - if(data != null) { + } else if (requestCode == 205) { + if (data != null) { wxCode = data.getStringExtra("wxCode"); tv_wxcode.setText(wxCode); } - }else if(requestCode == 206){ - if(data != null) { + } else if (requestCode == 206) { + if (data != null) { album = data.getStringExtra("album"); - if(!TextUtils.isEmpty(album) && album.contains(",")) { + if (!TextUtils.isEmpty(album) && album.contains(",")) { String[] split = album.split(","); if (split.length > 0) { sd_photo.setImageURI(ConstUrl.IMAGE_URL + split[0]); @@ -830,12 +833,12 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } } - public List heightLists=new ArrayList<>(); + public List heightLists = new ArrayList<>(); private void initHeightOptionPicker() {//条件选择器初始化 heightLists.clear(); for (int i = 160; i < 191; i++) { - heightLists.add(i+"CM"); + heightLists.add(i + "CM"); } /** * 注意 :如果是三级联动的数据(省市区等),请参照 JsonDataActivity 类里面的写法。 @@ -871,12 +874,12 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } } - public List tiZhongLists=new ArrayList<>(); + public List tiZhongLists = new ArrayList<>(); private void initTiZhongOptionPicker() {//条件选择器初始化 tiZhongLists.clear(); for (int i = 40; i < 71; i++) { - tiZhongLists.add(i+"KG"); + tiZhongLists.add(i + "KG"); } /** * 注意 :如果是三级联动的数据(省市区等),请参照 JsonDataActivity 类里面的写法。 @@ -913,7 +916,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } private void initXingZuoOptionPicker() {//条件选择器初始化 - List xzuoLists=new ArrayList<>(); + List xzuoLists = new ArrayList<>(); xzuoLists.clear(); xzuoLists.add("水瓶座"); xzuoLists.add("双鱼座"); @@ -962,17 +965,17 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } private void initSanWeiOptionPicker() {//条件选择器初始化 - List xwLists=new ArrayList<>(); - List ywLists=new ArrayList<>(); - List twLists=new ArrayList<>(); + List xwLists = new ArrayList<>(); + List ywLists = new ArrayList<>(); + List twLists = new ArrayList<>(); for (int i = 70; i < 106; i++) { - xwLists.add(i+""); + xwLists.add(i + ""); } for (int i = 50; i < 81; i++) { - ywLists.add(i+""); + ywLists.add(i + ""); } for (int i = 80; i < 100; i++) { - twLists.add(i+""); + twLists.add(i + ""); } /** @@ -982,15 +985,15 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis @Override public void onOptionsSelect(int options1, int options2, int options3, View v) { //返回的分别是三个级别的选中位置 - if (xwLists.size() > 0 && ywLists.size()> 0 && twLists.size() > 0) { + if (xwLists.size() > 0 && ywLists.size() > 0 && twLists.size() > 0) { String occupation = xwLists.get(options1); - tv_sanwei.setText(occupation + " " + ywLists.get(options2) +" " + twLists.get(options3)); - sanwwei = xwLists.get(options1) + " " + ywLists.get(options2) +" " + twLists.get(options3); + tv_sanwei.setText(occupation + " " + ywLists.get(options2) + " " + twLists.get(options3)); + sanwwei = xwLists.get(options1) + " " + ywLists.get(options2) + " " + twLists.get(options3); bust = xwLists.get(options1); waist = ywLists.get(options2); hip = twLists.get(options3); - up_auth_saveSanwei(bust,waist,hip); + up_auth_saveSanwei(bust, waist, hip); } } }) @@ -1008,13 +1011,13 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }) .build(); - if (xwLists.size() > 0 && ywLists.size()> 0 && twLists.size() > 0) { - pvSanWeittions.setNPicker(xwLists,ywLists,twLists);//二级选择器 + if (xwLists.size() > 0 && ywLists.size() > 0 && twLists.size() > 0) { + pvSanWeittions.setNPicker(xwLists, ywLists, twLists);//二级选择器 } } private void initGenderOptionPicker() {//条件选择器初始化 - List genderLists=new ArrayList<>(); + List genderLists = new ArrayList<>(); genderLists.clear(); genderLists.add("男"); genderLists.add("女"); @@ -1052,39 +1055,39 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis } } - void up_auth_submit(String avatar, - String nickname, - String signature, - int gender, - String job, - String cover_image, - String real_name, - String id_card_no, - String id_card_front, - String id_card_back, - String id_card_hold, - String video_verify_code, - String video_verify_text, - String video_verify_video, - String birthday, - String wechat_no, - String album_images, - String video_cover_url, - String video_url, - String height, - String weight, - String bust, - String waist, - String hip, - String constellation, - String city_id){ + void up_auth_submit(String avatar, + String nickname, + String signature, + int gender, + String job, + String cover_image, + String real_name, + String id_card_no, + String id_card_front, + String id_card_back, + String id_card_hold, + String video_verify_code, + String video_verify_text, + String video_verify_video, + String birthday, + String wechat_no, + String album_images, + String video_cover_url, + String video_url, + String height, + String weight, + String bust, + String waist, + String hip, + String constellation, + String city_id) { SettingManager.up_auth_submit(this, avatar, nickname, signature, gender, job, cover_image, real_name, id_card_no, id_card_front, id_card_back, id_card_hold, video_verify_code, video_verify_text, video_verify_video, birthday, wechat_no, album_images, video_cover_url, video_url, height, weight, bust, waist, hip, constellation, city_id, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { - ToastHelper.showToast(UpPrivilegeActivity.this,"UP主认证已提交"); + ToastHelper.showToast(UpPrivilegeActivity.this, "UP主认证已提交"); finishActivity(); } @@ -1112,8 +1115,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis videoCoverUrl = result.get(0).getUrl(); } - if(!TextUtils.isEmpty(videoCoverUrl) && !TextUtils.isEmpty(videoCoverPath)){ - up_auth_saveVideoCover(videoCoverUrl,videoCoverPath); + if (!TextUtils.isEmpty(videoCoverUrl) && !TextUtils.isEmpty(videoCoverPath)) { + up_auth_saveVideoCover(videoCoverUrl, videoCoverPath); } } @@ -1140,8 +1143,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis videoCoverPath = result.get(0).getUrl(); } - if(!TextUtils.isEmpty(videoCoverUrl) && !TextUtils.isEmpty(videoCoverPath)){ - up_auth_saveVideoCover(videoCoverUrl,videoCoverPath); + if (!TextUtils.isEmpty(videoCoverUrl) && !TextUtils.isEmpty(videoCoverPath)) { + up_auth_saveVideoCover(videoCoverUrl, videoCoverPath); } } @@ -1157,7 +1160,7 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveVideoCover(String video_cover_url,String video_url){ + void up_auth_saveVideoCover(String video_cover_url, String video_url) { SettingManager.up_auth_saveVideoCover(this, video_cover_url, video_url, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1202,8 +1205,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveAvatar(String avatar){ - SettingManager.up_auth_saveAvatar(this, avatar,new HttpUiCallBack() { + void up_auth_saveAvatar(String avatar) { + SettingManager.up_auth_saveAvatar(this, avatar, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1221,8 +1224,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveSanwei(String bust,String waist,String hip){ - SettingManager.up_auth_saveSanwei(this, bust,waist,hip,new HttpUiCallBack() { + void up_auth_saveSanwei(String bust, String waist, String hip) { + SettingManager.up_auth_saveSanwei(this, bust, waist, hip, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1240,8 +1243,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveHeight(String height){ - SettingManager.up_auth_saveHeight(this, height,new HttpUiCallBack() { + void up_auth_saveHeight(String height) { + SettingManager.up_auth_saveHeight(this, height, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1259,8 +1262,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveWeight(String weight){ - SettingManager.up_auth_saveWeight(this, weight,new HttpUiCallBack() { + void up_auth_saveWeight(String weight) { + SettingManager.up_auth_saveWeight(this, weight, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1278,8 +1281,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveConstellation(String constellation){ - SettingManager.up_auth_saveConstellation(this, constellation,new HttpUiCallBack() { + void up_auth_saveConstellation(String constellation) { + SettingManager.up_auth_saveConstellation(this, constellation, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1297,8 +1300,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveCity(String city){ - SettingManager.up_auth_saveCity(this, city,new HttpUiCallBack() { + void up_auth_saveCity(String city) { + SettingManager.up_auth_saveCity(this, city, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1316,8 +1319,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveSign(String sign){ - SettingManager.up_auth_saveSign(this, sign,new HttpUiCallBack() { + void up_auth_saveSign(String sign) { + SettingManager.up_auth_saveSign(this, sign, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { @@ -1335,8 +1338,8 @@ public class UpPrivilegeActivity extends BaseActivity implements View.OnClickLis }); } - void up_auth_saveJob(String job){ - SettingManager.up_auth_saveJob(this, job,new HttpUiCallBack() { + void up_auth_saveJob(String job) { + SettingManager.up_auth_saveJob(this, job, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, Object result, String tips) { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UploadPhotoCoverActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UploadPhotoCoverActivity.java index 08c80d3..69d27ea 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UploadPhotoCoverActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/UploadPhotoCoverActivity.java @@ -94,7 +94,6 @@ public class UploadPhotoCoverActivity extends BaseActivity implements UserAvatar submit_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - //TODO 做上传操作并返回前个界面 if (TextUtils.isEmpty(avatarPath)) { MaleToast.showMessage(UploadPhotoCoverActivity.this, "未上传封面图"); @@ -183,7 +182,6 @@ public class UploadPhotoCoverActivity extends BaseActivity implements UserAvatar @Override public void finishActivity() { Intent intent = new Intent(); - intent.putExtra("cover", avatarPath); intent.putExtra("upload_cover", avatarUrl); setResult(202, intent); finish(); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WxCodeActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WxCodeActivity.java index 75b7454..540d782 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WxCodeActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WxCodeActivity.java @@ -60,15 +60,15 @@ public class WxCodeActivity extends BaseActivity implements View.OnClickListener @Override public void finishActivity() { // super.finishActivity(); - if(TextUtils.isEmpty(mNickNameEdit.getText())){ + /*if(TextUtils.isEmpty(mNickNameEdit.getText())){ MaleToast.showMessage(WxCodeActivity.this, "输入你的微信号"); - }else { + }else {*/ if (mName.equals(mNickNameEdit.getText().toString())) { //相等 finish(); }else { saveDialog(); } - } + // } } @Override diff --git a/app/src/main/res/drawable-xxhdpi/ic_card_fm.png b/app/src/main/res/drawable-xxhdpi/ic_card_fm.png new file mode 100644 index 0000000000000000000000000000000000000000..cb712017e44215f9b6890617627aa98c601d77a2 GIT binary patch literal 21835 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 LpJ>#m*+l#gH7k&~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_card_sc.png b/app/src/main/res/drawable-xxhdpi/ic_card_sc.png new file mode 100644 index 0000000000000000000000000000000000000000..341fc7a4f4b05d988aa01caba9747e8588f2c648 GIT binary patch literal 14760 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

(TB>-`72~!*4N>0ZH~HFKQOJAsNRT) zC5+5ULIO1dY$X?;!~LNhw(N+w8H+$z(28B!txW0oBg2!9XA#`}b5ed6eWPF^Q{RyGQQyHluim zCUWw0I`_yEMtz!Urx-zh)gA)Kd4P2af!nD5LvOD?+SR^fI-;c;()S)R&UFMa_b>R! zaX!1}p&Z_jA7KiA^${o|sDMchoD$5&{@6Bc!1a6k?XHzO?LwHKH3ep>eO1Y+kAMkE zntHDl-e0}>Z)~6WuU~6i;7ewQ$(4c44AHpZJ$-GsI>8dBE6*%uvFMas))jiN$?Ejl zQEi5$%nc4h<-5`E?wvqAOtvjWkBtf&4@Y!KxR{=O_`snphuMM;Fii;kaRb>maf}%+U*(0+G`aIV!<@SGDQL$!#tP*x9f$-a()%x5 zv!Fkt_XHm6lrbj*txwjTDl3BCvBaMokUHz9)qHFLPt~pu)CSlMS4LD0@*cb3e)VOp z=eHhTuQQCBDNBeQU&TL@4HjQfZHe+A6<<{DEj!LSwK;=4qZN1niPHLjIXa;IfGHqS)R>!X2sRlv~NZPGNI zzYXCiIbQcBigu3nXaGy!uzfzL;{-6|$BnFJNHO1*P(0_dlBH+vcEr?G`}rSvP@r4F zzBzl6n{19gm!ukpk1A%m8VEJD+NauWj>yv*!T-MD&EhiNs``8E3?gT;g~ z>2(YK`Qr0tVI7FIK8B!b~QYNu55{2MgMwd-rYnh&R9Br8oH>O66&+Te<}lg{C6 zTbg>NiSv#BE?iPd;9W~N?y?$M$?6#G5GmGtblFm%NZ0S+yN~c&g1$I-YbY1-R(#_} zxXtyi#h+siUS=F4q>!z@TRWOJjwTsg4u7zP!Rm2E$h;TG+6;tWNcP7Ux0zL~_!oqX zIGrASms)VW`Hkr#Z&8p&gJs*<0!l|*8WWXBtL9*L3Z3sdn?C$bEH&kf%kSD+f|lN0 zvC;mzn(UEi(8g>mYcb3|G2FzWK-k=Mcix}9UFy7Q5gg00T=dEaZPT*WLo-42b+bU# zHNaAEIqC9Ro=;19r{fsLr$q(aVxV@lUJh4FtaJq}(=bf??fF&UTLn^ctk<3;^@X#%nECO;bxb{I*W-Xff?VH87Rv}fgqXX^O7kO3hg3&l>emYp&X4f1fvzqB-t zG##Jjiy)d7rrf~M;=G;qPV}`mL%BAbMH_K>(*J&_%7LS=B<5 z(WH<}uf)k~S!+5X&5m z1;%bU=HGiEhKDYP{sA4MF|Vh}Qmw`&RO5;dd+6EStylRx%}Zb>RT1eRr|u6ysxRT6 zE&N`lntsGJm#0KR*dc+67AxX$84BP!f|9BDt3Z9<)w`_4F1PYiVA(o+i05>kOXrrL zO&|s_+km_TazX{B)MS&>+fgU+^+@5?;#Yz~s?_grdEG$SZ&dE1WN7F4OeC@Zh-6}? zFPW&})iRXR_YGa(?FVN^+r+w)#tc*P{ql;x!?N!(SZuX3YJD(oJdbL}-(!A4qNL+} zjA5{)`^L`ui1jr_I$GS^H8IXh95kx=n&o)9so%0j8gSbbfz>>d!Vt>&gISF8mxGEi zEpnwbr-KpKRr*s2r3$lYPcE_G3V4Bu9De8C!ZicPI>$<>q8C*%{S}p-B5EWYV>=aI zhyQEkKD^oBy9a>B-kW+VM$y`%wyGMnSM5E5h{lNBilVVwRiw2ksacy8QG3)Ltz8;K zjVKyQ)eK(G@AntH=e&Qyz29^1x#xWE{cP(1#n|i`5;?C|01>R+4ZoGHE542~AAh3H zInT-h*F=5-YE>x@24YOP+(iE!506)$8ri~K2k5!Fh0dmwu`rmBsujevu zsxaJ_JfFA`CBWeDQ^nZJ3i`vMkY*Fdk1&Fn@#whXWh%Tb+t&e&_d;G|q7?kIzEC9t z3if(XC(K>WU2nClQvRAnubE|-obpDHqF3m%{b5wzn6FEA?8GPv0UDwZXID{ zuUl}~K{G&nA#m5LeT~~h&g0WqoEEJZ9e88F=&c(2_{_uRmx{fP=!6+3t_oIoC!bGp zs_XA#haPms^G^O+em>W>lR}IMiwN!oE%E!!ELvCbvtcXzp>&p5xq}IzDXDZLGDoIj zdi-mN-)q*MkjlIHvX&(VxB53TZB%O_L@fYwm?WW=YavwtC0FK#t^W#8$a{>Q~JIlfBR(p8(!ob zd)Bjc2TWyjcIXF%wI2`oVXsn-KuY$Mx$MYSN?pm_*-@b^w_!_c3&J9vjc!sAulM_N z#x{*)n+6}4_J193wYO>l)tazLskJ3$xtfz#XXn~EU0BSC+>^a^8*#zp zuq+dCNfl8&K+qPokRq4cF{Xt4^=zZN?6w~=GZ9Vdd9zb$KCHZiilzt5m;$z~2ER}o zjHWm*sgl&s`1^>Nmi4&ZfzCaHgcu&F*~Iv z4~FADuAdEK+9BuR`us1@FB>G0o#*`g3|u~P!B78kZ8->h5{)e}ov_H6Zw5t6&UsA; zkbM%C+a-IW{Mpzy)W%eM#dBd6Sa@$Fp-EKyS7;VcJ1^O-I43!>!I8WI-8d`c3QaXb zn&TKGyY1#22oF2x6F@@%4uuYJsVd4-Z=WGSD7~=QRU1#viBehb{#dvG@7Y;DvzF!F`r8`KW1bpkk%`X83o%04!Y;UIX`|d-5<}BC$r^ zLzS5{P4@DpWv7C%Uk1TK?qhl-!9jEy1H@R=;H(bNPY5L2;~h58&H$Em|HG>HAD{!@ zzZ8yi)X0;jp$n2I(pcLxO6;P1WgOmPchbK2m8GX|rXXvf6?0>m6ex?#rVenHQCjT_3u(KO3(h-#x-h}^Sux6ovU)td z@WH0T?15!_)sk)-NO%?Xthj>2YGk%N!P79P5MWJj!d%ioG|`f74C(qqmSH=ymHwtwK+Ra+L(N zia#%mtsE3Hq#Tl7mF1SF0(6UEW+^Q{`bX01-5&E&Fym>6WxfMt5LM2R?{IXM4JVy1 zB;saTteLlb$a}|JcduQCu^q(*7Y-~tI*3f76FgXYI}`O7B}viebMRTQW~+&$}eDyK5cRvBgYgmxmzG63v%)dE7&=;O)&1yzTo5KR2L5y?jVe zd-bd-%^yh?asfDPU&*L|lOOs_=OSBZ8eYwCho?(0r%1a+b>|Jr5z?xdGv3t4wr(*X zhC0qqpiu}P_4RqgX)?>dn}O+);Th~M8?S9A2Wtr%O#Jf_Zu8h@?KRb$2(28G}>7z zQb#b_1$V6!jX2*=H`w&2A5rjUxZUhy%VGS@cjbOs>x4l6t=}V%dS$1yr@jio6*AFP zLz=#f92DI<&nD(L=0{!!b3BG{`7Yz-xi$`rMMZE)OPY%Ks!h!>F+NYd#kuuV+@zgW)CaW{4^g!PEUpz}FU_i=N~g*xRa2s)zlejU$ZT!y;{zWmE{ zm9c1Vqqhv_3BMwC(LJw`UX>=5@u%HjGPt-u6Omw8W`d5$*q~@7@3t?P1kWO)YmN+( zOhl)k64{K*Vxey+ZHTs54}aaV%`@HJ!-}gF9`&yQSt%xv%NaLBu}O*YTipD@0Qzl z{ZU;{>(|29mGp@ueMGgP9o-q+N$AlPWA{P#KEtGcdvy41#8U_;k}+QC<^cqJ(kP5h z>=+?+l<@MA1+@}-`l_9Qq*0zPy$Tq*?gn3hXM?Q^Csq1&nr7aJ@){ZDJ`Mb?-iGD^ zyI9s#^V&%){;Y(iU>|(5Ys}Ad7$<$}m7mC1ri}f@!r?7e7wkvKPWS*Et$HbQTrR+@ zGsFB`On&dx!Ez_uI5J`jI~uqT*%(VCkC?*|Js=v28(pE`11`wS&$F!tQa)(|3Ms`?OvXw zVqcq%-KMZlBWc6XaiotZ4Ckq=OCnY?Dd;FM^^+3Hp;QeUh&voho-t;3ETI zd|znHbfbb?XEJ(7UB9fP{1&7qF_eF!`_kze4801=pl5;8?Yf`l=OG zy245`)V>6YKIz=cV si3r+O#@V>5wMSeGCG&MkOEjamh%5xc!crm4w6=rh~1c1sJY>Z*6UDn_YoGFgrWDw6wImyv$%Qgn+oQ z*=!Dnv%=vlE-r!`7K;TgkhVE5;BWxYxLocMkH=%NKmd&|?tmFSn++`S`M@HV3kcY3 z0gt!YUjzxDf_MqswNVYsfHbfj$Po`gS|Kv7XKP+a^5c=HAYpim`1Nl7UR zRa#O~R$5wCR#s77UQtm|Sy6$mtVE;HRcLf|RaH%Ob!|;eU2Sb$T^**b4vWFmW3dhO z^^HJ7Lle;0*xc0A(%jq%w6wIfwsy3)=~~TJZN`u&spdp>fK@Bzueq43k^)zvRw*Pt4za}pBU z>|y5T9YZL*iQA65Z|s#8q{zE8J$Iqt4awED@%oA`X%Gm?Lel+7Jz_Vsqk0sh|MIz< zzp8ewvu|&@yIrrAequ_GQDdq(!V>d%IN5re%NVutSWO%{E^O@DX`cn-^>yqc>L+xY za4_woQD^FfY7HU)PgddIv@UYbA3O--Q0e02dTmLSc9z23Td=HOpNE{+ zDNZ2^S0jD!0kJVAH3}g!dYRt-r#keSKU~biedu>0cqwh1%Py z>NfvUaQ_6PNL`nV^i4I2h1m46Km{U|EdphbN&a}*jKCWZeP5?C^q^Lp zL6b)n&gD;C)6VEvsFUn+!A?`WY{CL=W*(39R=-G}Sux>CE8BOUU){mE9&3909wSlC zr0uBsPXj^~$zKNxHQgE~!m7uG$!SSLBHnazx$w4>GCj{-fAnAuLho=~-Qr1tw}yIc zu+_(T#-q4ypZhTPP?4q%F7s%CO4;InFsJ9)qPB$E8u60N6atIV_b6+2lYvvc$Sy~U%4TeC1WA5y4iQTWg zeWD9}b5jK3O=IMO3{eBn;Q@zQbI8(k?XC&HvFLWKqTTo+68 z)Cny+8%{Q}lKWB-F5lqjO|4v4hh*sTX(VoPgnMO@vukQ=K%L1g8`%LH8?1@j+5L*c z&XRk$0au4tMq7=r&whbAQ1Dtx4|gw3jn)R|>Dp!QKXE4E6FGR7P=~U{qviWfEo-!V zy<|pjTAgZL2#kwlHdu5}u23mxLi~$;;=@NnCBYDd2)a`m)p4u@kxSHw8}fpe4f(&a zxQRL9G}dCT=$RHs`#ckD9PzAo^(%5rps` zQw`O~%*CrIIcJ&!hEw6!&Zw@g8~=;u8iXbPQCjk49Yy)enR85}2%$-u{nN7#UYXGC zqcKvW&Zh%BPsbh7kM~UMLMHm{2%sM@GW$*GO-_e>TXd}f{fD9iHNE%|L%YHJFUU4;5B`?wVJrknW%Er5hpDigAy;Hf zl2E9vkqRDT3SN?X&f4w}^;k&ysRmddICgFFfl52o7IDtk|HT90xSzx0N?Ua)+l&W> zCN2bz99vJX0c+WVoewo`E|)!sVS5~9?_!X$cXvI!kgvQ)38I{llxyl{Y3=txJ|+HO d;gZHz>EQSMgZ{lUeDGD5fLYj^SD0RV{5OhuLT>;7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_photo_tips.png b/app/src/main/res/drawable-xxhdpi/ic_photo_tips.png new file mode 100644 index 0000000000000000000000000000000000000000..3a117e6217b5478bdf9a56ed8f4ebc10b1c02991 GIT binary patch literal 845 zcmeAS@N?(olHy`uVBq!ia0vp^S|H593?x6vT4n;NKLI`=u0Z<#e}?}J4FA)>WG{=bgs_3K5D_4w4oM0q3lxE? zB*=g(h8svw3)~8b1CU9uUV&fdYk>X_E(!7rW?*DuWn<^!77!5=mync}SJpQ$wXn9a zcl7k~4vWdk%_}Y`D{p9QYU}Rl>z^=V-s*Mhx9`}wYya`%C(oWcf8p}YTlXG5ef{>+ z=PzHs{`mRp_n*K2zU`C0!N9<{*3-o?#NzbSsW+nz83?rUU+r*R8&aHdgCw=&|%i~tLh_I>l!G-671=`tc)%PqnUKF47o5%QVZIz9(J=oF3Z@g1b@nKK>=ItAWxA`s? z&!2VI_FmW8U8_Wys~qz_u*RC1&APbp;+Cy55<}j#{L1+hac;wplc_U~i(XfLwOuQ+ dxS8FaVejOr58VS+hy&9FgQu&X%Q~loCIEgPjcWh^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/custom_progress.xml b/app/src/main/res/drawable/custom_progress.xml new file mode 100644 index 0000000..c444081 --- /dev/null +++ b/app/src/main/res/drawable/custom_progress.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_personal_job.xml b/app/src/main/res/layout/activity_personal_job.xml new file mode 100644 index 0000000..a97e7e2 --- /dev/null +++ b/app/src/main/res/layout/activity_personal_job.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_personal_school.xml b/app/src/main/res/layout/activity_personal_school.xml new file mode 100644 index 0000000..3d444ea --- /dev/null +++ b/app/src/main/res/layout/activity_personal_school.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_personal_signature.xml b/app/src/main/res/layout/activity_personal_signature.xml index cfa1db2..6ed274f 100644 --- a/app/src/main/res/layout/activity_personal_signature.xml +++ b/app/src/main/res/layout/activity_personal_signature.xml @@ -1,45 +1,63 @@ - - + android:layout_marginTop="36dp" + android:orientation="horizontal"> - + + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_photo_list_two.xml b/app/src/main/res/layout/activity_photo_list_two.xml new file mode 100644 index 0000000..25372b6 --- /dev/null +++ b/app/src/main/res/layout/activity_photo_list_two.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + +