|
|
@@ -0,0 +1,67 @@
|
|
|
+package com.iscs.bozzys.ui.pages.profile
|
|
|
+
|
|
|
+import android.Manifest
|
|
|
+import android.content.Context
|
|
|
+import android.content.Intent
|
|
|
+import android.content.pm.PackageManager
|
|
|
+import android.os.Build
|
|
|
+import androidx.activity.result.contract.ActivityResultContracts
|
|
|
+import androidx.compose.foundation.layout.Column
|
|
|
+import androidx.compose.foundation.layout.PaddingValues
|
|
|
+import androidx.compose.material3.Button
|
|
|
+import androidx.compose.material3.Text
|
|
|
+import androidx.compose.runtime.Composable
|
|
|
+import com.iscs.bozzys.ui.common.PageBase
|
|
|
+import com.iscs.bozzys.ui.common.Title
|
|
|
+import com.iscs.bozzys.utils.LogUtil
|
|
|
+import com.iscs.bozzys.utils.SystemUtil.uriToFile
|
|
|
+import java.io.File
|
|
|
+
|
|
|
+/**
|
|
|
+ * 打开用户中心
|
|
|
+ */
|
|
|
+fun Context.openPageProfile() {
|
|
|
+ startActivity(Intent(this, PageProfile::class.java))
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 个人中心
|
|
|
+ */
|
|
|
+class PageProfile : PageBase() {
|
|
|
+
|
|
|
+ // 跳转到选择照片页面
|
|
|
+ private val imageLauncher = registerForActivityResult(ActivityResultContracts.GetContent()) { uri ->
|
|
|
+ uriToFile(uri)?.let { onImagePickerFinish(it) }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 照片选择成功回调
|
|
|
+ private var onImagePickerFinish: (file: File) -> Unit = {}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 执行照片选择
|
|
|
+ */
|
|
|
+ private fun pickerImage(done: (file: File) -> Unit) {
|
|
|
+ this.onImagePickerFinish = done
|
|
|
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
|
|
+ if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
|
|
+ requestPermissions(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 1001)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ imageLauncher.launch("image/*")
|
|
|
+ }
|
|
|
+
|
|
|
+ @Composable
|
|
|
+ override fun GetViews(pv: PaddingValues) {
|
|
|
+ Column() {
|
|
|
+ Title(pv, "个人中心")
|
|
|
+ Button({
|
|
|
+ pickerImage {
|
|
|
+ LogUtil.i("xiaoming", "$it")
|
|
|
+ }
|
|
|
+ }) {
|
|
|
+ Text("选择照片")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|