Commit 536500c0 authored by wanglei's avatar wanglei

[拆包]权限弹窗UI,移除无用功能

parent b2e8b470
...@@ -126,11 +126,6 @@ ...@@ -126,11 +126,6 @@
android:exported="false" android:exported="false"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.malware.MalwareCleanActivity"
android:exported="false"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
......
...@@ -25,6 +25,7 @@ import java.util.UUID ...@@ -25,6 +25,7 @@ import java.util.UUID
import com.base.appzxhy.SpConstObject.appLanguageSp import com.base.appzxhy.SpConstObject.appLanguageSp
import com.base.appzxhy.SpConstObject.appLanguageCountrySp import com.base.appzxhy.SpConstObject.appLanguageCountrySp
import com.base.appzxhy.business.ads.AdsMgr import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.business.helper.EventUtils
import com.base.appzxhy.business.helper.NewComUtils.spConfig import com.base.appzxhy.business.helper.NewComUtils.spConfig
import com.base.appzxhy.business.push.fcm.FCMManager import com.base.appzxhy.business.push.fcm.FCMManager
import com.base.appzxhy.business.push.notification.MyNotificationManager import com.base.appzxhy.business.push.notification.MyNotificationManager
...@@ -98,9 +99,14 @@ class MyApplication : Application() { ...@@ -98,9 +99,14 @@ class MyApplication : Application() {
} }
private fun initGid() = MainScope().launch(Dispatchers.IO) { private fun initGid() = MainScope().launch(Dispatchers.IO) {
val info: AdvertisingIdClient.Info = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext) try {
val advertisingId = info.id val info: AdvertisingIdClient.Info = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext)
AppPreferences.getInstance().put("gid", advertisingId) val advertisingId = info.id
AppPreferences.getInstance().put("gid", advertisingId)
} catch (e: Exception) {
EventUtils.event("gid_exception")
}
} }
override fun attachBaseContext(base: Context?) { override fun attachBaseContext(base: Context?) {
......
...@@ -53,7 +53,6 @@ import com.base.appzxhy.ui.clean.JunkCleanActivity ...@@ -53,7 +53,6 @@ import com.base.appzxhy.ui.clean.JunkCleanActivity
import com.base.appzxhy.ui.dialog.FunctionBackDialog import com.base.appzxhy.ui.dialog.FunctionBackDialog
import com.base.appzxhy.ui.largefile.LargeFileCleanActivity import com.base.appzxhy.ui.largefile.LargeFileCleanActivity
import com.base.appzxhy.ui.main.MainActivity import com.base.appzxhy.ui.main.MainActivity
import com.base.appzxhy.ui.malware.MalwareCleanActivity
import com.base.appzxhy.ui.photocompression.PhotoCompressionActivity import com.base.appzxhy.ui.photocompression.PhotoCompressionActivity
import com.base.appzxhy.ui.screenshot.ScreenshotCleanActivity import com.base.appzxhy.ui.screenshot.ScreenshotCleanActivity
import com.base.appzxhy.ui.similar.SimilarPhotosActivity import com.base.appzxhy.ui.similar.SimilarPhotosActivity
...@@ -456,10 +455,6 @@ fun Activity.jumpAction(key: String) { ...@@ -456,10 +455,6 @@ fun Activity.jumpAction(key: String) {
PHOTO_COMPRESSION -> { PHOTO_COMPRESSION -> {
goToAc(PhotoCompressionActivity::class.java) goToAc(PhotoCompressionActivity::class.java)
} }
ANTIVIRUS -> {
goToAc(MalwareCleanActivity::class.java)
}
} }
} }
......
...@@ -5,6 +5,7 @@ import android.view.LayoutInflater ...@@ -5,6 +5,7 @@ import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintLayout
import com.base.appzxhy.R import com.base.appzxhy.R
import com.base.appzxhy.databinding.DialogConfirmBinding import com.base.appzxhy.databinding.DialogConfirmBinding
...@@ -23,8 +24,9 @@ class ConfirmDialog( ...@@ -23,8 +24,9 @@ class ConfirmDialog(
dialog.show() dialog.show()
val params = dialog.window?.attributes val params = dialog.window?.attributes
// params?.width = LinearLayout.LayoutParams.MATCH_PARENT // params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
// params?.height = LinearLayout.LayoutParams.WRAP_CONTENT params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_300)
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.CENTER params?.gravity = Gravity.CENTER
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
......
...@@ -9,7 +9,6 @@ import com.base.appzxhy.databinding.DialogFunctionBackBinding ...@@ -9,7 +9,6 @@ import com.base.appzxhy.databinding.DialogFunctionBackBinding
import com.base.appzxhy.ui.batteryinfo.BatteryInfoActivity import com.base.appzxhy.ui.batteryinfo.BatteryInfoActivity
import com.base.appzxhy.ui.clean.JunkCleanActivity import com.base.appzxhy.ui.clean.JunkCleanActivity
import com.base.appzxhy.ui.largefile.LargeFileCleanActivity import com.base.appzxhy.ui.largefile.LargeFileCleanActivity
import com.base.appzxhy.ui.malware.MalwareCleanActivity
import com.base.appzxhy.ui.photocompression.PhotoCompressionActivity import com.base.appzxhy.ui.photocompression.PhotoCompressionActivity
import com.base.appzxhy.ui.screenshot.ScreenshotCleanActivity import com.base.appzxhy.ui.screenshot.ScreenshotCleanActivity
import com.base.appzxhy.ui.similar.SimilarPhotosActivity import com.base.appzxhy.ui.similar.SimilarPhotosActivity
...@@ -64,11 +63,6 @@ class FunctionBackDialog( ...@@ -64,11 +63,6 @@ class FunctionBackDialog(
binding.tvContent.text = activity.getString(R.string.exit_similar_photos_content) binding.tvContent.text = activity.getString(R.string.exit_similar_photos_content)
} }
is MalwareCleanActivity -> {
binding.tvTitle.text = activity.getString(R.string.exit_malware_clean)
binding.tvContent.text = activity.getString(R.string.exit_malware_clean_content)
}
else -> { else -> {
back.invoke() back.invoke()
return return
......
...@@ -10,6 +10,7 @@ import androidx.core.graphics.toColorInt ...@@ -10,6 +10,7 @@ import androidx.core.graphics.toColorInt
import com.base.appzxhy.R import com.base.appzxhy.R
import com.base.appzxhy.base.BaseActivity import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.base.jumpAction import com.base.appzxhy.base.jumpAction
import com.base.appzxhy.databinding.DialogStorage2Binding
import com.base.appzxhy.databinding.DialogStorageBinding import com.base.appzxhy.databinding.DialogStorageBinding
import com.base.appzxhy.utils.PermissionUtils.checkStorePermission import com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
...@@ -43,7 +44,7 @@ class StoragePermissionDialog( ...@@ -43,7 +44,7 @@ class StoragePermissionDialog(
) { ) {
val dialog = AlertDialog.Builder(activity).create() val dialog = AlertDialog.Builder(activity).create()
val binding = DialogStorageBinding.inflate(LayoutInflater.from(activity)) val binding = DialogStorage2Binding.inflate(LayoutInflater.from(activity))
var action: (() -> Unit)? = null var action: (() -> Unit)? = null
...@@ -54,15 +55,16 @@ class StoragePermissionDialog( ...@@ -54,15 +55,16 @@ class StoragePermissionDialog(
dialog.show() dialog.show()
val params = dialog.window?.attributes val params = dialog.window?.attributes
params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_316) // params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_316)
params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.CENTER params?.gravity = Gravity.BOTTOM
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
val appName = activity.getString(R.string.app_name) val appName = activity.getString(R.string.app_name)
binding.tvContent.text = binding.tvContent.text =
highlightText(activity.getString(R.string.storage_permission_content, appName), appName, "#2DD29E".toColorInt()) highlightText(activity.getString(R.string.storage_permission_content, appName), appName, "#0456ed".toColorInt())
// binding.lottieAnimationView.let { // binding.lottieAnimationView.let {
// it.imageAssetsFolder = "permission_sc/images" // it.imageAssetsFolder = "permission_sc/images"
...@@ -71,10 +73,10 @@ class StoragePermissionDialog( ...@@ -71,10 +73,10 @@ class StoragePermissionDialog(
// it.playAnimation() // it.playAnimation()
// } // }
binding.tvDeny.setOnClickListener { // binding.tvDeny.setOnClickListener {
dialog.dismiss() // dialog.dismiss()
} // }
binding.tvAllow.setOnClickListener { binding.tvOpenSettings.setOnClickListener {
dialog.dismiss() dialog.dismiss()
action?.invoke() action?.invoke()
} }
......
...@@ -69,6 +69,10 @@ class GuideActivity : BaseActivity<ActivityGuideBinding>(ActivityGuideBinding::i ...@@ -69,6 +69,10 @@ class GuideActivity : BaseActivity<ActivityGuideBinding>(ActivityGuideBinding::i
binding.viewpager2.currentItem = 2 binding.viewpager2.currentItem = 2
return return
} }
if (page == 2) {
binding.viewpager2.currentItem = 3
return
}
if (page == 3) { if (page == 3) {
startActivity(Intent(this, MainActivity::class.java)) startActivity(Intent(this, MainActivity::class.java))
finish() finish()
......
...@@ -25,13 +25,13 @@ class GuideFragment : BaseFragment<FragmentGuideBinding>(FragmentGuideBinding::i ...@@ -25,13 +25,13 @@ class GuideFragment : BaseFragment<FragmentGuideBinding>(FragmentGuideBinding::i
} }
1 -> { 1 -> {
binding.iv.setImageResource(R.drawable.yingdaoye2) binding.iv.setImageResource(R.drawable.yindaoye2)
binding.ivDian.setImageResource(R.drawable.dian_2) binding.ivDian.setImageResource(R.drawable.dian_2)
binding.tvContent.text = getString(R.string.guide_tip_2) binding.tvContent.text = getString(R.string.guide_tip_2)
} }
3 -> { 3 -> {
binding.iv.setImageResource(R.drawable.yingdaoye3) binding.iv.setImageResource(R.drawable.yindaoye3)
binding.ivDian.setImageResource(R.drawable.dian_3) binding.ivDian.setImageResource(R.drawable.dian_3)
binding.tvContent.text = getString(R.string.guide_tip_3) binding.tvContent.text = getString(R.string.guide_tip_3)
binding.tvBtn.text = getString(R.string.get_started) binding.tvBtn.text = getString(R.string.get_started)
......
...@@ -8,6 +8,7 @@ import com.base.appzxhy.ui.guide.GuideActivity ...@@ -8,6 +8,7 @@ import com.base.appzxhy.ui.guide.GuideActivity
class NativeFullFragment : BaseFragment<FragmentNativeFullBinding>(FragmentNativeFullBinding::inflate) { class NativeFullFragment : BaseFragment<FragmentNativeFullBinding>(FragmentNativeFullBinding::inflate) {
var page: Int = 2
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
...@@ -23,7 +24,7 @@ class NativeFullFragment : BaseFragment<FragmentNativeFullBinding>(FragmentNativ ...@@ -23,7 +24,7 @@ class NativeFullFragment : BaseFragment<FragmentNativeFullBinding>(FragmentNativ
binding.ivClose.setOnClickListener { binding.ivClose.setOnClickListener {
val activity = requireActivity() as GuideActivity val activity = requireActivity() as GuideActivity
activity.next(3) activity.next(page)
} }
......
...@@ -24,7 +24,6 @@ import com.base.appzxhy.bean.FeatureBean.Companion.SIMILAR_PHOTOS ...@@ -24,7 +24,6 @@ import com.base.appzxhy.bean.FeatureBean.Companion.SIMILAR_PHOTOS
import com.base.appzxhy.bean.FeatureBean.Companion.VIDEO_CLEAN import com.base.appzxhy.bean.FeatureBean.Companion.VIDEO_CLEAN
import com.base.appzxhy.databinding.FragmentHome3Binding import com.base.appzxhy.databinding.FragmentHome3Binding
import com.base.appzxhy.ui.dialog.permissionStorageJump import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.malware.MalwareDialog
import com.base.appzxhy.ui.set.SettingActivity import com.base.appzxhy.ui.set.SettingActivity
import com.base.appzxhy.utils.BarUtils import com.base.appzxhy.utils.BarUtils
import com.base.appzxhy.utils.KotlinExt.toFormatSize import com.base.appzxhy.utils.KotlinExt.toFormatSize
...@@ -133,17 +132,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>(FragmentHome3Binding::in ...@@ -133,17 +132,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>(FragmentHome3Binding::in
(requireActivity() as MainActivity).goToAc(SettingActivity::class.java) (requireActivity() as MainActivity).goToAc(SettingActivity::class.java)
} }
ANTIVIRUS -> {
val dialog = MalwareDialog(requireActivity())
dialog.action = {
if (it) {
(requireActivity() as MainActivity).permissionStorageJump(ANTIVIRUS)
}
}
dialog.showDialog()
}
} }
} }
......
package com.base.appzxhy.ui.malware //package com.base.appzxhy.ui.malware
//
import com.base.appzxhy.MyApplication //import com.base.appzxhy.MyApplication
import com.trustlook.sdk.cloudscan.CloudScanClient //import com.trustlook.sdk.cloudscan.CloudScanClient
import com.trustlook.sdk.data.Region //import com.trustlook.sdk.data.Region
//
/** ///**
*Create by SleepDog on 2025-01-24 // *Create by SleepDog on 2025-01-24
*/ // */
object CloudScan { //object CloudScan {
val scanClient by lazy(LazyThreadSafetyMode.NONE) { // val scanClient by lazy(LazyThreadSafetyMode.NONE) {
CloudScanClient.Builder(MyApplication.appContext) // CloudScanClient.Builder(MyApplication.appContext)
// 设置服务地区, // // 设置服务地区,
// 海外地区设置:Region.INTL,百度用户设置:Region.BAIDU //// 海外地区设置:Region.INTL,百度用户设置:Region.BAIDU
.setRegion(Region.INTL) // .setRegion(Region.INTL)
// 设置连接超时时长,单位为毫秒 // // 设置连接超时时长,单位为毫秒
.setConnectionTimeout(30000) // .setConnectionTimeout(30000)
//设置传输超时时长,单位为毫秒 // //设置传输超时时长,单位为毫秒
.setSocketTimeout(30000) // .setSocketTimeout(30000)
.build() // .build()
} // }
} //}
\ No newline at end of file \ No newline at end of file
package com.base.appzxhy.ui.malware //package com.base.appzxhy.ui.malware
//
import android.app.Activity //import android.app.Activity
import android.view.LayoutInflater //import android.view.LayoutInflater
import androidx.appcompat.app.AlertDialog //import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout //import androidx.constraintlayout.widget.ConstraintLayout
import com.base.appzxhy.R //import com.base.appzxhy.R
import com.base.appzxhy.business.ads.AdsMgr //import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.DialogErrBinding //import com.base.appzxhy.databinding.DialogErrBinding
//
class ErrorScanDialog( //class ErrorScanDialog(
val activity: Activity // val activity: Activity
) { //) {
val dialog = AlertDialog.Builder(activity).create() // val dialog = AlertDialog.Builder(activity).create()
val binding = DialogErrBinding.inflate(LayoutInflater.from(activity)) // val binding = DialogErrBinding.inflate(LayoutInflater.from(activity))
//
var action: (() -> Unit)? = null // var action: (() -> Unit)? = null
//
fun showDialog() { // fun showDialog() {
dialog.setView(binding.root) // dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(false) // dialog.setCanceledOnTouchOutside(false)
dialog.show() // dialog.show()
//
val params = dialog.window?.attributes // val params = dialog.window?.attributes
// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT //// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295) // params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295)
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT // params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
// params?.gravity = Gravity.BOTTOM //// params?.gravity = Gravity.BOTTOM
dialog.window?.attributes = params // dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) // dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
//
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom) // AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom)
binding.tvSure.setOnClickListener { // binding.tvSure.setOnClickListener {
dialog.dismiss() // dialog.dismiss()
action?.invoke() // action?.invoke()
} // }
} // }
} //}
\ No newline at end of file \ No newline at end of file
package com.base.appzxhy.ui.malware //package com.base.appzxhy.ui.malware
//
import android.app.Activity //import android.app.Activity
import android.view.LayoutInflater //import android.view.LayoutInflater
import androidx.appcompat.app.AlertDialog //import androidx.appcompat.app.AlertDialog
import com.base.appzxhy.databinding.DialogMalwareTipBinding //import com.base.appzxhy.databinding.DialogMalwareTipBinding
import com.base.appzxhy.utils.AppPreferences //import com.base.appzxhy.utils.AppPreferences
//
//是否已经同意 ////是否已经同意
var malwareTipAgree = false //var malwareTipAgree = false
get() { // get() {
return AppPreferences.getInstance().getBoolean("malwareTipAgree", field) // return AppPreferences.getInstance().getBoolean("malwareTipAgree", field)
} // }
set(value) { // set(value) {
field = value // field = value
AppPreferences.getInstance().put("malwareTipAgree", value, true) // AppPreferences.getInstance().put("malwareTipAgree", value, true)
} // }
//
class MalwareDialog( //class MalwareDialog(
val activity: Activity // val activity: Activity
) { //) {
//
val dialog = AlertDialog.Builder(activity).create() // val dialog = AlertDialog.Builder(activity).create()
val binding = DialogMalwareTipBinding.inflate(LayoutInflater.from(activity)) // val binding = DialogMalwareTipBinding.inflate(LayoutInflater.from(activity))
//
var action: ((flag: Boolean) -> Unit)? = null // var action: ((flag: Boolean) -> Unit)? = null
//
fun showDialog() { // fun showDialog() {
//
if (malwareTipAgree) { // if (malwareTipAgree) {
action?.invoke(true) // action?.invoke(true)
return // return
} // }
//
dialog.setView(binding.root) // dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(false) // dialog.setCanceledOnTouchOutside(false)
dialog.show() // dialog.show()
//
val params = dialog.window?.attributes // val params = dialog.window?.attributes
// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT //// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
// params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295) //// params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295)
// params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT //// params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
// params?.gravity = Gravity.BOTTOM //// params?.gravity = Gravity.BOTTOM
dialog.window?.attributes = params // dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) // dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
//
var flag = false // var flag = false
//
binding.tvCancel.setOnClickListener { // binding.tvCancel.setOnClickListener {
dialog.dismiss() // dialog.dismiss()
} // }
binding.tvSure.setOnClickListener { // binding.tvSure.setOnClickListener {
dialog.dismiss() // dialog.dismiss()
flag = true // flag = true
malwareTipAgree = true // malwareTipAgree = true
action?.invoke(true) // action?.invoke(true)
} // }
//
dialog.setOnDismissListener { // dialog.setOnDismissListener {
action?.invoke(flag) // action?.invoke(flag)
} // }
} // }
} //}
\ No newline at end of file \ No newline at end of file
...@@ -38,9 +38,7 @@ import com.base.appzxhy.business.service.StayJobService.Companion.startStayJobSe ...@@ -38,9 +38,7 @@ import com.base.appzxhy.business.service.StayJobService.Companion.startStayJobSe
import com.base.appzxhy.databinding.ActivitySplashBinding import com.base.appzxhy.databinding.ActivitySplashBinding
import com.base.appzxhy.ui.dialog.StoragePermissionDialog import com.base.appzxhy.ui.dialog.StoragePermissionDialog
import com.base.appzxhy.ui.guide.GuideCleanActivity import com.base.appzxhy.ui.guide.GuideCleanActivity
import com.base.appzxhy.ui.language.LanguageActivity
import com.base.appzxhy.ui.main.MainActivity import com.base.appzxhy.ui.main.MainActivity
import com.base.appzxhy.ui.malware.MalwareDialog
import com.base.appzxhy.utils.LogEx import com.base.appzxhy.utils.LogEx
import com.base.appzxhy.utils.PermissionUtils.checkStorePermission import com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
...@@ -283,21 +281,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -283,21 +281,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
} }
} }
if (actionId == ANTIVIRUS) { actionStorage.invoke()
val dialog = MalwareDialog(this)
dialog.action = {
if (it) {
actionStorage.invoke()
} else {
goToAc(MainActivity::class.java)
finish()
}
}
dialog.showDialog()
} else {
actionStorage.invoke()
}
} }
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="@dimen/dp_1"
android:color="#AEB4BD" />
<corners android:radius="@dimen/dp_4" />
</shape>
\ No newline at end of file
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<item android:id="@android:id/progress"> <item android:id="@android:id/progress">
<scale android:scaleWidth="100%"> <scale android:scaleWidth="100%">
<shape> <shape>
<solid android:color="#2DD29E" /> <!-- 进度条颜色 --> <solid android:color="@color/colorPrimary" /> <!-- 进度条颜色 -->
<corners android:radius="@dimen/dp_10" /> <corners android:radius="@dimen/dp_10" />
</shape> </shape>
</scale> </scale>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/white_background"> android:background="@drawable/bg_ffffff_10">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title" android:id="@+id/tv_title"
...@@ -41,18 +41,17 @@ ...@@ -41,18 +41,17 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_cancel" android:id="@+id/tv_cancel"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_40"
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:background="@drawable/bg_enable_no_50" android:background="@drawable/bg_stroke_aeb4bd_4"
android:foreground="?attr/selectableItemBackground" android:foreground="?attr/selectableItemBackground"
android:gravity="center" android:gravity="center"
android:paddingVertical="8dp"
android:text="@string/cancel" android:text="@string/cancel"
android:textColor="@color/colorPrimary" android:textColor="#AEB4BD"
android:textSize="14sp" android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/tv_confirm" app:layout_constraintEnd_toStartOf="@id/tv_confirm"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
...@@ -61,18 +60,17 @@ ...@@ -61,18 +60,17 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_confirm" android:id="@+id/tv_confirm"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_40"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="32dp" android:layout_marginEnd="32dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:background="@drawable/bg_enable_50" android:background="@drawable/bg_enable_4"
android:foreground="?attr/selectableItemBackground" android:foreground="?attr/selectableItemBackground"
android:gravity="center" android:gravity="center"
android:paddingVertical="8dp"
android:text="@string/confirm" android:text="@string/confirm"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_cancel" app:layout_constraintStart_toEndOf="@id/tv_cancel"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
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">
<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:textColor="@color/color_1a1a1a"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="8dp"
android:text="@string/storage_permission_content"
android:textColor="@color/color_666666"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_permission"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="12dp"
android:adjustViewBounds="true"
android:src="@drawable/img_quanxian_pop"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvContent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvOpenSettings"
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:gravity="center"
android:paddingVertical="12dp"
android:text="@string/open_settings"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/iv_permission" />
</androidx.constraintlayout.widget.ConstraintLayout>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
android:layout_width="@dimen/dp_250" android:layout_width="@dimen/dp_250"
android:layout_height="@dimen/dp_250" android:layout_height="@dimen/dp_250"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="-10dp"> android:layout_marginTop="-20dp">
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -121,6 +121,7 @@ ...@@ -121,6 +121,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv" android:id="@+id/rv"
android:layout_marginTop="-10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:overScrollMode="never" android:overScrollMode="never"
......
...@@ -70,4 +70,5 @@ ...@@ -70,4 +70,5 @@
<dimen name="dp_250">250dp</dimen> <dimen name="dp_250">250dp</dimen>
<dimen name="dp_28">28dp</dimen> <dimen name="dp_28">28dp</dimen>
<dimen name="dp_54">54dp</dimen> <dimen name="dp_54">54dp</dimen>
<dimen name="dp_32">32dp</dimen>
</resources> </resources>
\ No newline at end of file
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