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