Prechádzať zdrojové kódy

1.添加app升级记录页面

王鹏鹏 2 rokov pred
rodič
commit
3f446232dc

+ 1 - 0
.idea/misc.xml

@@ -90,6 +90,7 @@
         <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/activity_version_record.xml" value="0.21064814814814814" />
         <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/item_comprehensive_evaluation.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/item_diagnosis.xml" value="0.1" />
+        <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/item_version.xml" value="0.19768518518518519" />
         <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/layout_help_item.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/personalcenter/src/main/res/layout/layout_setting_item.xml" value="1.0" />
         <entry key="..\:/workspace/hcp-pad/push/src/main/res/drawable/bg_item_push.xml" value="0.219" />

+ 5 - 0
baselib/src/main/java/com/yingyangfly/baselib/router/RouterUrlCommon.kt

@@ -105,4 +105,9 @@ object RouterUrlCommon {
      */
     const val help = "/help/center"
 
+    /**
+     * 版本记录
+     */
+    const val versionRecord = "/version/record"
+
 }

+ 5 - 0
personalcenter/src/main/AndroidManifest.xml

@@ -25,6 +25,11 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
+        <activity
+            android:name=".version.VersionRecordActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
     </application>
 
 </manifest>

+ 16 - 0
personalcenter/src/main/java/com/yingyang/personalcenter/adapter/VersionAdater.kt

@@ -0,0 +1,16 @@
+package com.yingyang.personalcenter.adapter
+
+import com.yingyang.personalcenter.R
+import com.yingyang.personalcenter.databinding.ItemVersionBinding
+import com.yingyang.personalcenter.entity.VersionBean
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+
+/**
+ * 版本更新记录adapter
+ */
+class VersionAdater(override val layoutId: Int = R.layout.item_version) :
+    BaseDataBindingAdapter<VersionBean, ItemVersionBinding>() {
+    override fun onBindViewHolder(binding: ItemVersionBinding, item: VersionBean, position: Int) {
+        binding.data = item
+    }
+}

+ 17 - 0
personalcenter/src/main/java/com/yingyang/personalcenter/entity/VersionBean.kt

@@ -0,0 +1,17 @@
+package com.yingyang.personalcenter.entity
+
+/**
+ * 版本更新信息
+ */
+data class VersionBean(
+    val createBy: Any,
+    val createTime: String,
+    val id: String,
+    val status: String,
+    val updateBy: Any,
+    val updateTime: String,
+    val upgradeDesn: String,
+    val versionCode: Int,
+    val versionName: String,
+    val versionUrl: String
+)

+ 8 - 1
personalcenter/src/main/java/com/yingyang/personalcenter/net/PersonalCenterApiService.kt

@@ -1,8 +1,9 @@
 package com.yingyang.personalcenter.net
 
 import com.yingyang.personalcenter.entity.UserInfoBean
+import com.yingyang.personalcenter.entity.VersionBean
 import com.yingyangfly.baselib.net.BaseResp
-import retrofit2.http.*
+import retrofit2.http.POST
 
 interface PersonalCenterApiService {
 
@@ -11,4 +12,10 @@ interface PersonalCenterApiService {
      */
     @POST("app/user/info")
     suspend fun getUserInfo(): BaseResp<UserInfoBean>
+
+    /**
+     * 获取所有版本历史记录
+     */
+    @POST("app/selectAllVersion")
+    suspend fun getSelectAllVersion(): BaseResp<List<VersionBean>>
 }

+ 15 - 4
personalcenter/src/main/java/com/yingyang/personalcenter/setting/SettingActivity.kt

@@ -3,10 +3,13 @@ package com.yingyang.personalcenter.setting
 import android.content.Intent
 import android.provider.Settings
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.personalcenter.R
 import com.yingyang.personalcenter.databinding.ActivitySettingBinding
 import com.yingyangfly.baselib.base.BaseActivity
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.AppUtil
+import com.yingyangfly.baselib.utils.JumpUtil
 
 /**
  * 设置页面
@@ -26,13 +29,13 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>() {
             }
 
             //WLAN
-            wifiLayout.setOnClickListener {
+            wifiLayout.setOnSingleClickListener {
                 val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
                 startActivity(intent)
             }
 
             //移动网络
-            mobileNetworkLayout.setOnClickListener {
+            mobileNetworkLayout.setOnSingleClickListener {
                 val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
                 startActivity(intent)
             }
@@ -44,15 +47,23 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>() {
             }
 
             //声音
-            soundLayout.setOnClickListener {
+            soundLayout.setOnSingleClickListener {
                 val intent = Intent(Settings.ACTION_SOUND_SETTINGS)
                 startActivity(intent)
             }
+
+            //版本记录
+            versionLayout.setOnSingleClickListener {
+                JumpUtil.jumpActivity(RouterUrlCommon.versionRecord, mContext)
+            }
         }
     }
 
     override fun initData() {
-
+        binding {
+            val version = getString(R.string.current_version) + "  V" + AppUtil.getVersionName()
+            versionLayout.setTvSetting(version)
+        }
     }
 
 }

+ 26 - 3
personalcenter/src/main/java/com/yingyang/personalcenter/version/VersionRecordActivity.kt

@@ -1,20 +1,43 @@
 package com.yingyang.personalcenter.version
 
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.personalcenter.adapter.VersionAdater
 import com.yingyang.personalcenter.databinding.ActivityVersionRecordBinding
-import com.yingyangfly.baselib.base.BaseActivity
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+import com.yingyangfly.baselib.router.RouterUrlCommon
 
-class VersionRecordActivity : BaseActivity<ActivityVersionRecordBinding>() {
+/**
+ * 版本记录
+ */
+@Route(path = RouterUrlCommon.versionRecord)
+class VersionRecordActivity :
+    BaseMVVMActivity<ActivityVersionRecordBinding, VersionRecordViewModel>() {
+
+    private val versionAdater by lazy { VersionAdater() }
 
     override fun initViews() {
 
     }
 
     override fun initListener() {
-
+        binding {
+            //返回上一页
+            backLayout.setOnSingleClickListener {
+                finish()
+            }
+        }
     }
 
     override fun initData() {
+        viewModel.getSelectAllVersion(fail = {
+            it.show()
+        }, success = {
+            if (it.isNullOrEmpty().not()) {
 
+            }
+        })
     }
 
 }

+ 21 - 0
personalcenter/src/main/java/com/yingyang/personalcenter/version/VersionRecordViewModel.kt

@@ -0,0 +1,21 @@
+package com.yingyang.personalcenter.version
+
+import com.yingyang.personalcenter.entity.VersionBean
+import com.yingyang.personalcenter.net.PERSONALCENTER_API
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+
+/**
+ * 版本记录
+ */
+class VersionRecordViewModel : BaseViewModel() {
+
+    fun getSelectAllVersion(
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: List<VersionBean>?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        PERSONALCENTER_API.getSelectAllVersion()
+    }.runUI(
+        success,
+        fail
+    )
+}

+ 6 - 0
personalcenter/src/main/java/com/yingyang/personalcenter/widget/SettingItemView.java

@@ -39,6 +39,12 @@ public class SettingItemView extends FrameLayout {
             this.addView(child);
             typedArray.recycle();
         }
+    }
 
+    /**
+     * 显示内容
+     */
+    public void setTvSetting(String str) {
+        tvSetting.setText(str);
     }
 }

+ 4 - 2
personalcenter/src/main/manifest/AndroidManifest.xml

@@ -4,8 +4,10 @@
 
     <application>
         <activity
-            android:name=".VersionRecordActivity"
-            android:exported="false" />
+            android:name=".version.VersionRecordActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
         <activity
             android:name=".setting.SettingActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"

+ 10 - 0
personalcenter/src/main/res/layout/activity_setting.xml

@@ -102,6 +102,16 @@
                 app:setting_image="@mipmap/icon_sound"
                 app:setting_text="@string/sound" />
 
+            <com.yingyang.personalcenter.widget.SettingItemView
+                android:id="@+id/versionLayout"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/divider_97px"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/soundLayout"
+                app:setting_image="@mipmap/icon_version"
+                app:setting_text="@string/version_record" />
+
         </androidx.constraintlayout.widget.ConstraintLayout>
 
         <androidx.appcompat.widget.AppCompatTextView

+ 30 - 0
personalcenter/src/main/res/layout/item_version.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout 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"
+    tools:ignore="ResourceName">
+
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyang.personalcenter.entity.VersionBean" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/divider_88px">
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@{data.versionName}"
+            android:textColor="@color/color_FF333333"
+            android:textSize="@dimen/divider_30px"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>

BIN
personalcenter/src/main/res/mipmap-xxhdpi/icon_version.png


+ 2 - 1
personalcenter/src/main/res/values/strings.xml

@@ -14,5 +14,6 @@
     <string name="brightness" tools:ignore="ResourceName">显示与亮度</string>
     <string name="sound" tools:ignore="ResourceName">声音</string>
     <string name="help" tools:ignore="ResourceName">使用帮助</string>
-    <string name="version_record" tools:ignore="ResourceName">版本记录</string>
+    <string name="version_record" tools:ignore="ResourceName">历史版本</string>
+    <string name="current_version" tools:ignore="ResourceName">当前版本</string>
 </resources>