Przeglądaj źródła

feat: 用户日志上报

DoggyZhang 2 miesięcy temu
rodzic
commit
6d5771dea6

+ 14 - 0
module/setting/src/main/java/com/adealink/weparty/setting/SettingActivity.kt

@@ -7,6 +7,8 @@ import androidx.core.view.updateLayoutParams
 import com.adealink.frame.aab.util.getCompatDimension
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.AppBase
+import com.adealink.frame.log.data.ReportLogReason
+import com.adealink.frame.log.data.UserLogType
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.RouterUri
@@ -63,6 +65,10 @@ class SettingActivity : BaseActivity() {
             clickAbout()
         }
 
+        binding.vUploadLog.onClick {
+            uploadLog()
+        }
+
         binding.vDeleteAccount.onClick {
             deleteAccount()
         }
@@ -154,4 +160,12 @@ class SettingActivity : BaseActivity() {
             .start()
     }
 
+    private fun uploadLog() {
+        showLoading()
+        settingViewModel.uploadLog(ReportLogReason.User(UserLogType.SETTING)).observe(this) {
+            dismissLoading()
+            showToast(it)
+        }
+    }
+
 }

+ 11 - 0
module/setting/src/main/java/com/adealink/weparty/setting/viewmodel/SettingViewModel.kt

@@ -3,11 +3,13 @@ package com.adealink.weparty.setting.viewmodel
 import androidx.fragment.app.FragmentActivity
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
+import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.coroutine.dispatcher.Dispatcher
 import com.adealink.frame.image.imageService
 import com.adealink.frame.locale.language.data.Language
 import com.adealink.frame.log.XLogHelper
+import com.adealink.frame.log.data.ReportLogReason
 import com.adealink.frame.mvvm.livedata.OnceMutableLiveData
 import com.adealink.frame.mvvm.viewmodel.BaseViewModel
 import com.adealink.weparty.App
@@ -81,4 +83,13 @@ class SettingViewModel : BaseViewModel(), ISettingViewModel, IUpdateListener {
             )
         }
     }
+
+    fun uploadLog(reason: ReportLogReason): LiveData<Rlt<String>> {
+        val liveData = OnceMutableLiveData<Rlt<String>>()
+        viewModelScope.launch {
+            liveData.send(App.instance.logService.uploadLog(reason))
+        }
+        return liveData
+    }
+
 }

BIN
module/setting/src/main/res/drawable-xhdpi/setting_upload_log_ic.png


+ 43 - 2
module/setting/src/main/res/layout/activity_setting.xml

@@ -188,6 +188,47 @@
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
+                <!-- 上报日志 -->
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/v_upload_log"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:paddingVertical="12dp"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/v_about">
+
+                    <androidx.appcompat.widget.AppCompatImageView
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:srcCompat="@drawable/setting_about_ic" />
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:id="@+id/tv_upload_log"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="20dp"
+                        android:includeFontPadding="false"
+                        android:text="@string/setting_upload_log"
+                        android:textColor="@color/color_FF1D2129"
+                        android:textSize="12sp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <androidx.appcompat.widget.AppCompatImageView
+                        android:layout_width="16dp"
+                        android:layout_height="16dp"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:srcCompat="@drawable/common_go_ic" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
                 <!-- 账号注销 -->
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/v_delete_account"
@@ -196,7 +237,7 @@
                     android:paddingVertical="12dp"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@id/v_about">
+                    app:layout_constraintTop_toBottomOf="@id/v_upload_log">
 
                     <androidx.appcompat.widget.AppCompatImageView
                         android:layout_width="18dp"
@@ -204,7 +245,7 @@
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        app:srcCompat="@drawable/setting_delete_account_ic" />
+                        app:srcCompat="@drawable/setting_upload_log_ic" />
 
                     <androidx.appcompat.widget.AppCompatTextView
                         android:layout_width="wrap_content"

+ 2 - 0
module/setting/src/main/res/values-in/strings.xml

@@ -3,6 +3,7 @@
     <string name="setting_language">Bahasa</string>
     <string name="setting_clear_cache">Bersihkan cache</string>
     <string name="setting_about">Tentang %s</string>
+    <string name="setting_upload_log">Unggah log</string>
     <string name="setting_logout">Keluar</string>
     <string name="setting_delete_account">Hapus akun</string>
     <string name="setting_privacy_policy">Kebijakan privasi</string>
@@ -20,4 +21,5 @@
     <string name="setting_report_evidence_desc">Unggah gambar untuk menampilkan bukti Anda</string>
     <string name="setting_report_submit_success">Anda telah mengirimkan laporan. Tim resmi akan memverifikasi situasi dan melanjutkan sesuai dengan prosedur</string>
     <string name="setting_report_input_content">Silakan masukkan masalah yang ingin Anda laporkan.</string>
+    <string name="setting_feedback_input_content">Silakan masukkan masalah yang ingin Anda sampaikan tanggapannya.</string>
 </resources>

+ 2 - 0
module/setting/src/main/res/values-zh/strings.xml

@@ -3,6 +3,7 @@
     <string name="setting_language">语言</string>
     <string name="setting_clear_cache">清理缓存</string>
     <string name="setting_about">关于 %s</string>
+    <string name="setting_upload_log">上传日志</string>
     <string name="setting_logout">登出</string>
     <string name="setting_delete_account">删除账号</string>
     <string name="setting_privacy_policy">隐私协议</string>
@@ -20,4 +21,5 @@
     <string name="setting_report_evidence_desc">上传图片显示你的证据</string>
     <string name="setting_report_submit_success">您已提交举报,待官方核实情况后会周青进行</string>
     <string name="setting_report_input_content">请输入你要举报的问题</string>
+    <string name="setting_feedback_input_content">请输入你要反馈的问题</string>
 </resources>

+ 1 - 0
module/setting/src/main/res/values/strings.xml

@@ -3,6 +3,7 @@
     <string name="setting_language">Language</string>
     <string name="setting_clear_cache">Clear cache</string>
     <string name="setting_about">About %s</string>
+    <string name="setting_upload_log">Upload log</string>
     <string name="setting_logout">Logout</string>
     <string name="setting_delete_account">Delete account</string>
     <string name="setting_privacy_policy">Privacy policy</string>