diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 8265694a..fd582e07 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -55,6 +55,7 @@ dependencies {
implementation(project(":core:data"))
implementation(project(":feature:book_detail"))
implementation(project(":feature:books"))
+ implementation(project(":feature:settings"))
implementation(project(":feature:profile"))
implementation(project(":feature:add_book"))
implementation(project(":feature:my_books"))
diff --git a/app/src/main/java/com/githukudenis/comlib/MainActivity.kt b/app/src/main/java/com/githukudenis/comlib/MainActivity.kt
index 8cea9f78..34c6e71c 100644
--- a/app/src/main/java/com/githukudenis/comlib/MainActivity.kt
+++ b/app/src/main/java/com/githukudenis/comlib/MainActivity.kt
@@ -22,6 +22,9 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatDelegate
+import androidx.compose.animation.AnimatedVisibility
+import androidx.compose.animation.slideInVertically
+import androidx.compose.animation.slideOutVertically
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBar
@@ -31,6 +34,7 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
@@ -40,6 +44,7 @@ import androidx.core.view.WindowCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
+import com.githukudenis.comlib.app.AppState
import com.githukudenis.comlib.app.rememberAppState
import com.githukudenis.comlib.core.designsystem.ui.theme.ComLibTheme
import com.githukudenis.comlib.core.model.ThemeConfig
@@ -80,52 +85,7 @@ class MainActivity : ComponentActivity() {
Surface {
Scaffold(
snackbarHost = { SnackbarHost(hostState = appState.snackbarHostState) },
- bottomBar = {
- // Only show bottom bar on routes in home graph
- if (
- appState.currentDestination?.route == HomeDestination.Home.route ||
- appState.currentDestination?.route == HomeDestination.Books.route ||
- appState.currentDestination?.route == HomeDestination.Groups.route
- ) {
- NavigationBar(containerColor = MaterialTheme.colorScheme.background) {
- val homeGraphDestinations =
- listOf(HomeDestination.Home, HomeDestination.Books, HomeDestination.Groups)
- homeGraphDestinations.forEach { destination ->
- NavigationBarItem(
- onClick = {
- appState.navigate(destination.route, destination.route, inclusive = true)
- },
- selected = appState.currentDestination?.route == destination.route,
- icon = {
- (if (destination.route == appState.currentDestination?.route) {
- destination.selectedIcon
- } else destination.unselectedIcon)
- ?.let {
- Icon(
- painter = painterResource(it),
- contentDescription = destination.label
- )
- }
- },
- colors =
- NavigationBarItemDefaults.colors(
- // indicatorColor =
- // MaterialTheme.colorScheme.secondaryContainer.copy(0.4f)
- ),
- label = {
- destination.label?.let {
- Text(
- text = it,
- style = MaterialTheme.typography.labelMedium,
- fontWeight = FontWeight.Medium
- )
- }
- }
- )
- }
- }
- }
- }
+ bottomBar = { ComlibBottomNavigationBar(appState) }
) {
ComlibNavGraph(
appState = appState,
@@ -166,3 +126,59 @@ class MainActivity : ComponentActivity() {
}
}
}
+
+@Composable
+fun ComlibBottomNavigationBar(appState: AppState) {
+ // Only show bottom bar on routes in home graph
+ AnimatedVisibility(
+ enter =
+ slideInVertically(
+ initialOffsetY = { fullHeight -> fullHeight } // Slide in from bottom
+ ),
+ exit =
+ slideOutVertically(
+ targetOffsetY = { fullHeight -> fullHeight } // Slide out downwards
+ ),
+ visible =
+ appState.currentDestination?.route == HomeDestination.Home.route ||
+ appState.currentDestination?.route == HomeDestination.Books.route ||
+ appState.currentDestination?.route == HomeDestination.Groups.route ||
+ appState.currentDestination?.route == HomeDestination.Settings.route
+ ) {
+ NavigationBar(containerColor = MaterialTheme.colorScheme.background) {
+ val homeGraphDestinations =
+ listOf(
+ HomeDestination.Home,
+ HomeDestination.Books,
+ HomeDestination.Groups,
+ HomeDestination.Settings
+ )
+ homeGraphDestinations.forEach { destination ->
+ NavigationBarItem(
+ onClick = { appState.navigate(destination.route, destination.route, inclusive = true) },
+ selected = appState.currentDestination?.route == destination.route,
+ icon = {
+ (if (destination.route == appState.currentDestination?.route) {
+ destination.selectedIcon
+ } else destination.unselectedIcon)
+ ?.let { Icon(painter = painterResource(it), contentDescription = destination.label) }
+ },
+ colors =
+ NavigationBarItemDefaults.colors(
+ // indicatorColor =
+ // MaterialTheme.colorScheme.secondaryContainer.copy(0.4f)
+ ),
+ label = {
+ destination.label?.let {
+ Text(
+ text = it,
+ style = MaterialTheme.typography.labelMedium,
+ fontWeight = FontWeight.Medium
+ )
+ }
+ }
+ )
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/githukudenis/comlib/navigation/HomeNavGraph.kt b/app/src/main/java/com/githukudenis/comlib/navigation/HomeNavGraph.kt
index d2f01539..d63c50d0 100644
--- a/app/src/main/java/com/githukudenis/comlib/navigation/HomeNavGraph.kt
+++ b/app/src/main/java/com/githukudenis/comlib/navigation/HomeNavGraph.kt
@@ -17,6 +17,7 @@
package com.githukudenis.comlib.navigation
import androidx.annotation.DrawableRes
+import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
@@ -33,6 +34,7 @@ import com.githukudenis.comlib.app.AppState
import com.githukudenis.comlib.core.designsystem.ui.theme.LocalDimens
import com.githukudenis.comlib.feature.books.BooksRoute
import com.githukudenis.comlib.feature.home.HomeRoute
+import com.githukudenis.comlib.feature.settings.SettingsRoute
fun NavGraphBuilder.homeNavGraph(
appState: AppState,
@@ -91,6 +93,26 @@ fun NavGraphBuilder.homeNavGraph(
onNavigateUp = { appState.popBackStack() }
)
}
+ composable(
+ enterTransition = {
+ slideIntoContainer(towards = AnimatedContentTransitionScope.SlideDirection.Left)
+ },
+ exitTransition = {
+ slideOutOfContainer(towards = AnimatedContentTransitionScope.SlideDirection.Right)
+ },
+ route = HomeDestination.Settings.route
+ ) {
+ SettingsRoute(
+ onNavigateUp = { appState.popBackStack() },
+ onOpenEditProfile = {
+ appState.navigate(
+ route = ComlibDestination.Profile.route,
+ popUpTo = ComlibDestination.Profile.route,
+ inclusive = true
+ )
+ }
+ )
+ }
}
}
@@ -123,4 +145,12 @@ sealed class HomeDestination(
selectedIcon = R.drawable.people_filled,
unselectedIcon = R.drawable.people_outlined
)
+
+ data object Settings :
+ HomeDestination(
+ route = "settings",
+ label = "Settings",
+ selectedIcon = R.drawable.settings_filled,
+ unselectedIcon = R.drawable.settings_outlined
+ )
}
diff --git a/app/src/main/res/drawable/settings_filled.xml b/app/src/main/res/drawable/settings_filled.xml
new file mode 100644
index 00000000..c33d7465
--- /dev/null
+++ b/app/src/main/res/drawable/settings_filled.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/settings_outlined.xml b/app/src/main/res/drawable/settings_outlined.xml
new file mode 100644
index 00000000..67902c22
--- /dev/null
+++ b/app/src/main/res/drawable/settings_outlined.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepository.kt b/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepository.kt
deleted file mode 100644
index d36e7016..00000000
--- a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepository.kt
+++ /dev/null
@@ -1,39 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.core.data.repository
-
-import android.net.Uri
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.model.book.AddBookResponse
-import com.githukudenis.comlib.core.model.book.AllBooksResponse
-import com.githukudenis.comlib.core.model.book.BookDTO
-import com.githukudenis.comlib.core.model.book.BooksByUserResponse
-import com.githukudenis.comlib.core.model.book.SingleBookResponse
-
-interface BooksRepository {
- suspend fun getAllBooks(page: Int, limit: Int): ResponseResult
-
- suspend fun getBookById(id: String): ResponseResult
-
- suspend fun addNewBook(imageUri: Uri, book: BookDTO): ResponseResult
-
- suspend fun getBooksByUser(
- userId: String,
- page: Int,
- limit: Int
- ): ResponseResult
-}
diff --git a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepositoryImpl.kt b/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepositoryImpl.kt
deleted file mode 100644
index 83ae3e72..00000000
--- a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/BooksRepositoryImpl.kt
+++ /dev/null
@@ -1,90 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.core.data.repository
-
-import android.net.Uri
-import com.githukudenis.comlib.core.common.ErrorResponse
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.common.di.ComlibCoroutineDispatchers
-import com.githukudenis.comlib.core.model.book.AddBookResponse
-import com.githukudenis.comlib.core.model.book.AllBooksResponse
-import com.githukudenis.comlib.core.model.book.BookDTO
-import com.githukudenis.comlib.core.model.book.BooksByUserResponse
-import com.githukudenis.comlib.core.model.book.SingleBookResponse
-import com.githukudenis.comlib.core.model.book.asBooksByUserResponse
-import com.githukudenis.comlib.core.network.BooksApi
-import com.githukudenis.comlib.core.network.ImagesRemoteDataSource
-import com.githukudenis.comlib.core.network.common.ImageStorageRef
-import javax.inject.Inject
-import kotlinx.coroutines.withContext
-
-class BooksRepositoryImpl
-@Inject
-constructor(
- private val booksApi: BooksApi,
- private val dispatchers: ComlibCoroutineDispatchers,
- private val imagesRemoteDataSource: ImagesRemoteDataSource
-) : BooksRepository {
- override suspend fun getAllBooks(page: Int, limit: Int): ResponseResult {
- return withContext(dispatchers.io) { booksApi.getBooks(page, limit) }
- }
-
- override suspend fun getBookById(id: String): ResponseResult {
- return withContext(dispatchers.io) { booksApi.getBookById(id) }
- }
-
- override suspend fun addNewBook(imageUri: Uri, book: BookDTO): ResponseResult {
- return withContext(dispatchers.io) {
- val imagePath = ImageStorageRef.Books(imageUri.lastPathSegment ?: "").ref
-
- val result = imagesRemoteDataSource.addImage(imageUri, imagePath)
- if (result.isSuccess) {
- result.getOrNull()?.let {
- val bookWithImage = book.copy(image = it)
- booksApi.addNewBook(bookWithImage)
- }
- ?: ResponseResult.Failure(
- ErrorResponse(status = "fail", message = "Could not upload image. Please try again")
- )
- } else {
- ResponseResult.Failure(
- ErrorResponse(
- status = "fail",
- message = result.exceptionOrNull()?.message ?: "Unknown error"
- )
- )
- }
- }
- }
-
- override suspend fun getBooksByUser(
- userId: String,
- page: Int,
- limit: Int
- ): ResponseResult {
- return withContext(dispatchers.io) {
- when (val result = booksApi.getBooks(page, limit)) {
- is ResponseResult.Failure -> {
- ResponseResult.Failure(result.error)
- }
- is ResponseResult.Success -> {
- ResponseResult.Success(data = result.data.asBooksByUserResponse(userId))
- }
- }
- }
- }
-}
diff --git a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/fake/FakeBooksRepository.kt b/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/fake/FakeBooksRepository.kt
deleted file mode 100644
index 09f375ea..00000000
--- a/core/build/spotless/spotlessKotlin/data/src/main/java/com/githukudenis/comlib/core/data/repository/fake/FakeBooksRepository.kt
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.core.data.repository.fake
-
-import android.net.Uri
-import com.githukudenis.comlib.core.common.ErrorResponse
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.data.repository.BooksRepository
-import com.githukudenis.comlib.core.model.book.AddBookResponse
-import com.githukudenis.comlib.core.model.book.AllBooksResponse
-import com.githukudenis.comlib.core.model.book.Book
-import com.githukudenis.comlib.core.model.book.BookDTO
-import com.githukudenis.comlib.core.model.book.BooksByUserResponse
-import com.githukudenis.comlib.core.model.book.BooksData
-import com.githukudenis.comlib.core.model.book.Data
-import com.githukudenis.comlib.core.model.book.SingleBookResponse
-import com.githukudenis.comlib.core.model.book.toBook
-import kotlinx.coroutines.delay
-
-class FakeBooksRepository : BooksRepository {
- val books: MutableList =
- (1..100)
- .map {
- Book(
- _id = "$it",
- authors = listOf("Sam", "Peter", "Charlie"),
- currentHolder = "",
- edition = "",
- description = "",
- genreIds = listOf("1", "2"),
- id = "$it",
- image = "",
- owner = "owner@$it",
- pages = it,
- reserved = listOf(),
- title = "Title $it"
- )
- }
- .toMutableList()
-
- override suspend fun getAllBooks(page: Int, limit: Int): ResponseResult {
- delay(1000L)
- return ResponseResult.Success(
- AllBooksResponse(
- data = BooksData(books),
- requestedAt = "now",
- results = books.size,
- status = "Ok"
- )
- )
- }
-
- override suspend fun getBookById(id: String): ResponseResult {
- return if (books.none { it.id == id }) {
- ResponseResult.Failure(ErrorResponse(status = "fail", message = "Book not found"))
- } else {
- ResponseResult.Success(
- SingleBookResponse(data = Data(book = books.first { it.id == id }), status = "Ok")
- )
- }
- }
-
- override suspend fun addNewBook(imageUri: Uri, book: BookDTO): ResponseResult {
- return try {
- books.add(book.toBook())
- ResponseResult.Success(AddBookResponse(status = "Ok", message = "Book added successfully"))
- } catch (e: Exception) {
- e.printStackTrace()
- ResponseResult.Failure(ErrorResponse(status = "fail", message = e.message ?: "Unknown error"))
- }
- }
-
- override suspend fun getBooksByUser(
- userId: String,
- page: Int,
- limit: Int
- ): ResponseResult {
- return if (books.none { it.owner == userId }) {
- ResponseResult.Failure(ErrorResponse(status = "fail", message = "Books not found"))
- } else {
- ResponseResult.Success(
- BooksByUserResponse(
- status = "Ok",
- requestedAt = "now",
- results = books.filter { it.owner == userId }.size,
- data = BooksData(books.filter { it.owner == userId })
- )
- )
- }
- }
-}
diff --git a/core/build/spotless/spotlessKotlin/network/src/main/java/com/githukudenis/comlib/core/network/BooksApi.kt b/core/build/spotless/spotlessKotlin/network/src/main/java/com/githukudenis/comlib/core/network/BooksApi.kt
deleted file mode 100644
index 409a2866..00000000
--- a/core/build/spotless/spotlessKotlin/network/src/main/java/com/githukudenis/comlib/core/network/BooksApi.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.core.network
-
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.common.safeApiCall
-import com.githukudenis.comlib.core.model.book.AddBookResponse
-import com.githukudenis.comlib.core.model.book.AllBooksResponse
-import com.githukudenis.comlib.core.model.book.BookDTO
-import com.githukudenis.comlib.core.model.book.SingleBookResponse
-import com.githukudenis.comlib.core.network.common.Endpoints
-import io.ktor.client.HttpClient
-import io.ktor.client.request.get
-import io.ktor.client.request.post
-import io.ktor.client.request.setBody
-import javax.inject.Inject
-
-class BooksApi @Inject constructor(private val httpClient: HttpClient) {
- suspend fun getBooks(page: Int = 1, limit: Int = 10): ResponseResult =
- safeApiCall {
- httpClient.get(Endpoints.Books.GetAll(page = page, limit = limit).url)
- }
-
- suspend fun getBookById(bookId: String): ResponseResult = safeApiCall {
- httpClient.get(Endpoints.Books.GetById(bookId).url)
- }
-
- suspend fun addNewBook(book: BookDTO): ResponseResult = safeApiCall {
- httpClient.post(Endpoints.Books.Add.url) { setBody(book) }
- }
-}
diff --git a/feature/add_book/src/main/java/com/githukudenis/comlib/feature/add_book/AddBookRoute.kt b/feature/add_book/src/main/java/com/githukudenis/comlib/feature/add_book/AddBookRoute.kt
index 19e32f5d..b12103c0 100644
--- a/feature/add_book/src/main/java/com/githukudenis/comlib/feature/add_book/AddBookRoute.kt
+++ b/feature/add_book/src/main/java/com/githukudenis/comlib/feature/add_book/AddBookRoute.kt
@@ -42,7 +42,6 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
-import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.KeyboardArrowDown
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -66,6 +65,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
@@ -114,7 +114,10 @@ fun AddBookRoute(
},
navigationIcon = {
IconButton(onClick = { onNavigateUp() }) {
- Icon(imageVector = Icons.Default.ArrowBack, contentDescription = "Back")
+ Icon(
+ painter = painterResource(id = R.drawable.ic_arrow_back),
+ contentDescription = "Back"
+ )
}
},
actions = {
diff --git a/feature/add_book/src/main/res/drawable/ic_arrow_back.xml b/feature/add_book/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/add_book/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/book_detail/src/main/java/com/githukudenis/comlib/feature/book_detail/BookDetailRoute.kt b/feature/book_detail/src/main/java/com/githukudenis/comlib/feature/book_detail/BookDetailRoute.kt
index 6fe27714..7d258ac2 100644
--- a/feature/book_detail/src/main/java/com/githukudenis/comlib/feature/book_detail/BookDetailRoute.kt
+++ b/feature/book_detail/src/main/java/com/githukudenis/comlib/feature/book_detail/BookDetailRoute.kt
@@ -37,10 +37,10 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.outlined.FavoriteBorder
import androidx.compose.material3.Divider
+import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -52,6 +52,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
@@ -114,7 +115,7 @@ fun LoadingScreen(onBackPressed: () -> Unit) {
) {
Icon(
modifier = Modifier.padding(8.dp),
- imageVector = Icons.Default.ArrowBack,
+ painter = painterResource(id = R.drawable.ic_arrow_back),
contentDescription = "Back",
tint = MaterialTheme.colorScheme.onBackground
)
@@ -154,7 +155,7 @@ fun LoadingScreen(onBackPressed: () -> Unit) {
)
}
}
- Divider(
+ HorizontalDivider(
modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp),
color = Color.LightGray,
thickness = 1.dp
@@ -214,7 +215,7 @@ fun LoadedScreen(
) {
Icon(
modifier = Modifier.padding(8.dp),
- imageVector = Icons.Default.ArrowBack,
+ painter = painterResource(id = R.drawable.ic_arrow_back),
contentDescription = "Back",
tint = MaterialTheme.colorScheme.background
)
diff --git a/feature/book_detail/src/main/res/drawable/ic_arrow_back.xml b/feature/book_detail/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/book_detail/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/books/src/main/java/com/githukudenis/comlib/feature/books/BooksRoute.kt b/feature/books/src/main/java/com/githukudenis/comlib/feature/books/BooksRoute.kt
index 022ce09b..fb091d06 100644
--- a/feature/books/src/main/java/com/githukudenis/comlib/feature/books/BooksRoute.kt
+++ b/feature/books/src/main/java/com/githukudenis/comlib/feature/books/BooksRoute.kt
@@ -34,8 +34,6 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.Checkbox
import androidx.compose.material3.Divider
@@ -57,6 +55,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@@ -105,7 +104,7 @@ fun BooksScreen(
navigationIcon = {
IconButton(onClick = onNavigateUp) {
Icon(
- imageVector = Icons.Default.ArrowBack,
+ painter = painterResource(id = R.drawable.ic_arrow_back),
contentDescription = stringResource(R.string.back)
)
}
diff --git a/feature/books/src/main/java/com/githukudenis/comlib/feature/books/components/BookComponent.kt b/feature/books/src/main/java/com/githukudenis/comlib/feature/books/components/BookComponent.kt
index 6096659f..a96134aa 100644
--- a/feature/books/src/main/java/com/githukudenis/comlib/feature/books/components/BookComponent.kt
+++ b/feature/books/src/main/java/com/githukudenis/comlib/feature/books/components/BookComponent.kt
@@ -26,8 +26,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -37,6 +35,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@@ -82,7 +81,7 @@ fun BookComponent(bookItemUiModel: BookItemUiModel, onOpenBookDetails: (String)
}
IconButton(onClick = { onOpenBookDetails(bookItemUiModel.id) }) {
Icon(
- imageVector = Icons.Default.ChevronRight,
+ painter = painterResource(id = R.drawable.ic_chevron_right),
contentDescription = "Open book details",
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.6f)
)
diff --git a/feature/books/src/main/res/drawable/ic_arrow_back.xml b/feature/books/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/books/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/books/src/main/res/drawable/ic_chevron_right.xml b/feature/books/src/main/res/drawable/ic_chevron_right.xml
new file mode 100644
index 00000000..56581b0e
--- /dev/null
+++ b/feature/books/src/main/res/drawable/ic_chevron_right.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/build/spotless/spotlessKotlin/books/src/main/java/com/githukudenis/comlib/feature/books/BooksViewModel.kt b/feature/build/spotless/spotlessKotlin/books/src/main/java/com/githukudenis/comlib/feature/books/BooksViewModel.kt
deleted file mode 100644
index aba095e4..00000000
--- a/feature/build/spotless/spotlessKotlin/books/src/main/java/com/githukudenis/comlib/feature/books/BooksViewModel.kt
+++ /dev/null
@@ -1,188 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.feature.books
-
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.viewModelScope
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.data.repository.BooksRepository
-import com.githukudenis.comlib.core.data.repository.GenresRepository
-import com.githukudenis.comlib.core.data.repository.UserPrefsRepository
-import dagger.hilt.android.lifecycle.HiltViewModel
-import javax.inject.Inject
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.flow.mapLatest
-import kotlinx.coroutines.flow.stateIn
-import kotlinx.coroutines.flow.update
-import kotlinx.coroutines.launch
-
-private const val moreGenresId = "65eebf0badf8c6d9a1d1db48"
-private const val allGenresId = "65eeb125703fed5c184518bf"
-
-@HiltViewModel
-class BooksViewModel
-@Inject
-constructor(
- private val userPrefsRepository: UserPrefsRepository,
- private val booksRepository: BooksRepository,
- private val genresRepository: GenresRepository
-) : ViewModel() {
-
- private val _pagingData: MutableStateFlow> = MutableStateFlow(Pair(1, 10))
-
- private val moreGenreModel = GenreUiModel("More", moreGenresId)
-
- private val genreListUiState: MutableStateFlow =
- MutableStateFlow(GenreListUiState.Loading)
-
- private val bookListUiState: MutableStateFlow =
- MutableStateFlow(BookListUiState.Loading)
-
- private val selectedGenres: MutableStateFlow> =
- MutableStateFlow(listOf(GenreUiModel(name = "All Genres", id = allGenresId)))
-
- val uiState: StateFlow =
- combine(selectedGenres, genreListUiState, bookListUiState) {
- selectedGenres,
- genreState,
- bookListState ->
- BooksUiState.Success(
- selectedGenres = selectedGenres,
- genreListUiState = genreState,
- bookListUiState = bookListState
- )
- }
- .stateIn(
- scope = viewModelScope,
- started = SharingStarted.WhileSubscribed(5_000),
- initialValue = BooksUiState.Loading
- )
-
- init {
- getGenreList()
- getBookList()
- }
-
- private fun getGenreList() {
- viewModelScope.launch {
- genreListUiState.update { GenreListUiState.Loading }
- when (val result = genresRepository.getGenres()) {
- is ResponseResult.Failure -> {
- genreListUiState.update { GenreListUiState.Error(message = result.error.message) }
- }
- is ResponseResult.Success -> {
- // map genre to genre ui model
-
- val genres =
- result.data.data.genres
- .map { genre -> genre.toGenreUiModel() }
- .sortedBy { it.name }
- .toMutableList()
-
- genres.add(0, selectedGenres.value.first())
- genres.add(genres.size, moreGenreModel)
- getPreferredGenreList(genres)
- genreListUiState.update { GenreListUiState.Success(genres) }
- }
- }
- }
- }
-
- private fun getBookList() {
- viewModelScope.launch {
- bookListUiState.update { BookListUiState.Loading }
- when (
- val result = booksRepository.getAllBooks(_pagingData.value.first, _pagingData.value.second)
- ) {
- is ResponseResult.Failure -> {
- bookListUiState.update { BookListUiState.Error(message = result.error.message) }
- }
- is ResponseResult.Success -> {
- // map book to book ui model
-
- val books =
- result.data.data.books
- .filter { book ->
- if (selectedGenres.value.map { it.name }.contains("All Genres")) {
- true
- } else {
- selectedGenres.value.map { it.id }.any { it in book.genreIds }
- }
- }
- .map { book -> book.toBookItemUiModel() }
- .sortedBy { it.title }
-
- val updatedState =
- if (books.isEmpty()) {
- BookListUiState.Empty
- } else BookListUiState.Success(books)
-
- bookListUiState.update { updatedState }
- }
- }
- }
- }
-
- private fun getPreferredGenreList(genres: List) {
- viewModelScope.launch {
- userPrefsRepository.userPrefs
- .mapLatest { it.preferredGenres }
- .collectLatest { preferred ->
- selectedGenres.update { prevState ->
- val newList = prevState.toMutableList()
- newList.addAll(genres.filter { it.id in preferred })
- newList
- }
- }
- }
- }
-
- fun onChangeGenre(id: String) {
- viewModelScope.launch {
- when (val genreState = genreListUiState.value) {
- is GenreListUiState.Error -> Unit
- GenreListUiState.Loading -> Unit
- is GenreListUiState.Success -> {
- if (id == moreGenreModel.id) return@launch
-
- val updatedGenre = genreState.genres.first { it.id == id }
-
- val selected = selectedGenres.first().toMutableList()
-
- if (id in selectedGenres.first().map { it.id }) {
- selected.remove(updatedGenre)
- } else if (id == allGenresId) {
- selected.clear()
- selected.add(updatedGenre)
- } else {
- selected.add(updatedGenre)
- }
-
- val updatedGenrePrefs = selected.dropWhile { it.id != allGenresId }.map { it.id }.toSet()
- userPrefsRepository.setPreferredGenres(updatedGenrePrefs)
- selectedGenres.update { selected }
- getBookList()
- }
- }
- }
- }
-}
diff --git a/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt b/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt
deleted file mode 100644
index 1ee1e7c5..00000000
--- a/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt
+++ /dev/null
@@ -1,309 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.feature.home
-
-import android.widget.Toast
-import androidx.compose.foundation.clickable
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.foundation.lazy.LazyRow
-import androidx.compose.foundation.lazy.items
-import androidx.compose.foundation.lazy.rememberLazyListState
-import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Scaffold
-import androidx.compose.material3.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
-import androidx.compose.runtime.collectAsState
-import androidx.compose.runtime.derivedStateOf
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.remember
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clip
-import androidx.compose.ui.layout.ContentScale
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.unit.dp
-import androidx.hilt.navigation.compose.hiltViewModel
-import coil.compose.AsyncImage
-import com.githukudenis.comlib.core.common.FetchItemState
-import com.githukudenis.comlib.core.common.capitalize
-import com.githukudenis.comlib.core.designsystem.ui.components.SectionSeparator
-import com.githukudenis.comlib.core.designsystem.ui.components.buttons.CLibOutlinedButton
-import com.githukudenis.comlib.core.designsystem.ui.components.loading_indicators.CLibLoadingSpinner
-import com.githukudenis.comlib.core.designsystem.ui.theme.LocalDimens
-import com.githukudenis.comlib.feature.home.components.BookCard
-import com.githukudenis.comlib.feature.home.components.EmptyDataCard
-import com.githukudenis.comlib.feature.home.components.ErrorCard
-import com.githukudenis.comlib.feature.home.components.GoalCard
-import com.githukudenis.comlib.feature.home.components.HomeHeader
-import com.githukudenis.comlib.feature.home.components.LoadingBookCard
-import kotlinx.datetime.Clock
-import kotlinx.datetime.Instant
-import kotlinx.datetime.LocalDate
-import kotlinx.datetime.TimeZone
-import kotlinx.datetime.atStartOfDayIn
-import kotlinx.datetime.toLocalDateTime
-
-/**
- * project : ComLib date : Friday 23/02/2024 time : 12:45 pm user : mambo email :
- * mambobryan@gmail.com
- */
-@Composable
-fun HomeRoute(
- viewModel: HomeViewModel = hiltViewModel(),
- onOpenBookDetails: (String) -> Unit,
- onOpenAllBooks: () -> Unit,
- onOpenProfile: () -> Unit,
- onNavigateToStreakDetails: (String?) -> Unit
-) {
- val state by viewModel.state.collectAsState()
- HomeRouteContent(
- state = state,
- onOpenProfile = onOpenProfile,
- onClickRetryGetReads = {
- // viewModel::onClickRetryGetReads
- },
- onClickRetryGetAvailableBooks = {
- // viewModel::onRefreshAvailableBooks
- },
- onOpenAllBooks = onOpenAllBooks,
- onOpenBookDetails = onOpenBookDetails,
- onToggleFavourite = viewModel::onToggleFavourite,
- onNavigateToStreakDetails = onNavigateToStreakDetails,
- onRefreshPage = viewModel::onRefreshPage
- )
-}
-
-@OptIn(ExperimentalMaterial3Api::class)
-@Composable
-fun HomeRouteContent(
- state: HomeScreenState,
- onClickRetryGetReads: () -> Unit,
- onOpenProfile: () -> Unit,
- onOpenAllBooks: () -> Unit,
- onOpenBookDetails: (String) -> Unit,
- onClickRetryGetAvailableBooks: () -> Unit,
- onToggleFavourite: (String) -> Unit,
- onNavigateToStreakDetails: (String?) -> Unit,
- onRefreshPage: () -> Unit
-) {
- val context = LocalContext.current
-
- Scaffold { values ->
- LazyColumn(
- modifier =
- Modifier.padding(values).padding(vertical = LocalDimens.current.extraLarge).fillMaxSize(),
- verticalArrangement = Arrangement.spacedBy(LocalDimens.current.extraLarge)
- ) {
- item {
- val username =
- when (state.user) {
- is FetchItemState.Error -> "Stranger"
- FetchItemState.Loading -> "Stranger"
- is FetchItemState.Success -> state.user.data?.firstname?.capitalize()
- }
-
- val time = state.timePeriod.name.lowercase().capitalize()
- HomeHeader(
- modifier = Modifier.padding(horizontal = LocalDimens.current.extraLarge),
- title = {
- Text(
- text =
- buildString {
- append("Good")
- append(" ")
- append(time)
- append(" ")
- append(username)
- },
- style = MaterialTheme.typography.titleMedium
- )
- },
- subtitle = {
- Text(
- text = stringResource(id = R.string.home_header_subtitle),
- style = MaterialTheme.typography.bodySmall,
- color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.7f)
- )
- },
- profileImage = {
- AsyncImage(
- modifier = Modifier.size(32.dp).clip(CircleShape).clickable(onClick = onOpenProfile),
- contentScale = ContentScale.Crop,
- model =
- when (val user = state.user) {
- is FetchItemState.Error -> context.getDrawable(R.drawable.placeholder_no_text)
- FetchItemState.Loading -> context.getDrawable(R.drawable.placeholder_no_text)
- is FetchItemState.Success -> user.data?.image
- },
- contentDescription = "User profile"
- )
- }
- )
- }
- item {
- val dateRange = buildString {
- append(state.streakState.bookMilestone?.startDate?.toLocalDate()?.toDayAndMonth())
- append(" - ")
- append(state.streakState.bookMilestone?.endDate?.toLocalDate()?.toDayAndMonth())
- }
-
- val progress =
- state.streakState.bookMilestone?.run {
- endDate?.let { startDate?.let { it1 -> calculateProgress(it1, it) } }
- } ?: 0f
- GoalCard(
- hasStreak = state.streakState.bookMilestone != null,
- dateRange = dateRange,
- progress = progress,
- bookId = state.streakState.bookMilestone?.bookId,
- currentBookTitle = state.streakState.bookMilestone?.bookName,
- onOpenStreakDetails = onNavigateToStreakDetails
- )
- }
- item {
- SectionSeparator(
- modifier = Modifier.padding(horizontal = LocalDimens.current.extraLarge),
- title = stringResource(id = R.string.available_books_separator),
- onViewAll = onOpenAllBooks
- )
- }
- item {
- when (state.availableState) {
- is FetchItemState.Error -> {
- Column(
- modifier = Modifier.fillMaxWidth(),
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.Center
- ) {
- ErrorCard(content = state.availableState.message)
- CLibOutlinedButton(
- modifier = Modifier.padding(top = LocalDimens.current.medium),
- onClick = onClickRetryGetAvailableBooks
- ) {
- Text(text = stringResource(id = R.string.retry))
- }
- }
- }
- FetchItemState.Loading -> {
- LazyRow(
- contentPadding = PaddingValues(horizontal = LocalDimens.current.extraLarge),
- horizontalArrangement = Arrangement.spacedBy(LocalDimens.current.large)
- ) {
- items(4) { LoadingBookCard() }
- }
- }
- is FetchItemState.Success -> {
- val books =
- state.availableState.data.map { model ->
- model.copy(isFavourite = model.isFavourite == model.book.id in state.bookmarks)
- }
-
- if (books.isNotEmpty()) {
- val bookListState = rememberLazyListState()
- val shouldPaginate = remember {
- derivedStateOf {
- val lastVisibleItem =
- bookListState.layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 9
- lastVisibleItem >= bookListState.layoutInfo.totalItemsCount - 1
- }
- }
-
- LaunchedEffect(shouldPaginate) {
- if (shouldPaginate.value && state.availableState.data.size >= 10) {
- onRefreshPage()
- }
- }
-
- LazyRow(
- state = bookListState,
- contentPadding = PaddingValues(horizontal = LocalDimens.current.extraLarge),
- horizontalArrangement = Arrangement.spacedBy(LocalDimens.current.large)
- ) {
- items(books, key = { bookUiModel -> bookUiModel.book._id }) { bookUiModel ->
- BookCard(
- bookUiModel = bookUiModel,
- onClick = onOpenBookDetails,
- onReserve = {},
- onToggleFavourite = {
- onToggleFavourite(bookUiModel.book.id)
- Toast.makeText(
- context,
- context.getString(
- if (bookUiModel.isFavourite) {
- R.string.remove_from_favourites
- } else R.string.add_to_favourites
- ),
- Toast.LENGTH_SHORT
- )
- .show()
- }
- )
- }
- item {
- if (state.pagerState.first == PaginationState.Paginating) {
- CLibLoadingSpinner()
- }
- }
- }
- } else {
- EmptyDataCard(content = "books")
- }
- }
- }
- }
- }
- }
-}
-
-private fun LocalDate.toMillisLong(): Long {
- return this.atStartOfDayIn(TimeZone.currentSystemDefault()).toEpochMilliseconds()
-}
-
-private fun Long.toLocalDate(): LocalDate {
- val instant = Instant.fromEpochMilliseconds(this)
- return instant.toLocalDateTime(TimeZone.currentSystemDefault()).date
-}
-
-private fun LocalDate.toDayAndMonth(): String {
- return buildString {
- append(this@toDayAndMonth.dayOfMonth)
- append(" ")
- append(this@toDayAndMonth.month.name.take(3).capitalize())
- }
-}
-
-private fun calculateProgress(startDate: Long, endDate: Long): Float {
- val now = Clock.System.now().toEpochMilliseconds().toLocalDate()
- val progress =
- if (startDate.toLocalDate() > now) {
- 0f
- } else
- (now.dayOfYear - startDate.toLocalDate().dayOfYear).toFloat() /
- (endDate.toLocalDate().dayOfYear - startDate.toLocalDate().dayOfYear).toFloat()
- return progress
-}
diff --git a/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeViewModel.kt b/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeViewModel.kt
deleted file mode 100644
index 8f7e98a7..00000000
--- a/feature/build/spotless/spotlessKotlin/home/src/main/java/com/githukudenis/comlib/feature/home/HomeViewModel.kt
+++ /dev/null
@@ -1,175 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.feature.home
-
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.viewModelScope
-import com.githukudenis.comlib.core.common.FetchItemState
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.data.repository.BookMilestoneRepository
-import com.githukudenis.comlib.core.data.repository.BooksRepository
-import com.githukudenis.comlib.core.data.repository.UserPrefsRepository
-import com.githukudenis.comlib.core.data.repository.UserRepository
-import com.githukudenis.comlib.core.model.user.User
-import dagger.hilt.android.lifecycle.HiltViewModel
-import java.time.Instant
-import java.time.ZoneId
-import javax.inject.Inject
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.flow.mapLatest
-import kotlinx.coroutines.flow.stateIn
-import kotlinx.coroutines.launch
-
-enum class TimePeriod {
- MORNING,
- AFTERNOON,
- EVENING
-}
-
-data class HomeScreenState(
- val pagerState: Triple = Triple(PaginationState.NotLoading, 1, 10),
- val user: FetchItemState = FetchItemState.Loading,
- val reads: List = emptyList(),
- val bookmarks: List = emptyList(),
- val streakState: StreakState = StreakState(),
- val availableState: FetchItemState> = FetchItemState.Loading,
- val timePeriod: TimePeriod = TimePeriod.MORNING
-)
-
-enum class PaginationState {
- Paginating,
- Exhausted,
- NotLoading
-}
-
-@HiltViewModel
-class HomeViewModel
-@Inject
-constructor(
- private val userPrefsRepository: UserPrefsRepository,
- private val booksRepository: BooksRepository,
- private val userRepository: UserRepository,
- private val bookMilestoneRepository: BookMilestoneRepository
-) : ViewModel() {
-
- private val _pagingData: MutableStateFlow> =
- MutableStateFlow(Triple(PaginationState.NotLoading, 1, 10))
-
- private val _booksCache: MutableList = mutableListOf()
-
- private val _timePeriod: TimePeriod
- get() {
- val currHour = Instant.now().atZone(ZoneId.systemDefault()).hour
- val time =
- if (currHour < 12) {
- TimePeriod.MORNING
- } else if (currHour < 16) {
- TimePeriod.AFTERNOON
- } else {
- TimePeriod.EVENING
- }
- return time
- }
-
- private val _userProfile: Flow> =
- userPrefsRepository.userPrefs.mapLatest { prefs ->
- prefs.userId?.let { id ->
- when (val profile = userRepository.getUserById(id)) {
- is ResponseResult.Failure -> {
- FetchItemState.Error(message = profile.error.message)
- }
- is ResponseResult.Success -> {
- FetchItemState.Success(data = profile.data.data.user)
- }
- }
- }
- ?: FetchItemState.Error(
- message = "You are not logged in. Please log in to access the application"
- )
- }
-
- private val _books: Flow>> =
- _pagingData.mapLatest { data ->
- val (_, page, limit) = data
- _pagingData.value = _pagingData.value.copy(first = PaginationState.Paginating)
- when (val result = booksRepository.getAllBooks(page = page, limit = limit)) {
- is ResponseResult.Failure -> {
- _pagingData.value = _pagingData.value.copy(first = PaginationState.NotLoading)
- FetchItemState.Error(message = result.error.message)
- }
- is ResponseResult.Success -> {
- val books = result.data.data.books.map { BookUiModel(book = it) }
- if (books.isEmpty()) {
- _pagingData.value = _pagingData.value.copy(first = PaginationState.Exhausted)
- }
- _booksCache.addAll(books)
- FetchItemState.Success(_booksCache)
- }
- }
- }
-
- val state: StateFlow =
- combine(
- userPrefsRepository.userPrefs.mapLatest { prefs ->
- prefs.bookmarkedBooks to prefs.readBooks
- },
- bookMilestoneRepository.bookMilestone,
- _books,
- _userProfile,
- _pagingData
- ) { (bookmarks, read), milestone, allBooks, profile, pagingData ->
- HomeScreenState(
- bookmarks = bookmarks.toList(),
- reads = read.toList(),
- streakState = StreakState(bookMilestone = milestone),
- availableState = allBooks,
- user = profile,
- timePeriod = _timePeriod,
- pagerState = pagingData
- )
- }
- .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), HomeScreenState())
-
- fun onToggleFavourite(id: String) {
- viewModelScope.launch {
- val bookMarks = userPrefsRepository.userPrefs.mapLatest { it.bookmarkedBooks }.first()
- val updatedBookMarkSet =
- if (id in bookMarks) {
- bookMarks.minus(id)
- } else {
- bookMarks.plus(id)
- }
- userPrefsRepository.setBookMarks(updatedBookMarkSet)
- }
- }
-
- fun onRefreshPage() {
- _pagingData.value = _pagingData.value.copy(second = _pagingData.value.second + 1)
- }
-
- override fun onCleared() {
- _booksCache.clear()
- _pagingData.value = Triple(PaginationState.NotLoading, 1, 10)
- _pagingData.value = _pagingData.value.copy(first = PaginationState.NotLoading)
- super.onCleared()
- }
-}
diff --git a/feature/build/spotless/spotlessKotlin/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksViewModel.kt b/feature/build/spotless/spotlessKotlin/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksViewModel.kt
deleted file mode 100644
index 2a510995..00000000
--- a/feature/build/spotless/spotlessKotlin/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksViewModel.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.feature.my_books
-
-import androidx.lifecycle.viewModelScope
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.common.StatefulViewModel
-import com.githukudenis.comlib.core.data.repository.BooksRepository
-import com.githukudenis.comlib.core.data.repository.UserPrefsRepository
-import com.githukudenis.comlib.core.model.book.Book
-import dagger.hilt.android.lifecycle.HiltViewModel
-import javax.inject.Inject
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.launch
-
-data class MyBooksUiState(
- val isLoading: Boolean = false,
- val books: List = emptyList(),
- val error: String? = null
-)
-
-@HiltViewModel
-class MyBooksViewModel
-@Inject
-constructor(
- private val userPrefsRepository: UserPrefsRepository,
- private val booksRepository: BooksRepository
-) : StatefulViewModel(MyBooksUiState()) {
-
- private val _pagingData: MutableStateFlow> = MutableStateFlow(Pair(1, 10))
-
- init {
- getBooks()
- }
-
- private fun getBooks() {
- viewModelScope.launch {
- update { copy(isLoading = true) }
- val books = booksRepository.getAllBooks(_pagingData.value.first, _pagingData.value.second)
- val userId = userPrefsRepository.userPrefs.first().userId
- when (books) {
- is ResponseResult.Failure -> {
- update { copy(isLoading = false, error = books.error.message) }
- }
- is ResponseResult.Success -> {
- update {
- copy(
- isLoading = false,
- books = books.data.data.books.filter { it.owner == userId }.sortedBy { it.title }
- )
- }
- }
- }
- }
- }
-
- fun onRetry() {
- getBooks()
- }
-}
diff --git a/feature/build/spotless/spotlessKotlin/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakViewModel.kt b/feature/build/spotless/spotlessKotlin/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakViewModel.kt
deleted file mode 100644
index 891f742f..00000000
--- a/feature/build/spotless/spotlessKotlin/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakViewModel.kt
+++ /dev/null
@@ -1,157 +0,0 @@
-
-/*
-* Copyright 2023 Denis Githuku
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* https://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package com.githukudenis.comlib.feature.streak
-
-import androidx.lifecycle.SavedStateHandle
-import androidx.lifecycle.viewModelScope
-import com.githukudenis.comlib.core.common.ResponseResult
-import com.githukudenis.comlib.core.common.StatefulViewModel
-import com.githukudenis.comlib.core.data.repository.BookMilestoneRepository
-import com.githukudenis.comlib.core.data.repository.BooksRepository
-import com.githukudenis.comlib.core.data.repository.UserPrefsRepository
-import com.githukudenis.comlib.core.model.book.Book
-import com.githukudenis.comlib.core.model.book.BookMilestone
-import dagger.hilt.android.lifecycle.HiltViewModel
-import javax.inject.Inject
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.flow.mapLatest
-import kotlinx.coroutines.launch
-import kotlinx.datetime.Clock
-import kotlinx.datetime.DateTimeUnit
-import kotlinx.datetime.LocalDate
-import kotlinx.datetime.TimeZone
-import kotlinx.datetime.atStartOfDayIn
-import kotlinx.datetime.plus
-import kotlinx.datetime.todayIn
-
-data class StreakUiState(
- val isLoading: Boolean = false,
- val selectedBook: StreakBook? = null,
- val milestoneId: Long? = null,
- val saveSuccess: Boolean = false,
- val availableBooks: List = emptyList(),
- val startDate: LocalDate = Clock.System.todayIn(TimeZone.currentSystemDefault()),
- val endDate: LocalDate =
- Clock.System.todayIn(TimeZone.currentSystemDefault()).plus(7, DateTimeUnit.DAY),
- val error: String? = null
-) {
- val isValid: Boolean = selectedBook != null
-}
-
-data class StreakBook(val id: String?, val title: String?, val pages: Int? = null)
-
-fun Book.asStreakBook(): StreakBook = StreakBook(id, title, pages)
-
-@HiltViewModel
-class StreakViewModel
-@Inject
-constructor(
- private val userPrefsRepository: UserPrefsRepository,
- private val bookMilestoneRepository: BookMilestoneRepository,
- private val booksRepository: BooksRepository,
- private val savedStateHandle: SavedStateHandle
-) : StatefulViewModel(StreakUiState()) {
-
- private val _pagingData: MutableStateFlow> = MutableStateFlow(Pair(1, 10))
-
- init {
- savedStateHandle.get("bookId").also { getStreakDetails(it) }
- getAvailableBooks()
- }
-
- private fun getStreakDetails(bookId: String?) {
- if (bookId == null) return
- viewModelScope.launch {
- val bookMilestone = bookMilestoneRepository.bookMilestone.first()
- bookMilestone?.let { milestone ->
- update {
- copy(
- milestoneId = milestone.id,
- selectedBook =
- StreakBook(
- id = milestone.bookId,
- title = milestone.bookName,
- pages = milestone.pages
- ),
- startDate = milestone.startDate?.toLocalDate()!!,
- endDate = milestone.endDate?.toLocalDate()!!
- )
- }
- }
- }
- }
-
- private fun getAvailableBooks() {
- viewModelScope.launch {
- update { copy(isLoading = true) }
- val readBooks = userPrefsRepository.userPrefs.mapLatest { it.readBooks }.first()
- val result = booksRepository.getAllBooks(_pagingData.value.first, _pagingData.value.second)
-
- when (result) {
- is ResponseResult.Failure -> {
- update { copy(isLoading = false, error = result.error.message) }
- }
- is ResponseResult.Success -> {
- update {
- copy(
- isLoading = false,
- availableBooks = result.data.data.books.filterNot { it.id in readBooks }
- )
- }
- }
- }
- }
- }
-
- fun onToggleBook(streakBook: StreakBook?) {
- update { copy(selectedBook = streakBook) }
- }
-
- fun onSaveStreak() {
- viewModelScope.launch {
- val milestone =
- BookMilestone(
- bookId = state.value.selectedBook?.id,
- bookName = state.value.selectedBook?.title,
- startDate =
- state.value.startDate
- .atStartOfDayIn(TimeZone.currentSystemDefault())
- .toEpochMilliseconds(),
- endDate =
- state.value.endDate
- .atStartOfDayIn(TimeZone.currentSystemDefault())
- .toEpochMilliseconds(),
- pages = state.value.selectedBook?.pages
- )
- if (savedStateHandle.get("bookId") == null) {
- bookMilestoneRepository.insertBookMilestone(milestone)
- } else {
- bookMilestoneRepository.updateBookMilestone(milestone.copy(id = state.value.milestoneId))
- }
- update { copy(saveSuccess = true) }
- }
- }
-
- fun onChangeStartDate(date: LocalDate) {
- update { copy(startDate = date) }
- }
-
- fun onChangeEndDate(date: LocalDate) {
- update { copy(endDate = date) }
- }
-}
diff --git a/feature/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt b/feature/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt
index 1ee1e7c5..88e8be7f 100644
--- a/feature/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt
+++ b/feature/home/src/main/java/com/githukudenis/comlib/feature/home/HomeScreen.kt
@@ -53,7 +53,6 @@ import com.githukudenis.comlib.core.common.FetchItemState
import com.githukudenis.comlib.core.common.capitalize
import com.githukudenis.comlib.core.designsystem.ui.components.SectionSeparator
import com.githukudenis.comlib.core.designsystem.ui.components.buttons.CLibOutlinedButton
-import com.githukudenis.comlib.core.designsystem.ui.components.loading_indicators.CLibLoadingSpinner
import com.githukudenis.comlib.core.designsystem.ui.theme.LocalDimens
import com.githukudenis.comlib.feature.home.components.BookCard
import com.githukudenis.comlib.feature.home.components.EmptyDataCard
@@ -264,11 +263,6 @@ fun HomeRouteContent(
}
)
}
- item {
- if (state.pagerState.first == PaginationState.Paginating) {
- CLibLoadingSpinner()
- }
- }
}
} else {
EmptyDataCard(content = "books")
diff --git a/feature/home/src/main/java/com/githukudenis/comlib/feature/home/components/GoalCard.kt b/feature/home/src/main/java/com/githukudenis/comlib/feature/home/components/GoalCard.kt
index f3f73d66..4abb2e5b 100644
--- a/feature/home/src/main/java/com/githukudenis/comlib/feature/home/components/GoalCard.kt
+++ b/feature/home/src/main/java/com/githukudenis/comlib/feature/home/components/GoalCard.kt
@@ -25,9 +25,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowForwardIos
-import androidx.compose.material.icons.filled.ElectricBolt
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -41,6 +38,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.StrokeCap
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.githukudenis.comlib.core.designsystem.ui.components.buttons.CLibButton
@@ -81,7 +79,7 @@ fun GoalCard(
horizontalArrangement = Arrangement.SpaceBetween
) {
Icon(
- imageVector = Icons.Filled.ElectricBolt,
+ painter = painterResource(id = R.drawable.ic_electric),
contentDescription = stringResource(id = R.string.see_details),
tint = Color(0xFFFBBC05)
)
@@ -96,7 +94,7 @@ fun GoalCard(
IconButton(onClick = { onOpenStreakDetails(bookId) }) {
Icon(
modifier = Modifier.size(16.dp),
- imageVector = Icons.Default.ArrowForwardIos,
+ painter = painterResource(id = R.drawable.ic_chevron_right),
contentDescription = stringResource(id = R.string.see_details),
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f)
)
diff --git a/feature/home/src/main/res/drawable/ic_chevron_right.xml b/feature/home/src/main/res/drawable/ic_chevron_right.xml
new file mode 100644
index 00000000..56581b0e
--- /dev/null
+++ b/feature/home/src/main/res/drawable/ic_chevron_right.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/home/src/main/res/drawable/ic_electric.xml b/feature/home/src/main/res/drawable/ic_electric.xml
new file mode 100644
index 00000000..98f183d6
--- /dev/null
+++ b/feature/home/src/main/res/drawable/ic_electric.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksRoute.kt b/feature/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksRoute.kt
index 3a0cc77b..e61c1491 100644
--- a/feature/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksRoute.kt
+++ b/feature/my_books/src/main/java/com/githukudenis/comlib/feature/my_books/MyBooksRoute.kt
@@ -32,8 +32,6 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
-import androidx.compose.material.icons.filled.ArrowBack
-import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
@@ -49,6 +47,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@@ -96,7 +95,10 @@ private fun MyBooksContent(
},
navigationIcon = {
IconButton(onClick = { onNavigateUp() }) {
- Icon(imageVector = Icons.Default.ArrowBack, contentDescription = "Back")
+ Icon(
+ painter = painterResource(id = R.drawable.ic_arrow_back),
+ contentDescription = "Back"
+ )
}
}
)
@@ -166,7 +168,10 @@ fun BookComponent(book: Book, onOpenBookDetails: (String) -> Unit) {
}
}
IconButton(onClick = { onOpenBookDetails(book.id) }) {
- Icon(imageVector = Icons.Default.ChevronRight, contentDescription = "Open book details")
+ Icon(
+ painter = painterResource(id = R.drawable.ic_chevron_right),
+ contentDescription = "Open book details"
+ )
}
}
}
diff --git a/feature/my_books/src/main/res/drawable/ic_arrow_back.xml b/feature/my_books/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/my_books/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/my_books/src/main/res/drawable/ic_chevron_right.xml b/feature/my_books/src/main/res/drawable/ic_chevron_right.xml
new file mode 100644
index 00000000..56581b0e
--- /dev/null
+++ b/feature/my_books/src/main/res/drawable/ic_chevron_right.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/profile/src/main/java/com/githukudenis/comlib/feature/edit/EditProfileScreen.kt b/feature/profile/src/main/java/com/githukudenis/comlib/feature/edit/EditProfileScreen.kt
index f26fb1e2..c49559fa 100644
--- a/feature/profile/src/main/java/com/githukudenis/comlib/feature/edit/EditProfileScreen.kt
+++ b/feature/profile/src/main/java/com/githukudenis/comlib/feature/edit/EditProfileScreen.kt
@@ -21,6 +21,7 @@ import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts
+import androidx.annotation.DrawableRes
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -35,12 +36,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowBack
-import androidx.compose.material.icons.outlined.AccountCircle
-import androidx.compose.material.icons.outlined.CameraAlt
-import androidx.compose.material.icons.outlined.Edit
-import androidx.compose.material.icons.outlined.PhotoSizeSelectActual
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
@@ -57,8 +52,8 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
@@ -126,7 +121,7 @@ fun EditProfileContent(
navigationIcon = {
IconButton(onClick = onNavigateUp) {
Icon(
- imageVector = Icons.Default.ArrowBack,
+ painter = painterResource(id = R.drawable.ic_arrow_back),
contentDescription = stringResource(id = R.string.back)
)
}
@@ -211,7 +206,7 @@ fun EditProfileContent(
EditProfileItem(
title = stringResource(id = R.string.username_label),
value = state.username,
- icon = Icons.Outlined.AccountCircle,
+ icon = R.drawable.ic_person,
profileItem = ProfileItem.USERNAME
) {
selectedProfileItem = it
@@ -224,7 +219,7 @@ fun EditProfileContent(
EditProfileItem(
title = stringResource(id = R.string.firstname_label),
value = state.firstname,
- icon = Icons.Outlined.AccountCircle,
+ icon = R.drawable.ic_person,
profileItem = ProfileItem.FIRSTNAME,
onClick = {
selectedProfileItem = it
@@ -238,7 +233,7 @@ fun EditProfileContent(
EditProfileItem(
title = stringResource(id = R.string.lastname_label),
value = state.lastname,
- icon = Icons.Outlined.AccountCircle,
+ icon = R.drawable.ic_person,
profileItem = ProfileItem.LASTNAME,
onClick = {
selectedProfileItem = it
@@ -256,7 +251,7 @@ private fun EditProfileItem(
title: String,
value: String,
description: String? = null,
- icon: ImageVector,
+ @DrawableRes icon: Int,
profileItem: ProfileItem,
onClick: (ProfileItem) -> Unit
) {
@@ -273,7 +268,7 @@ private fun EditProfileItem(
horizontalArrangement = Arrangement.spacedBy(LocalDimens.current.extraLarge)
) {
Icon(
- imageVector = icon,
+ painter = painterResource(id = icon),
contentDescription = title,
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.6f)
)
@@ -295,7 +290,7 @@ private fun EditProfileItem(
}
IconButton(onClick = { onClick(profileItem) }) {
Icon(
- imageVector = Icons.Outlined.Edit,
+ painter = painterResource(id = R.drawable.ic_edit),
contentDescription = stringResource(id = R.string.edit),
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.6f)
)
@@ -312,19 +307,19 @@ private fun ImageChooser(onOpenGallery: () -> Unit, onOpenCamera: () -> Unit) {
) {
ImageSourceComponent(
onClick = onOpenCamera,
- icon = Icons.Outlined.CameraAlt,
+ icon = R.drawable.ic_camera,
label = stringResource(id = R.string.camera_label)
)
ImageSourceComponent(
onClick = onOpenGallery,
- icon = Icons.Outlined.PhotoSizeSelectActual,
+ icon = R.drawable.ic_camera,
label = stringResource(id = R.string.gallery_label)
)
}
}
@Composable
-private fun ImageSourceComponent(label: String, onClick: () -> Unit, icon: ImageVector) {
+private fun ImageSourceComponent(label: String, onClick: () -> Unit, @DrawableRes icon: Int) {
Column(
verticalArrangement = Arrangement.spacedBy(LocalDimens.current.large),
horizontalAlignment = Alignment.CenterHorizontally
@@ -341,7 +336,7 @@ private fun ImageSourceComponent(label: String, onClick: () -> Unit, icon: Image
contentAlignment = Alignment.Center
) {
Icon(
- imageVector = icon,
+ painter = painterResource(id = icon),
contentDescription = label,
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.6f),
modifier = Modifier.size(40.dp)
diff --git a/feature/profile/src/main/java/com/githukudenis/comlib/feature/profile/ProfileRoute.kt b/feature/profile/src/main/java/com/githukudenis/comlib/feature/profile/ProfileRoute.kt
index da8cc563..204357c3 100644
--- a/feature/profile/src/main/java/com/githukudenis/comlib/feature/profile/ProfileRoute.kt
+++ b/feature/profile/src/main/java/com/githukudenis/comlib/feature/profile/ProfileRoute.kt
@@ -32,7 +32,6 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.automirrored.filled.Logout
import androidx.compose.material.icons.automirrored.filled.MenuBook
import androidx.compose.material.icons.filled.DeleteOutline
@@ -55,6 +54,7 @@ import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@@ -154,7 +154,10 @@ private fun ProfileScreen(
},
navigationIcon = {
IconButton(onClick = { onNavigateUp() }) {
- Icon(imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
+ Icon(
+ painter = painterResource(id = R.drawable.ic_arrow_back),
+ contentDescription = "Back"
+ )
}
}
)
diff --git a/feature/profile/src/main/res/drawable/ic_arrow_back.xml b/feature/profile/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/profile/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/profile/src/main/res/drawable/ic_camera.xml b/feature/profile/src/main/res/drawable/ic_camera.xml
new file mode 100644
index 00000000..8c7bc444
--- /dev/null
+++ b/feature/profile/src/main/res/drawable/ic_camera.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/feature/profile/src/main/res/drawable/ic_edit.xml b/feature/profile/src/main/res/drawable/ic_edit.xml
new file mode 100644
index 00000000..40ae295e
--- /dev/null
+++ b/feature/profile/src/main/res/drawable/ic_edit.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/feature/profile/src/main/res/drawable/ic_person.xml b/feature/profile/src/main/res/drawable/ic_person.xml
new file mode 100644
index 00000000..5432333e
--- /dev/null
+++ b/feature/profile/src/main/res/drawable/ic_person.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts
new file mode 100644
index 00000000..cb5501fb
--- /dev/null
+++ b/feature/settings/build.gradle.kts
@@ -0,0 +1,29 @@
+plugins {
+ alias(libs.plugins.comlib.android.library)
+ alias(libs.plugins.comlib.android.library.compose)
+ alias(libs.plugins.comlib.android.feature)
+ alias(libs.plugins.comlib.android.hilt)
+}
+
+android { namespace = "com.githukudenis.comlib.feature.settings" }
+
+dependencies {
+ implementation(project(":core:common"))
+ implementation(project(":core:model"))
+ implementation(project(":core:data"))
+
+ implementation(libs.androidx.compose.ui.tooling)
+ implementation(libs.androidx.navigation.compose)
+ implementation(libs.androidx.compose.material.iconsExtended)
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.coil.kt.compose)
+ implementation(libs.androidx.lifecycle.runtime.ktx)
+ implementation(libs.androidx.lifecycle.runtimeCompose)
+ implementation(libs.androidx.activity.compose)
+ implementation(platform(libs.androidx.compose.bom))
+ implementation(libs.androidx.compose.ui)
+ implementation(libs.androidx.compose.ui.graphics)
+ implementation(libs.androidx.compose.ui.tooling.preview)
+ implementation(libs.androidx.compose.material3)
+ implementation(libs.timber)
+}
diff --git a/feature/settings/build/.transforms/0ddafb934758adf39b3c485f805ad3c0/results.bin b/feature/settings/build/.transforms/0ddafb934758adf39b3c485f805ad3c0/results.bin
new file mode 100644
index 00000000..61a58fa7
--- /dev/null
+++ b/feature/settings/build/.transforms/0ddafb934758adf39b3c485f805ad3c0/results.bin
@@ -0,0 +1 @@
+i/classes_dex
diff --git a/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/results.bin b/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/results.bin
new file mode 100644
index 00000000..6d80d9af
--- /dev/null
+++ b/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/results.bin
@@ -0,0 +1 @@
+o/hiltAggregated.jar
diff --git a/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/transformed/hiltAggregated.jar b/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/transformed/hiltAggregated.jar
new file mode 100644
index 00000000..5b6da5d9
Binary files /dev/null and b/feature/settings/build/.transforms/56ebee44dd388d60fa2a092891de18f3/transformed/hiltAggregated.jar differ
diff --git a/feature/settings/build/.transforms/58d1d1aa7e4a58e0756df59494e17c23/results.bin b/feature/settings/build/.transforms/58d1d1aa7e4a58e0756df59494e17c23/results.bin
new file mode 100644
index 00000000..1ed65e03
--- /dev/null
+++ b/feature/settings/build/.transforms/58d1d1aa7e4a58e0756df59494e17c23/results.bin
@@ -0,0 +1 @@
+i/
diff --git a/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/results.bin b/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/results.bin
new file mode 100644
index 00000000..0d259ddc
--- /dev/null
+++ b/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/results.bin
@@ -0,0 +1 @@
+o/classes
diff --git a/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/transformed/classes/classes_dex/classes.dex b/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/transformed/classes/classes_dex/classes.dex
new file mode 100644
index 00000000..5b018f6e
Binary files /dev/null and b/feature/settings/build/.transforms/837168beb7b37061875efd3e183e0073/transformed/classes/classes_dex/classes.dex differ
diff --git a/feature/settings/build/.transforms/a638851f13401f46c2dd12eb788695c0/results.bin b/feature/settings/build/.transforms/a638851f13401f46c2dd12eb788695c0/results.bin
new file mode 100644
index 00000000..1ed65e03
--- /dev/null
+++ b/feature/settings/build/.transforms/a638851f13401f46c2dd12eb788695c0/results.bin
@@ -0,0 +1 @@
+i/
diff --git a/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/results.bin b/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/results.bin
new file mode 100644
index 00000000..28bb879e
--- /dev/null
+++ b/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/results.bin
@@ -0,0 +1 @@
+o/classes.jar
diff --git a/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/transformed/classes.jar b/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/transformed/classes.jar
new file mode 100644
index 00000000..291e6515
Binary files /dev/null and b/feature/settings/build/.transforms/b0077a88caf7825dce71b1897db025fe/transformed/classes.jar differ
diff --git a/feature/settings/build/.transforms/feff814bda67a090589d40a534ed3388/results.bin b/feature/settings/build/.transforms/feff814bda67a090589d40a534ed3388/results.bin
new file mode 100644
index 00000000..e3f0ff03
--- /dev/null
+++ b/feature/settings/build/.transforms/feff814bda67a090589d40a534ed3388/results.bin
@@ -0,0 +1 @@
+i/classes_global-synthetics
diff --git a/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.java b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.java
new file mode 100644
index 00000000..69ba4449
--- /dev/null
+++ b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.java
@@ -0,0 +1,51 @@
+package com.githukudenis.comlib.feature.settings;
+
+import com.githukudenis.comlib.core.data.repository.UserPrefsRepository;
+import com.githukudenis.comlib.core.data.repository.UserRepository;
+import dagger.internal.DaggerGenerated;
+import dagger.internal.Factory;
+import dagger.internal.QualifierMetadata;
+import dagger.internal.ScopeMetadata;
+import javax.annotation.processing.Generated;
+import javax.inject.Provider;
+
+@ScopeMetadata
+@QualifierMetadata
+@DaggerGenerated
+@Generated(
+ value = "dagger.internal.codegen.ComponentProcessor",
+ comments = "https://dagger.dev"
+)
+@SuppressWarnings({
+ "unchecked",
+ "rawtypes",
+ "KotlinInternal",
+ "KotlinInternalInJava"
+})
+public final class SettingsViewModel_Factory implements Factory {
+ private final Provider userPrefsRepositoryProvider;
+
+ private final Provider userRepositoryProvider;
+
+ public SettingsViewModel_Factory(Provider userPrefsRepositoryProvider,
+ Provider userRepositoryProvider) {
+ this.userPrefsRepositoryProvider = userPrefsRepositoryProvider;
+ this.userRepositoryProvider = userRepositoryProvider;
+ }
+
+ @Override
+ public SettingsViewModel get() {
+ return newInstance(userPrefsRepositoryProvider.get(), userRepositoryProvider.get());
+ }
+
+ public static SettingsViewModel_Factory create(
+ Provider userPrefsRepositoryProvider,
+ Provider userRepositoryProvider) {
+ return new SettingsViewModel_Factory(userPrefsRepositoryProvider, userRepositoryProvider);
+ }
+
+ public static SettingsViewModel newInstance(UserPrefsRepository userPrefsRepository,
+ UserRepository userRepository) {
+ return new SettingsViewModel(userPrefsRepository, userRepository);
+ }
+}
diff --git a/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.java b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.java
new file mode 100644
index 00000000..e7c93149
--- /dev/null
+++ b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.java
@@ -0,0 +1,52 @@
+package com.githukudenis.comlib.feature.settings;
+
+import androidx.lifecycle.ViewModel;
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+import dagger.hilt.InstallIn;
+import dagger.hilt.android.components.ActivityRetainedComponent;
+import dagger.hilt.android.components.ViewModelComponent;
+import dagger.hilt.android.internal.lifecycle.HiltViewModelMap;
+import dagger.hilt.codegen.OriginatingElement;
+import dagger.multibindings.IntoMap;
+import dagger.multibindings.IntoSet;
+import dagger.multibindings.StringKey;
+import java.lang.String;
+import javax.annotation.processing.Generated;
+
+@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor")
+@OriginatingElement(
+ topLevelClass = SettingsViewModel.class
+)
+public final class SettingsViewModel_HiltModules {
+ private SettingsViewModel_HiltModules() {
+ }
+
+ @Module
+ @InstallIn(ViewModelComponent.class)
+ public abstract static class BindsModule {
+ private BindsModule() {
+ }
+
+ @Binds
+ @IntoMap
+ @StringKey("com.githukudenis.comlib.feature.settings.SettingsViewModel")
+ @HiltViewModelMap
+ public abstract ViewModel binds(SettingsViewModel vm);
+ }
+
+ @Module
+ @InstallIn(ActivityRetainedComponent.class)
+ public static final class KeyModule {
+ private KeyModule() {
+ }
+
+ @Provides
+ @IntoSet
+ @HiltViewModelMap.KeySet
+ public static String provide() {
+ return "com.githukudenis.comlib.feature.settings.SettingsViewModel";
+ }
+ }
+}
diff --git a/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.java b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.java
new file mode 100644
index 00000000..e19e64d7
--- /dev/null
+++ b/feature/settings/build/generated/source/kapt/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.java
@@ -0,0 +1,40 @@
+package com.githukudenis.comlib.feature.settings;
+
+import dagger.internal.DaggerGenerated;
+import dagger.internal.Factory;
+import dagger.internal.Preconditions;
+import dagger.internal.QualifierMetadata;
+import dagger.internal.ScopeMetadata;
+import javax.annotation.processing.Generated;
+
+@ScopeMetadata
+@QualifierMetadata("dagger.hilt.android.internal.lifecycle.HiltViewModelMap.KeySet")
+@DaggerGenerated
+@Generated(
+ value = "dagger.internal.codegen.ComponentProcessor",
+ comments = "https://dagger.dev"
+)
+@SuppressWarnings({
+ "unchecked",
+ "rawtypes",
+ "KotlinInternal",
+ "KotlinInternalInJava"
+})
+public final class SettingsViewModel_HiltModules_KeyModule_ProvideFactory implements Factory {
+ @Override
+ public String get() {
+ return provide();
+ }
+
+ public static SettingsViewModel_HiltModules_KeyModule_ProvideFactory create() {
+ return InstanceHolder.INSTANCE;
+ }
+
+ public static String provide() {
+ return Preconditions.checkNotNullFromProvides(SettingsViewModel_HiltModules.KeyModule.provide());
+ }
+
+ private static final class InstanceHolder {
+ private static final SettingsViewModel_HiltModules_KeyModule_ProvideFactory INSTANCE = new SettingsViewModel_HiltModules_KeyModule_ProvideFactory();
+ }
+}
diff --git a/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.java b/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.java
new file mode 100644
index 00000000..48b3b2cb
--- /dev/null
+++ b/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.java
@@ -0,0 +1,15 @@
+package hilt_aggregated_deps;
+
+import dagger.hilt.processor.internal.aggregateddeps.AggregatedDeps;
+import javax.annotation.processing.Generated;
+
+/**
+ * This class should only be referenced by generated code! This class aggregates information across multiple compilations.
+ */
+@AggregatedDeps(
+ components = "dagger.hilt.android.components.ViewModelComponent",
+ modules = "com.githukudenis.comlib.feature.settings.SettingsViewModel_HiltModules.BindsModule"
+)
+@Generated("dagger.hilt.processor.internal.aggregateddeps.AggregatedDepsGenerator")
+public class _com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule {
+}
diff --git a/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.java b/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.java
new file mode 100644
index 00000000..9a220c36
--- /dev/null
+++ b/feature/settings/build/generated/source/kapt/debug/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.java
@@ -0,0 +1,15 @@
+package hilt_aggregated_deps;
+
+import dagger.hilt.processor.internal.aggregateddeps.AggregatedDeps;
+import javax.annotation.processing.Generated;
+
+/**
+ * This class should only be referenced by generated code! This class aggregates information across multiple compilations.
+ */
+@AggregatedDeps(
+ components = "dagger.hilt.android.components.ActivityRetainedComponent",
+ modules = "com.githukudenis.comlib.feature.settings.SettingsViewModel_HiltModules.KeyModule"
+)
+@Generated("dagger.hilt.processor.internal.aggregateddeps.AggregatedDepsGenerator")
+public class _com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule {
+}
diff --git a/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
new file mode 100644
index 00000000..0fee3860
--- /dev/null
+++ b/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json b/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json
new file mode 100644
index 00000000..7a8e2147
--- /dev/null
+++ b/feature/settings/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json
@@ -0,0 +1,18 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
+ "kind": "Directory"
+ },
+ "applicationId": "com.githukudenis.comlib.feature.settings",
+ "variantName": "debug",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "outputFile": "AndroidManifest.xml"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/aar_metadata/debug/aar-metadata.properties b/feature/settings/build/intermediates/aar_metadata/debug/aar-metadata.properties
new file mode 100644
index 00000000..776557e1
--- /dev/null
+++ b/feature/settings/build/intermediates/aar_metadata/debug/aar-metadata.properties
@@ -0,0 +1,5 @@
+aarFormatVersion=1.0
+aarMetadataVersion=1.0
+minCompileSdk=1
+minCompileSdkExtension=0
+minAndroidGradlePluginVersion=1.0.0
diff --git a/feature/settings/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/feature/settings/build/intermediates/annotation_processor_list/debug/annotationProcessors.json
new file mode 100644
index 00000000..d6650c31
--- /dev/null
+++ b/feature/settings/build/intermediates/annotation_processor_list/debug/annotationProcessors.json
@@ -0,0 +1 @@
+{"hilt-compiler-1.0.0.jar (androidx.hilt:hilt-compiler:1.0.0)":"INCREMENTAL_AP","hilt-android-compiler-2.48.1.jar (com.google.dagger:hilt-android-compiler:2.48.1)":"KSP_PROCESSOR","dagger-compiler-2.48.1.jar (com.google.dagger:dagger-compiler:2.48.1)":"KSP_PROCESSOR"}
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/META-INF/settings_debug.kotlin_module b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/META-INF/settings_debug.kotlin_module
new file mode 100644
index 00000000..b5d6d923
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/META-INF/settings_debug.kotlin_module differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class
new file mode 100644
index 00000000..061b6313
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class
new file mode 100644
index 00000000..dc177642
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class
new file mode 100644
index 00000000..d514033a
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class
new file mode 100644
index 00000000..ef00ca85
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class
new file mode 100644
index 00000000..628da894
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class
new file mode 100644
index 00000000..8622566a
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class
new file mode 100644
index 00000000..cabf7874
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/Profile.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/Profile.class
new file mode 100644
index 00000000..7d1a11e3
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/Profile.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class
new file mode 100644
index 00000000..18335ce3
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class
new file mode 100644
index 00000000..500e7644
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class
new file mode 100644
index 00000000..1cec8a5e
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState.class
new file mode 100644
index 00000000..4af34169
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/ProfileItemState.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class
new file mode 100644
index 00000000..a078178c
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class
new file mode 100644
index 00000000..4f21e577
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class
new file mode 100644
index 00000000..c7feca19
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class
new file mode 100644
index 00000000..902f6244
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class
new file mode 100644
index 00000000..c9951464
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class
new file mode 100644
index 00000000..d367551a
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class
new file mode 100644
index 00000000..a5f436ed
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class
new file mode 100644
index 00000000..554a1915
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class
new file mode 100644
index 00000000..8e87ae07
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class
new file mode 100644
index 00000000..35985b6f
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class
new file mode 100644
index 00000000..1f31eade
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class
new file mode 100644
index 00000000..e1529aeb
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class
new file mode 100644
index 00000000..02b2a574
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class
new file mode 100644
index 00000000..8d42cc4d
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class
new file mode 100644
index 00000000..8e8761d4
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class
new file mode 100644
index 00000000..bae5cabb
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class
new file mode 100644
index 00000000..64304cd0
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class
new file mode 100644
index 00000000..ef47d135
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsUiState.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsUiState.class
new file mode 100644
index 00000000..7eba4ec4
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsUiState.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class
new file mode 100644
index 00000000..3114d877
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel.class
new file mode 100644
index 00000000..7d6cd66a
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class
new file mode 100644
index 00000000..74ea1454
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class
new file mode 100644
index 00000000..371bb93b
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class
new file mode 100644
index 00000000..55da2785
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class
new file mode 100644
index 00000000..0df398ad
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class
new file mode 100644
index 00000000..a611fee7
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class
new file mode 100644
index 00000000..a44954dd
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class
new file mode 100644
index 00000000..a927a0b5
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class
new file mode 100644
index 00000000..74ca47b7
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class
new file mode 100644
index 00000000..8f9a2d7d
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class
new file mode 100644
index 00000000..aa61191c
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class
new file mode 100644
index 00000000..739cea7f
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class
new file mode 100644
index 00000000..09950313
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class differ
diff --git a/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class
new file mode 100644
index 00000000..bd7d0768
Binary files /dev/null and b/feature/settings/build/intermediates/classes/debug/transformDebugClassesWithAsm/dirs/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class differ
diff --git a/feature/settings/build/intermediates/compile_library_classes_jar/debug/classes.jar b/feature/settings/build/intermediates/compile_library_classes_jar/debug/classes.jar
new file mode 100644
index 00000000..dec744ca
Binary files /dev/null and b/feature/settings/build/intermediates/compile_library_classes_jar/debug/classes.jar differ
diff --git a/feature/settings/build/intermediates/compile_r_class_jar/debug/R.jar b/feature/settings/build/intermediates/compile_r_class_jar/debug/R.jar
new file mode 100644
index 00000000..b0ea5637
Binary files /dev/null and b/feature/settings/build/intermediates/compile_r_class_jar/debug/R.jar differ
diff --git a/feature/settings/build/intermediates/compile_symbol_list/debug/R.txt b/feature/settings/build/intermediates/compile_symbol_list/debug/R.txt
new file mode 100644
index 00000000..8aa0ec32
--- /dev/null
+++ b/feature/settings/build/intermediates/compile_symbol_list/debug/R.txt
@@ -0,0 +1,23 @@
+int drawable ic_appearance 0x0
+int drawable ic_arrow_back 0x0
+int drawable ic_books 0x0
+int drawable ic_camera 0x0
+int drawable ic_library 0x0
+int drawable ic_management 0x0
+int drawable ic_person 0x0
+int drawable ic_profile_placeholder 0x0
+int drawable ic_settings 0x0
+int drawable ic_shield 0x0
+int string account_desc 0x0
+int string account_title 0x0
+int string app_management_desc 0x0
+int string app_management_title 0x0
+int string change_image 0x0
+int string fetching_profile_indicator 0x0
+int string general_desc 0x0
+int string general_title 0x0
+int string library_desc 0x0
+int string library_title 0x0
+int string settings_title 0x0
+int string support_desc 0x0
+int string support_title 0x0
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_appearance.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_appearance.xml.flat
new file mode 100644
index 00000000..1ca79dff
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_appearance.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_arrow_back.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_arrow_back.xml.flat
new file mode 100644
index 00000000..f0d8183d
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_arrow_back.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_books.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_books.xml.flat
new file mode 100644
index 00000000..747855e3
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_books.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_camera.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_camera.xml.flat
new file mode 100644
index 00000000..26132c8f
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_camera.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_library.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_library.xml.flat
new file mode 100644
index 00000000..bdb78725
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_library.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_management.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_management.xml.flat
new file mode 100644
index 00000000..b1202743
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_management.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_person.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_person.xml.flat
new file mode 100644
index 00000000..5d5d2c61
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_person.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_profile_placeholder.jpg.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_profile_placeholder.jpg.flat
new file mode 100644
index 00000000..3b1b3530
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_profile_placeholder.jpg.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_settings.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_settings.xml.flat
new file mode 100644
index 00000000..b89bd926
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_settings.xml.flat differ
diff --git a/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_shield.xml.flat b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_shield.xml.flat
new file mode 100644
index 00000000..35feca7c
Binary files /dev/null and b/feature/settings/build/intermediates/compiled_local_resources/debug/out/drawable_ic_shield.xml.flat differ
diff --git a/feature/settings/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
new file mode 100644
index 00000000..26df12e8
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
@@ -0,0 +1,11 @@
+#Sat Oct 12 16:17:27 EAT 2024
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_person.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_person.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_settings.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_settings.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_camera.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_camera.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_library.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_library.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_appearance.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_appearance.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_management.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_management.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_shield.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_shield.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_books.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_books.xml
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_profile_placeholder.jpg=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_profile_placeholder.jpg
+com.githukudenis.comlib.feature.settings-main-6\:/drawable/ic_arrow_back.xml=/home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_arrow_back.xml
diff --git a/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml
new file mode 100644
index 00000000..c5c8b20f
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml
@@ -0,0 +1,16 @@
+
+
+ Edit,Logout
+ Account
+ Clear cache(Helps free up storage)
+ App management
+ Change image
+ Fetching profile...
+ Display, Notifications
+ Appearance
+ Owned, Read, Favourites
+ My books
+ Settings
+ Privacy policy
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merger.xml
new file mode 100644
index 00000000..c9e1c0a4
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/debug/packageDebugResources/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/feature/settings/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
new file mode 100644
index 00000000..064b2f05
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/incremental/mergeDebugShaders/merger.xml b/feature/settings/build/intermediates/incremental/mergeDebugShaders/merger.xml
new file mode 100644
index 00000000..720debe7
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/mergeDebugShaders/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/incremental/packageDebugAssets/merger.xml b/feature/settings/build/intermediates/incremental/packageDebugAssets/merger.xml
new file mode 100644
index 00000000..af1dc0e8
--- /dev/null
+++ b/feature/settings/build/intermediates/incremental/packageDebugAssets/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/java_res/debug/out/META-INF/settings_debug.kotlin_module b/feature/settings/build/intermediates/java_res/debug/out/META-INF/settings_debug.kotlin_module
new file mode 100644
index 00000000..b5d6d923
Binary files /dev/null and b/feature/settings/build/intermediates/java_res/debug/out/META-INF/settings_debug.kotlin_module differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class
new file mode 100644
index 00000000..371bb93b
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_Factory.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class
new file mode 100644
index 00000000..55da2785
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$BindsModule.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class
new file mode 100644
index 00000000..0df398ad
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules$KeyModule.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class
new file mode 100644
index 00000000..a611fee7
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class
new file mode 100644
index 00000000..a44954dd
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory$InstanceHolder.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class
new file mode 100644
index 00000000..a927a0b5
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/com/githukudenis/comlib/feature/settings/SettingsViewModel_HiltModules_KeyModule_ProvideFactory.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class b/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class
new file mode 100644
index 00000000..09950313
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_BindsModule.class differ
diff --git a/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class b/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class
new file mode 100644
index 00000000..bd7d0768
Binary files /dev/null and b/feature/settings/build/intermediates/javac/debug/classes/hilt_aggregated_deps/_com_githukudenis_comlib_feature_settings_SettingsViewModel_HiltModules_KeyModule.class differ
diff --git a/feature/settings/build/intermediates/local_only_symbol_list/debug/R-def.txt b/feature/settings/build/intermediates/local_only_symbol_list/debug/R-def.txt
new file mode 100644
index 00000000..8c03c422
--- /dev/null
+++ b/feature/settings/build/intermediates/local_only_symbol_list/debug/R-def.txt
@@ -0,0 +1,25 @@
+R_DEF: Internal format may change without notice
+local
+drawable ic_appearance
+drawable ic_arrow_back
+drawable ic_books
+drawable ic_camera
+drawable ic_library
+drawable ic_management
+drawable ic_person
+drawable ic_profile_placeholder
+drawable ic_settings
+drawable ic_shield
+string account_desc
+string account_title
+string app_management_desc
+string app_management_title
+string change_image
+string fetching_profile_indicator
+string general_desc
+string general_title
+string library_desc
+string library_title
+string settings_title
+string support_desc
+string support_title
diff --git a/feature/settings/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/feature/settings/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
new file mode 100644
index 00000000..6ec81012
--- /dev/null
+++ b/feature/settings/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
@@ -0,0 +1,7 @@
+1
+2
+4
+5
+6
+7
diff --git a/feature/settings/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/feature/settings/build/intermediates/merged_manifest/debug/AndroidManifest.xml
new file mode 100644
index 00000000..0fee3860
--- /dev/null
+++ b/feature/settings/build/intermediates/merged_manifest/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/navigation_json/debug/navigation.json b/feature/settings/build/intermediates/navigation_json/debug/navigation.json
new file mode 100644
index 00000000..0637a088
--- /dev/null
+++ b/feature/settings/build/intermediates/navigation_json/debug/navigation.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_appearance.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_appearance.xml
new file mode 100644
index 00000000..6ae3287d
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_appearance.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_arrow_back.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_books.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_books.xml
new file mode 100644
index 00000000..46d54c93
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_books.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_camera.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_camera.xml
new file mode 100644
index 00000000..8c7bc444
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_camera.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_library.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_library.xml
new file mode 100644
index 00000000..5f440972
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_library.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_management.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_management.xml
new file mode 100644
index 00000000..74f290b3
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_management.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_person.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_person.xml
new file mode 100644
index 00000000..f0dfc7b1
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_person.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_profile_placeholder.jpg b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_profile_placeholder.jpg
new file mode 100644
index 00000000..3fe20584
Binary files /dev/null and b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_profile_placeholder.jpg differ
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_settings.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_settings.xml
new file mode 100644
index 00000000..67902c22
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_settings.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_shield.xml b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_shield.xml
new file mode 100644
index 00000000..63e54508
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/drawable/ic_shield.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/settings/build/intermediates/packaged_res/debug/values/values.xml b/feature/settings/build/intermediates/packaged_res/debug/values/values.xml
new file mode 100644
index 00000000..c5c8b20f
--- /dev/null
+++ b/feature/settings/build/intermediates/packaged_res/debug/values/values.xml
@@ -0,0 +1,16 @@
+
+
+ Edit,Logout
+ Account
+ Clear cache(Helps free up storage)
+ App management
+ Change image
+ Fetching profile...
+ Display, Notifications
+ Appearance
+ Owned, Read, Favourites
+ My books
+ Settings
+ Privacy policy
+
+
\ No newline at end of file
diff --git a/feature/settings/build/intermediates/runtime_library_classes_jar/debug/classes.jar b/feature/settings/build/intermediates/runtime_library_classes_jar/debug/classes.jar
new file mode 100644
index 00000000..63d9b24a
Binary files /dev/null and b/feature/settings/build/intermediates/runtime_library_classes_jar/debug/classes.jar differ
diff --git a/feature/settings/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/feature/settings/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt
new file mode 100644
index 00000000..8912e991
--- /dev/null
+++ b/feature/settings/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt
@@ -0,0 +1,24 @@
+com.githukudenis.comlib.feature.settings
+drawable ic_appearance
+drawable ic_arrow_back
+drawable ic_books
+drawable ic_camera
+drawable ic_library
+drawable ic_management
+drawable ic_person
+drawable ic_profile_placeholder
+drawable ic_settings
+drawable ic_shield
+string account_desc
+string account_title
+string app_management_desc
+string app_management_title
+string change_image
+string fetching_profile_indicator
+string general_desc
+string general_title
+string library_desc
+string library_title
+string settings_title
+string support_desc
+string support_title
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab
new file mode 100644
index 00000000..db9a7c8b
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream
new file mode 100644
index 00000000..dd9b51a4
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at
new file mode 100644
index 00000000..80c37c4b
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i
new file mode 100644
index 00000000..208bf8d6
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab
new file mode 100644
index 00000000..a04a3c5d
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream
new file mode 100644
index 00000000..6f78d518
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len
new file mode 100644
index 00000000..a1d4dc67
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at
new file mode 100644
index 00000000..5bb1c27f
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i
new file mode 100644
index 00000000..97e94acf
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab
new file mode 100644
index 00000000..1ce97d58
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream
new file mode 100644
index 00000000..6f78d518
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..a1d4dc67
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at
new file mode 100644
index 00000000..92180511
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i
new file mode 100644
index 00000000..97e94acf
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab
new file mode 100644
index 00000000..bbf1ddc2
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream
new file mode 100644
index 00000000..7f8de3f0
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..76f34cc6
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len
new file mode 100644
index 00000000..b67c2271
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at
new file mode 100644
index 00000000..dd7a5ff2
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i
new file mode 100644
index 00000000..ddb0d392
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab
new file mode 100644
index 00000000..832ac1c1
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream
new file mode 100644
index 00000000..7fb1d589
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len
new file mode 100644
index 00000000..90c90ce8
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len
new file mode 100644
index 00000000..a9f80ae0
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at
new file mode 100644
index 00000000..65367f7c
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i
new file mode 100644
index 00000000..90e8ec58
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab
new file mode 100644
index 00000000..f4aee2c5
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream
new file mode 100644
index 00000000..74aa0b21
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len
new file mode 100644
index 00000000..18a21e68
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len
new file mode 100644
index 00000000..a5413564
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at
new file mode 100644
index 00000000..21d6d9b6
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i
new file mode 100644
index 00000000..7f04e93e
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab
new file mode 100644
index 00000000..f5be3d9e
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream
new file mode 100644
index 00000000..0a1a6bcb
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at
new file mode 100644
index 00000000..427b29e3
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i
new file mode 100644
index 00000000..e3dad6b5
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab
new file mode 100644
index 00000000..e5af8b3a
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream
new file mode 100644
index 00000000..43c41272
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len
new file mode 100644
index 00000000..c13e727a
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len
new file mode 100644
index 00000000..01bdaa1d
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at
new file mode 100644
index 00000000..0aa9de3f
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i
new file mode 100644
index 00000000..acbeaa6e
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab
new file mode 100644
index 00000000..a08758b6
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream
new file mode 100644
index 00000000..133b4c8d
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len
new file mode 100644
index 00000000..b59255ea
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at
new file mode 100644
index 00000000..fe2b6ad3
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i
new file mode 100644
index 00000000..a1828a02
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab
new file mode 100644
index 00000000..f2c67d0c
--- /dev/null
+++ b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab
@@ -0,0 +1,2 @@
+8
+0
\ No newline at end of file
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab
new file mode 100644
index 00000000..f59c8a26
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream
new file mode 100644
index 00000000..0a1a6bcb
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at
new file mode 100644
index 00000000..6a3671f4
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i
new file mode 100644
index 00000000..e3dad6b5
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab
new file mode 100644
index 00000000..c5f48d3a
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream
new file mode 100644
index 00000000..ce37c138
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len
new file mode 100644
index 00000000..d9e6aa61
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len
new file mode 100644
index 00000000..fa606b62
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at
new file mode 100644
index 00000000..c862f1c1
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i
new file mode 100644
index 00000000..37f0862a
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab
new file mode 100644
index 00000000..c3a9fcfa
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream
new file mode 100644
index 00000000..7aad5d84
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len
new file mode 100644
index 00000000..9169a660
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len
new file mode 100644
index 00000000..75ce99a0
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at
new file mode 100644
index 00000000..1b8c3ee0
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i
new file mode 100644
index 00000000..733fe16a
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/cacheable/last-build.bin b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/last-build.bin
new file mode 100644
index 00000000..30b62505
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/cacheable/last-build.bin differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/feature/settings/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin
new file mode 100644
index 00000000..fc39206b
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ
diff --git a/feature/settings/build/kotlin/compileDebugKotlin/local-state/build-history.bin b/feature/settings/build/kotlin/compileDebugKotlin/local-state/build-history.bin
new file mode 100644
index 00000000..912a3050
Binary files /dev/null and b/feature/settings/build/kotlin/compileDebugKotlin/local-state/build-history.bin differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab
new file mode 100644
index 00000000..3522c0c7
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream
new file mode 100644
index 00000000..dd9b51a4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at
new file mode 100644
index 00000000..cf15ccde
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i
new file mode 100644
index 00000000..208bf8d6
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab
new file mode 100644
index 00000000..a04a3c5d
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream
new file mode 100644
index 00000000..6f78d518
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len
new file mode 100644
index 00000000..a1d4dc67
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at
new file mode 100644
index 00000000..5bb1c27f
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i
new file mode 100644
index 00000000..97e94acf
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab
new file mode 100644
index 00000000..1ce97d58
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream
new file mode 100644
index 00000000..6f78d518
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..a1d4dc67
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at
new file mode 100644
index 00000000..92180511
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i
new file mode 100644
index 00000000..97e94acf
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab
new file mode 100644
index 00000000..44cd5333
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream
new file mode 100644
index 00000000..67fcdea0
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..9b081d69
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len
new file mode 100644
index 00000000..fd5292d4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at
new file mode 100644
index 00000000..58465c03
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i
new file mode 100644
index 00000000..3b8e798b
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab
new file mode 100644
index 00000000..85f3b8a7
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream
new file mode 100644
index 00000000..7fb1d589
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len
new file mode 100644
index 00000000..90c90ce8
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len
new file mode 100644
index 00000000..a9f80ae0
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at
new file mode 100644
index 00000000..65367f7c
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i
new file mode 100644
index 00000000..90e8ec58
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab
new file mode 100644
index 00000000..792b9a3e
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream
new file mode 100644
index 00000000..74aa0b21
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len
new file mode 100644
index 00000000..18a21e68
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len
new file mode 100644
index 00000000..a5413564
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at
new file mode 100644
index 00000000..0fb47cbd
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i
new file mode 100644
index 00000000..7f04e93e
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab
new file mode 100644
index 00000000..d2a410fe
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream
new file mode 100644
index 00000000..0a1a6bcb
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at
new file mode 100644
index 00000000..77f41ea9
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i
new file mode 100644
index 00000000..e3dad6b5
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab
new file mode 100644
index 00000000..e5af8b3a
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream
new file mode 100644
index 00000000..43c41272
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len
new file mode 100644
index 00000000..c13e727a
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len
new file mode 100644
index 00000000..01bdaa1d
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at
new file mode 100644
index 00000000..0aa9de3f
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i
new file mode 100644
index 00000000..acbeaa6e
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab
new file mode 100644
index 00000000..a08758b6
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream
new file mode 100644
index 00000000..133b4c8d
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len
new file mode 100644
index 00000000..b59255ea
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at
new file mode 100644
index 00000000..fe2b6ad3
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i
new file mode 100644
index 00000000..a1828a02
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/counters.tab
new file mode 100644
index 00000000..f2c67d0c
--- /dev/null
+++ b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/counters.tab
@@ -0,0 +1,2 @@
+8
+0
\ No newline at end of file
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab
new file mode 100644
index 00000000..f59c8a26
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream
new file mode 100644
index 00000000..0a1a6bcb
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len
new file mode 100644
index 00000000..244677e4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len
new file mode 100644
index 00000000..93a595bd
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at
new file mode 100644
index 00000000..6a3671f4
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i
new file mode 100644
index 00000000..e3dad6b5
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab
new file mode 100644
index 00000000..c5f48d3a
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream
new file mode 100644
index 00000000..ce37c138
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len
new file mode 100644
index 00000000..d9e6aa61
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len
new file mode 100644
index 00000000..fa606b62
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at
new file mode 100644
index 00000000..c862f1c1
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i
new file mode 100644
index 00000000..37f0862a
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab
new file mode 100644
index 00000000..76b05c6f
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream
new file mode 100644
index 00000000..abdf58a0
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len
new file mode 100644
index 00000000..86d70f60
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len
new file mode 100644
index 00000000..f1f53d96
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at
new file mode 100644
index 00000000..82a631c8
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i
new file mode 100644
index 00000000..a0ddb3bb
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/last-build.bin b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/last-build.bin
new file mode 100644
index 00000000..fecf92da
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/cacheable/last-build.bin differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin
new file mode 100644
index 00000000..fb4cbbb3
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ
diff --git a/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/local-state/build-history.bin b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/local-state/build-history.bin
new file mode 100644
index 00000000..cc67da54
Binary files /dev/null and b/feature/settings/build/kotlin/kaptGenerateStubsDebugKotlin/local-state/build-history.bin differ
diff --git a/feature/settings/build/outputs/logs/manifest-merger-debug-report.txt b/feature/settings/build/outputs/logs/manifest-merger-debug-report.txt
new file mode 100644
index 00000000..a823e4e0
--- /dev/null
+++ b/feature/settings/build/outputs/logs/manifest-merger-debug-report.txt
@@ -0,0 +1,16 @@
+-- Merging decision tree log ---
+manifest
+ADDED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml:2:13-83
+INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml:2:13-83
+ package
+ INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml
+ xmlns:android
+ ADDED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml:2:23-81
+uses-sdk
+INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml reason: use-sdk injection requested
+INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml
+INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml
+ android:targetSdkVersion
+ INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml
+ android:minSdkVersion
+ INJECTED from /home/githukudenis/CodeFactory/Android/ComLib/feature/settings/build/intermediates/tmp/ProcessLibraryManifest/debug/tempAndroidManifest8860245372157342569.xml
diff --git a/feature/settings/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/feature/settings/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin
new file mode 100644
index 00000000..b7183722
Binary files /dev/null and b/feature/settings/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incApCache/debug/ap-classpath-entries.bin b/feature/settings/build/tmp/kapt3/incApCache/debug/ap-classpath-entries.bin
new file mode 100644
index 00000000..19aad5c4
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incApCache/debug/ap-classpath-entries.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incApCache/debug/apt-cache.bin b/feature/settings/build/tmp/kapt3/incApCache/debug/apt-cache.bin
new file mode 100644
index 00000000..7a41f14a
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incApCache/debug/apt-cache.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-entries.bin b/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-entries.bin
new file mode 100644
index 00000000..bde6e759
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-entries.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-structure.bin b/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-structure.bin
new file mode 100644
index 00000000..b04d09c0
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incApCache/debug/classpath-structure.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incApCache/debug/java-cache.bin b/feature/settings/build/tmp/kapt3/incApCache/debug/java-cache.bin
new file mode 100644
index 00000000..73b84583
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incApCache/debug/java-cache.bin differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/META-INF/settings_debug.kotlin_module b/feature/settings/build/tmp/kapt3/incrementalData/debug/META-INF/settings_debug.kotlin_module
new file mode 100644
index 00000000..b5d6d923
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/META-INF/settings_debug.kotlin_module differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/Profile.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/Profile.class
new file mode 100644
index 00000000..df3512ec
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/Profile.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class
new file mode 100644
index 00000000..410ad05b
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class
new file mode 100644
index 00000000..96e4aa24
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class
new file mode 100644
index 00000000..ce5890ef
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class
new file mode 100644
index 00000000..83173399
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class
new file mode 100644
index 00000000..2cb6f0ec
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class
new file mode 100644
index 00000000..3dbccd35
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class
new file mode 100644
index 00000000..40997c38
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class
new file mode 100644
index 00000000..fead9760
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class differ
diff --git a/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class
new file mode 100644
index 00000000..22fe9706
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/incrementalData/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.java
new file mode 100644
index 00000000..957bc771
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.java
@@ -0,0 +1,91 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u000f\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B5\u0012\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\u0002\u0010\u0007J\u000b\u0010\r\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u000e\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u000f\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u0010\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J9\u0010\u0011\u001a\u00020\u00002\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0003H\u00c6\u0001J\u0013\u0010\u0012\u001a\u00020\u00132\b\u0010\u0014\u001a\u0004\u0018\u00010\u0001H\u00d6\u0003J\t\u0010\u0015\u001a\u00020\u0016H\u00d6\u0001J\t\u0010\u0017\u001a\u00020\u0003H\u00d6\u0001R\u0013\u0010\u0005\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\b\u0010\tR\u0013\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\n\u0010\tR\u0013\u0010\u0006\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u000b\u0010\tR\u0013\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\f\u0010\t\u00a8\u0006\u0018"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/Profile;", "", "firstname", "", "lastname", "email", "imageUrl", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", "getEmail", "()Ljava/lang/String;", "getFirstname", "getImageUrl", "getLastname", "component1", "component2", "component3", "component4", "copy", "equals", "", "other", "hashCode", "", "toString", "settings_debug"})
+public final class Profile {
+ @org.jetbrains.annotations.Nullable
+ private final java.lang.String firstname = null;
+ @org.jetbrains.annotations.Nullable
+ private final java.lang.String lastname = null;
+ @org.jetbrains.annotations.Nullable
+ private final java.lang.String email = null;
+ @org.jetbrains.annotations.Nullable
+ private final java.lang.String imageUrl = null;
+
+ public Profile(@org.jetbrains.annotations.Nullable
+ java.lang.String firstname, @org.jetbrains.annotations.Nullable
+ java.lang.String lastname, @org.jetbrains.annotations.Nullable
+ java.lang.String email, @org.jetbrains.annotations.Nullable
+ java.lang.String imageUrl) {
+ super();
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String getFirstname() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String getLastname() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String getEmail() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String getImageUrl() {
+ return null;
+ }
+
+ public Profile() {
+ super();
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String component1() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String component2() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String component3() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.Nullable
+ public final java.lang.String component4() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.Profile copy(@org.jetbrains.annotations.Nullable
+ java.lang.String firstname, @org.jetbrains.annotations.Nullable
+ java.lang.String lastname, @org.jetbrains.annotations.Nullable
+ java.lang.String email, @org.jetbrains.annotations.Nullable
+ java.lang.String imageUrl) {
+ return null;
+ }
+
+ @java.lang.Override
+ public boolean equals(@org.jetbrains.annotations.Nullable
+ java.lang.Object other) {
+ return false;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @java.lang.Override
+ @org.jetbrains.annotations.NotNull
+ public java.lang.String toString() {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.kapt_metadata
new file mode 100644
index 00000000..c7381a2f
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/Profile.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.java
new file mode 100644
index 00000000..2039f508
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.java
@@ -0,0 +1,120 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\bv\u0018\u00002\u00020\u0001:\u0003\u0002\u0003\u0004\u0082\u0001\u0003\u0005\u0006\u0007\u00a8\u0006\b"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "", "Error", "Loading", "Success", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Error;", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Loading;", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Success;", "settings_debug"})
+public abstract interface ProfileItemState {
+
+ @kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0004J\t\u0010\u0007\u001a\u00020\u0003H\u00c6\u0003J\u0013\u0010\b\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u0003H\u00c6\u0001J\u0013\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fH\u00d6\u0003J\t\u0010\r\u001a\u00020\u000eH\u00d6\u0001J\t\u0010\u000f\u001a\u00020\u0003H\u00d6\u0001R\u0011\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u0005\u0010\u0006\u00a8\u0006\u0010"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Error;", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "message", "", "(Ljava/lang/String;)V", "getMessage", "()Ljava/lang/String;", "component1", "copy", "equals", "", "other", "", "hashCode", "", "toString", "settings_debug"})
+ public static final class Error implements com.githukudenis.comlib.feature.settings.ProfileItemState {
+ @org.jetbrains.annotations.NotNull
+ private final java.lang.String message = null;
+
+ public Error(@org.jetbrains.annotations.NotNull
+ java.lang.String message) {
+ super();
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final java.lang.String getMessage() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final java.lang.String component1() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.ProfileItemState.Error copy(@org.jetbrains.annotations.NotNull
+ java.lang.String message) {
+ return null;
+ }
+
+ @java.lang.Override
+ public boolean equals(@org.jetbrains.annotations.Nullable
+ java.lang.Object other) {
+ return false;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @java.lang.Override
+ @org.jetbrains.annotations.NotNull
+ public java.lang.String toString() {
+ return null;
+ }
+ }
+
+ @kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000$\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u00c6\n\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J\u0013\u0010\u0003\u001a\u00020\u00042\b\u0010\u0005\u001a\u0004\u0018\u00010\u0006H\u00d6\u0003J\t\u0010\u0007\u001a\u00020\bH\u00d6\u0001J\t\u0010\t\u001a\u00020\nH\u00d6\u0001\u00a8\u0006\u000b"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Loading;", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "()V", "equals", "", "other", "", "hashCode", "", "toString", "", "settings_debug"})
+ public static final class Loading implements com.githukudenis.comlib.feature.settings.ProfileItemState {
+ @org.jetbrains.annotations.NotNull
+ public static final com.githukudenis.comlib.feature.settings.ProfileItemState.Loading INSTANCE = null;
+
+ private Loading() {
+ super();
+ }
+
+ @java.lang.Override
+ public boolean equals(@org.jetbrains.annotations.Nullable
+ java.lang.Object other) {
+ return false;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @java.lang.Override
+ @org.jetbrains.annotations.NotNull
+ public java.lang.String toString() {
+ return null;
+ }
+ }
+
+ @kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0086\b\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0004J\t\u0010\u0007\u001a\u00020\u0003H\u00c6\u0003J\u0013\u0010\b\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u0003H\u00c6\u0001J\u0013\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fH\u00d6\u0003J\t\u0010\r\u001a\u00020\u000eH\u00d6\u0001J\t\u0010\u000f\u001a\u00020\u0010H\u00d6\u0001R\u0011\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u0005\u0010\u0006\u00a8\u0006\u0011"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/ProfileItemState$Success;", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "profile", "Lcom/githukudenis/comlib/feature/settings/Profile;", "(Lcom/githukudenis/comlib/feature/settings/Profile;)V", "getProfile", "()Lcom/githukudenis/comlib/feature/settings/Profile;", "component1", "copy", "equals", "", "other", "", "hashCode", "", "toString", "", "settings_debug"})
+ public static final class Success implements com.githukudenis.comlib.feature.settings.ProfileItemState {
+ @org.jetbrains.annotations.NotNull
+ private final com.githukudenis.comlib.feature.settings.Profile profile = null;
+
+ public Success(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.Profile profile) {
+ super();
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.Profile getProfile() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.Profile component1() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.ProfileItemState.Success copy(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.Profile profile) {
+ return null;
+ }
+
+ @java.lang.Override
+ public boolean equals(@org.jetbrains.annotations.Nullable
+ java.lang.Object other) {
+ return false;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @java.lang.Override
+ @org.jetbrains.annotations.NotNull
+ public java.lang.String toString() {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.kapt_metadata
new file mode 100644
index 00000000..f32bdc85
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.java
new file mode 100644
index 00000000..dc3e439d
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.java
@@ -0,0 +1,40 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 2, xi = 48, d1 = {"\u0000B\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\u001a7\u0010\u0000\u001a\u00020\u00012\b\u0010\u0002\u001a\u0004\u0018\u00010\u00032\b\b\u0002\u0010\u0004\u001a\u00020\u00052\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007H\u0007\u00f8\u0001\u0000\u00f8\u0001\u0001\u00a2\u0006\u0004\b\b\u0010\t\u001a,\u0010\n\u001a\u00020\u00012\u0006\u0010\u000b\u001a\u00020\f2\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u00072\f\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007H\u0007\u001a\u0012\u0010\u000e\u001a\u00020\u00012\b\b\u0002\u0010\u000f\u001a\u00020\u0010H\u0007\u001a,\u0010\u0011\u001a\u00020\u00012\u0006\u0010\u0012\u001a\u00020\u00132\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u00072\f\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007H\u0007\u001a.\u0010\u0014\u001a\u00020\u00012\b\b\u0002\u0010\u0015\u001a\u00020\u00162\f\u0010\u0017\u001a\b\u0012\u0004\u0012\u00020\u00010\u00072\f\u0010\u0018\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007H\u0007\u001a:\u0010\u0019\u001a\u00020\u00012\u0006\u0010\u001a\u001a\u00020\u001b2\f\u0010\u0017\u001a\b\u0012\u0004\u0012\u00020\u00010\u00072\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u00072\f\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007H\u0007\u0082\u0002\u000b\n\u0005\b\u00a1\u001e0\u0001\n\u0002\b\u0019\u00a8\u0006\u001c"}, d2 = {"ProfileImage", "", "imageUrl", "", "size", "Landroidx/compose/ui/unit/Dp;", "onChangeImage", "Lkotlin/Function0;", "ProfileImage-lG28NQ4", "(Ljava/lang/String;FLkotlin/jvm/functions/Function0;)V", "ProfileLoaded", "profile", "Lcom/githukudenis/comlib/feature/settings/Profile;", "onEditProfile", "ProfileLoader", "modifier", "Landroidx/compose/ui/Modifier;", "ProfileSection", "profileItemState", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "SettingsRoute", "viewModel", "Lcom/githukudenis/comlib/feature/settings/SettingsViewModel;", "onNavigateUp", "onOpenEditProfile", "SettingsScreen", "state", "Lcom/githukudenis/comlib/feature/settings/SettingsUiState;", "settings_debug"})
+public final class SettingsRouteKt {
+
+ @androidx.compose.runtime.Composable
+ public static final void SettingsRoute(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.SettingsViewModel viewModel, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onNavigateUp, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onOpenEditProfile) {
+ }
+
+ @kotlin.OptIn(markerClass = {androidx.compose.material3.ExperimentalMaterial3Api.class})
+ @androidx.compose.runtime.Composable
+ public static final void SettingsScreen(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.SettingsUiState state, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onNavigateUp, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onChangeImage, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onEditProfile) {
+ }
+
+ @androidx.compose.runtime.Composable
+ public static final void ProfileSection(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.ProfileItemState profileItemState, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onChangeImage, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onEditProfile) {
+ }
+
+ @androidx.compose.runtime.Composable
+ public static final void ProfileLoader(@org.jetbrains.annotations.NotNull
+ androidx.compose.ui.Modifier modifier) {
+ }
+
+ @androidx.compose.runtime.Composable
+ public static final void ProfileLoaded(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.Profile profile, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onChangeImage, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onEditProfile) {
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.kapt_metadata
new file mode 100644
index 00000000..0dfc2812
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.java
new file mode 100644
index 00000000..759ef389
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.java
@@ -0,0 +1,49 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0086\b\u0018\u00002\u00020\u0001B\u000f\u0012\b\b\u0002\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0004J\t\u0010\u0007\u001a\u00020\u0003H\u00c6\u0003J\u0013\u0010\b\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u0003H\u00c6\u0001J\u0013\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\u0001H\u00d6\u0003J\t\u0010\f\u001a\u00020\rH\u00d6\u0001J\t\u0010\u000e\u001a\u00020\u000fH\u00d6\u0001R\u0011\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u0005\u0010\u0006\u00a8\u0006\u0010"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/SettingsUiState;", "", "profileItemState", "Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "(Lcom/githukudenis/comlib/feature/settings/ProfileItemState;)V", "getProfileItemState", "()Lcom/githukudenis/comlib/feature/settings/ProfileItemState;", "component1", "copy", "equals", "", "other", "hashCode", "", "toString", "", "settings_debug"})
+public final class SettingsUiState {
+ @org.jetbrains.annotations.NotNull
+ private final com.githukudenis.comlib.feature.settings.ProfileItemState profileItemState = null;
+
+ public SettingsUiState(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.ProfileItemState profileItemState) {
+ super();
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.ProfileItemState getProfileItemState() {
+ return null;
+ }
+
+ public SettingsUiState() {
+ super();
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.ProfileItemState component1() {
+ return null;
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final com.githukudenis.comlib.feature.settings.SettingsUiState copy(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.feature.settings.ProfileItemState profileItemState) {
+ return null;
+ }
+
+ @java.lang.Override
+ public boolean equals(@org.jetbrains.annotations.Nullable
+ java.lang.Object other) {
+ return false;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @java.lang.Override
+ @org.jetbrains.annotations.NotNull
+ public java.lang.String toString() {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.kapt_metadata
new file mode 100644
index 00000000..29edde66
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.java
new file mode 100644
index 00000000..27ca0169
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.java
@@ -0,0 +1,24 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000$\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0007\u0018\u00002\u00020\u0001B\u0017\b\u0007\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u00a2\u0006\u0002\u0010\u0006R\u0017\u0010\u0007\u001a\b\u0012\u0004\u0012\u00020\t0\b\u00a2\u0006\b\n\u0000\u001a\u0004\b\n\u0010\u000bR\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\f"}, d2 = {"Lcom/githukudenis/comlib/feature/settings/SettingsViewModel;", "Landroidx/lifecycle/ViewModel;", "userPrefsRepository", "Lcom/githukudenis/comlib/core/data/repository/UserPrefsRepository;", "userRepository", "Lcom/githukudenis/comlib/core/data/repository/UserRepository;", "(Lcom/githukudenis/comlib/core/data/repository/UserPrefsRepository;Lcom/githukudenis/comlib/core/data/repository/UserRepository;)V", "state", "Lkotlinx/coroutines/flow/StateFlow;", "Lcom/githukudenis/comlib/feature/settings/SettingsUiState;", "getState", "()Lkotlinx/coroutines/flow/StateFlow;", "settings_debug"})
+@dagger.hilt.android.lifecycle.HiltViewModel
+public final class SettingsViewModel extends androidx.lifecycle.ViewModel {
+ @org.jetbrains.annotations.NotNull
+ private final com.githukudenis.comlib.core.data.repository.UserPrefsRepository userPrefsRepository = null;
+ @org.jetbrains.annotations.NotNull
+ private final com.githukudenis.comlib.core.data.repository.UserRepository userRepository = null;
+ @org.jetbrains.annotations.NotNull
+ private final kotlinx.coroutines.flow.StateFlow state = null;
+
+ @javax.inject.Inject
+ public SettingsViewModel(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.core.data.repository.UserPrefsRepository userPrefsRepository, @org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.core.data.repository.UserRepository userRepository) {
+ super();
+ }
+
+ @org.jetbrains.annotations.NotNull
+ public final kotlinx.coroutines.flow.StateFlow getState() {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.kapt_metadata
new file mode 100644
index 00000000..c126756b
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.java
new file mode 100644
index 00000000..b9f849a8
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.java
@@ -0,0 +1,11 @@
+package com.githukudenis.comlib.feature.settings;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 2, xi = 48, d1 = {"\u0000\f\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\u001a\n\u0010\u0000\u001a\u00020\u0001*\u00020\u0002\u00a8\u0006\u0003"}, d2 = {"toProfile", "Lcom/githukudenis/comlib/feature/settings/Profile;", "Lcom/githukudenis/comlib/core/model/user/User;", "settings_debug"})
+public final class SettingsViewModelKt {
+
+ @org.jetbrains.annotations.NotNull
+ public static final com.githukudenis.comlib.feature.settings.Profile toProfile(@org.jetbrains.annotations.NotNull
+ com.githukudenis.comlib.core.model.user.User $this$toProfile) {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.kapt_metadata
new file mode 100644
index 00000000..56e2154c
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.java b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.java
new file mode 100644
index 00000000..560ee9c1
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.java
@@ -0,0 +1,13 @@
+package com.githukudenis.comlib.feature.settings.components;
+
+@kotlin.Metadata(mv = {1, 9, 0}, k = 2, xi = 48, d1 = {"\u0000\u001c\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a0\u0010\u0000\u001a\u00020\u00012\b\b\u0001\u0010\u0002\u001a\u00020\u00032\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00010\u00052\u0006\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\u0007H\u0007\u00a8\u0006\t"}, d2 = {"SettingListItem", "", "icon", "", "onClick", "Lkotlin/Function0;", "title", "", "description", "settings_debug"})
+public final class SettingListItemKt {
+
+ @androidx.compose.runtime.Composable
+ public static final void SettingListItem(@androidx.annotation.DrawableRes
+ int icon, @org.jetbrains.annotations.NotNull
+ kotlin.jvm.functions.Function0 onClick, @org.jetbrains.annotations.NotNull
+ java.lang.String title, @org.jetbrains.annotations.NotNull
+ java.lang.String description) {
+ }
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.kapt_metadata b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.kapt_metadata
new file mode 100644
index 00000000..294646ea
Binary files /dev/null and b/feature/settings/build/tmp/kapt3/stubs/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.kapt_metadata differ
diff --git a/feature/settings/build/tmp/kapt3/stubs/debug/error/NonExistentClass.java b/feature/settings/build/tmp/kapt3/stubs/debug/error/NonExistentClass.java
new file mode 100644
index 00000000..73693e1c
--- /dev/null
+++ b/feature/settings/build/tmp/kapt3/stubs/debug/error/NonExistentClass.java
@@ -0,0 +1,4 @@
+package error;
+
+public final class NonExistentClass {
+}
\ No newline at end of file
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/META-INF/settings_debug.kotlin_module b/feature/settings/build/tmp/kotlin-classes/debug/META-INF/settings_debug.kotlin_module
new file mode 100644
index 00000000..b5d6d923
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/META-INF/settings_debug.kotlin_module differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class
new file mode 100644
index 00000000..061b6313
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class
new file mode 100644
index 00000000..dc177642
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-2$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class
new file mode 100644
index 00000000..d514033a
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt$lambda-3$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class
new file mode 100644
index 00000000..ef00ca85
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ComposableSingletons$SettingsRouteKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class
new file mode 100644
index 00000000..628da894
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsRouteKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class
new file mode 100644
index 00000000..8622566a
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsUiStateKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class
new file mode 100644
index 00000000..cabf7874
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/LiveLiterals$SettingsViewModelKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/Profile.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/Profile.class
new file mode 100644
index 00000000..7d1a11e3
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/Profile.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class
new file mode 100644
index 00000000..18335ce3
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Error.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class
new file mode 100644
index 00000000..500e7644
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Loading.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class
new file mode 100644
index 00000000..1cec8a5e
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState$Success.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class
new file mode 100644
index 00000000..4af34169
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/ProfileItemState.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class
new file mode 100644
index 00000000..a078178c
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$1$1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class
new file mode 100644
index 00000000..4f21e577
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileImage$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class
new file mode 100644
index 00000000..c7feca19
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoaded$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class
new file mode 100644
index 00000000..902f6244
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileLoader$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class
new file mode 100644
index 00000000..c9951464
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$ProfileSection$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class
new file mode 100644
index 00000000..d367551a
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class
new file mode 100644
index 00000000..a5f436ed
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsRoute$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class
new file mode 100644
index 00000000..554a1915
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1$1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class
new file mode 100644
index 00000000..8e87ae07
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class
new file mode 100644
index 00000000..35985b6f
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class
new file mode 100644
index 00000000..1f31eade
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class
new file mode 100644
index 00000000..e1529aeb
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class
new file mode 100644
index 00000000..02b2a574
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$3.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class
new file mode 100644
index 00000000..8d42cc4d
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$4.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class
new file mode 100644
index 00000000..8e8761d4
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2$1$5.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class
new file mode 100644
index 00000000..bae5cabb
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$2.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class
new file mode 100644
index 00000000..64304cd0
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt$SettingsScreen$3.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class
new file mode 100644
index 00000000..ef47d135
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsRouteKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class
new file mode 100644
index 00000000..7eba4ec4
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsUiState.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class
new file mode 100644
index 00000000..3114d877
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel$state$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class
new file mode 100644
index 00000000..7d6cd66a
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModel.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class
new file mode 100644
index 00000000..74ea1454
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/SettingsViewModelKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class
new file mode 100644
index 00000000..74ca47b7
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/LiveLiterals$SettingListItemKt.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class
new file mode 100644
index 00000000..8f9a2d7d
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$1$1.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class
new file mode 100644
index 00000000..aa61191c
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt$SettingListItem$3.class differ
diff --git a/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class
new file mode 100644
index 00000000..739cea7f
Binary files /dev/null and b/feature/settings/build/tmp/kotlin-classes/debug/com/githukudenis/comlib/feature/settings/components/SettingListItemKt.class differ
diff --git a/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsRoute.kt b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsRoute.kt
new file mode 100644
index 00000000..8fef138a
--- /dev/null
+++ b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsRoute.kt
@@ -0,0 +1,224 @@
+
+/*
+* Copyright 2023 Denis Githuku
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* https://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package com.githukudenis.comlib.feature.settings
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.material3.CenterAlignedTopAppBar
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Scaffold
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import androidx.hilt.navigation.compose.hiltViewModel
+import coil.compose.AsyncImage
+import com.githukudenis.comlib.core.common.capitalize
+import com.githukudenis.comlib.core.designsystem.ui.components.buttons.CLibOutlinedButton
+import com.githukudenis.comlib.core.designsystem.ui.components.loading_indicators.CLibCircularProgressBar
+import com.githukudenis.comlib.core.designsystem.ui.theme.LocalDimens
+import com.githukudenis.comlib.feature.settings.components.SettingListItem
+
+@Composable
+fun SettingsRoute(
+ viewModel: SettingsViewModel = hiltViewModel(),
+ onNavigateUp: () -> Unit,
+ onOpenEditProfile: () -> Unit
+) {
+ val state by viewModel.state.collectAsState()
+ SettingsScreen(
+ state = state,
+ onNavigateUp = onNavigateUp,
+ onChangeImage = {},
+ onEditProfile = onOpenEditProfile
+ )
+}
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun SettingsScreen(
+ state: SettingsUiState,
+ onNavigateUp: () -> Unit,
+ onChangeImage: () -> Unit,
+ onEditProfile: () -> Unit
+) {
+ Scaffold(
+ topBar = {
+ CenterAlignedTopAppBar(
+ title = {
+ Text(
+ text = stringResource(R.string.settings_title),
+ style = MaterialTheme.typography.titleMedium
+ )
+ },
+ navigationIcon = {
+ IconButton(onClick = { onNavigateUp() }) {
+ Icon(
+ painter = painterResource(id = R.drawable.ic_arrow_back),
+ contentDescription = "Back"
+ )
+ }
+ }
+ )
+ }
+ ) { innerPadding ->
+ Column(modifier = Modifier.fillMaxSize().padding(innerPadding)) {
+ ProfileSection(
+ profileItemState = state.profileItemState,
+ onChangeImage = onChangeImage,
+ onEditProfile = onEditProfile
+ )
+ SettingListItem(
+ icon = R.drawable.ic_person,
+ onClick = {},
+ title = stringResource(id = R.string.account_title),
+ description = stringResource(id = R.string.account_desc)
+ )
+ SettingListItem(
+ icon = R.drawable.ic_library,
+ onClick = {},
+ title = stringResource(id = R.string.library_title),
+ description = stringResource(id = R.string.library_desc)
+ )
+ SettingListItem(
+ icon = R.drawable.ic_appearance,
+ onClick = {},
+ title = stringResource(id = R.string.general_title),
+ description = stringResource(id = R.string.general_desc)
+ )
+ SettingListItem(
+ icon = R.drawable.ic_shield,
+ onClick = {},
+ title = stringResource(id = R.string.support_title),
+ description = stringResource(id = R.string.support_desc)
+ )
+ SettingListItem(
+ icon = R.drawable.ic_management,
+ onClick = {},
+ title = stringResource(id = R.string.app_management_title),
+ description = stringResource(id = R.string.app_management_desc)
+ )
+ }
+ }
+}
+
+@Composable
+fun ProfileSection(
+ profileItemState: ProfileItemState,
+ onChangeImage: () -> Unit,
+ onEditProfile: () -> Unit
+) {
+ when (profileItemState) {
+ is ProfileItemState.Error -> Text(text = profileItemState.message)
+ ProfileItemState.Loading -> ProfileLoader()
+ is ProfileItemState.Success ->
+ ProfileLoaded(
+ profile = profileItemState.profile,
+ onChangeImage = onChangeImage,
+ onEditProfile = onEditProfile
+ )
+ }
+}
+
+@Composable
+fun ProfileLoader(modifier: Modifier = Modifier) {
+ Column(
+ modifier = Modifier.fillMaxWidth().padding(LocalDimens.current.sixteen),
+ horizontalAlignment = Alignment.CenterHorizontally,
+ verticalArrangement = Arrangement.Center
+ ) {
+ CLibCircularProgressBar()
+ Spacer(modifier = Modifier.height(LocalDimens.current.extraLarge))
+ Text(text = stringResource(R.string.fetching_profile_indicator))
+ }
+}
+
+@Composable
+fun ProfileLoaded(profile: Profile, onChangeImage: () -> Unit, onEditProfile: () -> Unit) {
+ Row(modifier = Modifier.fillMaxWidth().padding(LocalDimens.current.sixteen)) {
+ ProfileImage(imageUrl = profile.imageUrl, onChangeImage = onChangeImage)
+ Spacer(modifier = Modifier.width(LocalDimens.current.extraLarge))
+ Column(modifier = Modifier) {
+ Text(
+ text = "${profile.firstname?.capitalize()} ${profile.lastname?.capitalize()}",
+ style = MaterialTheme.typography.titleSmall
+ )
+ profile.email?.let { Text(text = profile.email, style = MaterialTheme.typography.bodyMedium) }
+ CLibOutlinedButton(onClick = onEditProfile) {
+ Text(text = "Edit", style = MaterialTheme.typography.bodySmall)
+ }
+ }
+ }
+}
+
+@Composable
+fun ProfileImage(imageUrl: String?, size: Dp = 100.dp, onChangeImage: () -> Unit) {
+ Box(modifier = Modifier) {
+ AsyncImage(
+ model = imageUrl,
+ modifier = Modifier.size(size).clip(CircleShape),
+ contentScale = ContentScale.Crop,
+ contentDescription = null,
+ placeholder = painterResource(id = R.drawable.ic_profile_placeholder)
+ )
+ Box(
+ modifier =
+ Modifier.align(alignment = Alignment.BottomEnd)
+ .clip(CircleShape)
+ .background(color = MaterialTheme.colorScheme.background, shape = CircleShape)
+ .border(
+ width = 0.5.dp,
+ color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.1f),
+ shape = CircleShape
+ )
+ .background(MaterialTheme.colorScheme.background, shape = CircleShape)
+ .clickable { onChangeImage() },
+ contentAlignment = Alignment.Center
+ ) {
+ Icon(
+ modifier = Modifier.padding(4.dp),
+ painter = painterResource(id = R.drawable.ic_camera),
+ contentDescription = stringResource(R.string.change_image),
+ tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.6f)
+ )
+ }
+ }
+}
diff --git a/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsUiState.kt b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsUiState.kt
new file mode 100644
index 00000000..d6b1e5c9
--- /dev/null
+++ b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsUiState.kt
@@ -0,0 +1,19 @@
+
+/*
+* Copyright 2023 Denis Githuku
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* https://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package com.githukudenis.comlib.feature.settings
+
+data class SettingsUiState(val profileItemState: ProfileItemState = ProfileItemState.Loading)
diff --git a/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsViewModel.kt b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsViewModel.kt
new file mode 100644
index 00000000..82cb95e1
--- /dev/null
+++ b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/SettingsViewModel.kt
@@ -0,0 +1,77 @@
+
+/*
+* Copyright 2023 Denis Githuku
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* https://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package com.githukudenis.comlib.feature.settings
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import com.githukudenis.comlib.core.common.ResponseResult
+import com.githukudenis.comlib.core.data.repository.UserPrefsRepository
+import com.githukudenis.comlib.core.data.repository.UserRepository
+import com.githukudenis.comlib.core.model.user.User
+import dagger.hilt.android.lifecycle.HiltViewModel
+import javax.inject.Inject
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.mapLatest
+import kotlinx.coroutines.flow.stateIn
+
+data class Profile(
+ val firstname: String? = null,
+ val lastname: String? = null,
+ val email: String? = null,
+ val imageUrl: String? = null
+)
+
+sealed interface ProfileItemState {
+ data object Loading : ProfileItemState
+
+ data class Success(val profile: Profile) : ProfileItemState
+
+ data class Error(val message: String) : ProfileItemState
+}
+
+fun User.toProfile(): Profile {
+ return Profile(firstname = firstname, lastname = lastname, email = email, imageUrl = image)
+}
+
+@HiltViewModel
+class SettingsViewModel
+@Inject
+constructor(
+ private val userPrefsRepository: UserPrefsRepository,
+ private val userRepository: UserRepository
+) : ViewModel() {
+
+ val state: StateFlow =
+ userPrefsRepository.userPrefs
+ .mapLatest { prefs ->
+ prefs.userId?.let { id ->
+ val profile =
+ when (val result = userRepository.getUserById(id)) {
+ is ResponseResult.Failure -> ProfileItemState.Error(result.error.message)
+ is ResponseResult.Success ->
+ ProfileItemState.Success(result.data.data.user.toProfile())
+ }
+ SettingsUiState(profileItemState = profile)
+ } ?: SettingsUiState()
+ }
+ .stateIn(
+ scope = viewModelScope,
+ started = SharingStarted.WhileSubscribed(5_000),
+ initialValue = SettingsUiState()
+ )
+}
diff --git a/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/components/SettingListItem.kt b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/components/SettingListItem.kt
new file mode 100644
index 00000000..31bbfc3d
--- /dev/null
+++ b/feature/settings/src/main/kotlin/com/githukudenis/comlib/feature/settings/components/SettingListItem.kt
@@ -0,0 +1,65 @@
+
+/*
+* Copyright 2023 Denis Githuku
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* https://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package com.githukudenis.comlib.feature.settings.components
+
+import androidx.annotation.DrawableRes
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight
+import com.githukudenis.comlib.core.designsystem.ui.theme.LocalDimens
+
+@Composable
+fun SettingListItem(
+ @DrawableRes icon: Int,
+ onClick: () -> Unit,
+ title: String,
+ description: String
+) {
+ Row(
+ modifier = Modifier.fillMaxWidth().clickable { onClick() }.padding(LocalDimens.current.sixteen),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.Start
+ ) {
+ Icon(painter = painterResource(id = icon), contentDescription = title)
+ Spacer(modifier = Modifier.width(LocalDimens.current.sixteen))
+ Column(modifier = Modifier) {
+ Text(text = title, style = MaterialTheme.typography.bodyLarge, fontWeight = FontWeight.Medium)
+ Spacer(modifier = Modifier.height(LocalDimens.current.eight))
+ Text(
+ text = description,
+ style =
+ MaterialTheme.typography.labelMedium.copy(
+ color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.8f)
+ )
+ )
+ }
+ }
+}
diff --git a/feature/settings/src/main/res/drawable/ic_appearance.xml b/feature/settings/src/main/res/drawable/ic_appearance.xml
new file mode 100644
index 00000000..6b2a8a31
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_appearance.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_arrow_back.xml b/feature/settings/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_books.xml b/feature/settings/src/main/res/drawable/ic_books.xml
new file mode 100644
index 00000000..46d54c93
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_books.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_camera.xml b/feature/settings/src/main/res/drawable/ic_camera.xml
new file mode 100644
index 00000000..8c7bc444
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_camera.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_library.xml b/feature/settings/src/main/res/drawable/ic_library.xml
new file mode 100644
index 00000000..cc3b5260
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_library.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_management.xml b/feature/settings/src/main/res/drawable/ic_management.xml
new file mode 100644
index 00000000..2c3a0143
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_management.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_person.xml b/feature/settings/src/main/res/drawable/ic_person.xml
new file mode 100644
index 00000000..5432333e
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_person.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_profile_placeholder.jpg b/feature/settings/src/main/res/drawable/ic_profile_placeholder.jpg
new file mode 100644
index 00000000..3fe20584
Binary files /dev/null and b/feature/settings/src/main/res/drawable/ic_profile_placeholder.jpg differ
diff --git a/feature/settings/src/main/res/drawable/ic_settings.xml b/feature/settings/src/main/res/drawable/ic_settings.xml
new file mode 100644
index 00000000..67902c22
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_settings.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/feature/settings/src/main/res/drawable/ic_shield.xml b/feature/settings/src/main/res/drawable/ic_shield.xml
new file mode 100644
index 00000000..a41b68dd
--- /dev/null
+++ b/feature/settings/src/main/res/drawable/ic_shield.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml
new file mode 100644
index 00000000..0a6abc70
--- /dev/null
+++ b/feature/settings/src/main/res/values/strings.xml
@@ -0,0 +1,16 @@
+
+
+ Settings
+ Fetching profile...
+ Change image
+ Account
+ Edit,Logout
+ My books
+ Owned, Read, Favourites
+ Appearance
+ Display, Notifications
+
+ Privacy policy
+ App management
+ Clear cache(Helps free up storage)
+
diff --git a/feature/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakScreen.kt b/feature/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakScreen.kt
index 270e0179..c4087883 100644
--- a/feature/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakScreen.kt
+++ b/feature/streak/src/main/java/com/githukudenis/comlib/feature/streak/StreakScreen.kt
@@ -30,8 +30,6 @@ import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowBack
-import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.material3.CenterAlignedTopAppBar
@@ -59,6 +57,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import com.githukudenis.comlib.core.common.capitalize
@@ -228,7 +227,7 @@ private fun StreakContent(
navigationIcon = {
IconButton(onClick = onNavigateUp) {
Icon(
- imageVector = Icons.Default.ArrowBack,
+ painter = painterResource(id = R.drawable.ic_arrow_back),
contentDescription = stringResource(R.string.back)
)
}
@@ -236,7 +235,7 @@ private fun StreakContent(
actions = {
IconButton(onClick = onSaveStreak, enabled = state.isValid) {
Icon(
- imageVector = Icons.Default.Check,
+ painter = painterResource(id = R.drawable.ic_check),
contentDescription = stringResource(R.string.save_streak_label)
)
}
diff --git a/feature/streak/src/main/res/drawable/ic_arrow_back.xml b/feature/streak/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..d8dc3b86
--- /dev/null
+++ b/feature/streak/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/feature/streak/src/main/res/drawable/ic_check.xml b/feature/streak/src/main/res/drawable/ic_check.xml
new file mode 100644
index 00000000..2596d0f2
--- /dev/null
+++ b/feature/streak/src/main/res/drawable/ic_check.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 73922917..fb5df1e6 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -34,6 +34,7 @@ include(":feature:home")
include(":core:datastore")
include(":feature:book_detail")
include(":feature:books")
+include(":feature:settings")
include(":feature:profile")
include(":core:data-test")
include(":feature:add_book")