Skip to content

Commit 0f5ac61

Browse files
committed
fixing some gesture related glitches
1 parent c39f8da commit 0f5ac61

File tree

4 files changed

+48
-30
lines changed

4 files changed

+48
-30
lines changed

app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,7 @@ class MainActivity : SimpleActivity(), FlingListener {
271271
mIgnoreMoveEvents = false
272272
mLongPressedIcon = null
273273
mLastTouchCoords = Pair(-1f, -1f)
274-
(widgets_fragment as WidgetsFragment).ignoreTouches = false
275-
(all_apps_fragment as AllAppsFragment).ignoreTouches = false
274+
resetFragmentTouches()
276275
home_screen_grid.itemDraggingStopped()
277276

278277
if (!mIgnoreUpEvent) {
@@ -483,7 +482,7 @@ class MainActivity : SimpleActivity(), FlingListener {
483482
menu.findItem(R.id.uninstall).isVisible = gridItem.type == ITEM_TYPE_ICON
484483
menu.findItem(R.id.remove).isVisible = !isOnAllAppsFragment
485484
setOnMenuItemClickListener { item ->
486-
(all_apps_fragment as AllAppsFragment).ignoreTouches = false
485+
resetFragmentTouches()
487486
when (item.itemId) {
488487
R.id.resize -> home_screen_grid.widgetLongPressed(gridItem)
489488
R.id.app_info -> launchAppInfo(gridItem.packageName)
@@ -495,13 +494,25 @@ class MainActivity : SimpleActivity(), FlingListener {
495494

496495
setOnDismissListener {
497496
mOpenPopupMenu = null
498-
(all_apps_fragment as AllAppsFragment).ignoreTouches = false
497+
resetFragmentTouches()
499498
}
500499

501500
show()
502501
}
503502
}
504503

504+
private fun resetFragmentTouches() {
505+
(widgets_fragment as WidgetsFragment).apply {
506+
touchDownY = -1
507+
ignoreTouches = false
508+
}
509+
510+
(all_apps_fragment as AllAppsFragment).apply {
511+
touchDownY = -1
512+
ignoreTouches = false
513+
}
514+
}
515+
505516
private fun showWidgetsFragment() {
506517
showFragment(widgets_fragment)
507518
}
@@ -602,7 +613,8 @@ class MainActivity : SimpleActivity(), FlingListener {
602613
try {
603614
val defaultDialerPackage = (getSystemService(Context.TELECOM_SERVICE) as TelecomManager).defaultDialerPackage
604615
appLaunchers.firstOrNull { it.packageName == defaultDialerPackage }?.apply {
605-
val dialerIcon = HomeScreenGridItem(null, 0, ROW_COUNT - 1, 0, ROW_COUNT - 1, defaultDialerPackage, "", title, ITEM_TYPE_ICON, "", -1, "", "", null)
616+
val dialerIcon =
617+
HomeScreenGridItem(null, 0, ROW_COUNT - 1, 0, ROW_COUNT - 1, defaultDialerPackage, "", title, ITEM_TYPE_ICON, "", -1, "", "", null)
606618
homeScreenGridItems.add(dialerIcon)
607619
}
608620
} catch (e: Exception) {
@@ -647,7 +659,8 @@ class MainActivity : SimpleActivity(), FlingListener {
647659
val resolveInfo = packageManager.resolveActivity(cameraIntent, PackageManager.MATCH_DEFAULT_ONLY)
648660
val defaultCameraPackage = resolveInfo!!.activityInfo.packageName
649661
appLaunchers.firstOrNull { it.packageName == defaultCameraPackage }?.apply {
650-
val cameraIcon = HomeScreenGridItem(null, 4, ROW_COUNT - 1, 4, ROW_COUNT - 1, defaultCameraPackage, "", title, ITEM_TYPE_ICON, "", -1, "", "", null)
662+
val cameraIcon =
663+
HomeScreenGridItem(null, 4, ROW_COUNT - 1, 4, ROW_COUNT - 1, defaultCameraPackage, "", title, ITEM_TYPE_ICON, "", -1, "", "", null)
651664
homeScreenGridItems.add(cameraIcon)
652665
}
653666
} catch (e: Exception) {

app/src/main/kotlin/com/simplemobiletools/launcher/adapters/WidgetsAdapter.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.widget.RelativeLayout
77
import androidx.recyclerview.widget.RecyclerView
88
import com.bumptech.glide.Glide
99
import com.simplemobiletools.commons.extensions.getProperTextColor
10-
import com.simplemobiletools.commons.extensions.toast
1110
import com.simplemobiletools.launcher.R
1211
import com.simplemobiletools.launcher.activities.SimpleActivity
1312
import com.simplemobiletools.launcher.helpers.WIDGET_LIST_ITEMS_HOLDER
@@ -23,7 +22,8 @@ import kotlinx.android.synthetic.main.item_widget_preview.view.*
2322
class WidgetsAdapter(
2423
val activity: SimpleActivity,
2524
var widgetListItems: ArrayList<WidgetsListItem>,
26-
val widgetsFragmentListener: WidgetsFragmentListener
25+
val widgetsFragmentListener: WidgetsFragmentListener,
26+
val itemClick: () -> Unit
2727
) : RecyclerView.Adapter<WidgetsAdapter.ViewHolder>() {
2828

2929
private var textColor = activity.getProperTextColor()
@@ -102,9 +102,7 @@ class WidgetsAdapter(
102102
.load(widget.widgetPreviewImage)
103103
.into(widgetPreview.widget_image)
104104

105-
widgetPreview.setOnClickListener {
106-
activity.toast(R.string.touch_hold_widget)
107-
}
105+
widgetPreview.setOnClickListener { itemClick() }
108106

109107
widgetPreview.setOnLongClickListener { view ->
110108
widgetsFragmentListener.onWidgetLongPressed(widget)

app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : MyFragment
9999
if (currAdapter == null) {
100100
LaunchersAdapter(activity!!, launchers, this) {
101101
activity?.launchApp((it as AppLauncher).packageName, it.activityName)
102+
ignoreTouches = false
103+
touchDownY = -1
102104
}.apply {
103105
all_apps_grid.adapter = this
104106
}
@@ -150,24 +152,24 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : MyFragment
150152
}
151153

152154
override fun onAppLauncherLongPressed(x: Float, y: Float, appLauncher: AppLauncher) {
153-
val gridItem =
154-
HomeScreenGridItem(
155-
null,
156-
-1,
157-
-1,
158-
-1,
159-
-1,
160-
appLauncher.packageName,
161-
appLauncher.activityName,
162-
appLauncher.title,
163-
ITEM_TYPE_ICON,
164-
"",
165-
-1,
166-
"",
167-
"",
168-
null,
169-
appLauncher.drawable
170-
)
155+
val gridItem = HomeScreenGridItem(
156+
null,
157+
-1,
158+
-1,
159+
-1,
160+
-1,
161+
appLauncher.packageName,
162+
appLauncher.activityName,
163+
appLauncher.title,
164+
ITEM_TYPE_ICON,
165+
"",
166+
-1,
167+
"",
168+
"",
169+
null,
170+
appLauncher.drawable
171+
)
172+
171173
activity?.showHomeIconMenu(x, y, gridItem, true)
172174
ignoreTouches = true
173175
}

app/src/main/kotlin/com/simplemobiletools/launcher/fragments/WidgetsFragment.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import android.view.WindowManager
1515
import com.simplemobiletools.commons.extensions.*
1616
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1717
import com.simplemobiletools.commons.helpers.isRPlus
18+
import com.simplemobiletools.launcher.R
1819
import com.simplemobiletools.launcher.activities.MainActivity
1920
import com.simplemobiletools.launcher.adapters.WidgetsAdapter
2021
import com.simplemobiletools.launcher.extensions.getInitialCellSize
@@ -159,7 +160,11 @@ class WidgetsFragment(context: Context, attributeSet: AttributeSet) : MyFragment
159160
activity?.runOnUiThread {
160161
val currAdapter = widgets_list.adapter
161162
if (currAdapter == null) {
162-
WidgetsAdapter(activity!!, widgetsListItems, this).apply {
163+
WidgetsAdapter(activity!!, widgetsListItems, this) {
164+
context.toast(R.string.touch_hold_widget)
165+
ignoreTouches = false
166+
touchDownY = -1
167+
}.apply {
163168
widgets_list.adapter = this
164169
}
165170
} else {

0 commit comments

Comments
 (0)