Move login/logout to navigation drawer
This commit is contained in:
@@ -75,6 +75,12 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
|
|||||||
R.id.add_recipe -> actionGlobalAddRecipeFragment()
|
R.id.add_recipe -> actionGlobalAddRecipeFragment()
|
||||||
R.id.recipes_list -> actionGlobalRecipesListFragment()
|
R.id.recipes_list -> actionGlobalRecipesListFragment()
|
||||||
R.id.change_url -> actionGlobalBaseURLFragment()
|
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}")
|
else -> throw IllegalArgumentException("Unknown menu item id: ${menuItem.itemId}")
|
||||||
}
|
}
|
||||||
navigateTo(directions)
|
navigateTo(directions)
|
||||||
@@ -86,6 +92,9 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
|
|||||||
logger.v { "onUiStateChange() called with: uiState = $uiState" }
|
logger.v { "onUiStateChange() called with: uiState = $uiState" }
|
||||||
supportActionBar?.title = if (uiState.titleVisible) title else null
|
supportActionBar?.title = if (uiState.titleVisible) title else null
|
||||||
binding.navigationView.isVisible = uiState.navigationVisible
|
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()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,8 +117,6 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
|
|||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
logger.v { "onCreateOptionsMenu() called with: menu = $menu" }
|
logger.v { "onCreateOptionsMenu() called with: menu = $menu" }
|
||||||
menuInflater.inflate(R.menu.main_toolbar, 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)
|
val searchItem = menu.findItem(R.id.search_recipe_action)
|
||||||
searchItem.isVisible = uiState.searchVisible
|
searchItem.isVisible = uiState.searchVisible
|
||||||
setupSearchItem(searchItem)
|
setupSearchItem(searchItem)
|
||||||
|
|||||||
@@ -2,18 +2,6 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/login"
|
|
||||||
android:contentDescription="@string/menu_main_toolbar_content_description_login"
|
|
||||||
android:title="@string/menu_main_toolbar_login"
|
|
||||||
app:showAsAction="ifRoom" />
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/logout"
|
|
||||||
android:contentDescription="@string/menu_main_toolbar_content_description_logout"
|
|
||||||
android:title="@string/menu_main_toolbar_logout"
|
|
||||||
app:showAsAction="never" />
|
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/search_recipe_action"
|
android:id="@+id/search_recipe_action"
|
||||||
android:icon="@android:drawable/ic_menu_search"
|
android:icon="@android:drawable/ic_menu_search"
|
||||||
|
|||||||
@@ -2,13 +2,22 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/recipes_list"
|
android:id="@+id/recipes_list"
|
||||||
android:title="@string/menu_bottom_navigation_recipes_list" />
|
android:title="@string/menu_navigation_drawer_recipes_list" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/add_recipe"
|
android:id="@+id/add_recipe"
|
||||||
android:title="@string/menu_bottom_navigation_add_recipe" />
|
android:title="@string/menu_navigation_drawer_add_recipe" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/change_url"
|
android:id="@+id/change_url"
|
||||||
android:title="@string/menu_bottom_navigation_change_url" />
|
android:title="@string/menu_navigation_drawer_change_url" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/login"
|
||||||
|
android:title="@string/menu_navigation_drawer_login" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/logout"
|
||||||
|
android:title="@string/menu_navigation_drawer_logout" />
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<string name="fragment_authentication_input_hint_url">URL сервера</string>
|
<string name="fragment_authentication_input_hint_url">URL сервера</string>
|
||||||
<string name="fragment_authentication_button_login">Войти</string>
|
<string name="fragment_authentication_button_login">Войти</string>
|
||||||
<string name="content_description_view_holder_recipe_image">Изображение готового блюда</string>
|
<string name="content_description_view_holder_recipe_image">Изображение готового блюда</string>
|
||||||
<string name="menu_main_toolbar_logout">Выйти</string>
|
<string name="menu_navigation_drawer_logout">Выйти</string>
|
||||||
<string name="view_holder_recipe_text_placeholder">Загрузка</string>
|
<string name="view_holder_recipe_text_placeholder">Загрузка</string>
|
||||||
<string name="fragment_recipe_info_ingredients_header">Ингредиенты</string>
|
<string name="fragment_recipe_info_ingredients_header">Ингредиенты</string>
|
||||||
<string name="fragment_recipe_info_instructions_header">Инструкции</string>
|
<string name="fragment_recipe_info_instructions_header">Инструкции</string>
|
||||||
@@ -21,11 +21,11 @@
|
|||||||
<string name="fragment_authentication_unknown_error">Что-то пошло не так, попробуйте еще раз.</string>
|
<string name="fragment_authentication_unknown_error">Что-то пошло не так, попробуйте еще раз.</string>
|
||||||
<string name="fragment_base_url_malformed_url">Проверьте формат URL: %s</string>
|
<string name="fragment_base_url_malformed_url">Проверьте формат URL: %s</string>
|
||||||
<string name="fragment_base_url_save">Продолжить</string>
|
<string name="fragment_base_url_save">Продолжить</string>
|
||||||
<string name="menu_main_toolbar_login">Войти</string>
|
<string name="menu_navigation_drawer_login">Войти</string>
|
||||||
<string name="fragment_add_recipe_recipe_name">Название рецепта</string>
|
<string name="fragment_add_recipe_recipe_name">Название рецепта</string>
|
||||||
<string name="fragment_add_recipe_recipe_description">Описание</string>
|
<string name="fragment_add_recipe_recipe_description">Описание</string>
|
||||||
<string name="menu_bottom_navigation_recipes_list">Рецепты</string>
|
<string name="menu_navigation_drawer_recipes_list">Рецепты</string>
|
||||||
<string name="menu_bottom_navigation_add_recipe">Добавить рецепт</string>
|
<string name="menu_navigation_drawer_add_recipe">Добавить рецепт</string>
|
||||||
<string name="fragment_add_recipe_recipe_yield">Количество порций</string>
|
<string name="fragment_add_recipe_recipe_yield">Количество порций</string>
|
||||||
<string name="fragment_add_recipe_save_button">Сохранить рецепт</string>
|
<string name="fragment_add_recipe_save_button">Сохранить рецепт</string>
|
||||||
<string name="fragment_add_recipe_new_instruction">Добавить шаг</string>
|
<string name="fragment_add_recipe_new_instruction">Добавить шаг</string>
|
||||||
@@ -47,6 +47,6 @@
|
|||||||
<string name="fragment_recipes_load_failure_toast_unexpected_response">неожиданный ответ</string>
|
<string name="fragment_recipes_load_failure_toast_unexpected_response">неожиданный ответ</string>
|
||||||
<string name="fragment_recipes_load_failure_toast_no_connection">нет соединения</string>
|
<string name="fragment_recipes_load_failure_toast_no_connection">нет соединения</string>
|
||||||
<string name="fragment_recipes_load_failure_toast_no_reason">Ошибка загрузки.</string>
|
<string name="fragment_recipes_load_failure_toast_no_reason">Ошибка загрузки.</string>
|
||||||
<string name="menu_bottom_navigation_change_url">Сменить URL</string>
|
<string name="menu_navigation_drawer_change_url">Сменить URL</string>
|
||||||
<string name="search_recipes_hint">Найти рецепты</string>
|
<string name="search_recipes_hint">Найти рецепты</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
<string name="fragment_authentication_input_hint_url">Server URL</string>
|
<string name="fragment_authentication_input_hint_url">Server URL</string>
|
||||||
<string name="fragment_authentication_button_login">Login</string>
|
<string name="fragment_authentication_button_login">Login</string>
|
||||||
<string name="content_description_view_holder_recipe_image">Picture of the cooked meal</string>
|
<string name="content_description_view_holder_recipe_image">Picture of the cooked meal</string>
|
||||||
<string name="menu_main_toolbar_content_description_logout" translatable="false">@string/menu_main_toolbar_logout</string>
|
<string name="menu_main_toolbar_content_description_logout" translatable="false">@string/menu_navigation_drawer_logout</string>
|
||||||
<string name="menu_main_toolbar_logout">Logout</string>
|
<string name="menu_navigation_drawer_logout">Logout</string>
|
||||||
<string name="view_holder_recipe_text_placeholder">Loading…</string>
|
<string name="view_holder_recipe_text_placeholder">Loading…</string>
|
||||||
<string name="content_description_fragment_recipe_info_image" translatable="false">@string/content_description_view_holder_recipe_image</string>
|
<string name="content_description_fragment_recipe_info_image" translatable="false">@string/content_description_view_holder_recipe_image</string>
|
||||||
<string name="fragment_recipe_info_ingredients_header">Ingredients</string>
|
<string name="fragment_recipe_info_ingredients_header">Ingredients</string>
|
||||||
@@ -18,8 +18,8 @@
|
|||||||
<string name="fragment_base_url_malformed_url">Check URL format: %s</string>
|
<string name="fragment_base_url_malformed_url">Check URL format: %s</string>
|
||||||
<string name="fragment_base_url_save">Proceed</string>
|
<string name="fragment_base_url_save">Proceed</string>
|
||||||
<string name="fragment_base_url_unknown_error" translatable="false">@string/fragment_authentication_unknown_error</string>
|
<string name="fragment_base_url_unknown_error" translatable="false">@string/fragment_authentication_unknown_error</string>
|
||||||
<string name="menu_main_toolbar_content_description_login" translatable="false">@string/menu_main_toolbar_login</string>
|
<string name="menu_main_toolbar_content_description_login" translatable="false">@string/menu_navigation_drawer_login</string>
|
||||||
<string name="menu_main_toolbar_login">Login</string>
|
<string name="menu_navigation_drawer_login">Login</string>
|
||||||
<string name="fragment_disclaimer_button_okay">Okay</string>
|
<string name="fragment_disclaimer_button_okay">Okay</string>
|
||||||
<string name="view_holder_recipe_instructions_step">Step: %d</string>
|
<string name="view_holder_recipe_instructions_step">Step: %d</string>
|
||||||
<string name="fragment_authentication_email_input_empty">E-mail can\'t be empty</string>
|
<string name="fragment_authentication_email_input_empty">E-mail can\'t be empty</string>
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
<string name="fragment_authentication_unknown_error">Something went wrong, please try again.</string>
|
<string name="fragment_authentication_unknown_error">Something went wrong, please try again.</string>
|
||||||
<string name="fragment_add_recipe_recipe_name">Recipe name</string>
|
<string name="fragment_add_recipe_recipe_name">Recipe name</string>
|
||||||
<string name="fragment_add_recipe_recipe_description">Description</string>
|
<string name="fragment_add_recipe_recipe_description">Description</string>
|
||||||
<string name="menu_bottom_navigation_add_recipe">Add recipe</string>
|
<string name="menu_navigation_drawer_add_recipe">Add recipe</string>
|
||||||
<string name="menu_bottom_navigation_recipes_list">Recipes</string>
|
<string name="menu_navigation_drawer_recipes_list">Recipes</string>
|
||||||
<string name="fragment_add_recipe_recipe_yield">Recipe yield</string>
|
<string name="fragment_add_recipe_recipe_yield">Recipe yield</string>
|
||||||
<string name="fragment_add_recipe_save_button">Save recipe</string>
|
<string name="fragment_add_recipe_save_button">Save recipe</string>
|
||||||
<string name="fragment_add_recipe_new_instruction">New step</string>
|
<string name="fragment_add_recipe_new_instruction">New step</string>
|
||||||
@@ -51,6 +51,6 @@
|
|||||||
<string name="fragment_recipes_load_failure_toast_unauthorized">unauthorized</string>
|
<string name="fragment_recipes_load_failure_toast_unauthorized">unauthorized</string>
|
||||||
<string name="fragment_recipes_load_failure_toast_unexpected_response">unexpected response</string>
|
<string name="fragment_recipes_load_failure_toast_unexpected_response">unexpected response</string>
|
||||||
<string name="fragment_recipes_load_failure_toast_no_connection">no connection</string>
|
<string name="fragment_recipes_load_failure_toast_no_connection">no connection</string>
|
||||||
<string name="menu_bottom_navigation_change_url">Change URL</string>
|
<string name="menu_navigation_drawer_change_url">Change URL</string>
|
||||||
<string name="search_recipes_hint">Search recipes</string>
|
<string name="search_recipes_hint">Search recipes</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user