Commit 92319f65 authored by wanglei's avatar wanglei

...

parent 1a868595
......@@ -46,6 +46,18 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.appmanager.AppManagerActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.appmanager.AppManagerAnimationActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.battery.BatteryInfoAnimationActivity"
android:exported="false"
......
package com.base.filerecoveryrecyclebin.activity.appmanager
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.graphics.Color
import android.net.Uri
import android.provider.Settings
import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.adapter.AppManagerAdapter
import com.base.filerecoveryrecyclebin.bean.AppBean
import com.base.filerecoveryrecyclebin.databinding.ActivityAppManagerBinding
import com.base.filerecoveryrecyclebin.databinding.ActivityAppProcessBinding
import com.base.filerecoveryrecyclebin.databinding.ActivityPhotoManagerBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.RamUtils.ramPair
import com.base.filerecoveryrecyclebin.view.DialogViews.showAppProcessExitDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
override val binding: ActivityAppManagerBinding by lazy {
ActivityAppManagerBinding.inflate(layoutInflater)
}
private lateinit var adapter: AppManagerAdapter
private var ePercent = 0
@SuppressLint("SetTextI18n")
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val ramPair = ramPair()
val percent = ((ramPair.first.toFloat() / ramPair.second.toFloat()) * 100).toInt()
ePercent = percent
binding.tvPercent.text = percent.toString()
binding.pbRam.progress = percent
binding.tvSize.text = "${ramPair.first.toFormatSize()}/${ramPair.second.toFormatSize()}"
adapter = AppManagerAdapter { pkg ->
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
val uri = Uri.fromParts("package", pkg, null) // 替换为需要跳转的应用包名
intent.setData(uri)
startActivity(intent)
}
binding.rv.adapter = adapter
initData()
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
showAppProcessExitDialog(ePercent) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this@AppProcessActivity) {
//
// }
finishToMain()
}
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
@SuppressLint("QueryPermissionsNeeded")
private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
val pm = packageManager
val packages = pm.getInstalledPackages(0)
val list = arrayListOf<AppBean>()
packages.forEach { app ->
if (isLaunchApp(this@AppManagerActivity, app)) {
val appBean = AppBean(
app.applicationInfo.loadIcon(pm),
app.applicationInfo.loadLabel(pm).toString(),
app.applicationInfo.packageName
)
list.add(appBean)
}
}
launch(Dispatchers.Main) {
binding.pbLoading.visibility = View.GONE
adapter.setData(list)
}
}
private fun isLaunchApp(context: Context, app: PackageInfo, filterSystem: Boolean = true): Boolean {
val flagSystem = (app.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM) < 1
val flag = if (filterSystem) flagSystem else true
return flag && app.applicationInfo.packageName != context.packageName
}
}
\ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.appmanager
import android.annotation.SuppressLint
import android.content.Intent
import android.view.View
import android.widget.Toast
import androidx.activity.addCallback
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.databinding.ActivityAppProcessAnimationBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.random.Random
class AppManagerAnimationActivity : BaseActivity<ActivityAppProcessAnimationBinding>() {
override val binding: ActivityAppProcessAnimationBinding by lazy {
ActivityAppProcessAnimationBinding.inflate(layoutInflater)
}
private var job: Job? = null
override fun initView() {
playLottie()
}
override fun initListener() {
onBackPressedDispatcher.addCallback {
Toast.makeText(this@AppManagerAnimationActivity, "wait a moment", Toast.LENGTH_SHORT).show()
}
}
@SuppressLint("SetTextI18n")
private fun playLottie() {
binding.lottie.imageAssetsFolder = "app_manager/images/"
binding.lottie.setAnimation("app_manager/data.json")
binding.lottie.playAnimation()
}
@SuppressLint("SetTextI18n")
fun jumpJob() = lifecycleScope.launch(Dispatchers.Main) {
delay(Random.nextLong(4000, 6000))
binding.lottie.visibility = View.GONE
binding.lottieCompleted.visibility = View.VISIBLE
binding.lottieCompleted.playAnimation()
binding.tv.text = "Completed!"
delay(1000)
AdmobMaxHelper.admobMaxShowInterstitialAd(this@AppManagerAnimationActivity) {
startActivity(Intent(this@AppManagerAnimationActivity, AppManagerActivity::class.java))
finish()
}
}
override fun onResume() {
super.onResume()
if (job?.isActive == false || job == null) {
job = jumpJob()
}
}
override fun onPause() {
super.onPause()
job?.cancel()
job = null
}
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.activity.MainActivity
import com.base.filerecoveryrecyclebin.activity.SettingActivity
import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
......@@ -72,6 +73,9 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
binding.cardWhatsapp.setOnClickListener {
startActivity(Intent(requireContext(), WhatsAppCleanerAnimationActivity::class.java))
}
binding.cardAppManager.setOnClickListener {
startActivity(Intent(requireContext(), AppManagerAnimationActivity::class.java))
}
binding.cardAppProcess.setOnClickListener {
startActivity(Intent(requireContext(), AppProcessAnimationActivity::class.java))
}
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activity.appprocess.AppProcessActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
tools:ignore="UselessParent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/quit"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="App Process"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_percent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:includeFontPadding="false"
android:textSize="54sp"
android:textStyle="bold"
tools:text="68" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="2dp"
android:layout_marginBottom="5dp"
android:includeFontPadding="false"
android:text="%"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:text="RAM Used"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="18dp">
<ProgressBar
android:id="@+id/pb_ram"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="345dp"
android:layout_height="25dp"
android:max="100"
android:progressDrawable="@drawable/shape_ram_pb"
tools:progress="50" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="20dp"
android:text="5.6GB/7.9GB"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="25dp"
android:text="Manager user apps"
android:textColor="#999999"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_app_manager" />
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
</LinearLayout>
\ No newline at end of file
......@@ -195,7 +195,7 @@
android:layout_marginStart="8dp"
android:text="Clean Junk"
android:textColor="@color/black"
android:textSize="16sp"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
......@@ -236,7 +236,7 @@
android:layout_marginStart="8dp"
android:text="WhatsAPP\nCleaner"
android:textColor="@color/black"
android:textSize="16sp"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
......@@ -286,7 +286,7 @@
android:layout_marginStart="8dp"
android:text="Large File\nCleaner"
android:textColor="@color/black"
android:textSize="16sp"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
......@@ -295,7 +295,7 @@
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_app_process"
android:id="@+id/card_app_manager"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_margin="8dp"
......@@ -317,7 +317,7 @@
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_marginEnd="8dp"
android:src="@mipmap/c_appprocess"
android:src="@mipmap/c_appmanager"
tools:ignore="ContentDescription" />
<TextView
......@@ -325,9 +325,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="App\nProcess"
android:text="App\nManager"
android:textColor="@color/black"
android:textSize="16sp"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
......@@ -348,6 +348,64 @@
android:textStyle="bold"
tools:ignore="HardcodedText" />
<androidx.cardview.widget.CardView
android:id="@+id/card_app_process"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="5dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="10dp"
android:src="@mipmap/c_appprocess"
tools:ignore="ContentDescription" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="App Process"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="15dp"
android:src="@mipmap/jianotu_h"
tools:ignore="ContentDescription" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_screenshot"
android:layout_width="match_parent"
......
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