Feat: Added Auto keyboard & Auto Open last app toggle settings.
This commit is contained in:
@@ -13,13 +13,13 @@ 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
|
||||
import com.github.droidworksstudio.launcher.databinding.FragmentDrawBinding
|
||||
import com.github.droidworksstudio.launcher.helper.AppHelper
|
||||
import com.github.droidworksstudio.launcher.helper.FingerprintHelper
|
||||
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
|
||||
import com.github.droidworksstudio.launcher.listener.OnItemClickedListener
|
||||
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.AppInfoBottomSheetFragment
|
||||
import com.github.droidworksstudio.launcher.viewmodel.AppViewModel
|
||||
@@ -50,6 +50,9 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
|
||||
@Inject
|
||||
lateinit var fingerHelper: FingerprintHelper
|
||||
|
||||
@Inject
|
||||
lateinit var preferenceHelper: PreferenceHelper
|
||||
|
||||
private lateinit var context: Context
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
@@ -67,7 +70,6 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
context = requireContext()
|
||||
|
||||
setupRecyclerView()
|
||||
setupSearch()
|
||||
observeClickListener()
|
||||
@@ -111,15 +113,31 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
|
||||
}
|
||||
|
||||
private fun observeClickListener(){
|
||||
binding.drawSearchButton.setOnClickListener {appHelper.showSoftKeyboard(context, binding.searchViewText)}
|
||||
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) }
|
||||
viewModel.searchAppInfo(searchQuery).collect { searchResults ->
|
||||
val numberOfItemsLeft = searchResults.size
|
||||
val appResults = searchResults.firstOrNull()
|
||||
when (numberOfItemsLeft) {
|
||||
1 -> {
|
||||
appResults?.let { appInfo ->
|
||||
if (preferenceHelper.automaticOpenApp) observeBioAuthCheck(appInfo)
|
||||
}
|
||||
drawAdapter.submitList(searchResults)
|
||||
}
|
||||
|
||||
else -> {
|
||||
drawAdapter.submitList(searchResults)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,7 +164,7 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
|
||||
super.onResume()
|
||||
observeDrawerApps()
|
||||
binding.drawAdapter.scrollToPosition(0)
|
||||
appHelper.hideKeyboard(context, binding.searchView)
|
||||
if (preferenceHelper.automaticKeyboard) appHelper.showSoftKeyboard(context, binding.searchViewText)
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
|
||||
@@ -77,6 +77,8 @@ class SettingsFragment : Fragment(), ScrollEventListener {
|
||||
binding.batterySwitchCompat.isChecked = preferenceHelper.showBattery
|
||||
binding.dailyWordSwitchCompat.isChecked = preferenceHelper.showDailyWord
|
||||
binding.appIconsSwitchCompat.isChecked = preferenceHelper.showAppIcon
|
||||
binding.automaticKeyboardSwitchCompat.isChecked = preferenceHelper.automaticKeyboard
|
||||
binding.automaticOpenAppSwitchCompat.isChecked = preferenceHelper.automaticOpenApp
|
||||
binding.gesturesLockSwitchCompat.isChecked = preferenceHelper.tapLockScreen
|
||||
binding.gesturesNotificationSwitchCompat.isChecked = preferenceHelper.swipeNotification
|
||||
binding.gesturesSearchSwitchCompat.isChecked = preferenceHelper.swipeSearch
|
||||
@@ -173,6 +175,16 @@ class SettingsFragment : Fragment(), ScrollEventListener {
|
||||
binding.gesturesSearchSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
|
||||
preferenceViewModel.setSwipeSearch(isChecked)
|
||||
}
|
||||
|
||||
binding.automaticKeyboardSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
|
||||
preferenceViewModel.setAutoKeyboard(isChecked)
|
||||
}
|
||||
|
||||
binding.automaticOpenAppSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
|
||||
preferenceViewModel.setAutoOpenApp(isChecked)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun onTopReached() {
|
||||
|
||||
@@ -34,6 +34,8 @@ class PreferenceViewModel @Inject constructor(
|
||||
val tapLockScreenLiveData: MutableLiveData<Boolean> = MutableLiveData()
|
||||
val swipeNotificationLiveData: MutableLiveData<Boolean> = MutableLiveData()
|
||||
val swipeSearchLiveData: MutableLiveData<Boolean> = MutableLiveData()
|
||||
val autoOpenAppsLiveData: MutableLiveData<Boolean> = MutableLiveData()
|
||||
val autoKeyboardLiveData: MutableLiveData<Boolean> = MutableLiveData()
|
||||
val appPaddingSizeLiveData: MutableLiveData<Float> = MutableLiveData()
|
||||
|
||||
fun setFirstLaunch(firstLaunch: Boolean) {
|
||||
@@ -155,4 +157,14 @@ class PreferenceViewModel @Inject constructor(
|
||||
preferenceHelper.swipeSearch = swipeSearch
|
||||
swipeSearchLiveData.postValue((preferenceHelper.swipeSearch))
|
||||
}
|
||||
|
||||
fun setAutoKeyboard(autoKeyboard: Boolean){
|
||||
preferenceHelper.automaticKeyboard = autoKeyboard
|
||||
autoKeyboardLiveData.postValue((preferenceHelper.automaticKeyboard))
|
||||
}
|
||||
|
||||
fun setAutoOpenApp(autoOpenApp: Boolean){
|
||||
preferenceHelper.automaticOpenApp = autoOpenApp
|
||||
autoOpenAppsLiveData.postValue((preferenceHelper.automaticOpenApp))
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_status_bar"
|
||||
android:text="@string/settings_display_status_bar"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -113,7 +113,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_date"
|
||||
android:text="@string/settings_display_date"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -145,7 +145,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_time"
|
||||
android:text="@string/settings_display_time"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -177,7 +177,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_battery"
|
||||
android:text="@string/settings_display_battery"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -209,7 +209,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_daily_word"
|
||||
android:text="@string/settings_display_daily_word"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -241,7 +241,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_appearance_app_icons_word"
|
||||
android:text="@string/settings_display_app_icons"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -259,6 +259,70 @@
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:orientation="horizontal"
|
||||
tools:ignore="MissingConstraints">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/automaticKeyboard_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_display_automatic_keyboard"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="RtlHardcoded"
|
||||
style="@style/TextDefaultStyle"/>
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/automaticKeyboard_switchCompat"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleX="0.7"
|
||||
android:scaleY="0.8"
|
||||
android:thumb="@drawable/shape_switch_thumb"
|
||||
app:track="@drawable/selector_switch"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:orientation="horizontal"
|
||||
tools:ignore="MissingConstraints">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/automaticOpenApp_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/settings_display_auto_open_apps"
|
||||
android:textSize="@dimen/text_large"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="RtlHardcoded"
|
||||
style="@style/TextDefaultStyle"/>
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/automaticOpenApp_switchCompat"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleX="0.7"
|
||||
android:scaleY="0.8"
|
||||
android:thumb="@drawable/shape_switch_thumb"
|
||||
app:track="@drawable/selector_switch"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
|
||||
@@ -31,23 +31,20 @@
|
||||
<string name="settings_title_gestures">Gestures</string>
|
||||
<string name="settings_title_others">Others</string>
|
||||
|
||||
<string name="settings_appearance_status_bar">Show Status Bar</string>
|
||||
<string name="settings_appearance_date">Show Date</string>
|
||||
<string name="settings_appearance_time">Show Time</string>
|
||||
<string name="settings_appearance_battery">Show Battery</string>
|
||||
<string name="settings_appearance_daily_word">Show Daily Word</string>
|
||||
<string name="settings_appearance_app_icons_word">Show App Icons</string>
|
||||
<string name="settings_display_status_bar">Show Status Bar</string>
|
||||
<string name="settings_display_date">Show Date</string>
|
||||
<string name="settings_display_time">Show Time</string>
|
||||
<string name="settings_display_battery">Show Battery</string>
|
||||
<string name="settings_display_daily_word">Show Daily Word</string>
|
||||
<string name="settings_display_app_icons">Show App Icons</string>
|
||||
<string name="settings_display_automatic_keyboard">Auto Show Keyboard</string>
|
||||
<string name="settings_display_auto_open_apps">Auto Open Last App</string>
|
||||
|
||||
<string name="settings_appearance_text_size_title">Size</string>
|
||||
<string name="settings_appearance_color_title">Color</string>
|
||||
<string name="settings_appearance_alignment_title">Alignment</string>
|
||||
<string name="settings_appearance_padding_title">Padding</string>
|
||||
|
||||
<string name="settings_appearance_date_color">Select Date Color</string>
|
||||
<string name="settings_appearance_time_color">Select Time Color</string>
|
||||
<string name="settings_appearance_battery_color">Select Battery Color</string>
|
||||
<string name="settings_appearance_daily_word_color">Select Daily Word Color</string>
|
||||
<string name="settings_appearance_app_display_color">Select App Color</string>
|
||||
<string name="settings_appearance_date_size_title">Date Size : </string>
|
||||
<string name="settings_appearance_time_size_title">Time Size : </string>
|
||||
<string name="settings_appearance_app_size_title">App Size : </string>
|
||||
|
||||
Reference in New Issue
Block a user