From c7313a9cdd99c1d370e4fadcb4689c327c48904f Mon Sep 17 00:00:00 2001 From: HeCodes2Much Date: Sat, 11 May 2024 17:14:57 +0100 Subject: [PATCH] Refactor: Refactor keyboard handling and UI consistency Details: Refactored keyboard handling methods in AppHelper.kt to improve code clarity. Removed redundant showSoftKeyboard() and hideKeyboard() functions from AppHelper.kt and adjusted references accordingly. Also, ensured UI consistency by renaming search_view1 to search_view_text in fragment_draw.xml for better readability and maintained uniformity in variable naming conventions. Additionally, updated the draw_search_button FloatingActionButton attributes for visual consistency and clarity. Closes #8 --- CHANGELOG.md | 5 +++++ .../droidworksstudio/launcher/helper/AppHelper.kt | 13 ------------- .../launcher/ui/activities/MainActivity.kt | 4 +++- .../launcher/ui/drawer/DrawFragment.kt | 14 +++++++++----- .../launcher/ui/home/HomeFragment.kt | 6 ++++++ app/src/main/res/layout/fragment_draw.xml | 13 +++++++------ 6 files changed, 30 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dba41d1..6df4970 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,11 @@ All notable changes to this project will be documented in this file. See [conven - Updated Language Files. ([#7](https://github.com/DroidWorksStudio/mLauncher/issues/7)) - ([89ef870](https://github.com/DroidWorksStudio/mLauncher/commit/89ef870cf40846216ff366e96d9f2ebb766e4a89)) +### Refactoring: + +- Refactor keyboard handling and UI consistency - ([0c59747](https://github.com/DroidWorksStudio/mLauncher/commit/0c59747ff9f583e2d90c412b1c3d1f3e99751412)) +- Refactored keyboard handling methods in AppHelper.kt to improve code clarity. Removed redundant showSoftKeyboard() and hideKeyboard() functions from AppHelper.kt and adjusted references accordingly. Also, ensured UI consistency by renaming search_view1 to search_view_text in fragment_draw.xml for better readability and maintained uniformity in variable naming conventions. Additionally, updated the draw_search_button FloatingActionButton attributes for visual consistency and clarity. - ([0c59747](https://github.com/DroidWorksStudio/mLauncher/commit/0c59747ff9f583e2d90c412b1c3d1f3e99751412)) + ## [0.0.1](https://github.com/DroidWorksStudio/mLauncher/tree/0.0.1) - (08, May 2024) ### Implemented Enhancements: diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt index 3a6e376..f3fcf96 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt @@ -253,24 +253,11 @@ class AppHelper @Inject constructor() { } } - fun View.showSoftKeyboard() { - if (this.requestFocus()) { - val inputMethodManager: InputMethodManager = - context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - inputMethodManager.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT) - } - } - fun hideKeyboard(context: Context, view: View) { val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) } - fun View.hideKeyboard() { - val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - imm.hideSoftInputFromWindow(this.windowToken, 0) - } - fun wordOfTheDay(resources: Resources): String { val dailyWordsArray = resources.getStringArray(R.array.settings_appearance_daily_word_default) val dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR) diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt index 97fba24..5725071 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/activities/MainActivity.kt @@ -1,6 +1,7 @@ package com.github.droidworksstudio.launcher.ui.activities import android.os.Bundle +import android.util.Log import android.view.Menu import android.view.MenuItem import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS @@ -10,7 +11,6 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment -import androidx.navigation.fragment.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import com.github.droidworksstudio.launcher.R @@ -74,6 +74,7 @@ class MainActivity : AppCompatActivity() { } private fun observeUI() { + binding.pager.currentItem = 0 preferenceViewModel.setShowStatusBar(preferenceHelper.showStatusBar) preferenceViewModel.showStatusBarLiveData.observe(this) { if (it) appHelper.showStatusBar(this.window) @@ -133,6 +134,7 @@ class MainActivity : AppCompatActivity() { @Deprecated("Deprecated in Java") override fun onBackPressed() { val currentItem = binding.pager.currentItem + Log.d("currentItem","$currentItem") val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment_content_main) as NavHostFragment val currentFragment = navHostFragment.childFragmentManager.fragments[0] diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt index e923114..dd63447 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt @@ -13,6 +13,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.coroutineScope import androidx.lifecycle.lifecycleScope +import androidx.navigation.fragment.NavHostFragment import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.github.droidworksstudio.launcher.R import com.github.droidworksstudio.launcher.data.entities.AppInfo @@ -84,6 +85,7 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, private fun observeDrawerApps() { viewModel.compareInstalledAppInfo() + @Suppress("DEPRECATION") viewLifecycleOwner.lifecycleScope.launchWhenCreated { viewModel.drawApps.collect{ drawAdapter.submitList(it) @@ -93,7 +95,7 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, } private fun setupSearch() { - binding.searchView1.addTextChangedListener(object: TextWatcher { + binding.searchViewText.addTextChangedListener(object: TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { // Do Nothing } @@ -109,19 +111,20 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, } private fun observeClickListener(){ - binding.drawSearchButton.setOnClickListener {appHelper.showSoftKeyboard(context, binding.searchView1)} + binding.drawSearchButton.setOnClickListener {appHelper.showSoftKeyboard(context, binding.searchViewText)} } private fun searchApp(query: String?) { val searchQuery = "%$query%" + @Suppress("DEPRECATION") viewLifecycleOwner.lifecycle.coroutineScope.launchWhenCreated { viewModel.searchAppInfo(searchQuery).collect { drawAdapter.submitList(it) } } } private fun showSelectedApp(appInfo: AppInfo) { - binding.searchView1.text?.clear() + binding.searchViewText.text?.clear() val bottomSheetFragment = AppInfoBottomSheetFragment(appInfo) bottomSheetFragment.setOnBottomSheetDismissedListener(this) @@ -136,18 +139,19 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, override fun onPause() { super.onPause() - binding.searchView1.text?.clear() + binding.searchViewText.text?.clear() } override fun onResume() { super.onResume() observeDrawerApps() binding.drawAdapter.scrollToPosition(0) - appHelper.hideKeyboard(context, binding.searchView1) + appHelper.hideKeyboard(context, binding.searchView) } override fun onStop() { super.onStop() + appHelper.hideKeyboard(context, binding.searchView) } override fun onAppClicked(appInfo: AppInfo) { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt index 9950fc2..5b068a0 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt @@ -15,6 +15,7 @@ import androidx.annotation.RequiresApi import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope +import androidx.navigation.findNavController import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.github.droidworksstudio.launcher.R import com.github.droidworksstudio.launcher.accessibility.MyAccessibilityService @@ -94,6 +95,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, @SuppressLint("ClickableViewAccessibility") private fun initializeInjectedDependencies() { context = requireContext() + appHelper.hideKeyboard(context, binding.mainView) binding.nestScrollView.scrollEventListener = this @@ -153,6 +155,8 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, } private fun observeUserInterfaceSettings() { + appHelper.hideKeyboard(context, binding.mainView) + preferenceViewModel.setShowTime(preferenceHelper.showTime) preferenceViewModel.setShowDate(preferenceHelper.showDate) preferenceViewModel.setShowDailyWord(preferenceHelper.showDailyWord) @@ -250,10 +254,12 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, override fun onPause() { super.onPause() + appHelper.hideKeyboard(context, binding.mainView) } override fun onResume() { super.onResume() + appHelper.hideKeyboard(context, binding.mainView) observeUserInterfaceSettings() observeFavoriteAppList() } diff --git a/app/src/main/res/layout/fragment_draw.xml b/app/src/main/res/layout/fragment_draw.xml index 362b66f..468b629 100644 --- a/app/src/main/res/layout/fragment_draw.xml +++ b/app/src/main/res/layout/fragment_draw.xml @@ -25,7 +25,7 @@ tools:ignore="DuplicateClickableBoundsCheck"> + android:textStyle="normal" + tools:ignore="VisualLintTextFieldSize"> @@ -54,16 +55,16 @@ + tools:ignore="ContentDescription,SpeakableTextPresentCheck" /> \ No newline at end of file