Commit f5f7a187 authored by wanglei's avatar wanglei

混淆前定位

parent 91d38355
...@@ -152,8 +152,8 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() { ...@@ -152,8 +152,8 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
private fun playLottie() { private fun playLottie() {
binding.llLottie.isVisible = true binding.llLottie.isVisible = true
binding.lottie.imageAssetsFolder = "appmanager_scan/images/" binding.lottie.imageAssetsFolder = "easy_appmanager_scan/images/"
binding.lottie.setAnimation("appmanager_scan/data.json") binding.lottie.setAnimation("easy_appmanager_scan/data.json")
binding.lottie.playAnimation() binding.lottie.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
...@@ -52,8 +52,8 @@ class BatteryInfoActivity : BaseActivity<ActivityBatteryInfoBinding>() { ...@@ -52,8 +52,8 @@ class BatteryInfoActivity : BaseActivity<ActivityBatteryInfoBinding>() {
e.printStackTrace() e.printStackTrace()
} }
setFilter() setFilter()
binding.idBatteryLottie.imageAssetsFolder = "battery_scan/images/" binding.idBatteryLottie.imageAssetsFolder = "easy_battery_scan/images/"
binding.idBatteryLottie.setAnimation("battery_scan/data.json") binding.idBatteryLottie.setAnimation("easy_battery_scan/data.json")
binding.idBatteryLottie.playAnimation() binding.idBatteryLottie.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
playFinish() playFinish()
......
...@@ -3,8 +3,6 @@ package com.test.easy.easycleanerjunk.activity ...@@ -3,8 +3,6 @@ package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.os.Environment
import android.text.format.Formatter import android.text.format.Formatter
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -42,10 +40,11 @@ import com.test.easy.easycleanerjunk.databinding.PopupwindowFileFilterBinding ...@@ -42,10 +40,11 @@ import com.test.easy.easycleanerjunk.databinding.PopupwindowFileFilterBinding
import com.test.easy.easycleanerjunk.helps.BaseActivity import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.LogEx import com.test.easy.easycleanerjunk.helps.LogEx
import com.test.easy.easycleanerjunk.helps.MediaStoreUtils import com.test.easy.easycleanerjunk.helps.MediaStoreUtils
import com.test.easy.easycleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.easy.easycleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.easy.easycleanerjunk.helps.TimeUtils import com.test.easy.easycleanerjunk.helps.TimeUtils
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.PermissionUtils import com.test.easy.easycleanerjunk.view.DialogViews.showGerPermission
import com.test.easy.easycleanerjunk.utils.PermissionUtils.STORAGE
import com.test.easy.easycleanerjunk.view.FileDeleteDialog.showFileDeleteDialog import com.test.easy.easycleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
import com.test.easy.easycleanerjunk.view.FileDetailDialog.showFileDetailDialog import com.test.easy.easycleanerjunk.view.FileDetailDialog.showFileDetailDialog
import com.test.easy.easycleanerjunk.view.XmlEx.inflate import com.test.easy.easycleanerjunk.view.XmlEx.inflate
...@@ -125,6 +124,30 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() { ...@@ -125,6 +124,30 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() {
) )
binding.rv.adapter = adapter binding.rv.adapter = adapter
binding.tvType.text = fileType
binding.tvSize.text = filterSize
binding.tvTime.text = filterTime
if (checkStorePermission()) {
playLottie()
initList()
} else {
dialog = showGerPermission(deny = { finishToMain() }) {
requestStorePermission(launcher, result = { flag ->
if (flag) {
playLottie()
initList()
} else {
finishToMain()
}
})
}
}
}
@SuppressLint("SetTextI18n")
override fun initListener() {
binding.tvDelete.setOnClickListener { binding.tvDelete.setOnClickListener {
this.showFileDeleteDialog { this.showFileDeleteDialog {
val deleteList = arrayListOf<FileBean>() val deleteList = arrayListOf<FileBean>()
...@@ -166,36 +189,8 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() { ...@@ -166,36 +189,8 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() {
finishToMain() finishToMain()
} }
} }
binding.tvType.text = fileType
binding.tvSize.text = filterSize
binding.tvTime.text = filterTime
val flag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Environment.isExternalStorageManager()
} else {
PermissionUtils.isGranted(STORAGE)
}
if (flag) {
isplay += 1
playLottie()
}
checkPermission()
} }
var isplay = 0
override fun onPermissionsResult(isGranted: Boolean) {
super.onPermissionsResult(isGranted)
if (isGranted) {
isplay += 1
if (isplay == 1) {
playLottie()
}
initList()
} else {
finishToMain()
}
}
private fun initList() { private fun initList() {
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
......
...@@ -74,8 +74,8 @@ class NetWorkActivity : BaseActivity<ActivityLayoutNetworkBinding>() { ...@@ -74,8 +74,8 @@ class NetWorkActivity : BaseActivity<ActivityLayoutNetworkBinding>() {
private fun playLottie() { private fun playLottie() {
binding.idLlNetDh.isVisible = true binding.idLlNetDh.isVisible = true
binding.idLottieNetwork.imageAssetsFolder = "network_scan/images/" binding.idLottieNetwork.imageAssetsFolder = "easy_network_scan/images/"
binding.idLottieNetwork.setAnimation("network_scan/data.json") binding.idLottieNetwork.setAnimation("easy_network_scan/data.json")
binding.idLottieNetwork.playAnimation() binding.idLottieNetwork.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
...@@ -86,8 +86,8 @@ class PrepareScanActivity : BaseActivity<ActivityLayoutParepreScanBinding>() { ...@@ -86,8 +86,8 @@ class PrepareScanActivity : BaseActivity<ActivityLayoutParepreScanBinding>() {
} }
start() start()
} }
binding.idJunkScan.imageAssetsFolder = "junk_scan/images/" binding.idJunkScan.imageAssetsFolder = "easy_junk_scan/images/"
binding.idJunkScan.setAnimation("junk_scan/data.json") binding.idJunkScan.setAnimation("easy_junk_scan/data.json")
binding.idJunkScan.playAnimation() binding.idJunkScan.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
...@@ -105,8 +105,8 @@ class RecentAppActivity : BaseActivity<ActivityRecentAppBinding>() { ...@@ -105,8 +105,8 @@ class RecentAppActivity : BaseActivity<ActivityRecentAppBinding>() {
private fun playLottie(showFinish: (() -> Unit)? = null) { private fun playLottie(showFinish: (() -> Unit)? = null) {
binding.llLottie.isVisible = true binding.llLottie.isVisible = true
binding.lottie.imageAssetsFolder = "recentapp_scan/images/" binding.lottie.imageAssetsFolder = "easy_recentapp_scan/images/"
binding.lottie.setAnimation("recentapp_scan/data.json") binding.lottie.setAnimation("easy_recentapp_scan/data.json")
binding.lottie.playAnimation() binding.lottie.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
package com.test.easy.easycleanerjunk.activity package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
...@@ -31,6 +32,7 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -31,6 +32,7 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
} }
private lateinit var adapter: AppFunctionAdapter private lateinit var adapter: AppFunctionAdapter
@SuppressLint("SetTextI18n", "NotifyDataSetChanged")
override fun initView() { override fun initView() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight()) binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
...@@ -40,10 +42,6 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -40,10 +42,6 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
startActivity(Intent(this, ScanJunkActivity::class.java)) startActivity(Intent(this, ScanJunkActivity::class.java))
} }
// VIRUS_SCAN -> {
// startActivity(Intent(this, VirusActivity::class.java))
// }
RECENT_APP_USAGE -> { RECENT_APP_USAGE -> {
startActivity(Intent(this, RecentAppActivity::class.java)) startActivity(Intent(this, RecentAppActivity::class.java))
} }
...@@ -88,10 +86,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -88,10 +86,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
when (from) { when (from) {
JUNK_CLEANER -> { JUNK_CLEANER -> {
if (intent.getLongExtra("clean_size", 0L) > 0) { if (intent.getLongExtra("clean_size", 0L) > 0) {
binding.tvInfo.text =
"Cleaned up ${ val size = intent.getLongExtra("clean_size", 0L).toFormatSize(1)
intent.getLongExtra("clean_size", 0L).toFormatSize(1) binding.tvInfo.text = "Cleaned up $size"
}"
} else { } else {
binding.tvInfo.text = "No junk files found." binding.tvInfo.text = "No junk files found."
} }
...@@ -129,13 +126,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -129,13 +126,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
} }
PHOTO_COMPRESS -> { PHOTO_COMPRESS -> {
binding.tvInfo.text = val size = intent.getLongExtra("size", 0L).toFormatSize(1)
"Compress ${intent.getIntExtra("num", 0)} photo, ${ binding.tvInfo.text = "Compress ${intent.getIntExtra("num", 0)} photo, $size space freed"
intent.getLongExtra(
"size",
0L
).toFormatSize(1)
} space freed"
} }
BATTERY_OPTIMIZER -> { BATTERY_OPTIMIZER -> {
......
...@@ -71,8 +71,8 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -71,8 +71,8 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
private fun playLottie() { private fun playLottie() {
startAnimation() startAnimation()
binding.idJunkScan.imageAssetsFolder = "junk_scan/images/" binding.idJunkScan.imageAssetsFolder = "easy_junk_scan/images/"
binding.idJunkScan.setAnimation("junk_scan/data.json") binding.idJunkScan.setAnimation("easy_junk_scan/data.json")
binding.idJunkScan.playAnimation() binding.idJunkScan.playAnimation()
binding.root.postDelayed({ binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
package com.test.easy.easycleanerjunk.activity.photocompress.photo package com.test.easy.easycleanerjunk.activity.photocompress.photo
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.graphics.Bitmap import android.graphics.Bitmap
import android.util.Log
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.ProgressBar import android.widget.ProgressBar
...@@ -15,13 +15,15 @@ import com.bumptech.glide.Glide ...@@ -15,13 +15,15 @@ import com.bumptech.glide.Glide
import com.test.easy.easycleanerjunk.R import com.test.easy.easycleanerjunk.R
class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, CompressionImageUtils.BitmapCallback,
@Suppress("DEPRECATION")
class PreviewCompressionManager(private val mContext: Activity) : GalleryLayoutManager.OnItemSelectedListener,
CompressionImageUtils.BitmapCallback,
OnSeekBarChangeListener { OnSeekBarChangeListener {
private val mContext: Activity
private var galleryRecyclerView: RecyclerView? = null private var galleryRecyclerView: RecyclerView? = null
private var galleryAdapter: GalleryAdapter? = null private var galleryAdapter: GalleryAdapter? = null
private val mList: List<PhotoBean> private val mList: List<PhotoBean> = PhotoCache.getInstance().photoList
private var mTitleView: TextView? = null private var mTitleView: TextView? = null
private var mPreviewView: RelativeLayout? = null private var mPreviewView: RelativeLayout? = null
...@@ -37,21 +39,6 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C ...@@ -37,21 +39,6 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C
private var mIndex = 0 private var mIndex = 0
constructor(mContext: Activity) {
this.mContext = mContext
mList = PhotoCache.getInstance().photoList
galleryRecyclerView = mContext.findViewById(R.id.galleryRecyclerView)
mPreviewView = mContext.findViewById(R.id.preview_view)
mLoadingView = mContext.findViewById(R.id.img_loading)
mBeforeImage = mContext.findViewById(R.id.before_image)
mAfterImage = mContext.findViewById(R.id.after_image)
mBeforeSize = mContext.findViewById(R.id.before_size)
mAfterSize = mContext.findViewById(R.id.after_size)
mTitleView = mContext.findViewById(R.id.title)
mSeekBar = mContext.findViewById(R.id.seekBar)
initView()
}
private fun initView() { private fun initView() {
galleryAdapter = GalleryAdapter(mContext, mList) galleryAdapter = GalleryAdapter(mContext, mList)
val manager = GalleryLayoutManager(GalleryLayoutManager.HORIZONTAL) val manager = GalleryLayoutManager(GalleryLayoutManager.HORIZONTAL)
...@@ -76,8 +63,7 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C ...@@ -76,8 +63,7 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C
lastRefreshTime = currentTime lastRefreshTime = currentTime
mIndex = position mIndex = position
Log.d("glc","") refreshPreviewImage(true, 50)
refreshPreviewImage(true)
} }
override fun onBitmapReady(bitmap: Bitmap?, size: Long, position: Int) { override fun onBitmapReady(bitmap: Bitmap?, size: Long, position: Int) {
...@@ -89,17 +75,14 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C ...@@ -89,17 +75,14 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C
val entity = mList[position] val entity = mList[position]
mPreviewView?.visibility = View.VISIBLE mPreviewView?.visibility = View.VISIBLE
mLoadingView?.visibility = View.GONE mLoadingView?.visibility = View.GONE
if (mBeforeImage != null) {
Glide.with(mContext).load(entity.src).into(mBeforeImage) Glide.with(mContext).load(entity.src).into(mBeforeImage)
}
mBeforeSize?.text = entity.sizeText mBeforeSize?.text = entity.sizeText
mAfterSize?.text = ImagesMediaUtils.formatFileSize(size) mAfterSize?.text = ImagesMediaUtils.formatFileSize(size)
if (mAfterImage != null) {
Glide.with(mContext).load(bitmap).into(mAfterImage) Glide.with(mContext).load(bitmap).into(mAfterImage)
} }
} }
}
@SuppressLint("SetTextI18n")
private fun loading(boolean: Boolean) { private fun loading(boolean: Boolean) {
mPreviewView?.visibility = View.GONE mPreviewView?.visibility = View.GONE
mLoadingView?.visibility = View.VISIBLE mLoadingView?.visibility = View.VISIBLE
...@@ -110,11 +93,6 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C ...@@ -110,11 +93,6 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C
} }
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
when {
progress <= 25 -> seekBar?.progress = 0
progress in 26..75 -> seekBar?.progress = 50
progress > 75 -> seekBar?.progress = 100
}
} }
override fun onStartTrackingTouch(seekBar: SeekBar?) { override fun onStartTrackingTouch(seekBar: SeekBar?) {
...@@ -124,26 +102,38 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C ...@@ -124,26 +102,38 @@ class PreviewCompressionManager : GalleryLayoutManager.OnItemSelectedListener, C
override fun onStopTrackingTouch(seekBar: SeekBar?) { override fun onStopTrackingTouch(seekBar: SeekBar?) {
val progress = seekBar?.progress ?: 0 val progress = seekBar?.progress ?: 0
var mode: Int = 0
when { when {
seekBar?.progress ?: 0 <= 1 -> seekBar?.progress = 0 (seekBar?.progress ?: 0) <= 1 -> mode = 0
(seekBar?.progress ?: 0) > 1 && (seekBar?.progress ?: 0) <= 50 -> seekBar?.progress = (seekBar?.progress ?: 0) > 1 && (seekBar?.progress ?: 0) <= 50 -> mode = 50
50 (seekBar?.progress ?: 0) > 50 -> mode = 100
seekBar?.progress ?: 0 > 50 -> seekBar?.progress = 100
} }
if (progress != lastProgress) { if (progress != lastProgress) {
refreshPreviewImage(false) refreshPreviewImage(false, mode)
lastProgress = progress lastProgress = progress
} }
} }
private fun refreshPreviewImage(boolean: Boolean) { @SuppressLint("SetTextI18n")
private fun refreshPreviewImage(boolean: Boolean, mode: Int) {
loading(boolean) loading(boolean)
val entity = mList[mIndex] val entity = mList[mIndex]
mTitleView?.text = "Preview (" + (mIndex + 1) + "/${mList.size})" mTitleView?.text = "Preview (" + (mIndex + 1) + "/${mList.size})"
CompressionImageUtils.compressImage(entity.src, mSeekBar.progress, mIndex, this) CompressionImageUtils.compressImage(entity.src, mode, mIndex, this)
} }
fun getMode() = mSeekBar.progress fun getMode() = mSeekBar.progress
init {
galleryRecyclerView = mContext.findViewById(R.id.galleryRecyclerView)
mPreviewView = mContext.findViewById(R.id.preview_view)
mLoadingView = mContext.findViewById(R.id.img_loading)
mBeforeImage = mContext.findViewById(R.id.before_image)
mAfterImage = mContext.findViewById(R.id.after_image)
mBeforeSize = mContext.findViewById(R.id.before_size)
mAfterSize = mContext.findViewById(R.id.after_size)
mTitleView = mContext.findViewById(R.id.title)
mSeekBar = mContext.findViewById(R.id.seekBar)
initView()
}
} }
\ No newline at end of file
...@@ -50,8 +50,8 @@ class StartCompressionPhotoActivity : BaseActivity<ActivityStartCompressionPhoto ...@@ -50,8 +50,8 @@ class StartCompressionPhotoActivity : BaseActivity<ActivityStartCompressionPhoto
} }
private fun playLottie() { private fun playLottie() {
binding.idLottie1.imageAssetsFolder = "imgcompress/images/" binding.idLottie1.imageAssetsFolder = "easy_imgcompress/images/"
binding.idLottie1.setAnimation("imgcompress/data.json") binding.idLottie1.setAnimation("easy_imgcompress/data.json")
binding.idLottie1.playAnimation() binding.idLottie1.playAnimation()
Handler().postDelayed({ Handler().postDelayed({
AdmobUtils.showInterstitialAd(this) { AdmobUtils.showInterstitialAd(this) {
......
...@@ -25,32 +25,31 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) : ...@@ -25,32 +25,31 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
RecyclerView.Adapter<AppFunctionAdapter.JJJ>() { RecyclerView.Adapter<AppFunctionAdapter.JJJ>() {
val list = arrayListOf( val list = arrayListOf(
Fun(JUNK_CLEANER, R.drawable.cleanjunk, "Clean junk regularly to free up space", "Clean Up"), Fun(JUNK_CLEANER, R.mipmap.t_cleanjunk, "Clean junk regularly to free up space", "Clean Up"),
Fun(PHOTO_COMPRESS, R.drawable.photo, "Compress photos to save space", "Compress"), Fun(PHOTO_COMPRESS, R.mipmap.t_photo, "Compress photos to save space", "Compress"),
Fun(LARGE_FILE_CLEANER, R.drawable.large, "Clean large files to free up storage space", "Clean Up"), Fun(LARGE_FILE_CLEANER, R.mipmap.t_large, "Clean large files to free up storage space", "Clean Up"),
Fun(BATTERY_INFO, R.drawable.battery, "View battery usage and details", "Check Now"),
Fun( Fun(
APP_MANAGER, APP_MANAGER,
R.drawable.appmanager, R.mipmap.t_appmanager,
"Check apps size and uninstall some apps to release storage space", "Check apps size and uninstall some apps to release storage space",
"Check Now" "Check Now"
), ),
Fun( Fun(
SIMILAR_PHOTOS, SIMILAR_PHOTOS,
R.drawable.similar, R.mipmap.t_similar,
"Check similar photos to release more space", "Check similar photos to release more space",
"Clean Up" "Clean Up"
), ),
Fun( Fun(
NOTIFICATION_CLEANER, NOTIFICATION_CLEANER,
R.drawable.notification, R.mipmap.t_notification,
"Too many annoying notifications? Block and clean", "Too many annoying notifications? Block and clean",
"Check Now" "Check Now"
), ),
Fun(RECENT_APP_USAGE, R.drawable.h_recentapp, "Check and manage recently active apps", "View Now"), Fun(RECENT_APP_USAGE, R.mipmap.t_recent, "Check and manage recently active apps", "View Now"),
Fun( Fun(
NETWORK_TRAFFIC, NETWORK_TRAFFIC,
R.drawable.network, R.mipmap.t_network,
"View network traffic usage and stop traffic-consuming apps", "View network traffic usage and stop traffic-consuming apps",
"View Now" "View Now"
) )
......
...@@ -40,7 +40,6 @@ data class ConfigBean( ...@@ -40,7 +40,6 @@ data class ConfigBean(
const val ID_JUNK_CLEAN_PUSH = 11001 //清理垃圾 const val ID_JUNK_CLEAN_PUSH = 11001 //清理垃圾
const val ID_BOOST_PUSH = 11002 //性能优化 const val ID_BOOST_PUSH = 11002 //性能优化
// const val ID_VIRUS_PUSH = 11003//扫描病毒,trustlook目前不加
const val ID_BATTERY_PUSH = 11004// 电量信息 const val ID_BATTERY_PUSH = 11004// 电量信息
const val ID_COOL_PUSH = 11005//手机降温 const val ID_COOL_PUSH = 11005//手机降温
const val ID_LARGE_FILE_PUSH = 11006// 大文件清理 const val ID_LARGE_FILE_PUSH = 11006// 大文件清理
...@@ -53,23 +52,12 @@ data class ConfigBean( ...@@ -53,23 +52,12 @@ data class ConfigBean(
const val ID_CLEAN_NOTIFICATION = 11013//清理通知栏 const val ID_CLEAN_NOTIFICATION = 11013//清理通知栏
const val ID_RECENT_USE_APP = 11014//最近使用APP const val ID_RECENT_USE_APP = 11014//最近使用APP
const val ID_SIMILAR_IMAGE = 11015//清理相似图片 const val ID_SIMILAR_IMAGE = 11015//清理相似图片
const val ID_CLEAN_SPEAKER = 11016//清理扬声器
// const val ID_BATTERY_OPTIMIZATION = 11017//电池优化,目前是虚假功能
//场景触发push actionId 被动发送
const val ID_WIFI_PUSH = 22001//连接wifi时
const val ID_INSTALL_PACKAGE_PUSH = 22002//安装应用
const val ID_UNINSTALL_PACKAGE_PUSH = 22003//卸载应用
const val ID_CHARGE = 22004//充电
const val ID_LOW_BATTERY_PUSH = 22005//电量低于阈值时
const val ID_LOW_RAM_PUSH = 22007//内存低于阈值
// const val ID_PHONE_ACCELERATE = 22011//手机加速,目前是虚假功能
fun ConfigBean.getActionPushInterval(actionId: Int): Int { fun ConfigBean.getActionPushInterval(actionId: Int): Int {
val interval = when (actionId) { val interval = when (actionId) {
ID_JUNK_CLEAN_PUSH -> push_interval_11001 ID_JUNK_CLEAN_PUSH -> push_interval_11001
ID_BOOST_PUSH -> push_interval_11002 ID_BOOST_PUSH -> push_interval_11002
// ID_VIRUS_PUSH -> push_interval_11003
ID_BATTERY_PUSH -> push_interval_11004 ID_BATTERY_PUSH -> push_interval_11004
ID_COOL_PUSH -> push_interval_11005 ID_COOL_PUSH -> push_interval_11005
ID_LARGE_FILE_PUSH -> push_interval_11006 ID_LARGE_FILE_PUSH -> push_interval_11006
...@@ -82,15 +70,6 @@ data class ConfigBean( ...@@ -82,15 +70,6 @@ data class ConfigBean(
ID_CLEAN_NOTIFICATION -> push_interval_11013 ID_CLEAN_NOTIFICATION -> push_interval_11013
ID_RECENT_USE_APP -> push_interval_11014 ID_RECENT_USE_APP -> push_interval_11014
ID_SIMILAR_IMAGE -> push_interval_11015 ID_SIMILAR_IMAGE -> push_interval_11015
ID_CLEAN_SPEAKER -> push_interval_11016
// ID_BATTERY_OPTIMIZATION -> push_interval_11017
ID_WIFI_PUSH -> push_interval_22001
ID_INSTALL_PACKAGE_PUSH -> push_interval_22002
ID_UNINSTALL_PACKAGE_PUSH -> push_interval_22003
ID_CHARGE -> push_interval_22004
ID_LOW_BATTERY_PUSH -> push_interval_22005
ID_LOW_RAM_PUSH -> push_interval_22007
// ID_PHONE_ACCELERATE -> push_interval_22011
else -> 0 else -> 0
} }
return interval return interval
......
package com.test.easy.easycleanerjunk.display package com.test.easy.easycleanerjunk.display
//import com.test.fast.cleanerjunk.bean.ConfigBean.Companion.ID_BATTERY_OPTIMIZATION
//import com.test.fast.cleanerjunk.bean.ConfigBean.Companion.ID_PHONE_ACCELERATE
//import com.test.fast.cleanerjunk.bean.ConfigBean.Companion.ID_VIRUS_PUSH
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.PendingIntent import android.app.PendingIntent
...@@ -22,7 +19,6 @@ import com.test.easy.easycleanerjunk.activity.splash.NewSplashActivity ...@@ -22,7 +19,6 @@ import com.test.easy.easycleanerjunk.activity.splash.NewSplashActivity
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_APP_MANAGER import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_APP_MANAGER
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_BATTERY_PUSH import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_BATTERY_PUSH
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_CLEAN_NOTIFICATION import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_CLEAN_NOTIFICATION
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_CLEAN_SPEAKER
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_JUNK_CLEAN_PUSH import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_JUNK_CLEAN_PUSH
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_LARGE_FILE_PUSH import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_LARGE_FILE_PUSH
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_NETWORK_TRAFFIC import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_NETWORK_TRAFFIC
...@@ -60,7 +56,6 @@ object NotificationHelper { ...@@ -60,7 +56,6 @@ object NotificationHelper {
ID_CLEAN_NOTIFICATION, ID_CLEAN_NOTIFICATION,
ID_RECENT_USE_APP, ID_RECENT_USE_APP,
ID_SIMILAR_IMAGE, ID_SIMILAR_IMAGE,
ID_CLEAN_SPEAKER,
) )
/** /**
...@@ -125,58 +120,53 @@ object NotificationHelper { ...@@ -125,58 +120,53 @@ object NotificationHelper {
val remoteViews = RemoteViews(packageName, R.layout.notification_common_notify) val remoteViews = RemoteViews(packageName, R.layout.notification_common_notify)
when (actionId) { when (actionId) {
ID_JUNK_CLEAN_PUSH -> { ID_JUNK_CLEAN_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.cleanjunk) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_cleanjunk)
remoteViews.setTextViewText(R.id.tv_desc, "Clean up remaining junk files") remoteViews.setTextViewText(R.id.tv_desc, "Clean up remaining junk files")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up") remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
} }
ID_LARGE_FILE_PUSH -> { ID_LARGE_FILE_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.large) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_large)
remoteViews.setTextViewText(R.id.tv_desc, "Clean big files to free up storage space") remoteViews.setTextViewText(R.id.tv_desc, "Clean big files to free up storage space")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up") remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
} }
ID_PHOTO_COMPRESS -> { ID_PHOTO_COMPRESS -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.photo) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_photo)
remoteViews.setTextViewText(R.id.tv_desc, "Compress images to release more space") remoteViews.setTextViewText(R.id.tv_desc, "Compress images to release more space")
remoteViews.setTextViewText(R.id.tv_btn, "Compress") remoteViews.setTextViewText(R.id.tv_btn, "Compress")
} }
ID_APP_MANAGER -> { ID_APP_MANAGER -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.appmanager) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_appmanager)
remoteViews.setTextViewText(R.id.tv_desc, "Check apps size and uninstall junk apps to release storage space") remoteViews.setTextViewText(R.id.tv_desc, "Check apps size and uninstall junk apps to release storage space")
remoteViews.setTextViewText(R.id.tv_btn, "Manage") remoteViews.setTextViewText(R.id.tv_btn, "Manage")
} }
ID_NETWORK_TRAFFIC -> { ID_NETWORK_TRAFFIC -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.network) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_network)
remoteViews.setTextViewText(R.id.tv_desc, "View network traffic usage and stop traffic-consuming apps.") remoteViews.setTextViewText(R.id.tv_desc, "View network traffic usage and stop traffic-consuming apps.")
remoteViews.setTextViewText(R.id.tv_btn, "View") remoteViews.setTextViewText(R.id.tv_btn, "View")
} }
ID_CLEAN_NOTIFICATION -> { ID_CLEAN_NOTIFICATION -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.notification) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_notification)
remoteViews.setTextViewText(R.id.tv_desc, "Too many annoying notifications? Block and clean") remoteViews.setTextViewText(R.id.tv_desc, "Too many annoying notifications? Block and clean")
remoteViews.setTextViewText(R.id.tv_btn, "View") remoteViews.setTextViewText(R.id.tv_btn, "View")
} }
ID_RECENT_USE_APP -> { ID_RECENT_USE_APP -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.h_recentapp) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_recent)
remoteViews.setTextViewText(R.id.tv_desc, "Check and manage recently active apps") remoteViews.setTextViewText(R.id.tv_desc, "Check and manage recently active apps")
remoteViews.setTextViewText(R.id.tv_btn, "Manage") remoteViews.setTextViewText(R.id.tv_btn, "Manage")
} }
ID_SIMILAR_IMAGE -> { ID_SIMILAR_IMAGE -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.similar) remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.t_similar)
remoteViews.setTextViewText(R.id.tv_desc, "Check similar photos to release more space") remoteViews.setTextViewText(R.id.tv_desc, "Check similar photos to release more space")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up") remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
} }
ID_CLEAN_SPEAKER -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.speaker)
remoteViews.setTextViewText(R.id.tv_desc, "Clean the speaker dust and fix the low volume problem")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
//==================================下面是被动推送的情况=============================================== //==================================下面是被动推送的情况===============================================
else -> { else -> {
return return
......
...@@ -41,7 +41,7 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() { ...@@ -41,7 +41,7 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
private var rotationValue = 0f private var rotationValue = 0f
private fun startAnimation() { private fun startAnimation() {
animator = ValueAnimator.ofFloat(rotationValue, 360f - rotationValue).apply { animator = ValueAnimator.ofFloat(rotationValue, rotationValue + 360f).apply {
duration = 1000 duration = 1000
repeatMode = ValueAnimator.RESTART repeatMode = ValueAnimator.RESTART
repeatCount = ValueAnimator.INFINITE repeatCount = ValueAnimator.INFINITE
......
...@@ -19,6 +19,7 @@ import com.test.easy.easycleanerjunk.utils.BarUtils ...@@ -19,6 +19,7 @@ import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.utils.PermissionUtils import com.test.easy.easycleanerjunk.utils.PermissionUtils
import com.test.easy.easycleanerjunk.utils.PermissionUtils.STORAGE import com.test.easy.easycleanerjunk.utils.PermissionUtils.STORAGE
import com.test.easy.easycleanerjunk.view.DialogViews import com.test.easy.easycleanerjunk.view.DialogViews
import com.test.easy.easycleanerjunk.view.DialogViews.showGerPermission
import org.json.JSONObject import org.json.JSONObject
abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
...@@ -90,18 +91,17 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -90,18 +91,17 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
if (isFinishing || isDestroyed) { if (isFinishing || isDestroyed) {
return return
} }
dialog = DialogViews.showGerPermission(this, { dialog = showGerPermission(deny = {
finishToMain()
}, allow = {
val intent = val intent =
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT") intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}") intent.data = Uri.parse("package:${packageName}")
permissionLauncher.launch(intent) permissionLauncher.launch(intent)
PermissionTripActivity.launch(this) PermissionTripActivity.launch(this)
}, {
finishToMain()
}) })
} }
} else { } else {
val permissionUtils = PermissionUtils(this) val permissionUtils = PermissionUtils(this)
if (permissionUtils.checkStoragePermission()) { if (permissionUtils.checkStoragePermission()) {
......
package com.test.easy.easycleanerjunk.helps
import android.Manifest
import android.annotation.SuppressLint
import android.app.AppOpsManager
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
import androidx.core.app.ActivityCompat
object PermissionHelp {
fun Context.checkStorePermission(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Environment.isExternalStorageManager()
} else {
val readPermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
val writePermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
return readPermission == PackageManager.PERMISSION_GRANTED && writePermission == PackageManager.PERMISSION_GRANTED;
}
}
@SuppressLint("InlinedApi")
fun Context.manageStoreIntent(): Intent {
val intent =
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
return intent
}
@SuppressLint("QueryPermissionsNeeded")
fun Context.requestStorePermission(
launcher: ActivityLauncher,
result: (flag: Boolean) -> Unit,
resolveNoAction: (() -> Unit)? = null,
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val intent = manageStoreIntent()
if (intent.resolveActivity(packageManager) != null) {
launcher.launch(intent) {
result.invoke(checkStorePermission())
}
} else {
resolveNoAction?.invoke()
}
} else {
launcher.launch(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { map ->
result(map.values.all { it })
}
}
}
fun Context.checkUsageAccessSettings(): Boolean {
val appOpsManager = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
appOpsManager.unsafeCheckOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
this.packageName
) == AppOpsManager.MODE_ALLOWED
} else {
appOpsManager.checkOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
this.packageName
) == AppOpsManager.MODE_ALLOWED
}
}
fun Context.usageAccessSettings(): Intent {
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${this.packageName}")
return intent
}
@SuppressLint("QueryPermissionsNeeded")
fun Context.requestUsageAccessSettings(
launcher: ActivityLauncher,
result: (flag: Boolean) -> Unit,
resolveNoAction: (() -> Unit)? = null,
) {
val intent = usageAccessSettings()
if (intent.resolveActivity(packageManager) != null) {
launcher.launch(intent) {
result.invoke(checkUsageAccessSettings())
}
} else {
resolveNoAction?.invoke()
}
}
}
\ No newline at end of file
...@@ -23,8 +23,8 @@ class NotificationGuestActivity : BaseActivity<ActivityLayoutTionGuestBinding>() ...@@ -23,8 +23,8 @@ class NotificationGuestActivity : BaseActivity<ActivityLayoutTionGuestBinding>()
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idTzGuest.imageAssetsFolder = "tz_scan/images/" binding.idTzGuest.imageAssetsFolder = "easy_tz_scan/images/"
binding.idTzGuest.setAnimation("tz_scan/data.json") binding.idTzGuest.setAnimation("easy_tz_scan/data.json")
binding.idTzGuest.playAnimation() binding.idTzGuest.playAnimation()
SPUtils.getInstance().put("notification_guest", true) SPUtils.getInstance().put("notification_guest", true)
binding.root.postDelayed({ binding.root.postDelayed({
......
...@@ -13,16 +13,20 @@ import com.test.easy.easycleanerjunk.databinding.DialogPermissonOpenBinding ...@@ -13,16 +13,20 @@ import com.test.easy.easycleanerjunk.databinding.DialogPermissonOpenBinding
object DialogViews { object DialogViews {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
fun showGerPermission(context: Context, onClose: (view: Dialog) -> Unit, onClose2: (view: Dialog) -> Unit?): Dialog { fun Context.showGerPermission(
val dialog = Dialog(context) tittle: String? = null,
val binding = DialogPermissonOpenBinding.inflate(LayoutInflater.from(context)) deny: ((view: Dialog) -> Unit)? = null,
allow: ((view: Dialog) -> Unit)? = null
): Dialog {
val dialog = Dialog(this)
val binding = DialogPermissonOpenBinding.inflate(LayoutInflater.from(this))
dialog.requestWindowFeature(1) dialog.requestWindowFeature(1)
dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.window!!.setLayout(-1, -1) dialog.window!!.setLayout(-1, -1)
dialog.setCanceledOnTouchOutside(false) dialog.setCanceledOnTouchOutside(false)
dialog.setCancelable(false) dialog.setCancelable(false)
dialog.setContentView(binding.root) dialog.setContentView(binding.root)
val str = context.resources.getString(R.string.app_name) val str = resources.getString(R.string.app_name)
// SpanUtils.with(binding.idTvTt) // SpanUtils.with(binding.idTvTt)
// .append("Allow ${str} to access ") // .append("Allow ${str} to access ")
// .setFontSize(13, true) // .setFontSize(13, true)
...@@ -37,16 +41,18 @@ object DialogViews { ...@@ -37,16 +41,18 @@ object DialogViews {
// .create() // .create()
binding.idTvTt.text = binding.idTvTt.text =
"Our application needs to access your files to implement junk scanning, image compression, duplicate photos, and large file cleanup. Before you authorize, we need to confirm with you:" "Our application needs to access your files to implement junk scanning, image compression, duplicate photos, and large file cleanup. Before you authorize, we need to confirm with you:"
binding.idFullLottie.imageAssetsFolder = "permisson_finger/images/"
binding.idFullLottie.setAnimation("permisson_finger/data.json") tittle?.let { binding.idTvTt.text = it }
binding.idFullLottie.imageAssetsFolder = "easy_permission_finger/images/"
binding.idFullLottie.setAnimation("easy_permission_finger/data.json")
binding.idFullLottie.playAnimation() binding.idFullLottie.playAnimation()
binding.idDeny.setOnClickListener { binding.idDeny.setOnClickListener {
dialog.dismiss() dialog.dismiss()
onClose2.invoke(dialog) deny?.invoke(dialog)
} }
binding.idTvAllow.setOnClickListener { binding.idTvAllow.setOnClickListener {
dialog.dismiss() dialog.dismiss()
onClose.invoke(dialog) allow?.invoke(dialog)
} }
dialog.show() dialog.show()
return dialog return dialog
......
...@@ -31,8 +31,8 @@ class PermisonPopWindow(private val activity: AppCompatActivity, val onClick: () ...@@ -31,8 +31,8 @@ class PermisonPopWindow(private val activity: AppCompatActivity, val onClick: ()
BarUtils.setStatusBarLightMode(activity, false) BarUtils.setStatusBarLightMode(activity, false)
showAtLocation(activity.window.decorView, Gravity.BOTTOM, 0, 100) showAtLocation(activity.window.decorView, Gravity.BOTTOM, 0, 100)
} }
binding.idLottieFullFile.imageAssetsFolder = "permisson_bottom/images/" binding.idLottieFullFile.imageAssetsFolder = "easy_permission_bottom/images/"
binding.idLottieFullFile.setAnimation("permisson_bottom/data.json") binding.idLottieFullFile.setAnimation("easy_permission_bottom/data.json")
binding.idLottieFullFile.playAnimation() binding.idLottieFullFile.playAnimation()
binding.idFrameLayout.setOnClickListener { binding.idFrameLayout.setOnClickListener {
dismiss() dismiss()
......
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
android:id="@+id/image_power" android:id="@+id/image_power"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/batteryl" android:src="@mipmap/batteryl"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4" app:layout_constraintHorizontal_bias="0.4"
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_marginTop="14.5dp" android:layout_marginTop="14.5dp"
android:src="@drawable/time" android:src="@mipmap/time"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045" app:layout_constraintHorizontal_bias="0.045"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
...@@ -367,7 +367,7 @@ ...@@ -367,7 +367,7 @@
android:id="@+id/appCompatImageView10" android:id="@+id/appCompatImageView10"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/hos" android:src="@mipmap/hos"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045" app:layout_constraintHorizontal_bias="0.045"
...@@ -421,7 +421,7 @@ ...@@ -421,7 +421,7 @@
android:id="@+id/iv_blue" android:id="@+id/iv_blue"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/lanya" android:src="@mipmap/laya"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045" app:layout_constraintHorizontal_bias="0.045"
...@@ -473,7 +473,7 @@ ...@@ -473,7 +473,7 @@
android:id="@+id/iv_light" android:id="@+id/iv_light"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/turn" android:src="@mipmap/turn"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045" app:layout_constraintHorizontal_bias="0.045"
...@@ -526,7 +526,7 @@ ...@@ -526,7 +526,7 @@
android:id="@+id/iv_gps" android:id="@+id/iv_gps"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/gps" android:src="@mipmap/daohang"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045" app:layout_constraintHorizontal_bias="0.045"
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:drawableEnd="@drawable/xuanze" android:drawableEnd="@mipmap/xiala_compress"
android:drawablePadding="4dp" android:drawablePadding="4dp"
android:textColor="#ff000000" android:textColor="#ff000000"
android:textSize="19sp" android:textSize="19sp"
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
app:bl_corners_radius="24dp" app:bl_corners_radius="24dp"
app:bl_solid_color="#5B4DFF" app:bl_solid_color="@color/theme_color"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
android:id="@+id/id_no_notification" android:id="@+id/id_no_notification"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawableTop="@mipmap/queshentu" android:drawableTop="@mipmap/notifications"
android:gravity="center" android:gravity="center"
android:text="No notifications" android:text="No notifications"
android:visibility="gone" android:visibility="gone"
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
android:layout_height="74dp" android:layout_height="74dp"
android:layout_marginVertical="10dp" android:layout_marginVertical="10dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:src="@drawable/permissiontu" android:src="@mipmap/permissiontu"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_top" app:layout_constraintTop_toBottomOf="@id/fl_top"
......
...@@ -169,18 +169,15 @@ ...@@ -169,18 +169,15 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout <LinearLayout
android:id="@+id/bottom_layout" android:id="@+id/bottom_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="170dp" android:layout_height="170dp"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"
android:paddingTop="21dp"> android:paddingTop="21dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/view_line">
<SeekBar <SeekBar
android:id="@+id/seekBar" android:id="@+id/seekBar"
...@@ -191,48 +188,54 @@ ...@@ -191,48 +188,54 @@
android:progressDrawable="@drawable/seekbar_bg" android:progressDrawable="@drawable/seekbar_bg"
android:thumb="@drawable/preview" /> android:thumb="@drawable/preview" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/seekBar" android:layout_gravity="start"
android:layout_marginLeft="16dp" android:layout_marginStart="16dp"
android:text="Best photo quality" android:text="Best photo quality"
android:textColor="#ff000000" android:textColor="#ff000000"
android:textSize="14sp" /> android:textSize="14sp"
tools:ignore="HardcodedText" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/seekBar" android:layout_gravity="end"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Most space saved" android:text="Most space saved"
android:textColor="#ff000000" android:textColor="#ff000000"
android:textSize="14sp" /> android:textSize="14sp"
</RelativeLayout> tools:ignore="HardcodedText" />
</FrameLayout>
<View <View
android:id="@+id/view_line"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_above="@+id/btn_compress" android:layout_marginTop="5dp"
android:layout_marginTop="33dp" android:background="#EEEEEE"
android:background="#EEEEEE" /> tools:ignore="ObsoleteLayoutParam" />
<TextView <com.noober.background.view.BLTextView
android:id="@+id/btn_compress" android:id="@+id/btn_compress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_alignParentBottom="true" android:layout_marginHorizontal="40dp"
android:layout_marginLeft="43dp" android:layout_marginTop="15dp"
android:layout_marginTop="8dp"
android:layout_marginRight="43dp"
android:layout_marginBottom="8dp"
android:background="@drawable/btn_blue_bg" android:background="@drawable/btn_blue_bg"
android:gravity="center" android:gravity="center"
android:text="COMPRESS ALL" android:text="COMPRESS ALL"
android:textColor="#ffffffff" android:textColor="#ffffffff"
android:textSize="19sp" android:textSize="19sp"
android:textStyle="bold" /> android:textStyle="bold"
</RelativeLayout> app:bl_corners_radius="5dp"
app:bl_solid_color="@color/theme_color"
tools:ignore="HardcodedText" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -28,18 +28,18 @@ ...@@ -28,18 +28,18 @@
</FrameLayout> </FrameLayout>
<LinearLayout <LinearLayout
android:visibility="gone"
android:id="@+id/fl_permission" android:id="@+id/fl_permission"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:orientation="vertical"> android:orientation="vertical"
android:visibility="gone">
<ImageView <ImageView
android:layout_width="290dp" android:layout_width="290dp"
android:layout_height="130dp" android:layout_height="130dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:src="@drawable/authorizationtu" android:src="@mipmap/managertu"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<TextView <TextView
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<TextView <TextView
android:id="@+id/tv_authorization" android:id="@+id/tv_authorization"
android:layout_width="289dp" android:layout_width="289dp"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
......
app/src/main/res/mipmap-xxhdpi/del.png

3.59 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/del.png

4.19 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/qlbg.png

3.68 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/qlbg.png

3.54 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/qlbg.png
app/src/main/res/mipmap-xxhdpi/qlbg.png
app/src/main/res/mipmap-xxhdpi/qlbg.png
app/src/main/res/mipmap-xxhdpi/qlbg.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png

996 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/quanxuan_n.png

653 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/time.png

3.58 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/time.png

2.84 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/wifi.png

9.75 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/wifi.png

9.48 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/wifi.png
app/src/main/res/mipmap-xxhdpi/wifi.png
app/src/main/res/mipmap-xxhdpi/wifi.png
app/src/main/res/mipmap-xxhdpi/wifi.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/xing.png

3.29 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/xing.png

2.74 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/xing.png
app/src/main/res/mipmap-xxhdpi/xing.png
app/src/main/res/mipmap-xxhdpi/xing.png
app/src/main/res/mipmap-xxhdpi/xing.png
  • 2-up
  • Swipe
  • Onion skin
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