Commit 0ce876e5 authored by wanglei's avatar wanglei

...

parent 090fac62
......@@ -26,7 +26,7 @@ object GlobalConfig {
/**
* Url Use 使用条款
*/
const val URL_USE = ""
const val URL_USE = "https://sites.google.com/view/dumpster-cleaner/dumpster-cleaner"
/**
* Key Aes 加密key
......
......@@ -32,6 +32,7 @@ import com.airbnb.lottie.LottieAnimationView
import com.base.appzxhy.SpConstObject.appLanguageCountrySp
import com.base.appzxhy.SpConstObject.appLanguageSp
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.cleanedSize
import com.base.appzxhy.base.goToAc
import com.base.appzxhy.bean.FeatureBean.Companion.BATTERY_INFO
import com.base.appzxhy.bean.FeatureBean.Companion.JUNK_CLEAN
......@@ -505,7 +506,9 @@ fun AppCompatActivity.cleanFileBeans(list: List<FileBean>) {
lifecycleScope.launch(Dispatchers.IO) {
val paths = list.filter { it.isSelected }.map { it.path }.toTypedArray()
paths.forEach {
RecycleBinUtils.addRecycleBinFile(File(it))
val file = File(it)
cleanedSize = cleanedSize + file.length()
RecycleBinUtils.addRecycleBinFile(file)
FileUtils.deleteFile(it)
}
launch(Dispatchers.Main) { MediaUtils.updateMedia(applicationContext, paths) }
......
......@@ -63,7 +63,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_clean)
setImageViewResource(R.id.ivIcon, R.drawable.icon_clean_push)
debugAction.invoke(this)
}
}
......@@ -76,7 +76,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_battery)
setImageViewResource(R.id.ivIcon, R.drawable.icon_battery_info_push)
debugAction.invoke(this)
}
}
......@@ -89,7 +89,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_large_file_cleanner)
setImageViewResource(R.id.ivIcon, R.drawable.icon_large_file_cleaner_push)
debugAction.invoke(this)
}
}
......@@ -102,7 +102,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_duplicate_photos)
setImageViewResource(R.id.ivIcon, R.drawable.icon_similar_pictures_push)
debugAction.invoke(this)
}
}
......@@ -115,7 +115,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_screenshot_cleaner)
setImageViewResource(R.id.ivIcon, R.drawable.icon_screenshot_clean_push)
debugAction.invoke(this)
}
}
......@@ -128,7 +128,7 @@ object NotificationUiUtil {
}
sendBean.bigRemoteViews = RemoteViews(context.packageName, R.layout.notification_common_large).apply {
setTextViewText(R.id.tv1, text)
setImageViewResource(R.id.ivIcon, R.drawable.icon_compression)
setImageViewResource(R.id.ivIcon, R.drawable.icon_compression_push)
debugAction.invoke(this)
}
}
......
......@@ -114,9 +114,9 @@ class StayJobService : JobService() {
return false
}
val millisInFuture = if (BuildConfig.DEBUG) 5000L else PopupConfigBean.popupConfigBean.notifyForegroundInterval
val notifyInterval = if (BuildConfig.DEBUG) 5000L else PopupConfigBean.popupConfigBean.notifyForegroundInterval
private inner class Timer() : CountDownTimer(millisInFuture, 1000) {
private inner class Timer() : CountDownTimer(notifyInterval, 1000) {
override fun onTick(millisUntilFinished: Long) {
// LogEx.logDebug(TAG, "Timer onTick")
}
......
......@@ -13,6 +13,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.base.appzxhy.R
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.base.LottieEnum
import com.base.appzxhy.base.cleanFileBeans
import com.base.appzxhy.bean.FeatureBean.Companion.JUNK_CLEAN
import com.base.appzxhy.bean.FileBean
import com.base.appzxhy.business.ads.AdsMgr
......@@ -170,7 +171,7 @@ class JunkCleanActivity : BaseActivity<ActivityJunkCleanBinding>(ActivityJunkCle
if (total > 0) {
showAdAnimation(LottieEnum.CLEAN_LOTTIE) {
// cleanFiles(selectedFiles)
cleanFileBeans(selectedFiles)
CleanResultActivity.functionKey = JUNK_CLEAN
CleanResultActivity.titleName = this@JunkCleanActivity.getString(R.string.junk_clean)
......@@ -179,7 +180,7 @@ class JunkCleanActivity : BaseActivity<ActivityJunkCleanBinding>(ActivityJunkCle
finish()
}
} else {
// goToAc(CleanResultActivity)
goToAc(CleanResultActivity::class.java)
}
}
......
......@@ -57,7 +57,6 @@ class RateDialog(
view.setOnClickListener {
starList.forEachIndexed { index2, view2 ->
view2.setImageResource(if (index2 <= index) R.drawable.icon_star_s else R.drawable.icon_star_n)
}
score = index + 1
}
......@@ -74,7 +73,7 @@ class RateDialog(
}
dialog.dismiss()
}
binding.star1.callOnClick()
binding.star5.callOnClick()
}
}
\ No newline at end of file
......@@ -53,7 +53,6 @@ class LargeFileCleanActivity : BaseActivity<ActivityLargeFileCleanBinding>(Activ
FileBean(getString(R.string.other_types)),
)
}
private val sizeList by lazy {
listOf(
FileBean(getString(R.string.mb_10), isSelected = true),
......@@ -63,7 +62,6 @@ class LargeFileCleanActivity : BaseActivity<ActivityLargeFileCleanBinding>(Activ
FileBean(getString(R.string.mb_500)),
)
}
private val timeList by lazy {
listOf(
FileBean(getString(R.string.all_time), isSelected = true),
......
package com.base.appzxhy.ui.main
import android.annotation.SuppressLint
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.appzxhy.R
import com.base.appzxhy.base.BaseFragment
......@@ -16,6 +17,8 @@ import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.FragmentHome2Binding
import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.set.SettingActivity
import com.base.appzxhy.ui.similar.SimilarPhotosActivity
import com.base.appzxhy.utils.KotlinExt.toFormatSize
import com.base.appzxhy.utils.Utils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
......@@ -78,4 +81,16 @@ class Home2Fragment : BaseFragment<FragmentHome2Binding>(FragmentHome2Binding::i
}
}
}
override fun onResume() {
super.onResume()
if (SimilarPhotosActivity.similarSize != 0L) {
binding.tvDupSize.visibility = View.VISIBLE
binding.tvDupSize.text = SimilarPhotosActivity.similarSize.toFormatSize()
} else {
binding.tvDupSize.visibility = View.INVISIBLE
}
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.base.appzxhy.SpConstObject.isScoreRated
import com.base.appzxhy.ui.recyclebin.RecycleBinUtils.getRecycleBinData
import com.base.appzxhy.utils.PermissionUtils.areNotificationsEnabled
import com.base.appzxhy.utils.PermissionUtils.checkNotificationPermission
import com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import kotlinx.coroutines.Dispatchers
......@@ -30,7 +31,10 @@ class MainViewModel : ViewModel() {
return
}
if (!context.checkNotificationPermission()) {
if (
!context.checkNotificationPermission() ||
!context.areNotificationsEnabled()
) {
dialogFlow.update { "NotificationDialog" }
return
}
......
......@@ -29,7 +29,7 @@ class RecycleBinDetailActivity : BaseActivity<ActivityRecycleBinDetailBinding>(A
override fun initView() {
super.initView()
if (mImageStr.contains("." + recycleBinFile.extension) || mVideoStr.contains("." + recycleBinFile.extension)) {
Glide.with(this).load(recycleBinFile.absoluteFile).into(binding.iv)
Glide.with(this).load(recycleBinFile.absoluteFile).placeholder(R.drawable.icon_file).into(binding.iv)
} else {
binding.iv.setImageResource(recycleBinFile.getImgRes())
}
......@@ -54,7 +54,7 @@ class RecycleBinDetailActivity : BaseActivity<ActivityRecycleBinDetailBinding>(A
lifecycleScope.launch {
recycleBinFile.deleteIfExists()
}
onBackPressedDispatcher.onBackPressed()
}
binding.tvRestore.setOnClickListener {
lifecycleScope.launch {
......
......@@ -8,7 +8,6 @@ import com.base.appzxhy.databinding.ActivitySettingBinding
class SettingActivity : BaseActivity<ActivitySettingBinding>(ActivitySettingBinding::inflate) {
var insetsCallBack: ((insets: Insets) -> Unit)? = null
override fun useDefaultImmersive() {
......@@ -32,4 +31,8 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>(ActivitySettingBind
super.initListener()
}
override fun handleBackCallBack() {
// super.handleBackCallBack()
finish()
}
}
\ No newline at end of file
......@@ -18,9 +18,7 @@ import com.base.appzxhy.bean.config.ConfigBean
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.ui.dialog.RateDialog
import com.base.appzxhy.utils.ClipboardUtils.copyText
import com.base.appzxhy.utils.MyAnimationUtils
import com.base.appzxhy.utils.ToastUtils.toast
import com.google.gson.Gson
import com.google.gson.GsonBuilder
......@@ -40,8 +38,9 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB
override fun initView() {
super.initView()
binding.tvCleanedUp.text = cleanedSize.toFormatSize()
binding.tvVersion.text = "v${BuildConfig.VERSION_NAME}"
MyAnimationUtils.rotation(binding.ivBlade)
// MyAnimationUtils.rotation(binding.ivBlade)
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom)
if (BuildConfig.DEBUG) {
......@@ -71,7 +70,9 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB
val dialog = RateDialog(requireActivity())
dialog.showDialog(true)
}
binding.ivBack.setOnClickListener {
(requireActivity() as SettingActivity).onBackPressedDispatcher.onBackPressed()
}
}
override fun onResume() {
......
package com.base.appzxhy.ui.similar
import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -8,12 +9,14 @@ import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.airbnb.lottie.LottieAnimationView
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.cleanedSize
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.base.LottieEnum
import com.base.appzxhy.bean.FeatureBean.Companion.SIMILAR_PHOTOS
......@@ -26,6 +29,7 @@ import com.base.appzxhy.databinding.ItemSimilarPhotosChildBinding
import com.base.appzxhy.ui.cleanresult.CleanResultActivity
import com.base.appzxhy.ui.dialog.ConfirmDialog
import com.base.appzxhy.ui.recyclebin.RecycleBinUtils
import com.base.appzxhy.ui.similar.SimilarPhotosActivity
import com.base.appzxhy.utils.FileUtils
import com.base.appzxhy.utils.MediaUtils
import com.base.appzxhy.utils.Utils
......@@ -47,7 +51,6 @@ class SimilarPhotosActivity : BaseActivity<ActivitySimilarPhotosBinding>(Activit
private var selectedFiles = listOf<SimilarBean>()
private var total: Long = 0
private val adapter by lazy {
class ViewHolder(val binding: ItemSimilarPhotosBinding) : RecyclerView.ViewHolder(binding.root)
......@@ -167,7 +170,6 @@ class SimilarPhotosActivity : BaseActivity<ActivitySimilarPhotosBinding>(Activit
view.text = if (total > 0) "$content (${Utils.getSizeFormat(total)})" else content
}
override fun useDefaultImmersive() {
setStatusBarColor()
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
......@@ -217,6 +219,11 @@ class SimilarPhotosActivity : BaseActivity<ActivitySimilarPhotosBinding>(Activit
}
}
list = similarBeans.filter { it.items.size > 1 }.toMutableList()
launch(Dispatchers.IO) {
similarSize = list.sumOf { it.size } + list.sumOf { it.items.sumOf { it.size } }
}
launch(Dispatchers.Main) {
if (state != 0) scanComplete()
state = 2
......@@ -285,11 +292,17 @@ class SimilarPhotosActivity : BaseActivity<ActivitySimilarPhotosBinding>(Activit
lifecycleScope.launch(Dispatchers.IO) {
val paths = list.map { it.url }.toTypedArray()
paths.forEach {
RecycleBinUtils.addRecycleBinFile(File(it))
val file = File(it)
cleanedSize = cleanedSize + file.length()
RecycleBinUtils.addRecycleBinFile(file)
FileUtils.deleteFile(it)
}
launch(Dispatchers.Main) { MediaUtils.updateMedia(applicationContext, paths) }
}
}
companion object {
var similarSize = 0L
}
}
\ No newline at end of file
......@@ -2,47 +2,42 @@ package com.base.appzxhy.ui.splash
import android.Manifest
import android.annotation.SuppressLint
import android.app.ComponentCaller
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableString
import android.text.TextPaint
import android.text.Spanned
import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
import android.text.style.UnderlineSpan
import android.view.View
import androidx.activity.viewModels
import androidx.core.graphics.toColorInt
import androidx.core.net.toUri
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.base.appzxhy.SpConstObject.ifAgreePrivacy
import com.base.appzxhy.GlobalConfig.URL_PRIVACY
import com.base.appzxhy.GlobalConfig.URL_USE
import com.base.appzxhy.MyApplication
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.ifAgreePrivacy
import com.base.appzxhy.SpConstObject.isGuided
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.base.jumpAction
import com.base.appzxhy.bean.FeatureBean.Companion.BATTERY_INFO
import com.base.appzxhy.bean.FeatureBean.Companion.JUNK_CLEAN
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.business.ads.AdsShowCallBack
import com.base.appzxhy.business.helper.EventUtils
import com.base.appzxhy.business.service.StayJobService.Companion.startStayJobService
import com.base.appzxhy.databinding.ActivitySplashBinding
import com.base.appzxhy.ui.batteryinfo.BatteryInfoActivity
import com.base.appzxhy.ui.clean.JunkCleanActivity
import com.base.appzxhy.ui.dialog.StoragePermissionDialog
import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.guide.GuideCleanActivity
import com.base.appzxhy.ui.main.MainActivity
import com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import com.base.appzxhy.utils.UmpUtils
import kotlinx.coroutines.MainScope
import java.util.concurrent.atomic.AtomicBoolean
@SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding::inflate) {
......@@ -81,28 +76,34 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
}
private fun setPrivacyPolicy() {
val privacyPolicy = getString(R.string.privacy_policy)
val text = "${getString(R.string.agree)} $privacyPolicy"
val spannableString = SpannableString(text)
val start = text.indexOf(privacyPolicy)
val end = start + privacyPolicy.length
val clickableSpan = object : ClickableSpan() {
val spannableString = SpannableString("privacy")
spannableString.setSpan(UnderlineSpan(), 0, spannableString.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
spannableString.setSpan(object : ClickableSpan() {
override fun onClick(widget: View) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(URL_PRIVACY)))
startActivity(Intent(Intent.ACTION_VIEW, URL_PRIVACY.toUri()))
}
}, 0, spannableString.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = getColor(R.color.colorPrimary)
ds.bgColor = 0
binding.tvPrivacy.text = spannableString
binding.tvPrivacy.movementMethod = LinkMovementMethod.getInstance()
binding.tvPrivacy.setLinkTextColor("#328EF6".toColorInt())
val spannableString2 = SpannableString("terms of service")
spannableString2.setSpan(UnderlineSpan(), 0, spannableString2.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
spannableString2.setSpan(object : ClickableSpan() {
override fun onClick(widget: View) {
startActivity(Intent(Intent.ACTION_VIEW, URL_USE.toUri()))
}
}
spannableString.setSpan(clickableSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
binding.tvAgree.text = spannableString
binding.tvAgree.movementMethod = LinkMovementMethod.getInstance()
binding.tvAgree.highlightColor = Color.TRANSPARENT
}, 0, spannableString2.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
binding.tvTerms.text = spannableString2
binding.tvTerms.movementMethod = LinkMovementMethod.getInstance()
binding.tvTerms.setLinkTextColor("#328EF6".toColorInt())
}
private fun requestNotificationPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
val array = arrayOf(Manifest.permission.POST_NOTIFICATIONS)
......@@ -123,6 +124,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
viewModel.startCountdown()
MyApplication.appContext.initApp()
}
}
private fun initUMP() {
......@@ -168,7 +171,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
goToAc(GuideCleanActivity::class.java)
finish()
}
isHotLaunch->{
isHotLaunch -> {
goToAc(MainActivity::class.java)
finish()
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#80FBFBFB"/>
<corners android:radius="@dimen/dp_20"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="@color/white"
android:endColor="@color/white"
android:angle="270"
android:centerX="0.5"
android:centerY="0.5" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?><!--<shape xmlns:android="http://schemas.android.com/apk/res/android">-->
<!-- <gradient-->
<!-- android:angle="270"-->
<!-- android:centerColor="#D4E6FA"-->
<!-- android:centerX="0.1"-->
<!-- android:centerY="0.5"-->
<!-- android:endColor="@color/white"-->
<!-- android:startColor="#C5D8F6"-->
<!-- android:type="linear" />-->
<!--</shape>-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/bg_bg_splash" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:endColor="#FF3D7AF7"
android:startColor="#FF6AB4FF" />
<corners android:radius="64dp" />
android:endColor="#328EF6"
android:startColor="#328EF6" />
<corners android:radius="@dimen/dp_10" />
</shape>
\ No newline at end of file
......@@ -121,13 +121,14 @@
android:id="@+id/iv_empty"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_marginTop="@dimen/dp_80"
android:src="@drawable/queshengtu"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="@id/expandable_files"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="@id/expandable_files"
app:layout_constraintVertical_bias="0.2" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll_bottom"
......
......@@ -11,12 +11,12 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
app:layout_constraintGuide_percent="0.15" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_logo"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
android:layout_width="@dimen/dp_136"
android:layout_height="@dimen/dp_136"
android:src="@mipmap/logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......@@ -27,7 +27,7 @@
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_40"
android:text="@string/app_name"
android:textColor="@color/black"
android:textSize="20sp"
......@@ -38,23 +38,27 @@
<LinearLayout
android:id="@+id/llConsent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_306"
android:layout_height="@dimen/dp_150"
android:layout_marginHorizontal="33dp"
android:background="@drawable/bg_f8f9fa_20"
android:background="@drawable/bg_fbfbfb_20"
android:orientation="vertical"
android:padding="18dp"
app:layout_constraintBottom_toTopOf="@id/cl_bottom_start"
app:layout_constraintTop_toBottomOf="@id/tvName">
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvName"
app:layout_constraintVertical_bias="0.291">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_10">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_gravity="center_vertical"
android:src="@drawable/essentiona" />
......@@ -65,66 +69,93 @@
android:layout_marginStart="8dp"
android:text="@string/consent_required"
android:textColor="#838383"
android:textSize="16sp"
android:textSize="@dimen/sp_13"
android:textStyle="bold"
tools:ignore="TextContrastCheck" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_20"
android:gravity="center"
android:text="@string/consent"
android:textColor="#A8A8A8"
android:textSize="13sp"
android:textColor="#1A1A1A"
android:textSize="@dimen/sp_12"
tools:ignore="TextContrastCheck" />
</ScrollView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
android:id="@+id/cl_bottom_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="52dp"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="36dp"
android:layout_marginTop="16dp"
android:layout_width="@dimen/dp_260"
android:layout_height="@dimen/dp_55"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bg_splash_button"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:gravity="center"
android:text="@string/start"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintTop_toTopOf="parent" />
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_agree"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/agree"
android:textColor="@color/color_8b8b8b"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvStart"
tools:ignore="TextContrastCheck" />
android:layout_marginTop="@dimen/dp_14"
android:gravity="center_vertical">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agree"
android:textColor="#1A1A1A"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tvPrivacy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/privacy"
android:textSize="@dimen/sp_14" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" &amp; "
android:textColor="#1A1A1A"
android:textSize="@dimen/sp_14"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tvTerms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/terms_of_service"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bottom_loading"
......
......@@ -131,6 +131,7 @@
android:layout_marginHorizontal="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bg_btn_50"
android:foreground="?attr/selectableItemBackground"
android:gravity="center"
android:text="@string/clean_junk"
android:textColor="@color/white"
......@@ -173,9 +174,11 @@
<LinearLayout
android:id="@+id/llClean"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:foreground="?attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
......@@ -199,6 +202,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:foreground="?attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
......@@ -222,6 +226,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:foreground="?attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
......@@ -262,6 +267,7 @@
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_f5f7f8_8"
android:foreground="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal">
......@@ -285,6 +291,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_8"
android:background="@drawable/bg_ff3434_4"
android:paddingHorizontal="@dimen/dp_4"
android:textColor="@color/white"
......@@ -306,6 +313,7 @@
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_f5f7f8_8"
android:foreground="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal">
......@@ -340,6 +348,7 @@
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_f5f7f8_8"
android:foreground="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal">
......
......@@ -13,18 +13,33 @@
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
<LinearLayout
android:id="@+id/tv_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="24dp"
android:text="@string/settings"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_8"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_8"
app:srcCompat="@drawable/icon_return_w" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_cleaned_up"
......@@ -62,22 +77,31 @@
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:src="@drawable/zhuti"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ImageContrastCheck" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivBlade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/yezi"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ImageContrastCheck" />
app:srcCompat="@drawable/image_set" />
<!-- <androidx.appcompat.widget.AppCompatImageView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="32dp"-->
<!-- android:src="@drawable/zhuti"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:ignore="ImageContrastCheck" />-->
<!-- <androidx.appcompat.widget.AppCompatImageView-->
<!-- android:id="@+id/ivBlade"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:src="@drawable/yezi"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:ignore="ImageContrastCheck" />-->
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
......
......@@ -47,8 +47,8 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:src="@drawable/bg_select_yuan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
......
......@@ -67,12 +67,13 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:src="@drawable/bg_select_yuan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
......
......@@ -40,4 +40,11 @@
<dimen name="sp_15">15sp</dimen>
<dimen name="dp_280">280dp</dimen>
<dimen name="dp_295">295dp</dimen>
<dimen name="dp_288">288dp</dimen>
<dimen name="dp_306">306dp</dimen>
<dimen name="dp_136">136dp</dimen>
<dimen name="dp_24">24dp</dimen>
<dimen name="sp_13">13sp</dimen>
<dimen name="dp_260">260dp</dimen>
<dimen name="dp_26">26dp</dimen>
</resources>
\ No newline at end of file
......@@ -8,12 +8,9 @@
<string name="consent_required">Consent Required</string>
<string name="consent">
During the use of this APP, we need to obtain the following information:Mobile phone model, mobile phone manufacturer,Android system version,Application version number, application version name,Package name,Google Ad ID,Mobile phone local time zone,Mobile phone photo album, empty folders, apk files, temp files, log files,Battery power, mobile phone standby time, battery temperature, battery voltage, battery technology, battery capacity, battery current, current average value of the battery
Please rest assured that we will handle your information in strict accordance with relevant laws and regulations. All the information we collect will be used reasonably to ensure the normal operation and service improvement of the APP, and we will take all necessary measures to protect the security of your personal information. Your privacy is of utmost importance to us.
During the use of this APP, we need to obtain the following information:Mobile phone model, mobile phone manufacturer,Android system version,Application version number, application version name,Package
</string>
<string name="start">Start</string>
<string name="agree">By continuing you are agreeing to the</string>
<string name="privacy_policy">Privacy Policy</string>
<string name="photo">Photo</string>
<string name="audio">Audio</string>
......@@ -146,5 +143,12 @@ Please rest assured that we will handle your information in strict accordance wi
<string name="logout_content">Are you sure you want to quit without trying to clean up the garbage again?</string>
<string name="please_wait_a_moment">Please wait a moment</string>
<string name="exit">Exit</string>
<string name="start_to_use">START TO USE</string>
<string name="privacy">privacy</string>
<string name="agree">agree\u0020</string>
<string name="terms_of_service">terms of service</string>
<string name="notification_title">Turn on notification</string>
<string name="notification_content">Never miss important phone cleaning notification reminders</string>
<string name="turn_on">Turn on</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