mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
More options in app installer
Add download links to READMEs
This commit is contained in:
@@ -40,11 +40,14 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.List
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.MaterialTheme.typography
|
||||
import androidx.compose.material3.Scaffold
|
||||
@@ -122,14 +125,12 @@ fun ApplicationsScreen(onNavigateUp: () -> Unit) {
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Done),
|
||||
keyboardActions = KeyboardActions(onDone = { focusMgr.clearFocus() }),
|
||||
trailingIcon = {
|
||||
Icon(painter = painterResource(R.drawable.list_fill0), contentDescription = null,
|
||||
modifier = Modifier
|
||||
.clip(RoundedCornerShape(50))
|
||||
.clickable(onClick = {
|
||||
focusMgr.clearFocus()
|
||||
choosePackage.launch(null)
|
||||
})
|
||||
.padding(3.dp))
|
||||
IconButton({
|
||||
focusMgr.clearFocus()
|
||||
choosePackage.launch(null)
|
||||
}) {
|
||||
Icon(Icons.AutoMirrored.Default.List, stringResource(R.string.package_chooser))
|
||||
}
|
||||
},
|
||||
textStyle = typography.bodyLarge,
|
||||
singleLine = true
|
||||
@@ -173,13 +174,8 @@ private fun HomeScreen(pkgName: String, onNavigate: (Any) -> Unit) {
|
||||
val deviceOwner = context.isDeviceOwner
|
||||
val profileOwner = context.isProfileOwner
|
||||
var suspend by remember { mutableStateOf(false) }
|
||||
suspend = try{ if(VERSION.SDK_INT >= 24) dpm.isPackageSuspended(receiver, pkgName) else false }
|
||||
catch(_: NameNotFoundException) { false }
|
||||
catch(_: IllegalArgumentException) { false }
|
||||
var hide by remember { mutableStateOf(false) }
|
||||
hide = dpm.isApplicationHidden(receiver, pkgName)
|
||||
var blockUninstall by remember { mutableStateOf(false) }
|
||||
blockUninstall = dpm.isUninstallBlocked(receiver,pkgName)
|
||||
var appControlAction by remember { mutableIntStateOf(0) }
|
||||
val focusMgr = LocalFocusManager.current
|
||||
val appControl: (Boolean) -> Unit = {
|
||||
@@ -198,6 +194,13 @@ private fun HomeScreen(pkgName: String, onNavigate: (Any) -> Unit) {
|
||||
3 -> blockUninstall = dpm.isUninstallBlocked(receiver,pkgName)
|
||||
}
|
||||
}
|
||||
LaunchedEffect(pkgName) {
|
||||
suspend = try{ if(VERSION.SDK_INT >= 24) dpm.isPackageSuspended(receiver, pkgName) else false }
|
||||
catch(_: NameNotFoundException) { false }
|
||||
catch(_: IllegalArgumentException) { false }
|
||||
hide = dpm.isApplicationHidden(receiver, pkgName)
|
||||
blockUninstall = dpm.isUninstallBlocked(receiver,pkgName)
|
||||
}
|
||||
Column(
|
||||
modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState())
|
||||
) {
|
||||
|
||||
@@ -20,7 +20,6 @@ import android.app.admin.WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST
|
||||
import android.app.usage.NetworkStats
|
||||
import android.app.usage.NetworkStatsManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager.NameNotFoundException
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.IpConfiguration
|
||||
@@ -82,6 +81,8 @@ import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft
|
||||
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Edit
|
||||
import androidx.compose.material.icons.outlined.Delete
|
||||
import androidx.compose.material.icons.outlined.LocationOn
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
@@ -343,10 +344,12 @@ private fun SavedNetworks(onNavigateToUpdateNetwork: (Bundle) -> Unit) {
|
||||
val wm = context.getSystemService(Context.WIFI_SERVICE) as WifiManager
|
||||
val configuredNetworks = remember { mutableStateListOf<WifiConfiguration>() }
|
||||
var networkDetailsDialog by remember { mutableIntStateOf(-1) } // -1:Hidden, 0+:Index of configuredNetworks
|
||||
val coroutine = rememberCoroutineScope()
|
||||
fun refresh() {
|
||||
configuredNetworks.clear()
|
||||
wm.configuredNetworks.forEach { network ->
|
||||
if(configuredNetworks.none { it.networkId == network.networkId }) configuredNetworks += network
|
||||
coroutine.launch(Dispatchers.IO) {
|
||||
val list = wm.configuredNetworks.distinctBy { it.networkId }
|
||||
withContext(Dispatchers.Main) { configuredNetworks.addAll(list) }
|
||||
}
|
||||
}
|
||||
LaunchedEffect(Unit) { refresh() }
|
||||
@@ -439,6 +442,7 @@ private fun SavedNetworks(onNavigateToUpdateNetwork: (Bundle) -> Unit) {
|
||||
},
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Icon(Icons.Default.Edit, null)
|
||||
Text(stringResource(R.string.edit))
|
||||
}
|
||||
TextButton(
|
||||
@@ -450,6 +454,7 @@ private fun SavedNetworks(onNavigateToUpdateNetwork: (Bundle) -> Unit) {
|
||||
colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.error),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Icon(Icons.Outlined.Delete, null)
|
||||
Text(stringResource(R.string.remove))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +196,9 @@ fun UserInfoScreen(onNavigateUp: () -> Unit) {
|
||||
if(VERSION.SDK_INT >= 23) CardItem(R.string.system_user, userManager.isSystemUser.yesOrNo)
|
||||
if(VERSION.SDK_INT >= 34) CardItem(R.string.admin_user, userManager.isAdminUser.yesOrNo)
|
||||
if(VERSION.SDK_INT >= 25) CardItem(R.string.demo_user, userManager.isDemoUser.yesOrNo)
|
||||
if(VERSION.SDK_INT >= 26) CardItem(R.string.creation_time, parseTimestamp(userManager.getUserCreationTime(user)))
|
||||
if(VERSION.SDK_INT >= 26) userManager.getUserCreationTime(user).let {
|
||||
if(it != 0L) CardItem(R.string.creation_time, parseTimestamp(it))
|
||||
}
|
||||
if (VERSION.SDK_INT >= 28) {
|
||||
CardItem(R.string.logout_enabled, dpm.isLogoutEnabled.yesOrNo)
|
||||
if(context.isDeviceOwner || context.isProfileOwner) {
|
||||
|
||||
Reference in New Issue
Block a user