From a6a47a5eaed2d3e2fa506441c9568f9103d9713f Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 21:06:42 +0100 Subject: [PATCH 01/39] Move login/logout to navigation drawer --- .../kirmanak/mealient/ui/activity/MainActivity.kt | 11 +++++++++-- app/src/main/res/menu/main_toolbar.xml | 12 ------------ app/src/main/res/menu/navigation_menu.xml | 15 ++++++++++++--- app/src/main/res/values-ru/strings.xml | 10 +++++----- app/src/main/res/values/strings.xml | 14 +++++++------- 5 files changed, 33 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt index 63270ce..44d11c7 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt @@ -75,6 +75,12 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { R.id.add_recipe -> actionGlobalAddRecipeFragment() R.id.recipes_list -> actionGlobalRecipesListFragment() R.id.change_url -> actionGlobalBaseURLFragment() + R.id.login -> actionGlobalAuthenticationFragment() + R.id.logout -> { + viewModel.logout() + binding.drawer.close() + return true + } else -> throw IllegalArgumentException("Unknown menu item id: ${menuItem.itemId}") } navigateTo(directions) @@ -86,6 +92,9 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { logger.v { "onUiStateChange() called with: uiState = $uiState" } supportActionBar?.title = if (uiState.titleVisible) title else null binding.navigationView.isVisible = uiState.navigationVisible + val menu = binding.navigationView.menu + menu.findItem(R.id.logout).isVisible = uiState.canShowLogout + menu.findItem(R.id.login).isVisible = uiState.canShowLogin invalidateOptionsMenu() } @@ -108,8 +117,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { override fun onCreateOptionsMenu(menu: Menu): Boolean { logger.v { "onCreateOptionsMenu() called with: menu = $menu" } menuInflater.inflate(R.menu.main_toolbar, menu) - menu.findItem(R.id.logout).isVisible = uiState.canShowLogout - menu.findItem(R.id.login).isVisible = uiState.canShowLogin val searchItem = menu.findItem(R.id.search_recipe_action) searchItem.isVisible = uiState.searchVisible setupSearchItem(searchItem) diff --git a/app/src/main/res/menu/main_toolbar.xml b/app/src/main/res/menu/main_toolbar.xml index 242a16e..8e4cf4e 100644 --- a/app/src/main/res/menu/main_toolbar.xml +++ b/app/src/main/res/menu/main_toolbar.xml @@ -2,18 +2,6 @@ - - - - + android:title="@string/menu_navigation_drawer_recipes_list" /> + android:title="@string/menu_navigation_drawer_add_recipe" /> + android:title="@string/menu_navigation_drawer_change_url" /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index fea499a..f5a69f7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -5,7 +5,7 @@ URL сервера Войти Изображение готового блюда - Выйти + Выйти Загрузка Ингредиенты Инструкции @@ -21,11 +21,11 @@ Что-то пошло не так, попробуйте еще раз. Проверьте формат URL: %s Продолжить - Войти + Войти Название рецепта Описание - Рецепты - Добавить рецепт + Рецепты + Добавить рецепт Количество порций Сохранить рецепт Добавить шаг @@ -47,6 +47,6 @@ неожиданный ответ нет соединения Ошибка загрузки. - Сменить URL + Сменить URL Найти рецепты \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 457b90e..fe674b5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,8 +5,8 @@ Server URL Login Picture of the cooked meal - @string/menu_main_toolbar_logout - Logout + @string/menu_navigation_drawer_logout + Logout Loading… @string/content_description_view_holder_recipe_image Ingredients @@ -18,8 +18,8 @@ Check URL format: %s Proceed @string/fragment_authentication_unknown_error - @string/menu_main_toolbar_login - Login + @string/menu_navigation_drawer_login + Login Okay Step: %d E-mail can\'t be empty @@ -28,8 +28,8 @@ Something went wrong, please try again. Recipe name Description - Add recipe - Recipes + Add recipe + Recipes Recipe yield Save recipe New step @@ -51,6 +51,6 @@ unauthorized unexpected response no connection - Change URL + Change URL Search recipes \ No newline at end of file From 7faaeb511e2e45d17331935f00de878f1953a91d Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 21:41:04 +0100 Subject: [PATCH 02/39] Change recipes list colors --- app/src/main/res/layout/fragment_recipes_list.xml | 1 + app/src/main/res/layout/view_holder_recipe.xml | 7 ++++--- app/src/main/res/values/colors.xml | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/layout/fragment_recipes_list.xml b/app/src/main/res/layout/fragment_recipes_list.xml index 4d59c87..7cbf4e8 100644 --- a/app/src/main/res/layout/fragment_recipes_list.xml +++ b/app/src/main/res/layout/fragment_recipes_list.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/lightGray" tools:context=".ui.recipes.RecipesListFragment"> + app:cardBackgroundColor="@color/white" + app:shapeAppearance="@style/ShapeAppearance.AllCornersRounded"> \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 904f3be..164e4fd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -55,4 +55,7 @@ #7743B5 #000000 #7743B5 + + #F1F1F1 + #FFFFFF \ No newline at end of file From e164d832586a3d68e942336f6270bbe9cbe51474 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 21:45:48 +0100 Subject: [PATCH 03/39] Remove toolbar round corner --- .../mealient/ui/activity/MainActivity.kt | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt index 44d11c7..f7744bd 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt @@ -13,8 +13,6 @@ import androidx.navigation.NavController import androidx.navigation.NavDirections import androidx.navigation.fragment.NavHostFragment import by.kirich1409.viewbindingdelegate.viewBinding -import com.google.android.material.shape.CornerFamily -import com.google.android.material.shape.MaterialShapeDrawable import dagger.hilt.android.AndroidEntryPoint import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalAddRecipeFragment import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalAuthenticationFragment @@ -65,7 +63,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { setSupportActionBar(binding.toolbar) binding.toolbar.setNavigationIcon(R.drawable.ic_toolbar) binding.toolbar.setNavigationOnClickListener { binding.drawer.open() } - setToolbarRoundCorner() } private fun onNavigationItemSelected(menuItem: MenuItem): Boolean { @@ -98,22 +95,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { invalidateOptionsMenu() } - private fun setToolbarRoundCorner() { - logger.v { "setToolbarRoundCorner() called" } - val drawables = listOf( - binding.toolbarHolder.background as? MaterialShapeDrawable, - binding.toolbar.background as? MaterialShapeDrawable, - ) - logger.d { "setToolbarRoundCorner: drawables = $drawables" } - val radius = resources.getDimension(R.dimen.main_activity_toolbar_corner_radius) - for (drawable in drawables) { - drawable?.apply { - shapeAppearanceModel = shapeAppearanceModel.toBuilder() - .setBottomLeftCorner(CornerFamily.ROUNDED, radius).build() - } - } - } - override fun onCreateOptionsMenu(menu: Menu): Boolean { logger.v { "onCreateOptionsMenu() called with: menu = $menu" } menuInflater.inflate(R.menu.main_toolbar, menu) From ac0eb2bfd21a61a3fb8b0a15e14b3368e21bed6c Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 22:20:52 +0100 Subject: [PATCH 04/39] Generate colors with material color generator --- .../main/res/layout/fragment_recipes_list.xml | 1 - app/src/main/res/layout/main_activity.xml | 1 - .../main/res/layout/view_holder_recipe.xml | 1 - app/src/main/res/values-night/themes.xml | 11 +- app/src/main/res/values/colors.xml | 122 +++++++++--------- app/src/main/res/values/themes.xml | 16 +-- 6 files changed, 72 insertions(+), 80 deletions(-) diff --git a/app/src/main/res/layout/fragment_recipes_list.xml b/app/src/main/res/layout/fragment_recipes_list.xml index 7cbf4e8..4d59c87 100644 --- a/app/src/main/res/layout/fragment_recipes_list.xml +++ b/app/src/main/res/layout/fragment_recipes_list.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/lightGray" tools:context=".ui.recipes.RecipesListFragment"> diff --git a/app/src/main/res/layout/view_holder_recipe.xml b/app/src/main/res/layout/view_holder_recipe.xml index 30e7710..dc5e39e 100644 --- a/app/src/main/res/layout/view_holder_recipe.xml +++ b/app/src/main/res/layout/view_holder_recipe.xml @@ -8,7 +8,6 @@ android:layout_marginVertical="7dp" android:layout_marginStart="16dp" android:layout_marginEnd="19dp" - app:cardBackgroundColor="@color/white" app:shapeAppearance="@style/ShapeAppearance.AllCornersRounded"> @color/md_theme_dark_tertiaryContainer @color/md_theme_dark_onTertiaryContainer @color/md_theme_dark_error - @color/md_theme_dark_errorContainer @color/md_theme_dark_onError + @color/md_theme_dark_errorContainer @color/md_theme_dark_onErrorContainer + @color/md_theme_dark_outline @color/md_theme_dark_background @color/md_theme_dark_onBackground @color/md_theme_dark_surface @color/md_theme_dark_onSurface @color/md_theme_dark_surfaceVariant @color/md_theme_dark_onSurfaceVariant - @color/md_theme_dark_outline - @color/md_theme_dark_inverseOnSurface @color/md_theme_dark_inverseSurface - @color/md_theme_dark_primaryInverse - never + @color/md_theme_dark_inverseOnSurface + @color/md_theme_dark_inversePrimary - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 164e4fd..22176c7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,61 +1,63 @@ - #7743B5 - #FFFFFF - #EFDBFF - #290054 - #655A70 - #FFFFFF - #ECDDF7 - #201829 - #805159 - #FFFFFF - #FFD9DF - #321118 - #BA1B1B - #FFDAD4 - #FFFFFF - #410001 - #FFFBFC - #1D1B1E - #FFFBFC - #1D1B1E - #E8DFEB - #4A454E - #7B757E - #F5EFF3 - #322F33 - #DBB8FF - #000000 - #DBB8FF - #DBB8FF - #460283 - #5E289B - #EFDBFF - #CFC1DA - #362D40 - #4D4357 - #ECDDF7 - #F2B7C0 - #4B252C - #653A42 - #FFD9DF - #FFB4A9 - #930006 - #680003 - #FFDAD4 - #1D1B1E - #E7E1E5 - #1D1B1E - #E7E1E5 - #4A454E - #CCC4CF - #958E98 - #1D1B1E - #E7E1E5 - #7743B5 - #000000 - #7743B5 - - #F1F1F1 - #FFFFFF - \ No newline at end of file + #FFB45B + #875200 + #FFFFFF + #FFDDBA + #2B1700 + #126D27 + #FFFFFF + #9FF79F + #002105 + #006874 + #FFFFFF + #97F0FF + #001F24 + #BA1A1A + #FFDAD6 + #FFFFFF + #410002 + #FFFBFF + #1F1B16 + #FFFBFF + #1F1B16 + #F1DFD0 + #50453A + #827568 + #FAEFE7 + #352F2A + #FFB867 + #000000 + #875200 + #D4C4B5 + #000000 + #FFB867 + #482900 + #673D00 + #FFDDBA + #83DA85 + #00390E + #005318 + #9FF79F + #4FD8EB + #00363D + #004F58 + #97F0FF + #FFB4AB + #93000A + #690005 + #FFDAD6 + #1F1B16 + #EBE1D9 + #1F1B16 + #EBE1D9 + #50453A + #D4C4B5 + #9D8E81 + #1F1B16 + #EBE1D9 + #875200 + #000000 + #FFB867 + #50453A + #000000 + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 34e1287..ec5df04 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -20,24 +20,18 @@ @color/md_theme_light_tertiaryContainer @color/md_theme_light_onTertiaryContainer @color/md_theme_light_error - @color/md_theme_light_errorContainer @color/md_theme_light_onError + @color/md_theme_light_errorContainer @color/md_theme_light_onErrorContainer + @color/md_theme_light_outline @color/md_theme_light_background @color/md_theme_light_onBackground @color/md_theme_light_surface @color/md_theme_light_onSurface @color/md_theme_light_surfaceVariant @color/md_theme_light_onSurfaceVariant - @color/md_theme_light_outline - @color/md_theme_light_inverseOnSurface @color/md_theme_light_inverseSurface - @color/md_theme_light_primaryInverse - never + @color/md_theme_light_inverseOnSurface + @color/md_theme_light_inversePrimary - - - \ No newline at end of file + From e86b24c3f68a62c2871c34f2b377bcff2672ca3e Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 22:42:56 +0100 Subject: [PATCH 05/39] Use material toolbar without action bar --- .../mealient/ui/activity/MainActivity.kt | 30 +++++++------------ .../ui/activity/MainActivityUiState.kt | 1 - .../mealient/ui/add/AddRecipeFragment.kt | 7 +---- .../ui/auth/AuthenticationFragment.kt | 7 +---- .../mealient/ui/baseurl/BaseURLFragment.kt | 7 +---- .../ui/disclaimer/DisclaimerFragment.kt | 7 +---- .../ui/recipes/RecipesListFragment.kt | 7 +---- app/src/main/res/layout/main_activity.xml | 7 +++-- 8 files changed, 19 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt index f7744bd..45ba0b1 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt @@ -1,7 +1,6 @@ package gq.kirmanak.mealient.ui.activity import android.os.Bundle -import android.view.Menu import android.view.MenuItem import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity @@ -29,8 +28,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { private val binding: MainActivityBinding by viewBinding(MainActivityBinding::bind, R.id.drawer) private val viewModel by viewModels() - private val title: String by lazy { getString(R.string.app_name) } - private val uiState: MainActivityUiState get() = viewModel.uiState private val navController: NavController get() = binding.navHost.getFragment().navController @@ -47,6 +44,7 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { configureNavGraph() viewModel.uiStateLive.observe(this, ::onUiStateChange) binding.navigationView.setNavigationItemSelectedListener(::onNavigationItemSelected) + supportActionBar?.hide() } private fun configureNavGraph() { @@ -60,8 +58,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { } private fun configureToolbar() { - setSupportActionBar(binding.toolbar) - binding.toolbar.setNavigationIcon(R.drawable.ic_toolbar) binding.toolbar.setNavigationOnClickListener { binding.drawer.open() } } @@ -87,21 +83,15 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { private fun onUiStateChange(uiState: MainActivityUiState) { logger.v { "onUiStateChange() called with: uiState = $uiState" } - supportActionBar?.title = if (uiState.titleVisible) title else null - binding.navigationView.isVisible = uiState.navigationVisible - val menu = binding.navigationView.menu - menu.findItem(R.id.logout).isVisible = uiState.canShowLogout - menu.findItem(R.id.login).isVisible = uiState.canShowLogin - invalidateOptionsMenu() - } - - override fun onCreateOptionsMenu(menu: Menu): Boolean { - logger.v { "onCreateOptionsMenu() called with: menu = $menu" } - menuInflater.inflate(R.menu.main_toolbar, menu) - val searchItem = menu.findItem(R.id.search_recipe_action) - searchItem.isVisible = uiState.searchVisible - setupSearchItem(searchItem) - return true + with(binding.navigationView) { + isVisible = uiState.navigationVisible + menu.findItem(R.id.logout).isVisible = uiState.canShowLogout + menu.findItem(R.id.login).isVisible = uiState.canShowLogin + } + binding.toolbar.menu.findItem(R.id.search_recipe_action).apply { + isVisible = uiState.searchVisible + setupSearchItem(this) + } } private fun setupSearchItem(searchItem: MenuItem) { diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivityUiState.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivityUiState.kt index 3317d18..e0efc7e 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivityUiState.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivityUiState.kt @@ -2,7 +2,6 @@ package gq.kirmanak.mealient.ui.activity data class MainActivityUiState( val loginButtonVisible: Boolean = false, - val titleVisible: Boolean = true, val isAuthorized: Boolean = false, val navigationVisible: Boolean = false, val searchVisible: Boolean = false, diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/add/AddRecipeFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/add/AddRecipeFragment.kt index d311d68..a3ec5dd 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/add/AddRecipeFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/add/AddRecipeFragment.kt @@ -38,12 +38,7 @@ class AddRecipeFragment : Fragment(R.layout.fragment_add_recipe) { super.onViewCreated(view, savedInstanceState) logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } activityViewModel.updateUiState { - it.copy( - loginButtonVisible = true, - titleVisible = false, - navigationVisible = true, - searchVisible = false, - ) + it.copy(loginButtonVisible = true, navigationVisible = true, searchVisible = false) } viewModel.loadPreservedRequest() setupViews() diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt index bd108f7..14a2771 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/auth/AuthenticationFragment.kt @@ -32,12 +32,7 @@ class AuthenticationFragment : Fragment(R.layout.fragment_authentication) { logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } binding.button.setOnClickListener { onLoginClicked() } activityViewModel.updateUiState { - it.copy( - loginButtonVisible = false, - titleVisible = true, - navigationVisible = false, - searchVisible = false - ) + it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) } viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange) } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/baseurl/BaseURLFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/baseurl/BaseURLFragment.kt index 31b1bfa..b85b318 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/baseurl/BaseURLFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/baseurl/BaseURLFragment.kt @@ -34,12 +34,7 @@ class BaseURLFragment : Fragment(R.layout.fragment_base_url) { binding.button.setOnClickListener(::onProceedClick) viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange) activityViewModel.updateUiState { - it.copy( - loginButtonVisible = false, - titleVisible = true, - navigationVisible = false, - searchVisible = false - ) + it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) } } diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/disclaimer/DisclaimerFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/disclaimer/DisclaimerFragment.kt index bd024e4..1408ea3 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/disclaimer/DisclaimerFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/disclaimer/DisclaimerFragment.kt @@ -58,12 +58,7 @@ class DisclaimerFragment : Fragment(R.layout.fragment_disclaimer) { } viewModel.startCountDown() activityViewModel.updateUiState { - it.copy( - loginButtonVisible = false, - titleVisible = true, - navigationVisible = false, - searchVisible = false - ) + it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) } } } \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt index 4752876..8209f20 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesListFragment.kt @@ -49,12 +49,7 @@ class RecipesListFragment : Fragment(R.layout.fragment_recipes_list) { super.onViewCreated(view, savedInstanceState) logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } activityViewModel.updateUiState { - it.copy( - loginButtonVisible = true, - titleVisible = false, - navigationVisible = true, - searchVisible = true, - ) + it.copy(loginButtonVisible = true, navigationVisible = true, searchVisible = true) } setupRecipeAdapter() hideKeyboardOnScroll() diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index f5b97f5..d5c4d2a 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -10,8 +10,7 @@ + android:layout_height="match_parent"> + app:layout_scrollFlags="scroll|snap|enterAlways" + app:menu="@menu/main_toolbar" + app:navigationIcon="@drawable/ic_toolbar" /> Date: Fri, 18 Nov 2022 22:50:31 +0100 Subject: [PATCH 06/39] Use dynamic colors --- app/src/main/java/gq/kirmanak/mealient/App.kt | 2 + app/src/main/res/values-night/themes.xml | 31 --------- app/src/main/res/values/colors.xml | 63 ------------------- app/src/main/res/values/themes.xml | 29 +-------- 4 files changed, 3 insertions(+), 122 deletions(-) delete mode 100644 app/src/main/res/values-night/themes.xml delete mode 100644 app/src/main/res/values/colors.xml diff --git a/app/src/main/java/gq/kirmanak/mealient/App.kt b/app/src/main/java/gq/kirmanak/mealient/App.kt index 24332c9..fbd1c92 100644 --- a/app/src/main/java/gq/kirmanak/mealient/App.kt +++ b/app/src/main/java/gq/kirmanak/mealient/App.kt @@ -1,6 +1,7 @@ package gq.kirmanak.mealient import android.app.Application +import com.google.android.material.color.DynamicColors import dagger.hilt.android.HiltAndroidApp import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration import gq.kirmanak.mealient.data.analytics.Analytics @@ -23,5 +24,6 @@ class App : Application() { super.onCreate() logger.v { "onCreate() called" } analytics.setIsEnabled(!buildConfiguration.isDebug()) + DynamicColors.applyToActivitiesIfAvailable(this) } } diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml deleted file mode 100644 index b9a98f9..0000000 --- a/app/src/main/res/values-night/themes.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml deleted file mode 100644 index 22176c7..0000000 --- a/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,63 +0,0 @@ - - #FFB45B - #875200 - #FFFFFF - #FFDDBA - #2B1700 - #126D27 - #FFFFFF - #9FF79F - #002105 - #006874 - #FFFFFF - #97F0FF - #001F24 - #BA1A1A - #FFDAD6 - #FFFFFF - #410002 - #FFFBFF - #1F1B16 - #FFFBFF - #1F1B16 - #F1DFD0 - #50453A - #827568 - #FAEFE7 - #352F2A - #FFB867 - #000000 - #875200 - #D4C4B5 - #000000 - #FFB867 - #482900 - #673D00 - #FFDDBA - #83DA85 - #00390E - #005318 - #9FF79F - #4FD8EB - #00363D - #004F58 - #97F0FF - #FFB4AB - #93000A - #690005 - #FFDAD6 - #1F1B16 - #EBE1D9 - #1F1B16 - #EBE1D9 - #50453A - #D4C4B5 - #9D8E81 - #1F1B16 - #EBE1D9 - #875200 - #000000 - #FFB867 - #50453A - #000000 - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index ec5df04..6acd886 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,32 +6,5 @@ @drawable/ic_splash_screen - + - From ee111172102a694b5fe0e82afa3f571bf2553650 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 23:21:18 +0100 Subject: [PATCH 08/39] Disable toolbar background --- app/src/main/res/drawable/ic_menu.xml | 10 +++++++ app/src/main/res/drawable/ic_search.xml | 10 +++++++ app/src/main/res/drawable/ic_toolbar.xml | 35 ----------------------- app/src/main/res/layout/main_activity.xml | 3 +- app/src/main/res/menu/main_toolbar.xml | 2 +- 5 files changed, 22 insertions(+), 38 deletions(-) create mode 100644 app/src/main/res/drawable/ic_menu.xml create mode 100644 app/src/main/res/drawable/ic_search.xml delete mode 100644 app/src/main/res/drawable/ic_toolbar.xml diff --git a/app/src/main/res/drawable/ic_menu.xml b/app/src/main/res/drawable/ic_menu.xml new file mode 100644 index 0000000..d632557 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml new file mode 100644 index 0000000..055dd39 --- /dev/null +++ b/app/src/main/res/drawable/ic_search.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_toolbar.xml b/app/src/main/res/drawable/ic_toolbar.xml deleted file mode 100644 index 7c9f16f..0000000 --- a/app/src/main/res/drawable/ic_toolbar.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index d5c4d2a..b2355f2 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -20,12 +20,11 @@ + app:navigationIcon="@drawable/ic_menu" /> From 09f3c5422f4a5088bb9eba216e8bd778d370cc29 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 23:24:29 +0100 Subject: [PATCH 09/39] Fix changing toolbar color based on image --- app/src/main/res/layout/main_activity.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index b2355f2..ea25d64 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -20,6 +20,7 @@ Date: Fri, 18 Nov 2022 23:31:04 +0100 Subject: [PATCH 10/39] Make status bar transparent --- app/src/main/res/values-night/themes.xml | 10 ++++++++++ app/src/main/res/values/themes.xml | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/values-night/themes.xml diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..ff03b8c --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 4fe00a9..d7d3e0b 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,8 +6,10 @@ @drawable/ic_splash_screen - From b2bcad31b1268cda32868c9b44aea8a47ed01c5f Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 23:34:36 +0100 Subject: [PATCH 11/39] Make splash screen dark in night mode --- app/src/main/res/values-night/themes.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index ff03b8c..2d27d45 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -7,4 +7,10 @@ @android:color/transparent false + + \ No newline at end of file From c86782708c563d8494e535ad501db9a5f420690f Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 23:45:33 +0100 Subject: [PATCH 12/39] Add navigation drawer header --- app/src/main/res/layout/main_activity.xml | 1 + .../layout/view_navigation_drawer_header.xml | 19 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 21 insertions(+) create mode 100644 app/src/main/res/layout/view_navigation_drawer_header.xml diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index ea25d64..ad7eae4 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -42,5 +42,6 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" + app:headerLayout="@layout/view_navigation_drawer_header" app:menu="@menu/navigation_menu" /> diff --git a/app/src/main/res/layout/view_navigation_drawer_header.xml b/app/src/main/res/layout/view_navigation_drawer_header.xml new file mode 100644 index 0000000..cc4fa5d --- /dev/null +++ b/app/src/main/res/layout/view_navigation_drawer_header.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fe674b5..b640c68 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,4 +53,5 @@ no connection Change URL Search recipes + @string/app_name \ No newline at end of file From d850c82b6f4351ce6410bcbf7c9e5759acf4c507 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 18 Nov 2022 23:52:20 +0100 Subject: [PATCH 13/39] Add menu icons --- app/src/main/res/drawable/ic_add.xml | 10 ++++++++++ app/src/main/res/drawable/ic_change.xml | 10 ++++++++++ app/src/main/res/drawable/ic_list.xml | 11 +++++++++++ app/src/main/res/drawable/ic_login.xml | 11 +++++++++++ app/src/main/res/drawable/ic_logout.xml | 11 +++++++++++ app/src/main/res/menu/navigation_menu.xml | 5 +++++ 6 files changed, 58 insertions(+) create mode 100644 app/src/main/res/drawable/ic_add.xml create mode 100644 app/src/main/res/drawable/ic_change.xml create mode 100644 app/src/main/res/drawable/ic_list.xml create mode 100644 app/src/main/res/drawable/ic_login.xml create mode 100644 app/src/main/res/drawable/ic_logout.xml diff --git a/app/src/main/res/drawable/ic_add.xml b/app/src/main/res/drawable/ic_add.xml new file mode 100644 index 0000000..f2bce58 --- /dev/null +++ b/app/src/main/res/drawable/ic_add.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_change.xml b/app/src/main/res/drawable/ic_change.xml new file mode 100644 index 0000000..4039c66 --- /dev/null +++ b/app/src/main/res/drawable/ic_change.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_list.xml b/app/src/main/res/drawable/ic_list.xml new file mode 100644 index 0000000..69c90d2 --- /dev/null +++ b/app/src/main/res/drawable/ic_list.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_login.xml b/app/src/main/res/drawable/ic_login.xml new file mode 100644 index 0000000..9c9dedc --- /dev/null +++ b/app/src/main/res/drawable/ic_login.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_logout.xml b/app/src/main/res/drawable/ic_logout.xml new file mode 100644 index 0000000..46542bc --- /dev/null +++ b/app/src/main/res/drawable/ic_logout.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/menu/navigation_menu.xml b/app/src/main/res/menu/navigation_menu.xml index 74245f0..7c16144 100644 --- a/app/src/main/res/menu/navigation_menu.xml +++ b/app/src/main/res/menu/navigation_menu.xml @@ -2,22 +2,27 @@ \ No newline at end of file From 45100872092bc26d8edc0fe8bb1a74940a1ba094 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 10:00:04 +0100 Subject: [PATCH 14/39] Remove custom shapes and elevations --- .../ui/recipes/info/RecipeInfoFragment.kt | 6 ------ .../main/res/drawable/recipe_info_background.xml | 8 -------- app/src/main/res/layout/fragment_disclaimer.xml | 11 +++++------ app/src/main/res/layout/fragment_recipe_info.xml | 14 ++++++-------- .../main/res/layout/view_holder_instruction.xml | 7 +++---- app/src/main/res/layout/view_holder_recipe.xml | 6 ++---- app/src/main/res/values/dimens.xml | 2 -- app/src/main/res/values/strings.xml | 2 -- app/src/main/res/values/styles.xml | 16 ---------------- 9 files changed, 16 insertions(+), 56 deletions(-) delete mode 100644 app/src/main/res/drawable/recipe_info_background.xml diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt index 92868be..aac4ad7 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoFragment.kt @@ -1,6 +1,5 @@ package gq.kirmanak.mealient.ui.recipes.info -import android.app.Dialog import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -8,10 +7,8 @@ import android.view.ViewGroup import androidx.core.view.isVisible import androidx.fragment.app.viewModels import by.kirich1409.viewbindingdelegate.viewBinding -import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment import dagger.hilt.android.AndroidEntryPoint -import gq.kirmanak.mealient.R import gq.kirmanak.mealient.databinding.FragmentRecipeInfoBinding import gq.kirmanak.mealient.logging.Logger import gq.kirmanak.mealient.ui.recipes.images.RecipeImageLoader @@ -71,9 +68,6 @@ class RecipeInfoFragment : BottomSheetDialogFragment() { instructionsAdapter.submitList(uiState.recipeInstructions) } - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = - BottomSheetDialog(requireContext(), R.style.NoShapeBottomSheetDialog) - override fun onDestroyView() { super.onDestroyView() logger.v { "onDestroyView() called" } diff --git a/app/src/main/res/drawable/recipe_info_background.xml b/app/src/main/res/drawable/recipe_info_background.xml deleted file mode 100644 index a700ba3..0000000 --- a/app/src/main/res/drawable/recipe_info_background.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_disclaimer.xml b/app/src/main/res/layout/fragment_disclaimer.xml index 15a2098..14267c2 100644 --- a/app/src/main/res/layout/fragment_disclaimer.xml +++ b/app/src/main/res/layout/fragment_disclaimer.xml @@ -2,6 +2,7 @@ @@ -12,12 +13,10 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginTop="40dp" - app:cardElevation="8dp" - app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@+id/okay" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:shapeAppearance="@style/ShapeAppearance.AllCornersRounded"> + app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toBottomOf="@+id/main_text_holder" + tools:text="Okay (3 seconds)" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recipe_info.xml b/app/src/main/res/layout/fragment_recipe_info.xml index e564fa7..a044c5f 100644 --- a/app/src/main/res/layout/fragment_recipe_info.xml +++ b/app/src/main/res/layout/fragment_recipe_info.xml @@ -33,15 +33,14 @@ diff --git a/app/src/main/res/layout/view_holder_instruction.xml b/app/src/main/res/layout/view_holder_instruction.xml index cee4dda..8d8d68c 100644 --- a/app/src/main/res/layout/view_holder_instruction.xml +++ b/app/src/main/res/layout/view_holder_instruction.xml @@ -2,11 +2,10 @@ + android:layout_height="wrap_content" + android:layout_margin="8dp"> + android:layout_marginEnd="19dp"> \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 01d1f49..e482c2b 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,6 +3,4 @@ 8dp 182dp @dimen/height_view_holder_recipe_image - 32dp - 15dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b640c68..ce8f5b8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,7 +5,6 @@ Server URL Login Picture of the cooked meal - @string/menu_navigation_drawer_logout Logout Loading… @string/content_description_view_holder_recipe_image @@ -18,7 +17,6 @@ Check URL format: %s Proceed @string/fragment_authentication_unknown_error - @string/menu_navigation_drawer_login Login Okay Step: %d diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2add8a8..3e79bdf 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -13,22 +13,6 @@ @dimen/margin_small - - - - - - - + - - \ No newline at end of file From 73a703b0b8e36902e37106e6cbdfbc170f51d774 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 10:57:08 +0100 Subject: [PATCH 16/39] Make navigation bar match color --- .../mealient/extensions/ViewExtensions.kt | 10 ++++++++++ .../mealient/ui/activity/MainActivity.kt | 18 ++++++++++++------ app/src/main/res/values-night/themes.xml | 7 ------- app/src/main/res/values/themes.xml | 4 ++-- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/extensions/ViewExtensions.kt b/app/src/main/java/gq/kirmanak/mealient/extensions/ViewExtensions.kt index 452b2c9..3e3d779 100644 --- a/app/src/main/java/gq/kirmanak/mealient/extensions/ViewExtensions.kt +++ b/app/src/main/java/gq/kirmanak/mealient/extensions/ViewExtensions.kt @@ -2,6 +2,9 @@ package gq.kirmanak.mealient.extensions import android.content.Context import android.content.SharedPreferences +import android.content.res.Configuration.UI_MODE_NIGHT_MASK +import android.content.res.Configuration.UI_MODE_NIGHT_YES +import android.os.Build import android.view.View import android.view.inputmethod.InputMethodManager import android.widget.EditText @@ -114,4 +117,11 @@ private fun Context.showToast(text: String, length: Int) { fun View.hideKeyboard() { val imm = context.getSystemService() imm?.hideSoftInputFromWindow(windowToken, 0) +} + +fun Context.isDarkThemeOn(): Boolean { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + resources.configuration.isNightModeActive + else + resources.configuration.uiMode and UI_MODE_NIGHT_MASK == UI_MODE_NIGHT_YES } \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt index aed8c2b..28052a0 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt @@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView.OnQueryTextListener import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.isVisible import androidx.navigation.NavController import androidx.navigation.NavDirections @@ -19,6 +20,7 @@ import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalBaseURLFrag import gq.kirmanak.mealient.NavGraphDirections.Companion.actionGlobalRecipesListFragment import gq.kirmanak.mealient.R import gq.kirmanak.mealient.databinding.MainActivityBinding +import gq.kirmanak.mealient.extensions.isDarkThemeOn import gq.kirmanak.mealient.extensions.observeOnce import gq.kirmanak.mealient.logging.Logger import javax.inject.Inject @@ -40,24 +42,28 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { logger.v { "onCreate() called with: savedInstanceState = $savedInstanceState" } splashScreen.setKeepOnScreenCondition { viewModel.startDestination.value == null } setContentView(binding.root) - configureToolbar() + setupUi() configureNavGraph() - viewModel.uiStateLive.observe(this, ::onUiStateChange) - binding.navigationView.setNavigationItemSelectedListener(::onNavigationItemSelected) } private fun configureNavGraph() { logger.v { "configureNavGraph() called" } viewModel.startDestination.observeOnce(this) { logger.d { "configureNavGraph: received destination" } - val graph = navController.navInflater.inflate(R.navigation.nav_graph) + val controller = navController + val graph = controller.navInflater.inflate(R.navigation.nav_graph) graph.setStartDestination(it) - navController.setGraph(graph, intent.extras) + controller.setGraph(graph, intent.extras) } } - private fun configureToolbar() { + private fun setupUi() { binding.toolbar.setNavigationOnClickListener { binding.drawer.open() } + binding.navigationView.setNavigationItemSelectedListener(::onNavigationItemSelected) + val insetsController = WindowInsetsControllerCompat(window, window.decorView) + insetsController.isAppearanceLightNavigationBars = !isDarkThemeOn() + insetsController.isAppearanceLightStatusBars = !isDarkThemeOn() + viewModel.uiStateLive.observe(this, ::onUiStateChange) } private fun onNavigationItemSelected(menuItem: MenuItem): Boolean { diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index cb3ede7..a047150 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -6,11 +6,4 @@ @android:color/black @drawable/ic_splash_screen - - \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index d7d3e0b..08ca0a0 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,10 +6,10 @@ @drawable/ic_splash_screen - From 5f6b376a406c57d3b605646d8535d720532ef891 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 11:08:20 +0100 Subject: [PATCH 17/39] Add monochrome launcher icon --- .../main/res/drawable/ic_launcher_monochrome.xml | 15 +++++++++++++++ app/src/main/res/mipmap/ic_launcher.xml | 1 + 2 files changed, 16 insertions(+) create mode 100644 app/src/main/res/drawable/ic_launcher_monochrome.xml diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 0000000..424afd8 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/app/src/main/res/mipmap/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml index eca70cf..b070c76 100644 --- a/app/src/main/res/mipmap/ic_launcher.xml +++ b/app/src/main/res/mipmap/ic_launcher.xml @@ -2,4 +2,5 @@ + \ No newline at end of file From dbfc5702864c825707bd43f1f8086b8f70f0583b Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 11:13:50 +0100 Subject: [PATCH 18/39] Check theme color once --- .../java/gq/kirmanak/mealient/ui/activity/MainActivity.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt index 28052a0..0224640 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/activity/MainActivity.kt @@ -60,9 +60,11 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { private fun setupUi() { binding.toolbar.setNavigationOnClickListener { binding.drawer.open() } binding.navigationView.setNavigationItemSelectedListener(::onNavigationItemSelected) - val insetsController = WindowInsetsControllerCompat(window, window.decorView) - insetsController.isAppearanceLightNavigationBars = !isDarkThemeOn() - insetsController.isAppearanceLightStatusBars = !isDarkThemeOn() + with(WindowInsetsControllerCompat(window, window.decorView)) { + val isAppearanceLightBars = !isDarkThemeOn() + isAppearanceLightNavigationBars = isAppearanceLightBars + isAppearanceLightStatusBars = isAppearanceLightBars + } viewModel.uiStateLive.observe(this, ::onUiStateChange) } From 4847461e48d542e0752f0b6fbf9dae47e11fe5cc Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 11:40:13 +0100 Subject: [PATCH 19/39] Update launcher icon --- .../res/drawable/ic_launcher_background.xml | 40 +++++---------- .../res/drawable/ic_launcher_foreground.xml | 49 ++++++------------- 2 files changed, 27 insertions(+), 62 deletions(-) diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index bb1400d..edd4c77 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,31 +1,13 @@ - - - - - - - - - - - + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index a135f3f..89108aa 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -1,35 +1,18 @@ - - - - - - + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + + + + From 7bcfc9ef1e8060bf877aa08c6997fe31e9c6c90d Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 19 Nov 2022 11:52:50 +0100 Subject: [PATCH 20/39] Update splash screen --- .../ic_splash_screen_background.xml | 13 +++++ .../ic_splash_screen_foreground.xml | 18 +++++++ .../drawable/ic_splash_screen_background.xml | 28 ++--------- .../drawable/ic_splash_screen_foreground.xml | 49 ++++++------------- app/src/main/res/values/themes.xml | 1 + 5 files changed, 53 insertions(+), 56 deletions(-) create mode 100644 app/src/main/res/drawable-night/ic_splash_screen_background.xml create mode 100644 app/src/main/res/drawable-night/ic_splash_screen_foreground.xml diff --git a/app/src/main/res/drawable-night/ic_splash_screen_background.xml b/app/src/main/res/drawable-night/ic_splash_screen_background.xml new file mode 100644 index 0000000..ce6d767 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_splash_screen_background.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/drawable-night/ic_splash_screen_foreground.xml b/app/src/main/res/drawable-night/ic_splash_screen_foreground.xml new file mode 100644 index 0000000..575a54f --- /dev/null +++ b/app/src/main/res/drawable-night/ic_splash_screen_foreground.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_splash_screen_background.xml b/app/src/main/res/drawable/ic_splash_screen_background.xml index dcd8800..6f25d0f 100644 --- a/app/src/main/res/drawable/ic_splash_screen_background.xml +++ b/app/src/main/res/drawable/ic_splash_screen_background.xml @@ -1,31 +1,13 @@ - - - - - - - - - + android:scaleX="7.1" + android:scaleY="7.1"> + diff --git a/app/src/main/res/drawable/ic_splash_screen_foreground.xml b/app/src/main/res/drawable/ic_splash_screen_foreground.xml index 98a9788..a8efbdb 100644 --- a/app/src/main/res/drawable/ic_splash_screen_foreground.xml +++ b/app/src/main/res/drawable/ic_splash_screen_foreground.xml @@ -1,35 +1,18 @@ - - - - - - + android:width="288dp" + android:height="288dp" + android:viewportWidth="288" + android:viewportHeight="288"> + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 08ca0a0..d9d0c04 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -4,6 +4,7 @@ @style/AppTheme @android:color/white @drawable/ic_splash_screen + true