Skip to content

Commit

Permalink
Make Compose params Stable;
Browse files Browse the repository at this point in the history
Trim subjects;
Deep links;
  • Loading branch information
vipulyaara committed Aug 6, 2023
1 parent 88c357a commit a9ab452
Show file tree
Hide file tree
Showing 30 changed files with 36,603 additions and 100 deletions.
12 changes: 6 additions & 6 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
android:name="com.kafka.user.KafkaApplication"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:enableOnBackInvokedCallback="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:enableOnBackInvokedCallback="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:testOnly="false"
Expand All @@ -38,15 +38,15 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<intent-filter android:label="filter item deep links">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "app.kafka://item” -->
<data
android:host="item"
android:scheme="app.kafka" />

<data android:scheme="https" />
<data android:host="vipulyaara.github.io" />
<data android:host="www.vipulyaara.github.io" />
</intent-filter>
</activity>

Expand Down
19 changes: 13 additions & 6 deletions app/src/main/java/com/kafka/user/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,42 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.core.view.WindowCompat
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import com.kafka.data.prefs.PreferencesStore
import com.kafka.user.home.MainScreen
import dagger.hilt.android.AndroidEntryPoint
import org.kafka.navigation.deeplink.DynamicDeepLinkHandler
import org.kafka.navigation.rememberBottomSheetNavigator
import ui.common.theme.theme.AppTheme
import ui.common.theme.theme.shouldUseDarkColors
import javax.inject.Inject

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
internal lateinit var dynamicLinkHandler: DynamicDeepLinkHandler

@Inject
internal lateinit var preferencesStore: PreferencesStore

private lateinit var navController: NavHostController

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)

setContent {

val bottomSheetNavigator = rememberBottomSheetNavigator()
navController = rememberNavController(bottomSheetNavigator)
AppTheme(isDarkTheme = preferencesStore.shouldUseDarkColors()) {
MainScreen()
MainScreen(
navController = navController,
bottomSheetNavigator = bottomSheetNavigator
)
}
}
}

override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
dynamicLinkHandler.handleDeepLink(this, intent!!)
navController.handleDeepLink(intent)
}
}
26 changes: 15 additions & 11 deletions app/src/main/java/com/kafka/user/home/AppNavigation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import androidx.navigation.NavController
import androidx.navigation.NavDestination
import androidx.navigation.NavDestination.Companion.hierarchy
import androidx.navigation.NavGraph
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavType
Expand All @@ -30,6 +29,7 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.dialog
import androidx.navigation.compose.navigation
import androidx.navigation.navArgument
import androidx.navigation.navDeepLink
import com.google.accompanist.navigation.material.bottomSheet
import com.kafka.reader.ReaderScreen
import com.kafka.search.SearchScreen
Expand Down Expand Up @@ -65,15 +65,15 @@ internal fun AppNavigation(
is NavigationEvent.Destination -> {
// switch tabs first because of a bug in navigation that doesn't allow
// changing tabs when destination is opened from a different tab
event.root?.route?.let {
navController.navigate(it) {
popUpTo(navController.graph.findStartDestination().id) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
}
// event.root?.route?.let {
// navController.navigate(it) {
// popUpTo(navController.graph.findStartDestination().id) {
// saveState = true
// }
// launchSingleTop = true
// restoreState = true
// }
// }
navController.navigate(event.route)
}

Expand Down Expand Up @@ -182,7 +182,11 @@ private fun NavGraphBuilder.addLibrary(root: RootScreen) {
}

private fun NavGraphBuilder.addItemDetail(root: RootScreen) {
composable(Screen.ItemDetail.createRoute(root)) {
composable(
Screen.ItemDetail.createRoute(root),
arguments = listOf(navArgument("itemId") { type = NavType.StringType }),
deepLinks = listOf(navDeepLink { uriPattern = "${Config.BASE_URL}item/{itemId}" })
) {
ItemDetail()
}
}
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/kafka/user/home/Config.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.kafka.user.home

object Config {
private const val BASE_HOST = "vipulyaara.github.io"
const val BASE_URL = "https://$BASE_HOST/"
}
8 changes: 3 additions & 5 deletions app/src/main/java/com/kafka/user/home/MainScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTagsAsResourceId
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.compose.rememberNavController
import androidx.navigation.NavHostController
import com.google.accompanist.navigation.material.BottomSheetNavigator
import com.google.accompanist.navigation.material.ModalBottomSheetLayout
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted
Expand All @@ -24,14 +25,11 @@ import kotlinx.coroutines.flow.collectLatest
import org.kafka.base.debug
import org.kafka.common.widgets.LocalSnackbarHostState
import org.kafka.navigation.NavigatorHost
import org.kafka.navigation.rememberBottomSheetNavigator
import org.kafka.ui.components.snackbar.SnackbarMessagesHost
import tm.alashow.datmusic.ui.downloader.DownloaderHost

@Composable
fun MainScreen() {
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = rememberNavController(bottomSheetNavigator)
fun MainScreen(navController: NavHostController, bottomSheetNavigator:BottomSheetNavigator) {
val mainViewModel = hiltViewModel<MainViewModel>()

LaunchedEffect(mainViewModel, navController) {
Expand Down
Loading

0 comments on commit a9ab452

Please sign in to comment.