diff --git a/app/build.gradle b/app/build.gradle index 809503e..4600785 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,7 +39,7 @@ android { minSdkVersion 26 targetSdkVersion 30 versionCode 1 - versionName "1.0.1"//version 1.0.0-appstore version 1.0.0-xh + versionName "Version 1.0.1"//version 1.0.0-appstore version 1.0.0-xh // 添加自定义字段 buildConfigField "String", "APP_VERSION_NAME", "\"${versionName}\"" buildConfigField "int", "APP_VERSION_CODE", "${versionCode}" diff --git a/app/src/main/java/com/ckkj/water/dialog/DialogAppUpdate.java b/app/src/main/java/com/ckkj/water/dialog/DialogAppUpdate.java index 87bb700..55b0d48 100644 --- a/app/src/main/java/com/ckkj/water/dialog/DialogAppUpdate.java +++ b/app/src/main/java/com/ckkj/water/dialog/DialogAppUpdate.java @@ -19,6 +19,7 @@ import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; @@ -48,8 +49,10 @@ public class DialogAppUpdate { public static View layoutView; private Dialog mDialog; private Activity mContext; - private TextView tvTitle,tvContent,tvConfirm,tvCancel; + private TextView tvTitle,tvContent,tvConfirm,tvCancel,tvVersionName; + private TextView tvProgressPercent; private RelativeLayout rlUpdateContent; + private LinearLayout llProgressContainer,llButton; private ImageView imgClose,imgClear; private String startTime = ""; private String endTime = ""; @@ -84,7 +87,7 @@ public class DialogAppUpdate { this.mContext = context; this.mIsForceUpdate = isForceUpdate; this.mVersionBean = bean; - mDwonLoadUrl = bean.getVersionUrl(); + mDwonLoadUrl = bean.getDownloadUrl(); mDialog = new Dialog(context, R.style.ActionSheetDialogStyle); //填充对话框的布局 layoutView = LayoutInflater.from(context).inflate(layoutId, null); @@ -122,29 +125,28 @@ public class DialogAppUpdate { dialogWindow.setAttributes(lp); } tvTitle = layoutView.findViewById(R.id.tv_title); + tvVersionName = layoutView.findViewById(R.id.tv_version); tvContent = layoutView.findViewById(R.id.tv_update_content); tvConfirm = layoutView.findViewById(R.id.tv_update); - tvCancel = layoutView.findViewById(R.id.tv_cencel); + tvCancel = layoutView.findViewById(R.id.tv_cancel); progressBar = layoutView.findViewById(R.id.progress_bar); rlUpdateContent = layoutView.findViewById(R.id.rel_file_content); + llProgressContainer = layoutView.findViewById(R.id.ll_progress_container); + llButton = layoutView.findViewById(R.id.Linear_button); tvConfirm.setOnClickListener(onclick); tvCancel.setOnClickListener(onclick); if(isForceUpdate){ tvCancel.setVisibility(View.GONE); } - // 初始化 DownloadManager - downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); - notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); + tvVersionName.setText(bean.getLatestVersion()); + // 解析更新说明,支持纯文本和HTML格式 + String releaseNotes = bean.getReleaseNotes(); + releaseNotes = releaseNotes.replace("\n", "
"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - tvContent.setText(Html.fromHtml(bean.getVersionDescription(), Html.FROM_HTML_MODE_LEGACY)); + tvContent.setText(Html.fromHtml(releaseNotes, Html.FROM_HTML_MODE_LEGACY)); } else { + tvContent.setText(Html.fromHtml(releaseNotes)); } - String [] desStr = bean.getVersionDescription().split("#"); - String desLine = ""; - for(String str : desStr){ - desLine = desLine + str + "\n"; - } - tvContent.setText(desLine); tvContent.setLineSpacing(0, 1.2f); } @@ -165,7 +167,7 @@ public class DialogAppUpdate { } startUpdateApp(); break; - case R.id.tv_cencel: + case R.id.tv_cancel: dismiss(); AppConfig.USER_CONFIRM_UPDATE_APP = true; break; @@ -176,8 +178,8 @@ public class DialogAppUpdate { public void startUpdateApp() { //强制更新,不需要隐藏dialog if(mIsForceUpdate){ - progressBar.setVisibility(View.VISIBLE); - rlUpdateContent.setVisibility(View.GONE); + llProgressContainer.setVisibility(View.VISIBLE); + llButton.setVisibility(View.GONE); progressBar.setMax(100); }else{ ToastUtil.showShort(mContext,"可在任务栏查看下载进度"); diff --git a/app/src/main/java/com/ckkj/water/index/IndexFragment.java b/app/src/main/java/com/ckkj/water/index/IndexFragment.java index 22a9a8e..954e06b 100644 --- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java +++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java @@ -276,7 +276,8 @@ public class IndexFragment extends BaseFragment map, CallBack callBack); //运势 void getYunshiData(Map map, CallBack callBack); } diff --git a/app/src/main/java/com/ckkj/water/main/MainImpl.java b/app/src/main/java/com/ckkj/water/main/MainImpl.java index 56eede1..e3e4018 100644 --- a/app/src/main/java/com/ckkj/water/main/MainImpl.java +++ b/app/src/main/java/com/ckkj/water/main/MainImpl.java @@ -20,13 +20,13 @@ public class MainImpl implements MainContract.DataModel{ /** * 检测新版本 - * @param jsonObject + * @param map * @param callBack */ @Override - public void checkAppVersionCode(JSONObject jsonObject, MainContract.CallBack callBack) { + public void checkAppVersionCode(Map map, MainContract.CallBack callBack) { try { - NetWorkManager.getRequest().checkVersionCode(NetWorkManager.getToken(),NetWorkManager.toRequestBody(jsonObject)) + NetWorkManager.getRequest().checkVersionCode(NetWorkManager.getToken(),map) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/ckkj/water/main/MainPresenter.java b/app/src/main/java/com/ckkj/water/main/MainPresenter.java index fa6bc4d..b4ca6d9 100644 --- a/app/src/main/java/com/ckkj/water/main/MainPresenter.java +++ b/app/src/main/java/com/ckkj/water/main/MainPresenter.java @@ -1,5 +1,6 @@ package com.ckkj.water.main; +import com.ckkj.water.BuildConfig; import com.ckkj.water.base.BasePresenter; import com.ckkj.water.main.entity.CheckVersionEntity; @@ -20,8 +21,10 @@ public class MainPresenter extends BasePresenter { * 获取用户信息 */ public void checkNewVersion() { - JSONObject json = new JSONObject(); - mainImpl.checkAppVersionCode(json, new MainContract.CallBack() { + Map map = new HashMap<>(); + map.put("platform","android"); + map.put("currentVersion", BuildConfig.APP_VERSION_NAME); + mainImpl.checkAppVersionCode(map, new MainContract.CallBack() { @Override public void success(CheckVersionEntity bean) { if( MainPresenter.this.getView() != null){ diff --git a/app/src/main/java/com/ckkj/water/main/activity/MainActivity.java b/app/src/main/java/com/ckkj/water/main/activity/MainActivity.java index 845b9e9..8e0b659 100644 --- a/app/src/main/java/com/ckkj/water/main/activity/MainActivity.java +++ b/app/src/main/java/com/ckkj/water/main/activity/MainActivity.java @@ -103,7 +103,7 @@ public class MainActivity extends BaseActivity versionCode){ + if(bean.getVersionCode() > versionCode){ //App更新dialog - mUpdateDialog = new DialogAppUpdate(mContext,R.layout.dialog_app_update,isForceUpdate,bean); + mUpdateDialog = new DialogAppUpdate(mContext,R.layout.dialog_app_update_water,isForceUpdate,bean); mUpdateDialog.show(); mUpdateDialog.setOnDialogListener(new DialogAppUpdate.DialogListener() { @Override diff --git a/app/src/main/java/com/ckkj/water/main/entity/CheckVersionEntity.java b/app/src/main/java/com/ckkj/water/main/entity/CheckVersionEntity.java index 019a7d5..a43f7f2 100644 --- a/app/src/main/java/com/ckkj/water/main/entity/CheckVersionEntity.java +++ b/app/src/main/java/com/ckkj/water/main/entity/CheckVersionEntity.java @@ -1,41 +1,32 @@ package com.ckkj.water.main.entity; -import com.google.gson.annotations.SerializedName; - import java.io.Serializable; import lombok.Data; import lombok.NoArgsConstructor; -@NoArgsConstructor @Data +@NoArgsConstructor public class CheckVersionEntity implements Serializable { - @SerializedName("versionNumber") - private int versionNumber; - @SerializedName("versionEnd") - private String versionEnd; - @SerializedName("versionCoercion") - private String versionCoercion; - @SerializedName("versionDescription") - private String versionDescription; - @SerializedName("versionName") - private String versionName; - @SerializedName("versionUrl") - private String versionUrl; - @SerializedName("versionHide1") - private String versionHide1; - @SerializedName("versionHide2") - private String versionHide2; - @SerializedName("versionHide3") - private String versionHide3; - @SerializedName("versionHide4") - private String versionHide4; - @SerializedName("versionHide5") - private Object versionHide5; - @SerializedName("versionHide6") - private Object versionHide6; - @SerializedName("paipanApiKey") - private String paipanApiKey; + /** + * platform : android + * currentVersion : 1.0.1 + * latestVersion : 1.0.0 + * versionCode : 1 + * updateAvailable : true + * forceUpdate : false + * downloadUrl : null + * releaseNotes : null + */ + + private String platform; + private String currentVersion; + private String latestVersion; + private int versionCode; + private boolean updateAvailable; + private boolean forceUpdate; + private String downloadUrl; + private String releaseNotes; } diff --git a/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java b/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java index 57cc4c7..cbcf02c 100644 --- a/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java +++ b/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.View; +import com.bumptech.glide.Glide; import com.ckkj.water.AppConfig; import com.ckkj.water.ConstantUtil; import com.ckkj.water.R; @@ -143,6 +144,13 @@ public class MineCenterFragment extends BaseFragment { /** * 修改用户信息 - * @param content + * @param nickName + * @param avatar */ - public void updateUserInfo(String content) { + public void updateUserInfo(String nickName,String avatar) { try { JSONObject json = new JSONObject(); - json.put("nickName", content); + if(!TextUtils.isEmpty(avatar)){ + json.put("nickName", nickName); + } + if(!TextUtils.isEmpty(avatar)){ + json.put("avatar", avatar); + } impl.updateUserInfo(json, new MineContract.CallBack() { @Override public void success(BaseBean bean) { @@ -142,6 +150,7 @@ public class MinePresenter extends BasePresenter { public void success(MineUserInfoBean bean) { if (MinePresenter.this.getView() != null) { MinePresenter.this.getView().uploadImageSuccess(bean); + updateUserInfo(null,bean.getUrl()); } } diff --git a/app/src/main/java/com/ckkj/water/network/Request.java b/app/src/main/java/com/ckkj/water/network/Request.java index d76e82b..9fcb0c8 100644 --- a/app/src/main/java/com/ckkj/water/network/Request.java +++ b/app/src/main/java/com/ckkj/water/network/Request.java @@ -148,8 +148,8 @@ public interface Request { - @POST("mobile/version?end=android") - Observable> checkVersionCode(@HeaderMap Map headMap, @Body RequestBody requestBody); + @GET("app/v1/checkVersion") + Observable> checkVersionCode(@HeaderMap Map headMap, @QueryMap Map map); //版本检测更新 @POST("mine/api/versionNum") Observable> getVersionCheck(@HeaderMap Map headMap, @QueryMap Map map); diff --git a/app/src/main/res/layout/dialog_app_update_water.xml b/app/src/main/res/layout/dialog_app_update_water.xml new file mode 100644 index 0000000..6b1f9ae --- /dev/null +++ b/app/src/main/res/layout/dialog_app_update_water.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/mine_fragment_layout.xml b/app/src/main/res/layout/mine_fragment_layout.xml index 2270d38..f14b81e 100644 --- a/app/src/main/res/layout/mine_fragment_layout.xml +++ b/app/src/main/res/layout/mine_fragment_layout.xml @@ -24,7 +24,8 @@ android:layout_width="@dimen/dp_60" android:layout_height="@dimen/dp_60" app:riv_corner_radius="@dimen/dp_30" - android:src="@mipmap/img_pay_weixin" + android:scaleType="centerCrop" + android:src="@mipmap/icon_mine_user_head_defaul" android:layout_marginLeft="20dp"/>