diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d44540ecb..2b89b063a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,7 +28,7 @@ diff --git a/app/src/main/java/me/ash/reader/infrastructure/android/MainActivity.kt b/app/src/main/java/me/ash/reader/infrastructure/android/MainActivity.kt index 06fcc6122..9d45ca2ae 100644 --- a/app/src/main/java/me/ash/reader/infrastructure/android/MainActivity.kt +++ b/app/src/main/java/me/ash/reader/infrastructure/android/MainActivity.kt @@ -44,6 +44,8 @@ class MainActivity : AppCompatActivity() { @Inject lateinit var accountDao: AccountDao + private var subscribeViewModel: SubscribeViewModel? = null + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.i("RLog", "onCreate: ${ProfileInstallerInitializer().create(this)}") @@ -87,24 +89,31 @@ class MainActivity : AppCompatActivity() { ) { AccountSettingsProvider(accountDao) { SettingsProvider { - val subscribeViewModel: SubscribeViewModel = hiltViewModel() - DisposableEffect(this) { - val listener = Consumer { intent -> - intent.getTextOrNull()?.let { - subscribeViewModel.handleSharedUrlFromIntent(it) - } - } - addOnNewIntentListener(listener) - onDispose { - removeOnNewIntentListener(listener) - } + val viewModel: SubscribeViewModel = hiltViewModel() + subscribeViewModel = viewModel + + // Handle the initial intent + intent?.getTextOrNull()?.let { + viewModel.handleSharedUrlFromIntent(it) } - HomeEntry(subscribeViewModel = subscribeViewModel) + + HomeEntry(subscribeViewModel = viewModel) } } } } } + + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + setIntent(intent) // Store the new intent + // Only process if viewModel is ready + if (subscribeViewModel != null) { + intent.getTextOrNull()?.let { + subscribeViewModel?.handleSharedUrlFromIntent(it) + } + } + } } private fun Intent.getTextOrNull(): String? {