Model overlay permissions and persistent settings for service tests
This commit is contained in:
1 parent
ce756ed6a9
commit
263d1348ec
3 files changed
+19
-1
No files matched your search
@@ -6,8 +6,12 @@ import android.media.AudioAttributes
|
||||
/** Host-модель SDK/главной очереди: callbacks и их доставку тест контролирует явно, без настоящего Android Looper. */
|
||||
object Build {
|
||||
object VERSION { var SDK_INT = 36 }
|
||||
object VERSION_CODES { const val O = 26; const val P = 28; const val S = 31; const val TIRAMISU = 33; const val UPSIDE_DOWN_CAKE = 34 }
|
||||
object VERSION_CODES {
|
||||
const val M = 23; const val O = 26; const val P = 28; const val R = 30; const val S = 31
|
||||
const val TIRAMISU = 33; const val UPSIDE_DOWN_CAKE = 34
|
||||
}
|
||||
}
|
||||
interface IBinder
|
||||
class Looper private constructor() {
|
||||
private data class Task(val handler: Handler, val runnable: Runnable, val deadline: Long)
|
||||
private val tasks = ConcurrentLinkedQueue<Task>()
|
||||
|
||||
@@ -2,6 +2,12 @@ package android.provider
|
||||
|
||||
/** Имена настоящих Android actions; host-тест проверяет target/порядок и не открывает системный UI. */
|
||||
object Settings {
|
||||
var overlayAllowed = true
|
||||
var failOverlayQuery = false
|
||||
fun canDrawOverlays(context: android.content.Context): Boolean {
|
||||
check(!failOverlayQuery) { "overlay permission query unavailable" }
|
||||
return overlayAllowed
|
||||
}
|
||||
const val ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
|
||||
const val ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS = "android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS"
|
||||
}
|
||||
+8
@@ -161,6 +161,14 @@ object NativeLib {
|
||||
|
||||
/** Управляемая подготовка конфига: тест удерживает реальный worker, считает перекрытия и затем дожидается его завершения. */
|
||||
class HostConfigProvider {
|
||||
var radioOverlay = false
|
||||
var failOverlayWrite = false
|
||||
fun getRadioOverlay() = radioOverlay
|
||||
suspend fun setRadioOverlay(enabled: Boolean) {
|
||||
check(!failOverlayWrite) { "overlay settings write unavailable" }
|
||||
radioOverlay = enabled
|
||||
}
|
||||
fun getInt(key: String): Int { check(key == "radio.auto_enabled"); return if (radioSettings.enabled) 1 else 0 }
|
||||
var radioSettings = RadioAutoSettings()
|
||||
var failRadioSettings = false
|
||||
fun getRadioAutoSettings(): RadioAutoSettings {
|
||||
|
||||
Reference in new issue
Block a user