New app installer

Update dependencies
This commit is contained in:
BinTianqi
2025-02-05 21:17:46 +08:00
parent 4640f6d1f2
commit 5726bbca14
17 changed files with 454 additions and 356 deletions

View File

@@ -3,24 +3,11 @@ package com.bintianqi.owndroid
import android.app.NotificationManager
import android.app.PendingIntent
import android.app.admin.DeviceAdminReceiver
import android.content.BroadcastReceiver
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller.EXTRA_STATUS
import android.content.pm.PackageInstaller.STATUS_FAILURE
import android.content.pm.PackageInstaller.STATUS_FAILURE_ABORTED
import android.content.pm.PackageInstaller.STATUS_FAILURE_BLOCKED
import android.content.pm.PackageInstaller.STATUS_FAILURE_CONFLICT
import android.content.pm.PackageInstaller.STATUS_FAILURE_INCOMPATIBLE
import android.content.pm.PackageInstaller.STATUS_FAILURE_INVALID
import android.content.pm.PackageInstaller.STATUS_FAILURE_STORAGE
import android.content.pm.PackageInstaller.STATUS_FAILURE_TIMEOUT
import android.content.pm.PackageInstaller.STATUS_PENDING_USER_ACTION
import android.content.pm.PackageInstaller.STATUS_SUCCESS
import android.os.Build.VERSION
import android.os.PersistableBundle
import android.util.Log
import android.widget.Toast
import androidx.core.app.NotificationCompat
import com.bintianqi.owndroid.dpm.handleNetworkLogs
@@ -28,10 +15,8 @@ import com.bintianqi.owndroid.dpm.isDeviceAdmin
import com.bintianqi.owndroid.dpm.isDeviceOwner
import com.bintianqi.owndroid.dpm.isProfileOwner
import com.bintianqi.owndroid.dpm.processSecurityLogs
import com.bintianqi.owndroid.dpm.toggleInstallAppActivity
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch
class Receiver : DeviceAdminReceiver() {
@@ -48,7 +33,6 @@ class Receiver : DeviceAdminReceiver() {
override fun onEnabled(context: Context, intent: Intent) {
super.onEnabled(context, intent)
context.toggleInstallAppActivity()
if(context.isDeviceAdmin || context.isProfileOwner || context.isDeviceOwner){
Toast.makeText(context, context.getString(R.string.onEnabled), Toast.LENGTH_SHORT).show()
}
@@ -56,7 +40,6 @@ class Receiver : DeviceAdminReceiver() {
override fun onDisabled(context: Context, intent: Intent) {
super.onDisabled(context, intent)
context.toggleInstallAppActivity()
Toast.makeText(context, R.string.onDisabled, Toast.LENGTH_SHORT).show()
}
@@ -93,7 +76,6 @@ class Receiver : DeviceAdminReceiver() {
super.onTransferOwnershipComplete(context, bundle)
val sp = context.getSharedPreferences("data", Context.MODE_PRIVATE)
sp.edit().putBoolean("dhizuku", false).apply()
context.toggleInstallAppActivity()
}
override fun onLockTaskModeEntering(context: Context, intent: Intent, pkg: String) {
@@ -116,29 +98,3 @@ class Receiver : DeviceAdminReceiver() {
nm.cancel(1)
}
}
val installAppDone = MutableStateFlow(false)
class PackageInstallerReceiver: BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val toastText = when(intent.getIntExtra(EXTRA_STATUS, 999)){
STATUS_PENDING_USER_ACTION -> R.string.status_pending_action
STATUS_SUCCESS -> R.string.success
STATUS_FAILURE -> R.string.failed
STATUS_FAILURE_BLOCKED -> R.string.status_fail_blocked
STATUS_FAILURE_ABORTED -> R.string.status_fail_aborted
STATUS_FAILURE_INVALID -> R.string.status_fail_invalid
STATUS_FAILURE_CONFLICT -> R.string.status_fail_conflict
STATUS_FAILURE_STORAGE -> R.string.status_fail_storage
STATUS_FAILURE_INCOMPATIBLE -> R.string.status_fail_incompatible
STATUS_FAILURE_TIMEOUT -> R.string.status_fail_timeout
else -> 999
}
Log.e("OwnDroid", intent.getIntExtra(EXTRA_STATUS, 999).toString())
installAppDone.value = true
if(toastText != 999){
val text = context.getString(R.string.app_installer_status) + context.getString(toastText)
Toast.makeText(context, text, Toast.LENGTH_SHORT).show()
}
}
}