Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[*.{kt,kts}]
ktlint_function_naming_ignore_when_annotated_with=Composable

[lib/**]
ktlint=disabled
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "lib/hotwire-native-android"]
path = lib/hotwire-native-android
url = https://github.com/aidewoode/hotwire-native-android.git
branch = feat/extend_navigtion_bar
19 changes: 10 additions & 9 deletions androidApp/src/main/java/org/blackcandy/android/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.google.accompanist.themeadapter.material3.Mdc3Theme
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.navigation.NavigationBarView
import dev.hotwire.navigation.activities.HotwireActivity
import dev.hotwire.navigation.navigator.NavigatorConfiguration
import dev.hotwire.navigation.tabs.HotwireBottomNavigationController
import dev.hotwire.navigation.tabs.HotwireBottomTab
import dev.hotwire.navigation.tabs.HotwireNavigationController
import dev.hotwire.navigation.tabs.HotwireTab
import dev.hotwire.navigation.tabs.navigatorConfigurations
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
Expand All @@ -37,15 +37,15 @@ import org.blackcandy.shared.viewmodels.MusicServiceViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel

class MainActivity : HotwireActivity() {
private lateinit var bottomNavigationController: HotwireBottomNavigationController
private lateinit var navigationController: HotwireNavigationController

private val viewModel: MainViewModel by viewModel()

private val musicServiceViewModel: MusicServiceViewModel by viewModel()

private lateinit var binding: ActivityMainBinding
private lateinit var playerBottomSheetBehavior: BottomSheetBehavior<FrameLayout>
private lateinit var mainTabs: List<HotwireBottomTab>
private lateinit var mainTabs: List<HotwireTab>

private val playerBottomSheetCallback by lazy {
object : BottomSheetBehavior.BottomSheetCallback() {
Expand Down Expand Up @@ -242,11 +242,12 @@ class MainActivity : HotwireActivity() {
}

private fun setupBottomTabs() {
val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_nav)
val navigationView: NavigationBarView =
findViewById(R.id.bottom_nav) ?: findViewById(R.id.rail_nav)

bottomNavigationController = HotwireBottomNavigationController(this, bottomNavigationView)
bottomNavigationController.load(mainTabs, viewModel.selectedTabIndex)
bottomNavigationController.setOnTabSelectedListener { index, _ ->
navigationController = HotwireNavigationController(this, navigationView)
navigationController.load(mainTabs, viewModel.selectedTabIndex)
navigationController.setOnTabSelectedListener { index, _ ->
viewModel.selectedTabIndex = index
}
}
Expand Down
8 changes: 4 additions & 4 deletions androidApp/src/main/java/org/blackcandy/android/MainTabs.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package org.blackcandy.android

import dev.hotwire.navigation.navigator.NavigatorConfiguration
import dev.hotwire.navigation.tabs.HotwireBottomTab
import dev.hotwire.navigation.tabs.HotwireTab

fun buildMainTabs(serverAddress: String): List<HotwireBottomTab> =
fun buildMainTabs(serverAddress: String): List<HotwireTab> =
listOf(
HotwireBottomTab(
HotwireTab(
title = "Home",
iconResId = R.drawable.baseline_home_24,
configuration =
Expand All @@ -15,7 +15,7 @@ fun buildMainTabs(serverAddress: String): List<HotwireBottomTab> =
navigatorHostId = R.id.home_container,
),
),
HotwireBottomTab(
HotwireTab(
title = "Library",
iconResId = R.drawable.baseline_library_music_24,
configuration =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.widthIn
import androidx.compose.material3.windowsizeclass.WindowHeightSizeClass
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -22,6 +21,8 @@ import org.blackcandy.shared.models.Song
fun FullPlayer(
modifier: Modifier = Modifier,
windowSizeClass: WindowSizeClass,
inWideLayout: Boolean = false,
inCompactHeight: Boolean = false,
currentSong: Song?,
isPlaying: Boolean,
isLoading: Boolean,
Expand All @@ -34,12 +35,9 @@ fun FullPlayer(
onSeek: (Double) -> Unit,
onModeSwitchButtonClicked: () -> Unit,
onFavoriteButtonClicked: () -> Unit,
onPlaylistButtonClicked: () -> Unit,
onPlaylistButtonClicked: (() -> Unit)? = null,
) {
if (
windowSizeClass.heightSizeClass == WindowHeightSizeClass.Compact &&
windowSizeClass.widthSizeClass != WindowWidthSizeClass.Compact
) {
if (inCompactHeight) {
PlayerHorizontalLayout(
modifier = modifier,
currentSong = currentSong,
Expand All @@ -59,6 +57,7 @@ fun FullPlayer(
} else {
PlayerVerticalLayout(
modifier = modifier,
inWideLayout = inWideLayout,
currentSong = currentSong,
isPlaying = isPlaying,
isLoading = isLoading,
Expand Down Expand Up @@ -92,7 +91,7 @@ fun PlayerHorizontalLayout(
onSeek: (Double) -> Unit,
onModeSwitchButtonClicked: () -> Unit,
onFavoriteButtonClicked: () -> Unit,
onPlaylistButtonClicked: () -> Unit,
onPlaylistButtonClicked: (() -> Unit)? = null,
) {
Row(
modifier =
Expand Down Expand Up @@ -153,6 +152,7 @@ fun PlayerHorizontalLayout(
@Composable
fun PlayerVerticalLayout(
modifier: Modifier,
inWideLayout: Boolean,
currentSong: Song?,
isPlaying: Boolean,
isLoading: Boolean,
Expand All @@ -165,7 +165,7 @@ fun PlayerVerticalLayout(
onSeek: (Double) -> Unit,
onModeSwitchButtonClicked: () -> Unit,
onFavoriteButtonClicked: () -> Unit,
onPlaylistButtonClicked: () -> Unit,
onPlaylistButtonClicked: (() -> Unit)? = null,
isExpandedHeight: Boolean,
) {
Column(
Expand All @@ -175,7 +175,9 @@ fun PlayerVerticalLayout(
.fillMaxWidth()
.padding(horizontal = dimensionResource(R.dimen.padding_small)),
) {
Spacer(modifier = Modifier.weight(1f))
if (!inWideLayout) {
Spacer(modifier = Modifier.weight(1f))
}

Column(
horizontalAlignment = Alignment.CenterHorizontally,
Expand All @@ -195,7 +197,7 @@ fun PlayerVerticalLayout(
modifier =
Modifier
.widthIn(max = dimensionResource(R.dimen.player_content_max_width))
.padding(top = dimensionResource(R.dimen.padding_small)),
.padding(vertical = dimensionResource(R.dimen.padding_small)),
isPlaying = isPlaying,
isLoading = isLoading,
largeIcon = true,
Expand All @@ -210,7 +212,9 @@ fun PlayerVerticalLayout(
)
}

Spacer(modifier = Modifier.weight(1f))
if (!inWideLayout) {
Spacer(modifier = Modifier.weight(1f))
}

PlayerActions(
modifier =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ fun PlayerActions(
isFavorited: Boolean,
onModeSwitchButtonClicked: () -> Unit,
onFavoriteButtonClicked: () -> Unit,
onPlaylistButtonClicked: () -> Unit,
onPlaylistButtonClicked: (() -> Unit)? = null,
) {
Row(
horizontalArrangement = Arrangement.SpaceBetween,
Expand Down Expand Up @@ -53,13 +53,15 @@ fun PlayerActions(
}
}

IconButton(
onClick = onPlaylistButtonClicked,
) {
Icon(
painter = painterResource(R.drawable.baseline_format_list_bulleted_24),
contentDescription = stringResource(R.string.playlist),
)
if (onPlaylistButtonClicked != null) {
IconButton(
onClick = onPlaylistButtonClicked,
) {
Icon(
painter = painterResource(R.drawable.baseline_format_list_bulleted_24),
contentDescription = stringResource(R.string.playlist),
)
}
}
}
}
Expand Down
Loading