Files
packages_apps_Settings/src/com/android/settings/security/applock/AppLockHideAppPC.kt
jhonboy121 edadced2f0 Settings: Introduce App Lock [3/4]
Squashed:

* AppLockCredentialActivity is a stripped down version of ConfirmDeviceCredentialActivity in Settings

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>

Settings: applock: adapt for API changes

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>

Settings: use a new task stack for app lock fragments

* fixes fragments staying in recents on going home
* also made other preferences do binder calls asynchronously

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>

Settings: applock: fix unlock prompt disappearing when trying to open apps

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>

Settings: applock: add hidden app settings

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>

AppLockPackageConfigFragment: allow launching app from app icon

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>

FlamingoSettings: applock: early return in setChecked if backing field has the same value

Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>

Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>

[nift4: drop useless plurals.xml, make timeout values translatable]

* Dhina17 <dhinalogu@gmail.com>
        applock: Adapt for Android 14

Change-Id: I85d72ee72353417ead528483bbbe1ac1e6860063
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2025-12-10 00:41:29 +09:00

70 lines
2.2 KiB
Kotlin

/*
* Copyright (C) 2022 FlamingoOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.security.applock
import android.app.AppLockManager
import android.content.Context
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
private const val KEY = "hide_from_launcher"
class AppLockHideAppPC(
context: Context,
private val packageName: String,
private val coroutineScope: CoroutineScope
) : AppLockTogglePreferenceController(context, KEY) {
private val appLockManager = context.getSystemService(AppLockManager::class.java)
private var hideFromLauncher = AppLockManager.DEFAULT_HIDE_IN_LAUNCHER
private var preference: Preference? = null
init {
coroutineScope.launch {
hideFromLauncher = withContext(Dispatchers.Default) {
appLockManager.hiddenPackages.any { it == packageName }
}
preference?.let {
updateState(it)
}
}
}
override fun getAvailabilityStatus() = AVAILABLE
override fun isChecked() = hideFromLauncher
override fun setChecked(checked: Boolean): Boolean {
if (hideFromLauncher == checked) return false
hideFromLauncher = checked
coroutineScope.launch(Dispatchers.Default) {
appLockManager.setPackageHidden(packageName, hideFromLauncher)
}
return true
}
override fun displayPreference(screen: PreferenceScreen) {
super.displayPreference(screen)
preference = screen.findPreference(preferenceKey)
}
}