@@ -12,37 +12,15 @@ import android.widget.Toast
1212import androidx.activity.ComponentActivity
1313import androidx.activity.compose.setContent
1414import androidx.activity.result.contract.ActivityResultContracts
15- import androidx.compose.foundation.Image
16- import androidx.compose.foundation.layout.Row
17- import androidx.compose.foundation.layout.Spacer
18- import androidx.compose.foundation.layout.WindowInsets
1915import androidx.compose.foundation.layout.fillMaxSize
2016import androidx.compose.foundation.layout.padding
21- import androidx.compose.foundation.layout.size
22- import androidx.compose.foundation.layout.statusBars
23- import androidx.compose.foundation.layout.width
24- import androidx.compose.foundation.layout.windowInsetsPadding
25- import androidx.compose.material.icons.rounded.HelpOutline
2617import androidx.compose.material3.ExperimentalMaterial3Api
27- import androidx.compose.material3.Icon
28- import androidx.compose.material3.IconButton
29- import androidx.compose.material3.IconButtonDefaults
3018import androidx.compose.material3.MaterialTheme
3119import androidx.compose.material3.Scaffold
32- import androidx.compose.material3.Text
33- import androidx.compose.material3.Surface
3420import androidx.compose.runtime.LaunchedEffect
3521import androidx.compose.runtime.collectAsState
3622import androidx.compose.runtime.getValue
37- import androidx.compose.runtime.mutableStateOf
38- import androidx.compose.runtime.remember
39- import androidx.compose.runtime.setValue
4023import androidx.compose.ui.Modifier
41- import androidx.compose.ui.graphics.ColorFilter
42- import androidx.compose.ui.input.nestedscroll.nestedScroll
43- import androidx.compose.ui.layout.ContentScale
44- import androidx.compose.ui.res.painterResource
45- import androidx.compose.ui.unit.dp
4624import androidx.core.animation.doOnEnd
4725import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
4826import androidx.navigation.compose.NavHost
@@ -52,7 +30,6 @@ import com.sameerasw.airsync.data.local.DataStoreManager
5230import com.sameerasw.airsync.presentation.ui.activities.QRScannerActivity
5331import com.sameerasw.airsync.presentation.ui.screens.AirSyncMainScreen
5432import com.sameerasw.airsync.ui.theme.AirSyncTheme
55- import com.sameerasw.airsync.presentation.viewmodel.AirSyncViewModel
5633import com.sameerasw.airsync.utils.AdbMdnsDiscovery
5734import com.sameerasw.airsync.utils.ContentCaptureManager
5835import com.sameerasw.airsync.utils.DevicePreviewResolver
@@ -246,7 +223,8 @@ class MainActivity : ComponentActivity() {
246223 this @MainActivity,
247224 R .color.material_primary
248225 )
249- splashIcon.imageTintList = android.content.res.ColorStateList .valueOf(colorPrimary)
226+ splashIcon.imageTintList =
227+ android.content.res.ColorStateList .valueOf(colorPrimary)
250228 Log .d(" MainActivity" , " Switched to device icon with primary tint" )
251229
252230 // Fade in the new device icon
@@ -299,28 +277,28 @@ class MainActivity : ComponentActivity() {
299277 fadeOutIcon.start()
300278 } else {
301279 // No device icon found, or splashIcon is null/not ImageView (OEM device compatibility)
302- // Proceed directly to outro after a brief hold
303- try {
304- splashScreenView.postDelayed({
305- startOutroAnimation(
306- splashScreenView,
307- splashIcon,
308- splashScreenViewProvider
309- )
310- }, 500 )
311- } catch (e: Exception ) {
312- Log .e(
313- " MainActivity" ,
314- " Error scheduling outro with no icon: ${e.message} " ,
315- e
316- )
317- // Fallback: start outro immediately
280+ // Proceed directly to outro after a brief hold
281+ try {
282+ splashScreenView.postDelayed({
318283 startOutroAnimation(
319284 splashScreenView,
320285 splashIcon,
321286 splashScreenViewProvider
322287 )
323- }
288+ }, 500 )
289+ } catch (e: Exception ) {
290+ Log .e(
291+ " MainActivity" ,
292+ " Error scheduling outro with no icon: ${e.message} " ,
293+ e
294+ )
295+ // Fallback: start outro immediately
296+ startOutroAnimation(
297+ splashScreenView,
298+ splashIcon,
299+ splashScreenViewProvider
300+ )
301+ }
324302 }
325303 } catch (e: Exception ) {
326304 // Fallback for any unexpected exceptions during animation
@@ -344,7 +322,10 @@ class MainActivity : ComponentActivity() {
344322 AdbDiscoveryHolder .initialize(this )
345323 Log .d(" MainActivity" , " Started persistent ADB discovery at app startup" )
346324 } else {
347- Log .d(" MainActivity" , " Skipping persistent ADB discovery at startup: ACCESS_LOCAL_NETWORK permission not granted" )
325+ Log .d(
326+ " MainActivity" ,
327+ " Skipping persistent ADB discovery at startup: ACCESS_LOCAL_NETWORK permission not granted"
328+ )
348329 }
349330
350331 // Check if this is a QS tile long-press intent and device is not connected
@@ -412,7 +393,8 @@ class MainActivity : ComponentActivity() {
412393 modifier = Modifier .padding(innerPadding)
413394 ) {
414395 composable(" main" ) {
415- val initialPage = if (intent?.action == ShortcutUtil .DASH_ACTION_REMOTE ) 1 else 0
396+ val initialPage =
397+ if (intent?.action == ShortcutUtil .DASH_ACTION_REMOTE ) 1 else 0
416398 AirSyncMainScreen (
417399 initialIp = ip,
418400 initialPort = port,
0 commit comments