Commit d8743c6e authored by wanglei's avatar wanglei

[拆包]ui权限弹窗

parent 9f8b9c06
{"v":"5.5.7","fr":60,"ip":0,"op":60,"w":640,"h":140,"nm":"合成 1","ddd":0,"assets":[{"id":"image_0","w":157,"h":175,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":86,"h":50,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":540,"h":114,"u":"images/","p":"img_2.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"bu.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[518,94.5,0],"to":[5.917,0,0],"ti":[-5.917,0,0]},{"t":30,"s":[553.5,94.5,0]}],"ix":2},"a":{"a":0,"k":[78.5,87.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"on.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0]},{"t":31,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[502.25,57.5,0],"ix":2},"a":{"a":0,"k":[43,25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"qx2.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,57,0],"ix":2},"a":{"a":0,"k":[270,57,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
......@@ -5,12 +5,15 @@ import android.view.Gravity
import android.view.LayoutInflater
import android.widget.LinearLayout
import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.graphics.toColorInt
import com.base.appzxhy.R
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.base.jumpAction
import com.base.appzxhy.databinding.DialogStorageBinding
import com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import com.base.appzxhy.utils.SpannableUtils.highlightText
fun Activity.permissionStorageJump(key: String) {
......@@ -46,21 +49,32 @@ class StoragePermissionDialog(
fun showDialog() {
dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(true)
dialog.setCanceledOnTouchOutside(false)
dialog.show()
val params = dialog.window?.attributes
params?.width = LinearLayout.LayoutParams.MATCH_PARENT
params?.height = LinearLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.BOTTOM
params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_316)
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.CENTER
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
val appName = activity.getString(R.string.app_name)
binding.tvContent.text = activity.getString(R.string.storage_permission_content, appName)
binding.tvContent.text =
highlightText(activity.getString(R.string.storage_permission_content, appName), appName, "#2DD29E".toColorInt())
binding.tvOpenSettings.setOnClickListener {
// binding.lottieAnimationView.let {
// it.imageAssetsFolder = "permission_sc/images"
// it.setAnimation("permission_sc/data.json")
// it.loop(true)
// it.playAnimation()
// }
binding.tvDeny.setOnClickListener {
dialog.dismiss()
}
binding.tvAllow.setOnClickListener {
dialog.dismiss()
action?.invoke()
}
......
......@@ -81,4 +81,8 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
}
}
override fun handleBackCallBack() {
binding.llNext.callOnClick()
}
}
\ No newline at end of file
......@@ -91,7 +91,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
}
viewModel.onTick = { s, t, p ->
Log.e(TAG, "onTick $s $t")
binding.progressBar.setProgress(p.toInt(), true)
binding.progressBar.setProgress(p.toInt(), false)
}
}
......
package com.base.appzxhy.utils
import android.graphics.Color
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
object SpannableUtils {
fun highlightText(fullText: String, targetText: String, color: Int = Color.RED): SpannableString {
val spannableString = SpannableString(fullText)
val startIndex = fullText.indexOf(targetText)
if (startIndex != -1) { // 确保子串存在
val endIndex = startIndex + targetText.length
spannableString.setSpan(
ForegroundColorSpan(color),
startIndex,
endIndex,
SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE
)
}
return spannableString
}
}
\ No newline at end of file
......@@ -2,5 +2,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorDisEnable" />
<stroke
android:width="@dimen/dp_1"
android:color="#2DD29E" />
<corners android:radius="50dp" />
</shape>
\ No newline at end of file
......@@ -3,5 +3,5 @@
android:shape="rectangle">
<corners android:radius="37dp" />
<solid android:color="@android:color/transparent" />
<stroke android:width="1dp" android:color="@color/color_ebebeb" />
<stroke android:width="1dp" android:color="#ffebebeb" />
</shape>
......@@ -9,7 +9,6 @@
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
......@@ -27,14 +26,15 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:padding="@dimen/dp_8"
android:src="@drawable/icon_return_w" />
android:src="@drawable/icon_back" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/dp_66"
android:text="@string/large_file_clean"
android:textColor="@color/white"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold" />
......@@ -64,7 +64,6 @@
android:id="@+id/iv_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_filter_large_type"
android:src="@drawable/bg_filter_large_type" />
<androidx.appcompat.widget.AppCompatTextView
......@@ -205,7 +204,7 @@
android:paddingBottom="12dp"
android:text="@string/delete"
android:textAlignment="center"
android:textColor="@color/white"
android:textColor="#2DD29E"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent" />
......
......@@ -3,16 +3,16 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/white_background_top"
android:paddingTop="24dp"
android:paddingBottom="40dp">
android:background="@drawable/bg_ffffff_24">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:text="@string/storage_permission_title"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:text="@string/permission_request"
android:textColor="@color/color_1a1a1a"
android:textSize="18sp"
android:textStyle="bold"
......@@ -22,38 +22,63 @@
android:id="@+id/tvContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="8dp"
android:layout_marginHorizontal="@dimen/dp_12"
android:layout_marginTop="@dimen/dp_24"
android:gravity="center"
android:text="@string/storage_permission_content"
android:textColor="@color/color_666666"
android:textSize="16sp"
android:textColor="#A0A0A0"
android:textSize="@dimen/sp_14"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_permission"
android:layout_width="match_parent"
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottieAnimationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="12dp"
android:adjustViewBounds="true"
android:src="@drawable/img_quanxian_pop"
android:layout_marginTop="@dimen/dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvContent" />
app:layout_constraintTop_toBottomOf="@id/tvContent"
app:lottie_autoPlay="true"
app:lottie_fileName="permission_sc/data.json"
app:lottie_imageAssetsFolder="permission_sc/images"
app:lottie_loop="true" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvOpenSettings"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="30dp"
android:layout_marginTop="30dp"
android:background="@drawable/bg_btn_50"
android:layout_marginHorizontal="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_26"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/lottieAnimationView">
<TextView
android:id="@+id/tvDeny"
android:layout_width="0dp"
android:layout_height="@dimen/dp_42"
android:layout_weight="1"
android:background="@drawable/bg_enable_no_50"
android:gravity="center"
android:text="@string/deny"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tvAllow"
android:layout_width="0dp"
android:layout_height="@dimen/dp_42"
android:layout_marginStart="@dimen/dp_12"
android:layout_weight="1"
android:background="@drawable/bg_enable_50"
android:gravity="center"
android:paddingVertical="12dp"
android:text="@string/open_settings"
android:text="@string/allow"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/iv_permission" />
android:textSize="@dimen/sp_16" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<color name="white">#FFFFFFFF</color>
<color name="transparent">#00000000</color>
<color name="colorPrimary">#2DD29E</color>
<color name="colorDisEnable">#FF7DB9FF</color>
<color name="colorDisEnable">#F0FFFA</color>
<color name="color_66000000">#66000000</color>
<color name="color_00fac8">#00FAC8</color>
......
......@@ -58,4 +58,7 @@
<dimen name="sp_11">11sp</dimen>
<dimen name="dp_112">112dp</dimen>
<dimen name="dp_66">66dp</dimen>
<dimen name="dp_130">130dp</dimen>
<dimen name="dp_42">42dp</dimen>
<dimen name="dp_316">316dp</dimen>
</resources>
\ No newline at end of file
......@@ -24,8 +24,7 @@ Please rest assured that we will handle your information in strict accordance wi
<string name="continue_">Continue</string>
<string name="open_settings">Open Settings</string>
<string name="storage_permission_title">Need to obtain storage permissions</string>
<string name="storage_permission_content">To ensure proper functionality,please allow %s to access all files on your device.</string>
<string name="storage_permission_content">Allow %s to access All Files Access permission to manage files of your device?</string>
<string name="file_recovery">File Recovery</string>
<string name="junk_clean">Junk Clean</string>
......@@ -210,6 +209,9 @@ Please rest assured that we will handle your information in strict accordance wi
<string name="electric_current">Electric current</string>
<string name="real_time_current">Real-time current</string>
<string name="average_current">Average current</string>
<string name="permission_request">Permission request</string>
<string name="deny">Deny</string>
<string name="allow">Allow</string>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment