package com.remotedisplay.player import android.Manifest import android.accessibilityservice.AccessibilityServiceInfo import android.annotation.SuppressLint import android.app.NotificationManager import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Build import android.os.PowerManager import android.os.Bundle import android.provider.Settings import android.view.View import android.view.WindowManager import android.view.accessibility.AccessibilityManager import android.widget.Button import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.remotedisplay.player.service.PowerAccessibilityService class SetupActivity : AppCompatActivity() { private lateinit var accessibilityStatus: TextView private lateinit var installStatus: TextView private lateinit var notificationStatus: TextView private lateinit var enableAccessibilityBtn: Button private lateinit var enableInstallBtn: Button private lateinit var fullscreenStatus: TextView private lateinit var enableFullscreenBtn: Button private lateinit var batteryStatus: TextView private lateinit var enableBatteryBtn: Button private lateinit var overlayStatus: TextView private lateinit var enableOverlayBtn: Button private lateinit var continueBtn: Button @SuppressLint("BatteryLife") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Skip setup if already completed val prefs = getSharedPreferences("remote_display", MODE_PRIVATE) if (prefs.getBoolean("setup_complete", false)) { proceedToNext() return } setContentView(R.layout.activity_setup) // App's UI is up — clear the boot "Starting display…" notification. getSystemService(NotificationManager::class.java)?.cancel(999) @Suppress("DEPRECATION") window.decorView.systemUiVisibility = ( View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) accessibilityStatus = findViewById(R.id.accessibilityStatus) installStatus = findViewById(R.id.installStatus) notificationStatus = findViewById(R.id.notificationStatus) enableAccessibilityBtn = findViewById(R.id.enableAccessibilityBtn) enableInstallBtn = findViewById(R.id.enableInstallBtn) continueBtn = findViewById(R.id.continueBtn) // Show notification row on Android 13+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { findViewById(R.id.notificationRow).visibility = View.VISIBLE findViewById