diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt
index f11b44f..ba0289f 100644
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt
@@ -21,6 +21,7 @@ import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Bundle
import android.os.Handler
+import android.os.Looper
import android.provider.Telephony
import android.telecom.TelecomManager
import android.view.*
@@ -31,10 +32,7 @@ import androidx.core.graphics.drawable.toBitmap
import androidx.core.view.GestureDetectorCompat
import androidx.core.view.isVisible
import com.simplemobiletools.commons.extensions.*
-import com.simplemobiletools.commons.helpers.ensureBackgroundThread
-import com.simplemobiletools.commons.helpers.isPiePlus
-import com.simplemobiletools.commons.helpers.isQPlus
-import com.simplemobiletools.commons.helpers.isRPlus
+import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.launcher.BuildConfig
import com.simplemobiletools.launcher.R
import com.simplemobiletools.launcher.dialogs.RenameItemDialog
@@ -54,8 +52,6 @@ import kotlinx.android.synthetic.main.widgets_fragment.view.*
import kotlin.math.abs
class MainActivity : SimpleActivity(), FlingListener {
- private val ANIMATION_DURATION = 150L
-
private var mTouchDownX = -1
private var mTouchDownY = -1
private var mAllAppsFragmentY = 0
@@ -76,6 +72,8 @@ class MainActivity : SimpleActivity(), FlingListener {
companion object {
private var mLastUpEvent = 0L
+ private const val ANIMATION_DURATION = 150L
+ private const val APP_DRAWER_CLOSE_DELAY = 300L
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -489,6 +487,16 @@ class MainActivity : SimpleActivity(), FlingListener {
}
}
+ fun closeAppDrawer() {
+ if (isAllAppsFragmentExpanded()) {
+ Handler(Looper.getMainLooper()).postDelayed({
+ all_apps_fragment.y = mScreenHeight.toFloat()
+ all_apps_fragment.all_apps_grid.scrollToPosition(0)
+ home_screen_grid.fragmentCollapsed()
+ }, APP_DRAWER_CLOSE_DELAY)
+ }
+ }
+
private fun performItemClick(clickedGridItem: HomeScreenGridItem) {
if (clickedGridItem.type == ITEM_TYPE_ICON) {
launchApp(clickedGridItem.packageName, clickedGridItem.activityName)
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt
index 374a17c..94bdea5 100644
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt
@@ -38,6 +38,7 @@ class SettingsActivity : SimpleActivity() {
setupPurchaseThankYou()
setupCustomizeColors()
setupUseEnglish()
+ setupCloseAppDrawerOnOtherAppOpen()
setupDrawerColumnCount()
setupDrawerSearchBar()
setupHomeRowCount()
@@ -46,7 +47,12 @@ class SettingsActivity : SimpleActivity() {
setupManageHiddenIcons()
updateTextColors(settings_holder)
- arrayOf(settings_color_customization_section_label, settings_general_settings_label, settings_drawer_settings_label, settings_home_screen_label).forEach {
+ arrayOf(
+ settings_color_customization_section_label,
+ settings_general_settings_label,
+ settings_drawer_settings_label,
+ settings_home_screen_label
+ ).forEach {
it.setTextColor(getProperPrimaryColor())
}
}
@@ -92,6 +98,14 @@ class SettingsActivity : SimpleActivity() {
}
}
+ private fun setupCloseAppDrawerOnOtherAppOpen() {
+ settings_close_app_drawer_on_other_app.isChecked = config.closeAppDrawer
+ settings_close_app_drawer_on_other_app_holder.setOnClickListener {
+ settings_close_app_drawer_on_other_app.toggle()
+ config.closeAppDrawer = settings_close_app_drawer_on_other_app.isChecked
+ }
+ }
+
private fun setupDrawerColumnCount() {
val currentColumnCount = config.drawerColumnCount
settings_drawer_column_count.text = currentColumnCount.toString()
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt
index 89475ea..4ced1d8 100644
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt
@@ -120,6 +120,9 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : MyFragment
if (currAdapter == null) {
LaunchersAdapter(activity!!, launchers, this) {
activity?.launchApp((it as AppLauncher).packageName, it.activityName)
+ if (activity?.config?.closeAppDrawer == true) {
+ activity?.closeAppDrawer()
+ }
ignoreTouches = false
touchDownY = -1
}.apply {
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt
index 3fdfa1b..b88b168 100644
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt
@@ -28,4 +28,8 @@ class Config(context: Context) : BaseConfig(context) {
var showSearchBar: Boolean
get() = prefs.getBoolean(SHOW_SEARCH_BAR, true)
set(showSearchBar) = prefs.edit().putBoolean(SHOW_SEARCH_BAR, showSearchBar).apply()
+
+ var closeAppDrawer: Boolean
+ get() = prefs.getBoolean(CLOSE_APP_DRAWER, false)
+ set(closeAppDrawer) = prefs.edit().putBoolean(CLOSE_APP_DRAWER, closeAppDrawer).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Constants.kt
index 8f4ebd2..65e7bcd 100644
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Constants.kt
@@ -9,6 +9,7 @@ const val HOME_ROW_COUNT = "home_row_count"
const val HOME_COLUMN_COUNT = "home_column_count"
const val DRAWER_COLUMN_COUNT = "drawer_column_count"
const val SHOW_SEARCH_BAR = "show_search_bar"
+const val CLOSE_APP_DRAWER = "close_app_drawer"
// default home screen grid size
const val ROW_COUNT = 6
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 5a3bfef..385d4ed 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -173,7 +173,7 @@
@@ -187,6 +187,22 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index a7325f3..b0c76a3 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -12,10 +12,11 @@
اﻷيقونات المخفية
لا يمكن إلغاء تثبيت بعض التطبيقات بسبب قيود النظام، ولكن يمكن إخفاء أيقوناتها لتجنب ظهورها.
درج التطبيق
+ Close app drawer on opening an app
Home screen
- الأداة كبيرة جدًا بالنسبة لحجم الشاشة الرئيسية الحالي
+ Widget is too big for current home screen size
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 54af33c..21284a6 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -12,6 +12,7 @@
Скрити икони
Някои приложения не могат да бъдат деинсталирани поради системни ограничения, но можете поне да скриете иконите им, за да не ги виждате.
App drawer
+ Close app drawer on opening an app
Home screen
Widget is too big for current home screen size
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index aec2d9e..fdc0fd7 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -12,6 +12,7 @@
Hidden icons
Some apps cannot be uninstalled due to system restrictions, but you can at least hide their icons to avoid seeing them.
App drawer
+ Close app drawer on opening an app
Home screen
Widget is too big for current home screen size
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 7b1d8cd..ff244e6 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -12,6 +12,7 @@
Скрытые значки
Некоторые приложения нельзя удалить из-за системных ограничений, но можно скрыть их значки.
Панель приложения
+ Close app drawer on opening an app
Домашний экран
Виджет слишком велик для текущего размера домашнего экрана
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 48da004..621a714 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -12,6 +12,7 @@
Skryté ikonky
Niektoré apky nemôžu byť odinštalované kvôli systémovým obmedzeniam, viete ich ale aspoň skryť, aby ste ich nevideli.
Zoznam apiek
+ Close app drawer on opening an app
Domáca obrazovka
Widget je príliš veľký pre súčasnú domácu obrazovku