From ec765b5fecc72fa3c710e95fb5f1f1396701160e Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Thu, 5 Jan 2023 17:58:20 +0100 Subject: [PATCH] Add Drawer navigation. Convert to multiple fragments shown with app drawer. --- app/src/main/AndroidManifest.xml | 18 +-- .../me/zobrist/tichucounter/MainActivity.kt | 147 ++++-------------- .../zobrist/tichucounter/SettingsActivity.kt | 68 -------- .../tichucounter/fragments/FragmentBase.kt | 1 + .../tichucounter/fragments/HistoryList.kt | 2 + .../tichucounter/fragments/Keyboard.kt | 2 + .../fragments/KeyboardViewModel.kt | 2 +- .../tichucounter/fragments/TeamNames.kt | 2 + .../tichucounter/fragments/TeamScores.kt | 2 + .../ui/counter/CounterFragment.kt | 119 ++++++++++++++ .../ui/settings/SettingsFragment.kt | 30 ++++ .../ui/slideshow/SlideshowFragment.kt | 38 +++++ .../ui/slideshow/SlideshowViewModel.kt | 13 ++ .../main/res/drawable-v21/ic_menu_camera.xml | 12 ++ .../main/res/drawable-v21/ic_menu_gallery.xml | 9 ++ .../res/drawable-v21/ic_menu_slideshow.xml | 9 ++ app/src/main/res/drawable/side_nav_bar.xml | 9 ++ ...{content_main.xml => fragment_counter.xml} | 0 app/src/main/res/layout/activity_drawer.xml | 25 +++ .../{activity_main.xml => app_bar_drawer.xml} | 6 +- app/src/main/res/layout/content_drawer.xml | 20 +++ ...{content_main.xml => fragment_counter.xml} | 0 .../main/res/layout/fragment_slideshow.xml | 6 + app/src/main/res/layout/nav_header_drawer.xml | 35 +++++ app/src/main/res/layout/settings_activity.xml | 29 ---- .../main/res/menu/activity_main_drawer.xml | 20 +++ .../menu/{menu_main.xml => menu_counter.xml} | 6 - .../main/res/navigation/mobile_navigation.xml | 24 +++ app/src/main/res/values-land/dimens.xml | 3 + app/src/main/res/values-w1240dp/dimens.xml | 3 + app/src/main/res/values-w600dp/dimens.xml | 3 + app/src/main/res/values/dimens.xml | 8 + app/src/main/res/values/drawables.xml | 8 + app/src/main/res/values/strings.xml | 11 ++ app/src/main/res/values/styles.xml | 9 -- app/src/main/res/values/themes.xml | 11 ++ 36 files changed, 468 insertions(+), 242 deletions(-) delete mode 100644 app/src/main/java/me/zobrist/tichucounter/SettingsActivity.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsFragment.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowViewModel.kt create mode 100644 app/src/main/res/drawable-v21/ic_menu_camera.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_gallery.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_slideshow.xml create mode 100644 app/src/main/res/drawable/side_nav_bar.xml rename app/src/main/res/layout-land/{content_main.xml => fragment_counter.xml} (100%) create mode 100644 app/src/main/res/layout/activity_drawer.xml rename app/src/main/res/layout/{activity_main.xml => app_bar_drawer.xml} (88%) create mode 100644 app/src/main/res/layout/content_drawer.xml rename app/src/main/res/layout/{content_main.xml => fragment_counter.xml} (100%) create mode 100644 app/src/main/res/layout/fragment_slideshow.xml create mode 100644 app/src/main/res/layout/nav_header_drawer.xml delete mode 100644 app/src/main/res/layout/settings_activity.xml create mode 100644 app/src/main/res/menu/activity_main_drawer.xml rename app/src/main/res/menu/{menu_main.xml => menu_counter.xml} (78%) create mode 100644 app/src/main/res/navigation/mobile_navigation.xml create mode 100644 app/src/main/res/values-land/dimens.xml create mode 100644 app/src/main/res/values-w1240dp/dimens.xml create mode 100644 app/src/main/res/values-w600dp/dimens.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/drawables.xml create mode 100644 app/src/main/res/values/themes.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 96aa988..17ca58d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,10 +11,15 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - + + + - - - val oldValue = currentRound.scoreA - currentRound.scoreA = value - - if (ignoreNextUpdate) { - ignoreNextUpdate = false - } else { - if (currentRound.scoreA?.let { oldValue?.getAbsoluteDifference(it) } != 100) { - ignoreNextUpdate = true - currentRound.scoreB = tichu.calculateOtherScore(value) - keyboardViewModel.setScoreB(currentRound.scoreB) - } - - keyboardViewModel.setSubmitButtonEnable(tichu.isValidRound(currentRound)) - } - } - - keyboardViewModel.scoreB.observe(this) { value -> - val tichu = Tichu() - - val oldValue = currentRound.scoreB - currentRound.scoreB = value - - if (ignoreNextUpdate) { - ignoreNextUpdate = false - } else { - if (currentRound.scoreB?.let { oldValue?.getAbsoluteDifference(it) } != 100) { - ignoreNextUpdate = true - currentRound.scoreA = tichu.calculateOtherScore(value) - keyboardViewModel.setScoreA(currentRound.scoreA) - } - - keyboardViewModel.setSubmitButtonEnable(tichu.isValidRound(currentRound)) - } - } } - override fun onCreateOptionsMenu(menu: Menu): Boolean { - // Inflate the menu; this adds items to the action bar if it is present. - menuInflater.inflate(R.menu.menu_main, menu) - - //menu.findItem(R.id.action_screenOn).isChecked = - // this.getSharedPreferences("Settings", MODE_PRIVATE).getBoolean("Screen_On", false) - return true - } - - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - R.id.action_clear -> { - val builder = AlertDialog.Builder(this) - builder.setMessage(getString(R.string.confirmClear)).setTitle(R.string.clear) - .setCancelable(false).setPositiveButton(getString(R.string.yes)) { dialog, _ -> - dialog.dismiss() - GlobalScope.launch(Dispatchers.IO) { - gameRepository.newGame() - } - }.setNegativeButton(getString(R.string.no)) { dialog, _ -> - dialog.cancel() - } - - builder.create().show() - true - } - R.id.action_undo -> { - GlobalScope.launch(Dispatchers.IO) { - val history = gameRepository.getActiveRoundHistory() - if (history.isNotEmpty()) { - gameRepository.removeRoundFromHistory(history.last()) - } - } - true - } - R.id.settings -> { - val i = Intent(this, SettingsActivity::class.java) - startActivity(i) - true - } - else -> super.onOptionsItemSelected(item) - } + override fun onSupportNavigateUp(): Boolean { + val navController = findNavController(R.id.nav_host_fragment_content_drawer) + return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } } \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/SettingsActivity.kt b/app/src/main/java/me/zobrist/tichucounter/SettingsActivity.kt deleted file mode 100644 index 6554ab5..0000000 --- a/app/src/main/java/me/zobrist/tichucounter/SettingsActivity.kt +++ /dev/null @@ -1,68 +0,0 @@ -package me.zobrist.tichucounter - -import android.content.Intent -import android.os.Build -import android.os.Bundle -import android.view.MenuItem -import androidx.preference.ListPreference -import androidx.preference.PreferenceFragmentCompat -import me.zobrist.tichucounter.databinding.SettingsActivityBinding - - -class SettingsActivity : BaseActivity() { - - private lateinit var binding: SettingsActivityBinding - - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = SettingsActivityBinding.inflate(layoutInflater) - setContentView(binding.root) - - if (savedInstanceState == null) { - supportFragmentManager - .beginTransaction() - .replace(R.id.settings, SettingsFragment()) - .commit() - } - - setSupportActionBar(binding.toolbar) - supportActionBar?.setDisplayHomeAsUpEnabled(true) - supportActionBar?.setHomeButtonEnabled(true) - supportActionBar?.title = resources.getString(R.string.settings) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - android.R.id.home -> { - val i = Intent(this, MainActivity::class.java) - navigateUpTo(i) - true - } - else -> super.onOptionsItemSelected(item) - } - } - - - class SettingsFragment : PreferenceFragmentCompat() { - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - setPreferencesFromResource(R.xml.root_preferences, rootKey) - - val index = when (getCurrentLocale()) { - "de" -> 1 - "en" -> 0 - else -> 0 - } - - findPreference("language")?.setValueIndex(index) - } - - private fun getCurrentLocale(): String? { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - resources.configuration.locales.get(0).language - } else { - resources.configuration.locale.language - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt index f1f619e..76d0dfb 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.viewbinding.ViewBinding +import dagger.hilt.android.AndroidEntryPoint abstract class FragmentBase : Fragment() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt index 6a5f43b..ebaf1f5 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt @@ -5,8 +5,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.activityViewModels +import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentHistoryListBinding +@AndroidEntryPoint class HistoryList : FragmentBase() { override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> FragmentHistoryListBinding diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt index 096fa0b..ab916ac 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt @@ -9,8 +9,10 @@ import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.EditText import androidx.fragment.app.activityViewModels +import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentKeyboardBinding +@AndroidEntryPoint class Keyboard : FragmentBase() { override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> FragmentKeyboardBinding diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt index d97f549..ef632e3 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt @@ -10,7 +10,7 @@ import me.zobrist.tichucounter.repository.GameRepository import javax.inject.Inject @HiltViewModel -class KeyboardViewModel @Inject constructor(val gameRepository: GameRepository) : ViewModel() { +class KeyboardViewModel @Inject constructor(private val gameRepository: GameRepository) : ViewModel() { private val _scoreA: MutableLiveData = MutableLiveData() private val _scoreB: MutableLiveData = MutableLiveData() private val _enableSubmitButton: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt index 023e755..0e96063 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt @@ -6,8 +6,10 @@ import android.view.View import android.view.ViewGroup import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.activityViewModels +import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentTeamNamesBinding +@AndroidEntryPoint class TeamNames : FragmentBase() { override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> FragmentTeamNamesBinding diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt index 7dbc4e9..4c5f5c3 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt @@ -5,8 +5,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.activityViewModels +import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentTeamScoresBinding +@AndroidEntryPoint class TeamScores : FragmentBase() { override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> FragmentTeamScoresBinding diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt new file mode 100644 index 0000000..1456a05 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt @@ -0,0 +1,119 @@ +package me.zobrist.tichucounter.ui.counter + +import android.os.Bundle +import android.view.* +import androidx.appcompat.app.AlertDialog +import androidx.core.view.MenuHost +import androidx.core.view.MenuProvider +import androidx.fragment.app.activityViewModels +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.lifecycleScope +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch +import me.zobrist.tichucounter.R +import me.zobrist.tichucounter.data.Round +import me.zobrist.tichucounter.databinding.FragmentCounterBinding +import me.zobrist.tichucounter.domain.Tichu +import me.zobrist.tichucounter.domain.getAbsoluteDifference +import me.zobrist.tichucounter.fragments.FragmentBase +import me.zobrist.tichucounter.fragments.KeyboardViewModel +import me.zobrist.tichucounter.repository.GameRepository +import javax.inject.Inject + +@AndroidEntryPoint +class CounterFragment : FragmentBase(), MenuProvider { + + @Inject lateinit var gameRepository: GameRepository + + override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> FragmentCounterBinding + get() = FragmentCounterBinding::inflate + + private var currentRound: Round = Round(0, 0, null, null) + + private var ignoreNextUpdate: Boolean = false + + private val keyboardViewModel: KeyboardViewModel by activityViewModels() + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val menuHost: MenuHost = requireActivity() + menuHost.addMenuProvider( + this, viewLifecycleOwner, Lifecycle.State.RESUMED + ) + + keyboardViewModel.scoreA.observe(viewLifecycleOwner) { value -> + val tichu = Tichu() + + val oldValue = currentRound.scoreA + currentRound.scoreA = value + + if (ignoreNextUpdate) { + ignoreNextUpdate = false + } else { + if (currentRound.scoreA?.let { oldValue?.getAbsoluteDifference(it) } != 100) { + ignoreNextUpdate = true + currentRound.scoreB = tichu.calculateOtherScore(value) + keyboardViewModel.setScoreB(currentRound.scoreB) + } + + keyboardViewModel.setSubmitButtonEnable(tichu.isValidRound(currentRound)) + } + } + + keyboardViewModel.scoreB.observe(viewLifecycleOwner) { value -> + val tichu = Tichu() + + val oldValue = currentRound.scoreB + currentRound.scoreB = value + + if (ignoreNextUpdate) { + ignoreNextUpdate = false + } else { + if (currentRound.scoreB?.let { oldValue?.getAbsoluteDifference(it) } != 100) { + ignoreNextUpdate = true + currentRound.scoreA = tichu.calculateOtherScore(value) + keyboardViewModel.setScoreA(currentRound.scoreA) + } + + keyboardViewModel.setSubmitButtonEnable(tichu.isValidRound(currentRound)) + } + } + } + + override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { + menuInflater.inflate(R.menu.menu_counter, menu) + } + + override fun onMenuItemSelected(menuItem: MenuItem): Boolean { + return when (menuItem.itemId) { + R.id.action_clear -> { + val builder = context?.let { AlertDialog.Builder(it) } + if(builder != null) + { + builder.setMessage(getString(R.string.confirmClear)).setTitle(R.string.clear) + .setCancelable(false).setPositiveButton(getString(R.string.yes)) { dialog, _ -> + dialog.dismiss() + viewLifecycleOwner.lifecycleScope.launch { + gameRepository.newGame() + } + }.setNegativeButton(getString(R.string.no)) { dialog, _ -> + dialog.cancel() + } + builder.create().show() + } + true + } + R.id.action_undo -> { + viewLifecycleOwner.lifecycleScope.launch { + val history = gameRepository.getActiveRoundHistory() + if (history.isNotEmpty()) { + gameRepository.removeRoundFromHistory(history.last()) + } + } + true + } + else -> false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsFragment.kt b/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsFragment.kt new file mode 100644 index 0000000..3f91255 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsFragment.kt @@ -0,0 +1,30 @@ +package me.zobrist.tichucounter.ui.settings + +import android.os.Build +import android.os.Bundle +import androidx.preference.ListPreference +import androidx.preference.PreferenceFragmentCompat +import me.zobrist.tichucounter.R + +class SettingsFragment : PreferenceFragmentCompat() { + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + setPreferencesFromResource(R.xml.root_preferences, rootKey) + + val index = when (getCurrentLocale()) { + "de" -> 1 + "en" -> 0 + else -> 0 + } + + findPreference("language")?.setValueIndex(index) + } + + private fun getCurrentLocale(): String? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + resources.configuration.locales.get(0).language + } else { + @Suppress("DEPRECATION") + resources.configuration.locale.language + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt new file mode 100644 index 0000000..5b5dd1c --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt @@ -0,0 +1,38 @@ +package me.zobrist.tichucounter.ui.slideshow + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import me.zobrist.tichucounter.databinding.FragmentSlideshowBinding + +class SlideshowFragment : Fragment() { + + private var _binding: FragmentSlideshowBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val slideshowViewModel = + ViewModelProvider(this).get(SlideshowViewModel::class.java) + + _binding = FragmentSlideshowBinding.inflate(inflater, container, false) + val root: View = binding.root + + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowViewModel.kt new file mode 100644 index 0000000..0f89ee3 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowViewModel.kt @@ -0,0 +1,13 @@ +package me.zobrist.tichucounter.ui.slideshow + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class SlideshowViewModel : ViewModel() { + + private val _text = MutableLiveData().apply { + value = "This is slideshow Fragment" + } + val text: LiveData = _text +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v21/ic_menu_camera.xml b/app/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..634fe92 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_gallery.xml b/app/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..03c7709 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_slideshow.xml b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..5e9e163 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..6d81870 --- /dev/null +++ b/app/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/content_main.xml b/app/src/main/res/layout-land/fragment_counter.xml similarity index 100% rename from app/src/main/res/layout-land/content_main.xml rename to app/src/main/res/layout-land/fragment_counter.xml diff --git a/app/src/main/res/layout/activity_drawer.xml b/app/src/main/res/layout/activity_drawer.xml new file mode 100644 index 0000000..2b0bbde --- /dev/null +++ b/app/src/main/res/layout/activity_drawer.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/app_bar_drawer.xml similarity index 88% rename from app/src/main/res/layout/activity_main.xml rename to app/src/main/res/layout/app_bar_drawer.xml index 4c98b99..fc51a77 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/app_bar_drawer.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + tools:context=".DrawerActivity"> - + \ No newline at end of file diff --git a/app/src/main/res/layout/content_drawer.xml b/app/src/main/res/layout/content_drawer.xml new file mode 100644 index 0000000..9fbecdf --- /dev/null +++ b/app/src/main/res/layout/content_drawer.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/fragment_counter.xml similarity index 100% rename from app/src/main/res/layout/content_main.xml rename to app/src/main/res/layout/fragment_counter.xml diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_slideshow.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/nav_header_drawer.xml b/app/src/main/res/layout/nav_header_drawer.xml new file mode 100644 index 0000000..c145545 --- /dev/null +++ b/app/src/main/res/layout/nav_header_drawer.xml @@ -0,0 +1,35 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/settings_activity.xml b/app/src/main/res/layout/settings_activity.xml deleted file mode 100644 index cf972ee..0000000 --- a/app/src/main/res/layout/settings_activity.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml new file mode 100644 index 0000000..0bff127 --- /dev/null +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_counter.xml similarity index 78% rename from app/src/main/res/menu/menu_main.xml rename to app/src/main/res/menu/menu_counter.xml index cef510d..248752d 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_counter.xml @@ -15,10 +15,4 @@ android:orderInCategory="10" android:title="@string/clear" app:showAsAction="ifRoom" /> - \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml new file mode 100644 index 0000000..e48af6b --- /dev/null +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml new file mode 100644 index 0000000..22d7f00 --- /dev/null +++ b/app/src/main/res/values-land/dimens.xml @@ -0,0 +1,3 @@ + + 48dp + \ No newline at end of file diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/app/src/main/res/values-w1240dp/dimens.xml new file mode 100644 index 0000000..d73f4a3 --- /dev/null +++ b/app/src/main/res/values-w1240dp/dimens.xml @@ -0,0 +1,3 @@ + + 200dp + \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml new file mode 100644 index 0000000..22d7f00 --- /dev/null +++ b/app/src/main/res/values-w600dp/dimens.xml @@ -0,0 +1,3 @@ + + 48dp + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..4ab4520 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,8 @@ + + + 16dp + 16dp + 8dp + 176dp + 16dp + \ No newline at end of file diff --git a/app/src/main/res/values/drawables.xml b/app/src/main/res/values/drawables.xml new file mode 100644 index 0000000..c4e4cea --- /dev/null +++ b/app/src/main/res/values/drawables.xml @@ -0,0 +1,8 @@ + + @android:drawable/ic_menu_camera + @android:drawable/ic_menu_gallery + @android:drawable/ic_menu_slideshow + @android:drawable/ic_menu_manage + @android:drawable/ic_menu_share + @android:drawable/ic_menu_send + \ 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 f0ced8f..eaaef4f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,4 +21,15 @@ Dark Display Settings + DrawerActivity + Open navigation drawer + Close navigation drawer + Tichu Counter + app@zobrist.me + Navigation header + Settings + + Counter + History + Settings \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 74c4ce7..49592f5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,13 +8,4 @@ - - - + +