From 4b4e0e3027665a4b2a6b666e093183877abeddb8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 14 Apr 2020 14:10:23 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tangemtest/_main/MainActivity.kt | 27 ++++++++++---- .../tangem/tangemtest/_main/MainViewModel.kt | 2 ++ .../personalize/ui/PersonalizationFragment.kt | 20 +++++------ .../variants/responses/ui/ResponseFragment.kt | 6 ++-- tangem-demo/src/main/res/menu/main_menu.xml | 36 ------------------- .../src/main/res/menu/menu_activity_main.xml | 11 ++++++ .../main/res/menu/menu_fg_peronalization.xml | 18 ++++++++++ .../src/main/res/menu/menu_fg_response.xml | 11 ++++++ tangem-demo/src/main/res/values/strings.xml | 6 +++- .../res/values/strings_personalization.xml | 8 ++--- .../src/main/res/values/strings_response.xml | 1 + 11 files changed, 83 insertions(+), 63 deletions(-) delete mode 100644 tangem-demo/src/main/res/menu/main_menu.xml create mode 100644 tangem-demo/src/main/res/menu/menu_activity_main.xml create mode 100644 tangem-demo/src/main/res/menu/menu_fg_peronalization.xml create mode 100644 tangem-demo/src/main/res/menu/menu_fg_response.xml diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt index 3b6c05f333..c47ac39601 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt @@ -3,9 +3,9 @@ package com.tangem.tangemtest._main import android.content.res.Resources import android.os.Bundle import android.view.Menu +import android.view.MenuItem import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.SwitchCompat import androidx.appcompat.widget.Toolbar import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment @@ -20,7 +20,7 @@ import ru.dev.gbixahue.eu4d.lib.android.global.log.Log */ class MainActivity : AppCompatActivity() { - private val vm: MainViewModel by viewModels() + private val mainVM: MainViewModel by viewModels() private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { @@ -52,11 +52,24 @@ class MainActivity : AppCompatActivity() { } override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.main_menu, menu) - val switchMenu = menu.findItem(R.id.action_toggle_description_visibility) - (switchMenu.actionView as? SwitchCompat)?.let { - it.setOnCheckedChangeListener { buttonView, isChecked -> vm.switchToggled(isChecked) } + menuInflater.inflate(R.menu.menu_activity_main, menu) + return true + } + + override fun onPrepareOptionsMenu(menu: Menu): Boolean { + val switchItem = menu.findItem(R.id.action_toggle_description_visibility) + switchItem.isChecked = mainVM.descriptionSwitchState + return super.onPrepareOptionsMenu(menu) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + val result = when (item.itemId) { + R.id.action_toggle_description_visibility -> { + item.isChecked = !item.isChecked + mainVM.switchToggled(item.isChecked) + } + else -> null } - return super.onCreateOptionsMenu(menu) + return if (result == null) super.onOptionsItemSelected(item) else true } } \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt index a50da93a68..3900d86530 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt @@ -10,10 +10,12 @@ import ru.dev.gbixahue.eu4d.lib.android.global.log.Log */ class MainViewModel : ViewModel() { val ldDescriptionSwitch = MutableLiveData(false) + var descriptionSwitchState = false var commandResponse: CommandResponse? = null fun switchToggled(state: Boolean) { + descriptionSwitchState = state ldDescriptionSwitch.postValue(state) } diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt index 4f63996dcf..196828c168 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt @@ -47,9 +47,9 @@ class PersonalizationFragment : BaseCardActionFragment(), PersonalizationPresetV override fun getLayoutId(): Int = R.layout.fg_base_action_layout - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) setHasOptionsMenu(true) - return super.onCreateView(inflater, container, savedInstanceState) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -120,21 +120,21 @@ class PersonalizationFragment : BaseCardActionFragment(), PersonalizationPresetV navigateTo(R.id.action_nav_card_action_to_response_screen) } - override fun onPrepareOptionsMenu(menu: Menu) { - super.onPrepareOptionsMenu(menu) - menu.setGroupVisible(R.id.menu_group_personalization_preset, true) + override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { + inflater.inflate(R.menu.menu_fg_peronalization, menu) + super.onCreateOptionsMenu(menu, inflater) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val store = PersonalizationConfigStore(requireContext()) val presetManager = PersonalizationPresetManager(itemsManager, store, this) - when (item.itemId) { + val result = when (item.itemId) { R.id.action_reset -> presetManager.resetToDefault() R.id.action_save -> presetManager.savePreset() R.id.action_load -> presetManager.loadPreset() - else -> return super.onOptionsItemSelected(item) + else -> null } - return true + return if (result == null) super.onOptionsItemSelected(item) else true } override fun showSnackbar(id: Id, additionalHandler: ((Id) -> Int)?) { @@ -150,7 +150,7 @@ class PersonalizationFragment : BaseCardActionFragment(), PersonalizationPresetV override fun showSavePresetDialog(onOk: SafeValueChanged) { val dlgController = DialogController() val dlg = dlgController.createAlert(requireActivity(), R.layout.dlg_personalization_preset_save) - dlg.setTitle(R.string.menu_preset_save) + dlg.setTitle(R.string.menu_personalization_preset_save) dlg.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.btn_cancel)) { dialog, which -> } dlg.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.btn_ok)) { dialog, which -> val tvName = dlgController.view?.findViewById(R.id.et_item) ?: return@setButton @@ -164,7 +164,7 @@ class PersonalizationFragment : BaseCardActionFragment(), PersonalizationPresetV override fun showLoadPresetDialog(namesList: List, onChoose: SafeValueChanged, onDelete: SafeValueChanged) { val dlgController = DialogController() val dlg = dlgController.createAlert(requireActivity(), R.layout.dlg_personalization_preset_load) - dlg.setTitle(R.string.menu_preset_load) + dlg.setTitle(R.string.menu_personalization_preset_load) val rvPresetNames: RecyclerView = dlgController.view?.findViewById(R.id.recycler_view) ?: return rvPresetNames.layoutManager = LinearLayoutManager(context) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt index 6244bc7a1f..51616a2a4c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt @@ -30,6 +30,7 @@ open class ResponseFragment : BaseFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setTittle() + setHasOptionsMenu(true) } private fun setTittle() { @@ -40,7 +41,6 @@ open class ResponseFragment : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - setHasOptionsMenu(true) buildWidgets() listenDescriptionSwitchChanges() } @@ -58,10 +58,8 @@ open class ResponseFragment : BaseFragment() { } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { + inflater.inflate(R.menu.menu_fg_response, menu) super.onCreateOptionsMenu(menu, inflater) - - val menuItem = menu.findItem(R.id.action_share) - menuItem.isVisible = true } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/tangem-demo/src/main/res/menu/main_menu.xml b/tangem-demo/src/main/res/menu/main_menu.xml deleted file mode 100644 index f05978a433..0000000000 --- a/tangem-demo/src/main/res/menu/main_menu.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tangem-demo/src/main/res/menu/menu_activity_main.xml b/tangem-demo/src/main/res/menu/menu_activity_main.xml new file mode 100644 index 0000000000..f357bec858 --- /dev/null +++ b/tangem-demo/src/main/res/menu/menu_activity_main.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/tangem-demo/src/main/res/menu/menu_fg_peronalization.xml b/tangem-demo/src/main/res/menu/menu_fg_peronalization.xml new file mode 100644 index 0000000000..e216e70905 --- /dev/null +++ b/tangem-demo/src/main/res/menu/menu_fg_peronalization.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/tangem-demo/src/main/res/menu/menu_fg_response.xml b/tangem-demo/src/main/res/menu/menu_fg_response.xml new file mode 100644 index 0000000000..6ab677d644 --- /dev/null +++ b/tangem-demo/src/main/res/menu/menu_fg_response.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/tangem-demo/src/main/res/values/strings.xml b/tangem-demo/src/main/res/values/strings.xml index 60ba9ba1cc..105c2bc808 100644 --- a/tangem-demo/src/main/res/values/strings.xml +++ b/tangem-demo/src/main/res/values/strings.xml @@ -1,7 +1,8 @@ Tangem Development Kit - unknown + Docs + Copy to clipboard Delete OK @@ -9,6 +10,9 @@ Save Load + unknown + Nothing to load + @string/app_name Scan response Sign response diff --git a/tangem-demo/src/main/res/values/strings_personalization.xml b/tangem-demo/src/main/res/values/strings_personalization.xml index a919e32390..62814c5b2d 100644 --- a/tangem-demo/src/main/res/values/strings_personalization.xml +++ b/tangem-demo/src/main/res/values/strings_personalization.xml @@ -1,11 +1,9 @@ - Reset configuration to default - Save configuration - Load configuration - Nothing to load - + Reset configuration to default + Save configuration + Load configuration Personalize Depersonalize diff --git a/tangem-demo/src/main/res/values/strings_response.xml b/tangem-demo/src/main/res/values/strings_response.xml index c0086d1186..e0f0676ca9 100644 --- a/tangem-demo/src/main/res/values/strings_response.xml +++ b/tangem-demo/src/main/res/values/strings_response.xml @@ -1,6 +1,7 @@ + Share CID