| | |
| | | <application |
| | | android:name=".HDLApp" |
| | | android:allowBackup="true" |
| | | android:icon="@mipmap/ic_launcher" |
| | | android:icon="@drawable/version_icon" |
| | | android:label="@string/app_name" |
| | | android:requestLegacyExternalStorage="true" |
| | | android:roundIcon="@mipmap/ic_launcher_round" |
| | | android:roundIcon="@drawable/version_icon" |
| | | android:supportsRtl="true" |
| | | android:theme="@style/Theme.PhotovoltaicDebug"> |
| | | <activity |
| | | android:name=".ui.me.TemperatureUnitActivity" |
| | | android:exported="false" /> |
| | | <activity |
| | | android:name=".ui.me.languageSelectionActivity" |
| | | android:exported="false" /> |
| | | <activity |
| | | android:name=".ui.me.AccountAndSecurityActivity" |
| | | android:exported="false" /> |
| | | <activity |
| | | android:name=".ui.me.PersonalDataActivity" |
| | | android:exported="false" /> |
| | |
| | | android:value="812" /> |
| | | <meta-data |
| | | android:name="design_width_in_dp" |
| | | android:value="375" /> |
| | | <!--不加这个作用域上去打开相册的是闪退--> |
| | | android:value="375" /> <!-- 不加这个作用域上去打开相册的是闪退 --> |
| | | <meta-data |
| | | android:name="ScopedStorage" |
| | | android:value="true" /> |
| | | |
| | | </application> |
| | | |
| | | </manifest> |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改用户名称 |
| | | * |
| | | * @param memberName 用户名称 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void updateMemberName_C(String memberName, CloudCallBeak<Boolean> cloudCallBeak) { |
| | | updateMemberInfo_C("", memberName, "", "", "", "", cloudCallBeak); |
| | | } |
| | | |
| | | /** |
| | | * 修改用户头像 |
| | | * |
| | | * @param memberHeadIcon 头像地址 |
| | | * @param cloudCallBeak - |
| | | */ |
| | | public void updateMemberHeadIcon_C(String memberHeadIcon, CloudCallBeak<Boolean> cloudCallBeak) { |
| | | updateMemberInfo_C("", "", "", memberHeadIcon, "", "", cloudCallBeak); |
| | | } |
| | | |
| | | /** |
| | | * 更新个人信息(C端账号) |
| | | * |
| | |
| | | spannable.setSpan(new ClickableSpan() { |
| | | @Override |
| | | public void onClick(@NonNull View widget) { |
| | | //todo 需要跳转到隐私界面 |
| | | //todo 需要跳转到服务协议界面 |
| | | Intent intent = new Intent(); |
| | | intent.putExtra("type", 0); |
| | | intent.putExtra("type", WebActivity.ServiceAgreement); |
| | | intent.setClass(_mActivity, WebActivity.class); |
| | | startActivity(intent); |
| | | } |
| | |
| | | public void onClick(@NonNull View widget) { |
| | | //todo 需要跳转到隐私界面 |
| | | Intent intent = new Intent(); |
| | | intent.putExtra("type", 1); |
| | | intent.putExtra("type", WebActivity.PrivacyAgreement); |
| | | intent.setClass(_mActivity, WebActivity.class); |
| | | startActivity(intent); |
| | | } |
New file |
| | |
| | | package com.hdl.photovoltaic.ui.adapter; |
| | | |
| | | import android.content.Context; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | | import android.widget.ImageView; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.recyclerview.widget.RecyclerView; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class LanguageAdapter extends RecyclerView.Adapter<LanguageAdapter.MyViewHolder> { |
| | | |
| | | |
| | | private List<ItemData> mList; |
| | | private final Context mContext; |
| | | private OnclickListener noOnclickListener;//点击了的监听器 |
| | | |
| | | public LanguageAdapter(List<ItemData> list, Context context) { |
| | | |
| | | this.mList = list; |
| | | this.mContext = context; |
| | | } |
| | | |
| | | @NonNull |
| | | @Override |
| | | public LanguageAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { |
| | | |
| | | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_language, parent, false); |
| | | return new LanguageAdapter.MyViewHolder(view); |
| | | } |
| | | |
| | | @Override |
| | | public void onBindViewHolder(@NonNull LanguageAdapter.MyViewHolder holder, int position) { |
| | | ItemData itemData = this.mList.get(position); |
| | | holder.item_lift_name_tv.setText(itemData.getTitle()); |
| | | holder.item_lift_name_tv.setTextColor(mContext.getColor(R.color.text_90000000)); |
| | | holder.item_right_icon_iv.setBackground(null); |
| | | if (itemData.isState()) { |
| | | holder.item_lift_name_tv.setTextColor(mContext.getColor(R.color.text_245EC3)); |
| | | holder.item_right_icon_iv.setBackground(mContext.getResources().getDrawable(R.drawable.select_state)); |
| | | } |
| | | if (position == this.mList.size() - 1) { |
| | | holder.item_bottom_line_v.setVisibility(View.GONE); |
| | | } |
| | | holder.itemView.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (noOnclickListener != null) { |
| | | noOnclickListener.onClick(holder.getAdapterPosition(), itemData); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public int getItemCount() { |
| | | return this.mList == null ? 0 : this.mList.size(); |
| | | } |
| | | |
| | | |
| | | public void setList(List<ItemData> list) { |
| | | this.mList = list; |
| | | } |
| | | |
| | | public void setNoOnclickListener(OnclickListener onclickListener) { |
| | | this.noOnclickListener = onclickListener; |
| | | } |
| | | /** |
| | | * 一行布局容器 |
| | | */ |
| | | static class MyViewHolder extends RecyclerView.ViewHolder { |
| | | |
| | | |
| | | public TextView item_lift_name_tv; |
| | | |
| | | public ImageView item_right_icon_iv; |
| | | public View item_bottom_line_v; |
| | | |
| | | public MyViewHolder(@NonNull View itemView) { |
| | | super(itemView); |
| | | item_lift_name_tv = itemView.findViewById(R.id.item_lift_name_tv); |
| | | item_right_icon_iv = itemView.findViewById(R.id.item_right_icon_iv); |
| | | item_bottom_line_v = itemView.findViewById(R.id.item_bottom_line_v); |
| | | } |
| | | } |
| | | |
| | | public interface OnclickListener { |
| | | void onClick(int position, ItemData itemData); |
| | | } |
| | | |
| | | public static class ItemData { |
| | | |
| | | private String title; |
| | | private boolean state; |
| | | |
| | | public String getTitle() { |
| | | return title == null ? "" : title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | public boolean isState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(boolean state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.hdl.photovoltaic.ui.me; |
| | | |
| | | |
| | | import android.os.Bundle; |
| | | import android.view.View; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.base.CustomBaseActivity; |
| | | import com.hdl.photovoltaic.databinding.ActivityAccountAndSecurityBinding; |
| | | |
| | | /** |
| | | * 账号和安全的界面 |
| | | */ |
| | | public class AccountAndSecurityActivity extends CustomBaseActivity { |
| | | private ActivityAccountAndSecurityBinding viewBinding; |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | | viewBinding = ActivityAccountAndSecurityBinding.inflate(getLayoutInflater()); |
| | | return viewBinding.getRoot(); |
| | | } |
| | | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | setStatusBarTextColor(); |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | } |
| | | |
| | | private void initEvent() { |
| | | |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | finish(); |
| | | } |
| | | }); |
| | | |
| | | viewBinding.setAccountPhoneIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | |
| | | } |
| | | }); |
| | | viewBinding.setAccountMailIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | |
| | | } |
| | | }); |
| | | |
| | | viewBinding.setChangePswIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | startActivity(MeChangePasswordActivity.class); |
| | | } |
| | | }); |
| | | |
| | | viewBinding.setAccountClose.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | private void initView() { |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_account_security); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); |
| | | |
| | | viewBinding.setAccountPhoneIl.sllLlRlNameTv.setText(R.string.home_login_phone); |
| | | viewBinding.setAccountPhoneIl.sllLlRlRightContentTv.setText(R.string.set_not_bind); |
| | | viewBinding.setAccountPhoneIl.sllLlRlRightContentTv.setVisibility(View.VISIBLE); |
| | | |
| | | viewBinding.setAccountMailIl.sllLlRlNameTv.setText(R.string.set_email_address); |
| | | viewBinding.setAccountMailIl.sllLlRlRightContentTv.setText(R.string.set_not_bind); |
| | | viewBinding.setAccountMailIl.sllLlRlRightContentTv.setVisibility(View.VISIBLE); |
| | | |
| | | viewBinding.setChangePswIl.sllLlRlNameTv.setText(R.string.home_login_change_password); |
| | | } |
| | | } |
| | |
| | | mNewVersionBean = newVersionBean; |
| | | if (newVersionBean != null) { |
| | | //todo 发现新版本,改变UI样式 |
| | | viewBinding.asRegardsRlRightContentTv.setText(R.string.app_discover_new_version); |
| | | viewBinding.asRegardsRlRightContentTv.setTextColor(getResources().getColor(R.color.text_245EC3, null)); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | }); |
| | | //todo 等接口 |
| | | String content = "下载地址url"; |
| | | String content = "https://spark.appc02.com/ksgd1"; |
| | | Bitmap bitmap = HdlCommonLogic.getInstance().createQRCodeBitmap(content, 168, 168, "UTF-8", "H", "1", Color.BLACK, Color.WHITE); |
| | | viewBinding.asRegardsQrCodeIv.setImageBitmap(bitmap); |
| | | |
| | |
| | | @Override |
| | | public void onClick(View v) { |
| | | Intent intent = new Intent(); |
| | | intent.putExtra("type", 0); |
| | | intent.putExtra("type", WebActivity.ServiceAgreement); |
| | | intent.setClass(_mActivity, WebActivity.class); |
| | | startActivity(intent); |
| | | } |
| | |
| | | @Override |
| | | public void onClick(View v) { |
| | | Intent intent = new Intent(); |
| | | intent.putExtra("type", 1); |
| | | intent.putExtra("type", WebActivity.PrivacyAgreement); |
| | | intent.setClass(_mActivity, WebActivity.class); |
| | | startActivity(intent); |
| | | |
| | |
| | | } |
| | | |
| | | private void initView() { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.me_regard); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); |
| | | String versionsStr = "v" + AppConfigManage.getVersionName(); |
| | | String versionsStr = _mActivity.getResources().getString(R.string.app_version_number) + " " + AppConfigManage.getVersionName(); |
| | | viewBinding.asRegardsIconVersionsTv.setText(versionsStr); |
| | | |
| | | } |
| | |
| | | // hideLoading(); |
| | | //获取用户头像路径 |
| | | if (cUserInfo.getMemberHeadIcon().contains("http")) { |
| | | updateView(null, cUserInfo); |
| | | //更新用户头像 |
| | | setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | //更新用户名称 |
| | | setMemberName(cUserInfo.getMemberName()); |
| | | } else { |
| | | HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(String url) { |
| | | cUserInfo.setMemberHeadIcon(url); |
| | | updateView(null, cUserInfo); |
| | | //更新用户头像 |
| | | setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | //更新用户名称 |
| | | setMemberName(cUserInfo.getMemberName()); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | updateView(null, cUserInfo); |
| | | // //更新用户头像 |
| | | // setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | //更新用户名称 |
| | | setMemberName(cUserInfo.getMemberName()); |
| | | HdlThreadLogic.toast(_mActivity, e); |
| | | } |
| | | }); |
| | |
| | | public void onSuccess(BUserInfo bUserInfo) { |
| | | mB_UserInfo = bUserInfo; |
| | | // hideLoading(); |
| | | updateView(bUserInfo, null); |
| | | |
| | | setMemberName(bUserInfo.getUserName()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | /** |
| | | * 更新ui |
| | | * |
| | | * @param bUserInfo B端个人信息 |
| | | * @param cUserInfo C端个人信息 |
| | | */ |
| | | private void updateView(BUserInfo bUserInfo, CUserInfo cUserInfo) { |
| | | if (viewBinding == null) { |
| | | return; |
| | | } |
| | | String userName = UserConfigManage.getInstance().getUserName(); |
| | | if (bUserInfo != null) { |
| | | //B端 |
| | | userName = bUserInfo.getUserName(); |
| | | } |
| | | if (cUserInfo != null) { |
| | | //C端 |
| | | userName = cUserInfo.getMemberName(); |
| | | setMemberHeadIcon(cUserInfo.getMemberHeadIcon()); |
| | | } |
| | | viewBinding.fragmentMeUserNameIv.setText(userName); |
| | | UserConfigManage.getInstance().setUserName(userName); |
| | | UserConfigManage.getInstance().Save(); |
| | | } |
| | | |
| | | @Override |
| | | public void onResume() { |
| | | super.onResume(); |
| | | //更新用户名称 |
| | | updateView(null, null); |
| | | } |
| | | |
| | | /** |
| | | * 初始化界面 |
| | | */ |
| | | private void initView() { |
| | |
| | | super.onActivityResult(requestCode, resultCode, data); |
| | | if (requestCode == 10 && resultCode == 10) { |
| | | if (data != null) { |
| | | String url = data.getStringExtra("memberHeadIcon"); |
| | | setMemberHeadIcon(url); |
| | | String iconUrl = data.getStringExtra("memberHeadIcon"); |
| | | String memberName = data.getStringExtra("memberName"); |
| | | //更新用户头像 |
| | | setMemberHeadIcon(iconUrl); |
| | | //更新用户名称 |
| | | setMemberName(memberName); |
| | | |
| | | } |
| | | } |
| | |
| | | GlideUtils.getRoundedCornersImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, new RoundedCorners(4)); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 显示用户名称 |
| | | */ |
| | | private void setMemberName(String userName) { |
| | | viewBinding.fragmentMeUserNameIv.setText(userName); |
| | | UserConfigManage.getInstance().setUserName(userName); |
| | | UserConfigManage.getInstance().Save(); |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | import com.bumptech.glide.load.resource.bitmap.RoundedCorners; |
| | | import com.google.gson.JsonObject; |
| | | import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack; |
| | | import com.hdl.linkpm.sdk.core.callback.IResponseCallBack; |
| | | import com.hdl.linkpm.sdk.core.exception.HDLException; |
| | | import com.hdl.linkpm.sdk.user.HDLLinkPMUser; |
| | |
| | | viewBinding.toolbarTopFragmentMeRl.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | //数据是使用Intent返回 |
| | | Intent intent = new Intent(); |
| | | //把返回数据存入Intent |
| | | intent.putExtra("memberHeadIcon", mMemberHeadIconUrl); |
| | | //设置返回数据 |
| | | intent.putExtra("memberName", UserConfigManage.getInstance().getUserName()); |
| | | setResult(10, intent); |
| | | finish(); |
| | | } |
| | |
| | | cameraAlbumPopWindow = new CameraAlbumPopWindow(_mActivity, new CameraAlbumPopWindow.CameraAlbumListener() { |
| | | @Override |
| | | public void successCallBack(final File a) { |
| | | //上传头像文件 |
| | | HDLLinkPMUser.getInstance().uploadUserHeadImage(a, new IResponseCallBack<ImageSubmitInfo>() { |
| | | @Override |
| | | public void onSuccess(ImageSubmitInfo imageKey) { |
| | | JsonObject imageInfo = new JsonObject(); |
| | | imageInfo.addProperty("memberHeadIcon", imageKey.getUrl()); |
| | | HDLLinkPMUser.getInstance().updateMemberInfo(imageInfo, new IDefaultCallBack() { |
| | | //上传头像地址 |
| | | HdlAccountLogic.getInstance().updateMemberHeadIcon_C(imageKey.getUrl(), new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess() { |
| | | public void onSuccess(Boolean obj) { |
| | | mMemberHeadIconUrl = imageKey.getUrl(); |
| | | setMemberHeadIcon(); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException error) { |
| | | HdlLogLogic.print("uploadUserHeadImage error:" + error.getMsg()); |
| | | public void onFailure(HDLException e) { |
| | | HdlLogLogic.print("uploadUserHeadImage error:" + e.getMsg()); |
| | | // hideLoading(); |
| | | } |
| | | }); |
| | |
| | | confirmationInputDialog.setYesOnclickListener(new ConfirmationInputDialog.onYesOnclickListener() { |
| | | @Override |
| | | public void Confirm(String str) { |
| | | HdlAccountLogic.getInstance().updateMemberInfo_C("", str, "", "", "", "", new CloudCallBeak<Boolean>() { |
| | | HdlAccountLogic.getInstance().updateMemberName_C(str, new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess(Boolean obj) { |
| | | UserConfigManage.getInstance().setUserName(str); |
| | |
| | | */ |
| | | public class SetActivity extends CustomBaseActivity { |
| | | |
| | | |
| | | private ActivitySetBinding viewBinding; |
| | | |
| | | @Override |
| | |
| | | finish(); |
| | | } |
| | | }); |
| | | viewBinding.setNicknameIl.sllLlNameRl.setOnClickListener(new View.OnClickListener() { |
| | | //多语言 |
| | | viewBinding.setLanguageIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | changedNickname(); |
| | | startActivity(languageSelectionActivity.class); |
| | | } |
| | | }); |
| | | viewBinding.setChangePasswordIl.sllLlNameRl.setOnClickListener(new View.OnClickListener() { |
| | | //账号与安全 |
| | | viewBinding.setAccountSecurityIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | startActivity(MeChangePasswordActivity.class); |
| | | startActivity(AccountAndSecurityActivity.class); |
| | | } |
| | | }); |
| | | viewBinding.setPushMsgIl.sllLlRlRightSwitchIv.setOnClickListener(new View.OnClickListener() { |
| | | //温度单位 |
| | | viewBinding.setTemperatureUnitIl.getRoot().setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | v.setSelected(!v.isSelected()); |
| | | startActivity(TemperatureUnitActivity.class); |
| | | } |
| | | }); |
| | | //退出登录 |
| | | viewBinding.outTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); |
| | | viewBinding.setNicknameIl.sllLlRlNameTv.setText(R.string.set_nickname); |
| | | viewBinding.setChangePasswordIl.sllLlRlNameTv.setText(R.string.home_login_change_password); |
| | | viewBinding.setCloseAccountIl.sllLlRlNameTv.setText(R.string.set_close_account); |
| | | viewBinding.setMesIl.sllLlRlTitleTv.setText(R.string.set_message_setting); |
| | | viewBinding.setPushMsgIl.sllLlRlNameTv.setText(R.string.set_push_notification); |
| | | viewBinding.setPushMsgIl.sllLlRlRightNextIv.setVisibility(View.GONE); |
| | | viewBinding.setPushMsgIl.sllLlRlRightSwitchIv.setVisibility(View.VISIBLE); |
| | | viewBinding.setCallMsgIl.sllLlRlNameTv.setText(R.string.set_alarm_message); |
| | | viewBinding.setGeneralMsgIl.sllLlRlTitleTv.setText(R.string.set_general_setting); |
| | | viewBinding.setMultiLanguageIl.sllLlRlNameTv.setText(R.string.set_multilingual); |
| | | viewBinding.setDataCenterIl.sllLlRlNameTv.setText(R.string.set_data_centre); |
| | | viewBinding.setPrivacyIl.sllLlRlTitleTv.setText(R.string.set_privacy); |
| | | viewBinding.setSystemAuthorizationIl.sllLlRlNameTv.setText(R.string.set_system_rights_managemen); |
| | | viewBinding.setShareIl.sllLlRlNameTv.setText(R.string.set_3_msg_sharing); |
| | | |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //B端 |
| | | viewBinding.setNicknameIl.sllLlNameRl.setVisibility(View.GONE); |
| | | } else { |
| | | //C端 |
| | | viewBinding.setNicknameIl.sllLlNameRl.setVisibility(View.VISIBLE); |
| | | } |
| | | |
| | | |
| | | viewBinding.setLanguageIl.sllLlRlNameTv.setText(R.string.set_multilingual); |
| | | viewBinding.setAccountSecurityIl.sllLlRlNameTv.setText(R.string.set_account_security); |
| | | viewBinding.setTemperatureUnitIl.sllLlRlNameTv.setText(R.string.set_temperature_unit); |
| | | } |
| | | |
| | | /** |
New file |
| | |
| | | package com.hdl.photovoltaic.ui.me; |
| | | |
| | | import androidx.appcompat.app.AppCompatActivity; |
| | | import androidx.recyclerview.widget.LinearLayoutManager; |
| | | |
| | | import android.os.Bundle; |
| | | import android.view.View; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.base.CustomBaseActivity; |
| | | import com.hdl.photovoltaic.databinding.ActivityAccountAndSecurityBinding; |
| | | import com.hdl.photovoltaic.databinding.ActivityTemperatureUnitBinding; |
| | | import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 温度单位的界面 |
| | | */ |
| | | public class TemperatureUnitActivity extends CustomBaseActivity { |
| | | |
| | | private ActivityTemperatureUnitBinding viewBinding; |
| | | private LanguageAdapter languageAdapter; |
| | | |
| | | private List<LanguageAdapter.ItemData> list; |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | | viewBinding = ActivityTemperatureUnitBinding.inflate(getLayoutInflater()); |
| | | return viewBinding.getRoot(); |
| | | } |
| | | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | setStatusBarTextColor(); |
| | | readData(); |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | |
| | | |
| | | } |
| | | |
| | | private void readData() { |
| | | list = new ArrayList<>(); |
| | | LanguageAdapter.ItemData c = new LanguageAdapter.ItemData(); |
| | | c.setState(false); |
| | | c.setTitle(getString(R.string.set_c)); |
| | | list.add(c); |
| | | LanguageAdapter.ItemData f = new LanguageAdapter.ItemData(); |
| | | f.setState(false); |
| | | f.setTitle(getString(R.string.set_f)); |
| | | list.add(f); |
| | | |
| | | } |
| | | |
| | | private void initEvent() { |
| | | |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | finish(); |
| | | } |
| | | }); |
| | | |
| | | languageAdapter.setNoOnclickListener(new LanguageAdapter.OnclickListener() { |
| | | @Override |
| | | public void onClick(int position, LanguageAdapter.ItemData itemData) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | LanguageAdapter.ItemData data = list.get(i); |
| | | data.setState(false); |
| | | } |
| | | list.get(position).setState(true); |
| | | languageAdapter.notifyDataSetChanged(); |
| | | |
| | | |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | private void initView() { |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_temperature_unit); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); |
| | | LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); |
| | | languageAdapter = new LanguageAdapter(this.list, _mActivity); |
| | | viewBinding.languageRc.setLayoutManager(linearLayout); |
| | | viewBinding.languageRc.setAdapter(languageAdapter); |
| | | } |
| | | } |
| | |
| | | |
| | | private ActivityWebBinding viewBinding; |
| | | |
| | | public static final int ServiceAgreement = 0; |
| | | public static final int PrivacyAgreement = 1; |
| | | |
| | | /** |
| | | * 0,表示服务协议 |
| | | * 1,表示隐私协议 |
New file |
| | |
| | | package com.hdl.photovoltaic.ui.me; |
| | | |
| | | import androidx.recyclerview.widget.LinearLayoutManager; |
| | | |
| | | import android.os.Bundle; |
| | | import android.view.View; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.base.CustomBaseActivity; |
| | | import com.hdl.photovoltaic.databinding.ActivityLanguageSelectionBinding; |
| | | import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class languageSelectionActivity extends CustomBaseActivity { |
| | | |
| | | /** |
| | | * 语言选择的界面 |
| | | */ |
| | | private ActivityLanguageSelectionBinding viewBinding; |
| | | |
| | | private LanguageAdapter languageAdapter; |
| | | |
| | | private List<LanguageAdapter.ItemData> list; |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | | viewBinding = ActivityLanguageSelectionBinding.inflate(getLayoutInflater()); |
| | | return viewBinding.getRoot(); |
| | | } |
| | | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | setStatusBarTextColor(); |
| | | readData(); |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | |
| | | |
| | | } |
| | | |
| | | private void readData() { |
| | | list = new ArrayList<>(); |
| | | LanguageAdapter.ItemData zh = new LanguageAdapter.ItemData(); |
| | | zh.setState(false); |
| | | zh.setTitle("简体中文"); |
| | | list.add(zh); |
| | | LanguageAdapter.ItemData en = new LanguageAdapter.ItemData(); |
| | | en.setState(false); |
| | | en.setTitle("English"); |
| | | list.add(en); |
| | | |
| | | } |
| | | |
| | | private void initEvent() { |
| | | |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | finish(); |
| | | } |
| | | }); |
| | | |
| | | languageAdapter.setNoOnclickListener(new LanguageAdapter.OnclickListener() { |
| | | @Override |
| | | public void onClick(int position, LanguageAdapter.ItemData itemData) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | LanguageAdapter.ItemData data = list.get(i); |
| | | data.setState(false); |
| | | } |
| | | list.get(position).setState(true); |
| | | languageAdapter.notifyDataSetChanged(); |
| | | |
| | | |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | private void initView() { |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_language_choice); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null)); |
| | | LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); |
| | | languageAdapter = new LanguageAdapter(this.list, _mActivity); |
| | | viewBinding.languageRc.setLayoutManager(linearLayout); |
| | | viewBinding.languageRc.setAdapter(languageAdapter); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <solid android:color="@color/text_FF6B6B" /> |
| | | <corners android:radius="@dimen/dp_4" /> |
| | | </shape> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:background="@color/text_F5F7FA" |
| | | tools:context=".ui.me.AccountAndSecurityActivity"> |
| | | |
| | | <include |
| | | android:id="@+id/toolbar_top_fragment_house_list_rl" |
| | | layout="@layout/toolbar_top_view_52" /> |
| | | |
| | | |
| | | <include |
| | | android:id="@+id/set_account_phone_il" |
| | | layout="@layout/set_line" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_57" |
| | | android:layout_marginTop="@dimen/dp_12" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_account_mail_il" |
| | | layout="@layout/set_line" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_57" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/set_account_phone_il" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_change_psw_il" |
| | | layout="@layout/set_line" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_57" |
| | | android:layout_marginTop="@dimen/dp_12" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/set_account_mail_il" /> |
| | | |
| | | |
| | | <TextView |
| | | android:id="@+id/set_account_close" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_52" |
| | | android:layout_marginStart="@dimen/dp_20" |
| | | android:layout_marginEnd="@dimen/dp_20" |
| | | android:layout_marginBottom="@dimen/dp_55" |
| | | android:background="@drawable/backgruond_ff6b6b" |
| | | android:gravity="center" |
| | | android:text="@string/set_close_account" |
| | | android:textColor="@color/text_FFFFFFFF" |
| | | android:textSize="@dimen/text_18" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | |
| | | /> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | |
| | | android:id="@+id/as_regards_icon_iv" |
| | | android:layout_width="53.5dp" |
| | | android:layout_height="53.5dp" |
| | | android:src="@drawable/version_icon" |
| | | android:layout_marginTop="@dimen/dp_29" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:background="@color/text_F5F7FA" |
| | | tools:context=".ui.me.languageSelectionActivity"> |
| | | |
| | | <include |
| | | android:id="@+id/toolbar_top_fragment_house_list_rl" |
| | | layout="@layout/toolbar_top_view_52" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/language_rc" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_0" |
| | | android:layout_marginTop="@dimen/dp_12" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl"> |
| | | |
| | | </androidx.recyclerview.widget.RecyclerView> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:background="@color/text_F5F7FA" |
| | | tools:context=".ui.me.SetActivity"> |
| | | |
| | | <include |
| | |
| | | android:id="@+id/set_sll" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | android:layout_marginTop="@dimen/dp_12" |
| | | android:layout_marginBottom="@dimen/dp_20" |
| | | app:layout_constraintBottom_toTopOf="@+id/out_tv" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl"> |
| | |
| | | android:orientation="vertical"> |
| | | |
| | | <include |
| | | android:id="@+id/set_account_il" |
| | | layout="@layout/set_title_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_nickname_il" |
| | | android:id="@+id/set_language_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_change_password_il" |
| | | android:id="@+id/set_account_security_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_close_account_il" |
| | | android:id="@+id/set_temperature_unit_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_mes_il" |
| | | layout="@layout/set_title_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_push_msg_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_call_msg_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_general_msg_il" |
| | | layout="@layout/set_title_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_multi_language_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_data_center_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_privacy_il" |
| | | layout="@layout/set_title_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_system_authorization_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <include |
| | | android:id="@+id/set_share_il" |
| | | layout="@layout/set_line" /> |
| | | |
| | | <RelativeLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_141"> |
| | | |
| | | <TextView |
| | | android:id="@+id/out_tv" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_41" |
| | | android:layout_marginStart="@dimen/dp_86" |
| | | android:layout_marginTop="@dimen/dp_50" |
| | | android:layout_marginEnd="@dimen/dp_86" |
| | | android:background="@drawable/out_login" |
| | | android:gravity="center" |
| | | android:text="@string/set_logout" |
| | | android:textColor="@color/text_FF5757" |
| | | android:textSize="@dimen/text_16" /> |
| | | </RelativeLayout> |
| | | |
| | | |
| | | </LinearLayout> |
| | | </ScrollView> |
| | | |
| | | <TextView |
| | | android:id="@+id/out_tv" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_52" |
| | | android:layout_marginStart="@dimen/dp_20" |
| | | android:layout_marginEnd="@dimen/dp_20" |
| | | android:layout_marginBottom="@dimen/dp_55" |
| | | android:background="@drawable/backgruond_ff6b6b" |
| | | android:gravity="center" |
| | | android:text="@string/set_logout" |
| | | android:textColor="@color/text_FFFFFFFF" |
| | | android:textSize="@dimen/text_18" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | |
| | | /> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | tools:context=".ui.me.TemperatureUnitActivity"> |
| | | |
| | | <include |
| | | android:id="@+id/toolbar_top_fragment_house_list_rl" |
| | | layout="@layout/toolbar_top_view_52" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/language_rc" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="@dimen/dp_0" |
| | | android:layout_marginTop="@dimen/dp_12" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@+id/toolbar_top_fragment_house_list_rl"> |
| | | |
| | | </androidx.recyclerview.widget.RecyclerView> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="71dp" |
| | | android:background="@color/text_FFFFFFFF"> |
| | | |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="71dp" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent"> |
| | | |
| | | <TextView |
| | | android:id="@+id/item_lift_name_tv" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_marginStart="@dimen/dp_16" |
| | | android:textSize="@dimen/text_16" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent" /> |
| | | |
| | | <ImageView |
| | | android:id="@+id/item_right_icon_iv" |
| | | android:layout_width="@dimen/dp_44" |
| | | android:layout_height="@dimen/dp_44" |
| | | android:layout_marginEnd="@dimen/dp_21" |
| | | android:textSize="@dimen/text_16" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent" /> |
| | | |
| | | <View |
| | | android:id="@+id/item_bottom_line_v" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0.5dp" |
| | | android:layout_marginStart="@dimen/dp_16" |
| | | android:layout_marginEnd="@dimen/dp_16" |
| | | android:layout_marginBottom="0.5dp" |
| | | android:background="@color/text_E1E1E1" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | |
| | | /> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | |
| | | android:layout_height="@dimen/dp_21" |
| | | android:layout_centerVertical="true" |
| | | android:layout_marginStart="@dimen/dp_16" |
| | | android:text="@string/set_nickname" |
| | | android:text="--" |
| | | android:textColor="@color/text_030D1C" |
| | | android:textSize="@dimen/text_15" |
| | | |
| | |
| | | <color name="text_FF5757">#FF5757</color> |
| | | <color name="text_565758">#565758</color> |
| | | <color name="text_222222">#222222</color> |
| | | <color name="text_FF6B6B">#FF6B6B</color> |
| | | # |
| | | |
| | | |
| | | </resources> |
| | |
| | | <string name="set_data_centre">数据中心</string> |
| | | <string name="set_system_rights_managemen">系统权限管理</string> |
| | | <string name="set_3_msg_sharing">第三方信息共享清单</string> |
| | | <string name="set_account_security">账号与安全</string> |
| | | <string name="set_temperature_unit">温度单位</string> |
| | | <string name="set_logout">退出登录</string> |
| | | <string name="set_privacy">隐私设置</string> |
| | | <string name="set_nickname_modification">昵称修改</string> |
| | |
| | | <string name="me_personal_data_super_admin">超级管理员</string> |
| | | <string name="me_personal_data_photograph">拍照</string> |
| | | <string name="me_personal_data_select_album">从相册中选择</string> |
| | | <string name="set_email_address">电子邮箱</string> |
| | | <string name="set_not_bind">未绑定</string> |
| | | <string name="set_language_choice">语言选择</string> |
| | | <string name="set_c">C(摄氏度)</string> |
| | | <string name="set_f">F(华氏度)</string> |
| | | |
| | | |
| | | <!--app更新--> |
| | | <string name="app_version_number">版本号</string> |