From e4ee4d9efe1145bfc86622f97a976954db725a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Tue, 10 Dec 2019 18:16:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/LoginUtils.java | 6 + .../java/com/gh/gamecenter/WebActivity.java | 3 +- .../gamecenter/discover/DiscoverFragment.kt | 5 +- .../gamecenter/personal/PersonalFragment.java | 47 +- .../gamecenter/personal/PersonalViewModel.kt | 9 +- .../retrofit/service/ApiService.java | 6 +- .../fragment/user/UserInfoEditFragment.java | 73 ++- app/src/main/res/layout/fragment_personal.xml | 14 +- .../res/layout/fragment_userinfo_edit.xml | 589 +++++++++--------- 9 files changed, 430 insertions(+), 322 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/LoginUtils.java b/app/src/main/java/com/gh/common/util/LoginUtils.java index 4cdcc1455d..fbef6dbab3 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -264,6 +264,12 @@ public class LoginUtils { case 400212: Utils.toast(context, "请输入正确的手机号"); break; + case 400010: + Utils.toast(context, "身份证无效,请重新输入"); + break; + case 400011: + Utils.toast(context, "请输入正确的身份信息"); + break; default: Utils.toast(context, code + ""); break; diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index d808d07c44..321f39a00a 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -13,6 +13,7 @@ import com.gh.gamecenter.entity.ToolBoxEntity; import com.halo.assistant.fragment.WebFragment; import java.net.URLEncoder; +import java.util.Date; import java.util.Locale; import androidx.annotation.NonNull; @@ -121,7 +122,7 @@ public class WebActivity extends NormalActivity { url = Constants.BADGE_ADDRESS; } - url = String.format(Locale.CHINA, "%s?user_id=%s&name=%s&icon=%s", url, userId, name, URLEncoder.encode(icon)); + url = String.format(Locale.CHINA, "%s?user_id=%s&name=%s&icon=%s×tamp=%d", url, userId, name, URLEncoder.encode(icon), Math.round(new Date().getTime() / 1000)); Bundle bundle = new Bundle(); bundle.putString(EntranceUtils.KEY_URL, url); bundle.putBoolean(WebFragment.KEY_IS_BADGE_CENTER, true); diff --git a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt index 42d07411b8..4c24b7f893 100644 --- a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt @@ -92,7 +92,6 @@ class DiscoverFragment : BaseFragment() { @OnClick(R.id.discover_game_trends, R.id.discover_info, R.id.discover_libao, - R.id.discover_apk_cleaner, R.id.discover_tools) fun onViewClicked(view: View) { when (view.id) { @@ -121,11 +120,11 @@ class DiscoverFragment : BaseFragment() { val intent = LibaoActivity.getIntent(context, "(发现:礼包)") startActivity(intent) } - R.id.discover_apk_cleaner -> { + /* R.id.discover_apk_cleaner -> { MtaHelper.onEvent("发现", "安装包清理") DataCollectionUtils.uploadClick(activity, "安装包清理", "发现") startActivity(CleanApkActivity.getIntent(context)) - } + }*/ R.id.discover_tools -> { MtaHelper.onEvent("发现", "工具箱") DataCollectionUtils.uploadClick(activity, "工具箱", "发现") diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index d15f6f1bbd..422a9ba7d9 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -25,6 +25,7 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.LogUtils; import com.gh.common.util.LoginHelper; import com.gh.common.util.MtaHelper; +import com.gh.common.util.PackageUtils; import com.gh.common.util.StringUtils; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.GameDetailActivity; @@ -33,6 +34,9 @@ import com.gh.gamecenter.MessageActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.UserInfoActivity; +import com.gh.gamecenter.entity.AppEntity; +import com.gh.gamecenter.entity.FunctionalGroupEntity; +import com.gh.gamecenter.entity.FunctionalLinkEntity; import com.gh.gamecenter.entity.LoginTokenEntity; import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.entity.SignEntity; @@ -65,6 +69,7 @@ import org.greenrobot.eventbus.ThreadMode; import org.json.JSONObject; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Locale; import java.util.concurrent.TimeUnit; @@ -175,16 +180,17 @@ public class PersonalFragment extends BaseFragment implements Observer { if (!datas.isEmpty()) { mPersonalFuncGroupAdapter.setListData(datas); + checkUpdate(); } }); - mPersonalViewModel.getHaloAddons(); + // mPersonalViewModel.getHaloAddons(); mUnreadViewModel = ViewModelProviders.of(this, new MessageUnreadViewModel.Factory(HaloApp.getInstance().getApplication())).get(MessageUnreadViewModel.class); mUnreadViewModel.getLiveData().observe(this , messageUnread -> { if (messageUnread != null && messageUnread.getTotal() > 0) { - mPersonalHome.setText(messageUnread.getFans() > 0 ? (messageUnread.getFans() + "个新粉丝 >") : "个人主页 >"); + mPersonalHome.setText(messageUnread.getFans() > 0 ? ((messageUnread.getFans() < 100 ? messageUnread.getFans() : "99+") + "个新粉丝 >") : "个人主页 >"); int count = messageUnread.getTotal() - messageUnread.getFans(); mLoginMessageHint.setVisibility(count > 0 ? View.VISIBLE : View.GONE); BindingAdapters.setMessageUnread(mLoginMessageHint, count); @@ -194,7 +200,7 @@ public class PersonalFragment extends BaseFragment implements Observer"); EventBus.getDefault().post(new EBReuse(MESSAGE_READ_OVER)); } }); @@ -310,7 +316,7 @@ public class PersonalFragment extends BaseFragment implements Observer() { + @Override + public void onResponse(AppEntity response) { + super.onResponse(response); + if (response.getVersionCode() > PackageUtils.getVersionCode()) { + notifyItemChange("设置", "新版本"); + } else { + notifyItemChange("设置", ""); + } + } + }); + } + + private void notifyItemChange(String type, String msg) { + ArrayList mEntityList = mPersonalFuncGroupAdapter.getMEntityList(); + for (FunctionalGroupEntity mEntity : mEntityList) { + for (FunctionalLinkEntity linkEntity : mEntity.getAddons()) { + if (TextUtils.equals(linkEntity.getType(), type)) { + linkEntity.setMessage(msg); + break; + } + } + } + mPersonalFuncGroupAdapter.notifyDataSetChanged(); + } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalViewModel.kt b/app/src/main/java/com/gh/gamecenter/personal/PersonalViewModel.kt index 6917f05039..a75d19d758 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalViewModel.kt @@ -58,8 +58,7 @@ class PersonalViewModel(application: Application) : AndroidViewModel(application private fun initDefaultData() { val datas = ArrayList() - val groupEntity1 = FunctionalGroupEntity() - groupEntity1.name = "常用功能" + val groupEntity1 = FunctionalGroupEntity(name = "常用功能") commonFuncs.forEach { groupEntity1.addons.add(FunctionalLinkEntity(iconRes = it.second).apply { name = it.first @@ -68,8 +67,7 @@ class PersonalViewModel(application: Application) : AndroidViewModel(application } datas.add(groupEntity1) - val groupEntity2 = FunctionalGroupEntity() - groupEntity2.name = "内容中心" + val groupEntity2 = FunctionalGroupEntity(name = "内容中心") contentCenterFuncs.forEach { groupEntity2.addons.add(FunctionalLinkEntity(iconRes = it.second).apply { name = it.first @@ -78,8 +76,7 @@ class PersonalViewModel(application: Application) : AndroidViewModel(application } datas.add(groupEntity2) - val groupEntity3 = FunctionalGroupEntity() - groupEntity3.name = "其它功能" + val groupEntity3 = FunctionalGroupEntity(name = "其它功能") otherFuncs.forEach { groupEntity3.addons.add(FunctionalLinkEntity(iconRes = it.second).apply { name = it.first diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index b45382f55f..0e8119ce2f 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -2164,5 +2164,9 @@ public interface ApiService { @POST("users/{user_id}/played_times:batch_create") Single postUsageStatus(@Body RequestBody body); - + /** + * 身份证输入框说明文案 + */ + @GET("users/auth_text") + Observable getAuthText(); } \ No newline at end of file diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java index c81d3767af..39ae95be4d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java @@ -1,5 +1,6 @@ package com.halo.assistant.fragment.user; +import android.annotation.SuppressLint; import android.app.Dialog; import android.os.Bundle; import android.text.Editable; @@ -19,8 +20,10 @@ import com.gh.gamecenter.entity.IdCardEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.normal.NormalFragment; -import com.gh.gamecenter.user.ApiResponse; +import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.user.UserViewModel; +import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; import org.json.JSONException; @@ -32,10 +35,11 @@ import java.util.Locale; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import butterknife.BindView; import butterknife.OnClick; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; /** * Created by CsHeng on 19/12/2017. @@ -82,6 +86,10 @@ public class UserInfoEditFragment extends NormalFragment { EditText mUserInfoIntroduceEt; @BindView(R.id.userinfo_introduce_tv) TextView mUserInfoIntroduceTv; + @BindView(R.id.userinfo_information_tv) + TextView mUserInfoInformationTv; + @BindView(R.id.userinfo_verified_complete) + TextView mUserinfoVerifiedComplete; private static final int MIN_NAME_LENGHT = 2; @@ -111,20 +119,28 @@ public class UserInfoEditFragment extends NormalFragment { TextView menuView = mSaveMenuItem.getActionView().findViewById(R.id.tv_menu_button); menuView.setText(R.string.menu_text_save); + if (UserViewModel.TYPE_ID_CARD.equals(mEditType)) { + getAuthText(); + } + mUserInfoEntity = UserManager.getInstance().getUserInfoEntity(); UserViewModel.Factory factory = new UserViewModel.Factory(getActivity().getApplication()); mUserViewModel = ViewModelProviders.of(this, factory).get(UserViewModel.class); - mUserViewModel.getEditObsUserinfo().observe(this, new Observer>() { - @Override - public void onChanged(@Nullable ApiResponse userInfoEntity) { - if (mLoadingDialog != null) { - mLoadingDialog.dismiss(); - } - if (mLoadingDialog != null && userInfoEntity != null && userInfoEntity.getData() != null) { - getActivity().finish(); - } + mUserViewModel.getEditObsUserinfo().observe(this, userInfoEntity -> { + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); } + if (mLoadingDialog != null && userInfoEntity != null && userInfoEntity.getData() != null) { + if (TextUtils.equals(UserViewModel.TYPE_ID_CARD, mEditType)) { + mUserinfoVerifiedComplete.setVisibility(View.VISIBLE); + mUserInfoInformationTv.setVisibility(View.GONE); + if (mSaveMenuItem != null) mSaveMenuItem.setVisible(false); + return; + } + getActivity().finish(); + } + }); } @@ -206,10 +222,16 @@ public class UserInfoEditFragment extends NormalFragment { title = "实名认证"; IdCardEntity idCard = mUserInfoEntity.getIdCard(); if (idCard != null && !TextUtils.isEmpty(idCard.getName())) { - mIdCardNameEt.setText(idCard.getName()); + StringBuilder sb = new StringBuilder(idCard.getName().substring(0, 1)); + for (int i = 0; i < idCard.getName().length() - 1; i++) { + sb.append("*"); + } + mIdCardNameEt.setText(sb.toString()); + mIdCardEt.setText(idCard.getId().replaceAll("(\\d)\\d{16}([0-9,x-y])", "$1****************$2")); mIdCardNameEt.setEnabled(false); - mIdCardEt.setText(idCard.getId()); mIdCardEt.setEnabled(false); + mUserinfoVerifiedComplete.setVisibility(View.VISIBLE); + mUserInfoInformationTv.setVisibility(View.GONE); if (mSaveMenuItem != null) mSaveMenuItem.setVisible(false); } else { if (mSaveMenuItem != null) mSaveMenuItem.setVisible(true); @@ -318,7 +340,7 @@ public class UserInfoEditFragment extends NormalFragment { } - @OnClick({ R.id.userinfo_contact_iv, R.id.userinfo_sex_man, + @OnClick({R.id.userinfo_contact_iv, R.id.userinfo_sex_man, R.id.userinfo_sex_woman}) public void onViewClicked(View view) { switch (view.getId()) { @@ -373,5 +395,28 @@ public class UserInfoEditFragment extends NormalFragment { } } + /** + * 身份证输入框说明文案 + */ + @SuppressLint("CheckResult") + private void getAuthText() { + RetrofitManager.getInstance(HaloApp.getInstance().getApplication()).getApi() + .getAuthText() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new JSONObjectResponse() { + @Override + public void onResponse(JSONObject response) { + super.onResponse(response); + try { + String text = response.getString("text"); + mUserInfoInformationTv.setText(text); + } catch (JSONException e) { + e.printStackTrace(); + } + } + }); + } + } diff --git a/app/src/main/res/layout/fragment_personal.xml b/app/src/main/res/layout/fragment_personal.xml index 6446566194..1dde68c3ff 100644 --- a/app/src/main/res/layout/fragment_personal.xml +++ b/app/src/main/res/layout/fragment_personal.xml @@ -16,21 +16,21 @@ android:layout_width="22dp" android:layout_height="22dp" android:layout_centerVertical="true" - android:layout_marginLeft="10dp" + android:layout_marginLeft="12dp" android:src="@drawable/personal_sign_icon" /> + android:layout_marginRight="12dp"> - + + + + + android:id="@+id/userinfo_edit_sex" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:orientation="vertical" + android:visibility="gone"> + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + android:id="@+id/userinfo_sex_man" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@drawable/reuse_listview_item_style" + android:gravity="center_vertical" + android:paddingLeft="18dp" + android:text="@string/userinfo_edit_man" + android:textColor="@color/title" + android:textSize="15sp" /> - + android:id="@+id/userinfo_sex_man_select" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_marginRight="16dp" + android:src="@drawable/kc_checkbox_select" + android:visibility="gone" /> + + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + android:id="@+id/userinfo_sex_woman" + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_marginTop="1dp" + android:background="@drawable/reuse_listview_item_style" + android:gravity="center_vertical" + android:paddingLeft="18dp" + android:text="@string/userinfo_edit_woman" + android:textColor="@color/title" + android:textSize="15sp" /> - - + android:id="@+id/userinfo_sex_woman_select" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_marginRight="16dp" + android:src="@drawable/kc_checkbox_select" + android:visibility="gone" /> + + + android:id="@+id/userinfo_edit_nickname" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:background="@android:color/white" + android:paddingLeft="18dp" + android:paddingRight="18dp" + android:visibility="gone"> + android:id="@+id/userinfo_nickname_et" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@null" + android:hint="@string/nickname_hint" + android:singleLine="true" + android:textColor="@color/title" + android:textCursorDrawable="@drawable/cursor_color" + android:textSize="15sp" /> + - + android:text="(0/30)" + android:textColor="@color/title" /> + + android:id="@+id/userinfo_edit_id_card" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="gone"> + android:layout_width="match_parent" + android:layout_height="40dp" + android:gravity="center_vertical" + android:paddingLeft="20dp" + android:text="姓名" /> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/white" + android:paddingLeft="18dp" + android:paddingRight="18dp"> + android:id="@+id/userinfo_id_card_name_et" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@null" + android:hint="@string/userinfo_edit_id_card_name_hint" + android:maxLength="20" + android:singleLine="true" + android:textColor="@color/title" + android:textCursorDrawable="@drawable/cursor_color" + android:textSize="15sp" /> - + android:id="@+id/userinfo_id_card_name_iv" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:background="@drawable/userinfo_edit_delete" + android:visibility="gone" /> + + android:layout_width="match_parent" + android:layout_height="40dp" + android:gravity="center_vertical" + android:paddingLeft="20dp" + android:text="身份证号" /> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/white" + android:paddingLeft="18dp" + android:paddingRight="18dp"> + android:id="@+id/userinfo_id_card_et" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="@null" + android:hint="@string/userinfo_edit_id_card_hint" + android:maxLength="18" + android:singleLine="true" + android:textColor="@color/title" + android:textCursorDrawable="@drawable/cursor_color" + android:textSize="15sp" /> - + android:id="@+id/userinfo_id_card_iv" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:background="@drawable/userinfo_edit_delete" + android:visibility="gone" /> + - + android:id="@+id/userinfo_information_tv" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:paddingLeft="18dp" + android:paddingRight="18dp" + android:textColor="@color/hint" + android:textSize="13sp" + tools:text="@string/userinfo_edit_id_card_explain" /> + - \ No newline at end of file + \ No newline at end of file