Skip to content

Commit

Permalink
Merge branch 'main' into onakama/add-timetable-gradient
Browse files Browse the repository at this point in the history
  • Loading branch information
onakama authored Sep 4, 2023
2 parents 31bae70 + e92ed90 commit d9e9e75
Show file tree
Hide file tree
Showing 89 changed files with 288 additions and 288 deletions.
4 changes: 2 additions & 2 deletions app-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ dependencies {
implementation(projects.feature.about)
implementation(projects.feature.sponsors)
implementation(projects.feature.floorMap)
implementation(projects.feature.stamps)
implementation(projects.feature.achievements)
implementation(projects.feature.staff)
implementation(projects.core.model)
implementation(projects.core.data)
Expand All @@ -128,7 +128,7 @@ dependencies {
kover(projects.feature.sessions)
kover(projects.feature.sponsors)
kover(projects.feature.staff)
kover(projects.feature.stamps)
kover(projects.feature.achievements)

kover(projects.core.common)
kover(projects.core.data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import io.github.droidkaigi.confsched2023.about.aboutScreenRoute
import io.github.droidkaigi.confsched2023.about.navigateAboutScreen
import io.github.droidkaigi.confsched2023.about.nestedAboutScreen
import io.github.droidkaigi.confsched2023.achievements.achievementsScreenRoute
import io.github.droidkaigi.confsched2023.achievements.navigateAchievementsScreen
import io.github.droidkaigi.confsched2023.achievements.nestedAchievementsScreen
import io.github.droidkaigi.confsched2023.contributors.ContributorsScreen
import io.github.droidkaigi.confsched2023.contributors.ContributorsViewModel
import io.github.droidkaigi.confsched2023.contributors.contributorsScreenRoute
Expand All @@ -42,7 +45,7 @@ import io.github.droidkaigi.confsched2023.floormap.nestedFloorMapScreen
import io.github.droidkaigi.confsched2023.main.MainNestedGraphStateHolder
import io.github.droidkaigi.confsched2023.main.MainScreenTab
import io.github.droidkaigi.confsched2023.main.MainScreenTab.About
import io.github.droidkaigi.confsched2023.main.MainScreenTab.Badges
import io.github.droidkaigi.confsched2023.main.MainScreenTab.Achievements
import io.github.droidkaigi.confsched2023.main.MainScreenTab.FloorMap
import io.github.droidkaigi.confsched2023.main.MainScreenTab.Timetable
import io.github.droidkaigi.confsched2023.main.mainScreen
Expand Down Expand Up @@ -72,9 +75,6 @@ import io.github.droidkaigi.confsched2023.sponsors.navigateSponsorsScreen
import io.github.droidkaigi.confsched2023.sponsors.sponsorsScreen
import io.github.droidkaigi.confsched2023.staff.navigateStaffScreen
import io.github.droidkaigi.confsched2023.staff.staffScreen
import io.github.droidkaigi.confsched2023.stamps.navigateStampsScreen
import io.github.droidkaigi.confsched2023.stamps.nestedStampsScreen
import io.github.droidkaigi.confsched2023.stamps.stampsScreenRoute
import io.github.droidkaigi.confsched2023.ui.handleOnClickIfNotNavigating
import kotlinx.collections.immutable.PersistentList

Expand Down Expand Up @@ -174,8 +174,8 @@ private fun NavGraphBuilder.mainScreen(
onSideEventClick = externalNavController::navigate,
contentPadding = contentPadding,
)
nestedStampsScreen(
onStampsClick = {
nestedAchievementsScreen(
onAchievementsClick = {
// TODO
},
contentPadding = contentPadding,
Expand Down Expand Up @@ -207,7 +207,7 @@ class KaigiAppMainNestedGraphStateHolder : MainNestedGraphStateHolder {
timetableScreenRoute -> Timetable
aboutScreenRoute -> About
floorMapScreenRoute -> FloorMap
stampsScreenRoute -> Badges
achievementsScreenRoute -> Achievements
else -> null
}
}
Expand All @@ -220,7 +220,7 @@ class KaigiAppMainNestedGraphStateHolder : MainNestedGraphStateHolder {
Timetable -> mainNestedNavController.navigateTimetableScreen()
About -> mainNestedNavController.navigateAboutScreen()
FloorMap -> mainNestedNavController.navigateFloorMapScreen()
Badges -> mainNestedNavController.navigateStampsScreen()
Achievements -> mainNestedNavController.navigateAchievementsScreen()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ class KaigiAppTest {
}

@Test
fun checkNavigateToStampsShot() {
fun checkNavigateToAchievementsShot() {
kaigiAppRobot {
goToStamps()
goToAchievements()
capture()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package io.github.droidkaigi.confsched2023.shared
import io.github.droidkaigi.confsched2023.data.auth.AuthApi
import io.github.droidkaigi.confsched2023.data.auth.Authenticator
import io.github.droidkaigi.confsched2023.data.auth.User
import io.github.droidkaigi.confsched2023.data.contributors.StampRepository
import io.github.droidkaigi.confsched2023.data.contributors.AchievementRepository
import io.github.droidkaigi.confsched2023.data.remoteconfig.RemoteConfigApi
import io.github.droidkaigi.confsched2023.data.sessions.SessionCacheDataStore
import io.github.droidkaigi.confsched2023.data.sessions.SessionsApiClient
Expand Down Expand Up @@ -49,7 +49,7 @@ class EntryPointTest {
assertNotNull(kmpEntryPoint.get<SessionCacheDataStore>())

assertNotNull(kmpEntryPoint.get<SessionsRepository>())
assertNotNull(kmpEntryPoint.get<StampRepository>())
assertNotNull(kmpEntryPoint.get<AchievementRepository>())
assertNotNull(kmpEntryPoint.get<ContributorsRepository>())
assertNotNull(kmpEntryPoint.get<SponsorsRepository>())
assertNotNull(kmpEntryPoint.get<StaffRepository>())
Expand Down
6 changes: 3 additions & 3 deletions app-ios/Modules/Sources/KMPContainer/StampDataProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import Dependencies
import shared

public struct StampDataProvider {
private static var stampRepository: StampRepository {
Container.shared.get(type: StampRepository.self)
private static var stampRepository: AchievementRepository {
Container.shared.get(type: AchievementRepository.self)
}

public let stampEnabled: () -> AsyncThrowingStream<Bool, Error>
Expand All @@ -13,7 +13,7 @@ extension StampDataProvider: DependencyKey {
@MainActor
public static var liveValue: StampDataProvider = StampDataProvider(
stampEnabled: {
stampRepository.getStampEnabledStream().stream()
stampRepository.getAchievementEnabledStream().stream()
}
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import io.github.droidkaigi.confsched2023.data.contributors.StampRepository
import io.github.droidkaigi.confsched2023.data.contributors.AchievementRepository
import javax.inject.Singleton

@Module
Expand All @@ -14,8 +14,8 @@ class RemoteConfigRepositoryModule {
@Singleton
fun provideRemoteConfigRepository(
remoteConfigApi: RemoteConfigApi,
): StampRepository {
return DefaultStampRepository(
): AchievementRepository {
return DefaultAchievementRepository(
remoteConfigApi = remoteConfigApi,
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package io.github.droidkaigi.confsched2023.data.remoteconfig

import io.github.droidkaigi.confsched2023.data.contributors.AchievementRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.onStart

class DefaultAchievementRepository(
private val remoteConfigApi: RemoteConfigApi,
) : AchievementRepository {
private val isAchievementsEnabledStateFlow: MutableStateFlow<Boolean> = MutableStateFlow(false)
private val achievementDetailDescriptionStateFlow: MutableStateFlow<String> = MutableStateFlow("")

private suspend fun fetchAchievementsEnabled() {
isAchievementsEnabledStateFlow.value = remoteConfigApi.getBoolean(IS_STAMPS_ENABLED_KEY)
}

private suspend fun fetchAchievementDetailDescription() {
achievementDetailDescriptionStateFlow.value =
remoteConfigApi.getString(ACHIEVEMENTS_DETAIL_DESCRIPTION_KEY)
}

override fun getAchievementEnabledStream(): Flow<Boolean> {
return isAchievementsEnabledStateFlow.onStart { fetchAchievementsEnabled() }
}

override fun getAchievementDetailDescriptionStream(): Flow<String> {
return achievementDetailDescriptionStateFlow.onStart { fetchAchievementDetailDescription() }
}

companion object {
const val IS_STAMPS_ENABLED_KEY = "is_stamps_enable"
const val ACHIEVEMENTS_DETAIL_DESCRIPTION_KEY = "achievements_detail_description"
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package io.github.droidkaigi.confsched2023.data
import de.jensklingenberg.ktorfit.Ktorfit
import io.github.droidkaigi.confsched2023.data.auth.AuthApi
import io.github.droidkaigi.confsched2023.data.auth.DefaultAuthApi
import io.github.droidkaigi.confsched2023.data.contributors.AchievementRepository
import io.github.droidkaigi.confsched2023.data.contributors.ContributorsApiClient
import io.github.droidkaigi.confsched2023.data.contributors.DefaultContributorsApiClient
import io.github.droidkaigi.confsched2023.data.contributors.DefaultContributorsRepository
import io.github.droidkaigi.confsched2023.data.contributors.StampRepository
import io.github.droidkaigi.confsched2023.data.core.defaultJson
import io.github.droidkaigi.confsched2023.data.core.defaultKtorConfig
import io.github.droidkaigi.confsched2023.data.remoteconfig.DefaultStampRepository
import io.github.droidkaigi.confsched2023.data.remoteconfig.DefaultAchievementRepository
import io.github.droidkaigi.confsched2023.data.sessions.DefaultSessionsApiClient
import io.github.droidkaigi.confsched2023.data.sessions.DefaultSessionsRepository
import io.github.droidkaigi.confsched2023.data.sessions.SessionCacheDataStore
Expand Down Expand Up @@ -102,7 +102,7 @@ public val dataModule: Module = module {
singleOf(::NetworkService)
singleOf(::DefaultSessionsRepository) bind SessionsRepository::class
singleOf(::DefaultContributorsRepository) bind ContributorsRepository::class
singleOf(::DefaultStampRepository) bind StampRepository::class
singleOf(::DefaultAchievementRepository) bind AchievementRepository::class
singleOf(::DefaultStaffRepository) bind StaffRepository::class
singleOf(::DefaultSponsorsRepository) bind SponsorsRepository::class
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package io.github.droidkaigi.confsched2023.data.contributors

import kotlinx.coroutines.flow.Flow

interface AchievementRepository {

fun getAchievementEnabledStream(): Flow<Boolean>
fun getAchievementDetailDescriptionStream(): Flow<String>
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.droidkaigi.confsched2023.model

data class Stamp(
data class Achievement(
val hasDrawableResId: Int,
val lottieRawId: Int,
val notHasDrawableResId: Int,
val hasStamp: Boolean = false,
val hasAchievement: Boolean = false,
val contentDescription: String,
) {
fun getDrawableResId() = if (hasStamp) hasDrawableResId else notHasDrawableResId
fun getDrawableResId() = if (hasAchievement) hasDrawableResId else notHasDrawableResId
}
2 changes: 1 addition & 1 deletion core/testing/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies {
implementation(projects.feature.about)
implementation(projects.feature.sponsors)
implementation(projects.feature.floorMap)
implementation(projects.feature.stamps)
implementation(projects.feature.achievements)
implementation(projects.feature.staff)
implementation(libs.daggerHiltAndroidTesting)
implementation(libs.roborazzi)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,33 @@ import androidx.compose.ui.test.onRoot
import androidx.compose.ui.test.performTouchInput
import androidx.compose.ui.test.swipeUp
import com.github.takahirom.roborazzi.captureRoboImage
import io.github.droidkaigi.confsched2023.achievements.AchievementsScreen
import io.github.droidkaigi.confsched2023.designsystem.theme.KaigiTheme
import io.github.droidkaigi.confsched2023.stamps.StampsScreen
import io.github.droidkaigi.confsched2023.testing.RobotTestRule
import io.github.droidkaigi.confsched2023.testing.coroutines.runTestWithLogging
import kotlinx.coroutines.test.TestDispatcher
import javax.inject.Inject
import kotlin.time.Duration.Companion.seconds

class StampsScreenRobot @Inject constructor(
class AchievementsScreenRobot @Inject constructor(
private val testDispatcher: TestDispatcher,
) {
@Inject lateinit var robotTestRule: RobotTestRule
private lateinit var composeTestRule: AndroidComposeTestRule<*, *>
operator fun invoke(
block: StampsScreenRobot.() -> Unit,
block: AchievementsScreenRobot.() -> Unit,
) {
runTestWithLogging(timeout = 30.seconds) {
this@StampsScreenRobot.composeTestRule = robotTestRule.composeTestRule
this@AchievementsScreenRobot.composeTestRule = robotTestRule.composeTestRule
block()
}
}

fun setupScreenContent() {
composeTestRule.setContent {
KaigiTheme {
StampsScreen(
onStampsClick = { },
AchievementsScreen(
onAchievementsClick = { },
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ class KaigiAppRobot @Inject constructor(
waitUntilIdle()
}

fun goToStamps() {
fun goToAchievements() {
composeTestRule
.onNode(hasTestTag(MainScreenTab.Badges.testTag))
.onNode(hasTestTag(MainScreenTab.Achievements.testTag))
.performClick()
waitUntilIdle()
}
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ plugins {
id("droidkaigi.convention.androidfeature")
}

android.namespace = "io.github.droidkaigi.confsched2023.feature.stamps"
android.namespace = "io.github.droidkaigi.confsched2023.feature.achievements"

dependencies {
implementation(projects.core.designsystem)
Expand Down
File renamed without changes.
Loading

0 comments on commit d9e9e75

Please sign in to comment.