Skip to content

Commit

Permalink
Update kotlin, migrate from accompanist navigation, use JD 17
Browse files Browse the repository at this point in the history
  • Loading branch information
AfzalivE committed Oct 5, 2023
1 parent 0483ae4 commit 38be05f
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 37 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -8,7 +8,7 @@ buildscript {
plugins {
id 'com.android.application' version '8.0.2' apply false
id 'com.android.library' version '8.0.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
id 'org.jetbrains.kotlin.android' version '1.9.10' apply false
id 'com.android.test' version '8.0.2' apply false
}

Expand Down
6 changes: 3 additions & 3 deletions macrobenchmark/build.gradle
Expand Up @@ -8,12 +8,12 @@ android {
compileSdk 33

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "17"
}

defaultConfig {
Expand Down
6 changes: 3 additions & 3 deletions mobile/build.gradle
Expand Up @@ -23,11 +23,11 @@ android {
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '1.8'
jvmTarget = '17'
}

buildFeatures {
Expand Down
1 change: 0 additions & 1 deletion settings.gradle
Expand Up @@ -28,7 +28,6 @@ dependencyResolutionManagement {
password = githubProperties.get("gh_token") as String
}
}
maven { url 'https://androidx.dev/snapshots/builds/9103416/artifacts/repository' }
}
}
rootProject.name = "Best Tv Launcher"
Expand Down
20 changes: 9 additions & 11 deletions tv/build.gradle
@@ -1,16 +1,16 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'com.google.devtools.ksp' version '1.7.10-1.0.6'
id 'com.google.devtools.ksp' version '1.9.10-1.0.13'
}

android {
compileSdk 33
compileSdk 34

defaultConfig {
applicationId "com.afzaln.besttvlauncher"
minSdk 29
targetSdk 33
targetSdk 34
versionCode 1
versionName "1.0"
vectorDrawables {
Expand Down Expand Up @@ -62,13 +62,12 @@ android {
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs += ["-Xjvm-default=enable"]
jvmTarget = "17"

if (project.findProperty("com.afzaln.besttvlauncher.enableComposeCompilerReports") == "true") {
freeCompilerArgs += [
Expand All @@ -89,7 +88,7 @@ android {
}

composeOptions {
kotlinCompilerExtensionVersion '1.3.0'
kotlinCompilerExtensionVersion '1.5.3'
}

packagingOptions {
Expand Down Expand Up @@ -138,12 +137,11 @@ dependencies {
implementation("androidx.compose.material3:material3:1.1.0-alpha02")
implementation("androidx.compose.material:material:$compose_version")
implementation("androidx.compose.foundation:foundation:$compose_version")
implementation("androidx.navigation:navigation-compose:2.5.3")
implementation("androidx.navigation:navigation-compose:2.7.4")
implementation("io.coil-kt:coil-compose:2.2.2")
implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")
implementation("androidx.tv:tv-foundation:1.0.0-SNAPSHOT")
implementation("androidx.tv:tv-foundation:1.0.0-alpha10")

implementation("com.google.accompanist:accompanist-navigation-animation:0.27.0")
implementation("com.google.accompanist:accompanist-pager:0.27.0")
implementation("com.google.accompanist:accompanist-placeholder:0.27.0")
implementation "com.google.accompanist:accompanist-drawablepainter:0.27.0"
Expand Down
33 changes: 15 additions & 18 deletions tv/src/main/java/com/afzaln/besttvlauncher/ui/home/HomeScreen.kt
@@ -1,6 +1,6 @@
package com.afzaln.besttvlauncher.ui.home

import androidx.compose.animation.AnimatedContentScope
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.LinearEasing
Expand Down Expand Up @@ -28,11 +28,13 @@ import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavBackStackEntry
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import androidx.palette.graphics.Palette
import com.afzaln.besttvlauncher.ui.Apps
import com.afzaln.besttvlauncher.ui.Channels
Expand All @@ -46,18 +48,15 @@ import com.afzaln.besttvlauncher.utils.emptyPalette
import com.afzaln.besttvlauncher.utils.locatorViewModel
import com.afzaln.besttvlauncher.utils.navigateSingleTopTo
import com.afzaln.besttvlauncher.utils.navigateToItemDetails
import com.google.accompanist.navigation.animation.AnimatedNavHost
import com.google.accompanist.navigation.animation.composable
import com.google.accompanist.navigation.animation.rememberAnimatedNavController

@OptIn(ExperimentalAnimationApi::class, ExperimentalLifecycleComposeApi::class)
@OptIn(ExperimentalAnimationApi::class)
@Composable
fun HomeScreen() {
val tabs = listOf(Channels, Apps)
val viewModel: HomeViewModel = locatorViewModel()
val state by viewModel.state.collectAsStateWithLifecycle(HomeViewModel.State.Loading)

val navController = rememberAnimatedNavController()
val navController = rememberNavController()
val currentBackStack by navController.currentBackStackEntryAsState()
val currentDestination = currentBackStack?.destination
val currentTab = tabs.find { it.route == currentDestination?.route } ?: Channels
Expand Down Expand Up @@ -89,17 +88,17 @@ fun HomeScreen() {
onTabSelected = { navController.navigateSingleTopTo(it.route) }
)

AnimatedNavHost(
NavHost(
navController = navController,
startDestination = Channels.route,
) {
composable(
route = Channels.route,
enterTransition = {
tabEnterTransition(AnimatedContentScope.SlideDirection.End)
tabEnterTransition(AnimatedContentTransitionScope.SlideDirection.End)
},
exitTransition = {
tabExitTransition(AnimatedContentScope.SlideDirection.Start)
tabExitTransition(AnimatedContentTransitionScope.SlideDirection.Start)
}
) {
ChannelsScreen(
Expand All @@ -114,10 +113,10 @@ fun HomeScreen() {

composable(route = Apps.route,
enterTransition = {
tabEnterTransition(AnimatedContentScope.SlideDirection.Start)
tabEnterTransition(AnimatedContentTransitionScope.SlideDirection.Start)
},
exitTransition = {
tabExitTransition(AnimatedContentScope.SlideDirection.End)
tabExitTransition(AnimatedContentTransitionScope.SlideDirection.End)
}
) {
AppsScreen(state)
Expand Down Expand Up @@ -147,19 +146,17 @@ private fun Modifier.animatedBackground(
then(background(animatedBackgroundColor))
}

@OptIn(ExperimentalAnimationApi::class)
private fun AnimatedContentScope<NavBackStackEntry>.tabExitTransition(
slideDirection: AnimatedContentScope.SlideDirection,
private fun AnimatedContentTransitionScope<NavBackStackEntry>.tabExitTransition(
slideDirection: AnimatedContentTransitionScope.SlideDirection,
duration: Int = 500
) = fadeOut(tween(duration / 2, easing = LinearEasing)) + slideOutOfContainer(
slideDirection,
tween(duration, easing = LinearEasing),
targetOffset = { it / 24 }
)

@OptIn(ExperimentalAnimationApi::class)
private fun AnimatedContentScope<NavBackStackEntry>.tabEnterTransition(
slideDirection: AnimatedContentScope.SlideDirection,
private fun AnimatedContentTransitionScope<NavBackStackEntry>.tabEnterTransition(
slideDirection: AnimatedContentTransitionScope.SlideDirection,
duration: Int = 500,
delay: Int = duration - 350
) = fadeIn(tween(duration, duration - delay)) + slideIntoContainer(
Expand Down

0 comments on commit 38be05f

Please sign in to comment.