@@ -4,10 +4,7 @@ import android.annotation.TargetApi
4
4
import android.app.Activity
5
5
import android.content.Context
6
6
import android.graphics.Rect
7
- import android.os.Build
8
7
import android.view.DisplayCutout
9
- import android.view.GestureDetector
10
- import android.view.MotionEvent
11
8
import android.view.View
12
9
import android.view.ViewGroup
13
10
import android.view.Window
@@ -122,13 +119,15 @@ fun View.addInsetsByPadding(
122
119
ViewCompat .setOnApplyWindowInsetsListener(this ) { v, ins ->
123
120
if (top) {
124
121
val lastTopPadding = v.getTag(R .id.view_add_insets_padding_top_tag) as ? Int ? : 0
125
- val newTopPadding = ins.getInsets(WindowInsetsCompat .Type .statusBars()).top + ins.getInsets(WindowInsetsCompat .Type .captionBar()).top
122
+ val newTopPadding = ins.getInsets(WindowInsetsCompat .Type .statusBars()).top +
123
+ ins.getInsets(WindowInsetsCompat .Type .captionBar()).top
126
124
v.setTag(R .id.view_add_insets_padding_top_tag, newTopPadding)
127
125
v.updatePadding(top = v.paddingTop - lastTopPadding + newTopPadding)
128
126
}
129
127
if (bottom) {
130
128
val lastBottomPadding = v.getTag(R .id.view_add_insets_padding_bottom_tag) as ? Int ? : 0
131
- val newBottomPadding = ins.getInsets(WindowInsetsCompat .Type .navigationBars()).bottom + ins.getInsets(WindowInsetsCompat .Type .captionBar()).bottom
129
+ val newBottomPadding = ins.getInsets(WindowInsetsCompat .Type .navigationBars()).bottom +
130
+ ins.getInsets(WindowInsetsCompat .Type .captionBar()).bottom
132
131
v.setTag(R .id.view_add_insets_padding_bottom_tag, newBottomPadding)
133
132
v.updatePadding(bottom = v.paddingBottom - lastBottomPadding + newBottomPadding)
134
133
}
@@ -159,7 +158,8 @@ fun View.addInsetsByMargin(
159
158
ViewCompat .setOnApplyWindowInsetsListener(this ) { v, ins ->
160
159
if (top) {
161
160
val lastTopMargin = v.getTag(R .id.view_add_insets_margin_top_tag) as ? Int ? : 0
162
- val newTopMargin = ins.getInsets(WindowInsetsCompat .Type .statusBars()).top + ins.getInsets(WindowInsetsCompat .Type .captionBar()).top
161
+ val newTopMargin = ins.getInsets(WindowInsetsCompat .Type .statusBars()).top +
162
+ ins.getInsets(WindowInsetsCompat .Type .captionBar()).top
163
163
v.setTag(R .id.view_add_insets_margin_top_tag, newTopMargin)
164
164
(v.layoutParams as ? ViewGroup .MarginLayoutParams )?.let { layoutParams ->
165
165
layoutParams.topMargin = layoutParams.topMargin - lastTopMargin + newTopMargin
@@ -168,7 +168,8 @@ fun View.addInsetsByMargin(
168
168
}
169
169
if (bottom) {
170
170
val lastBottomMargin = v.getTag(R .id.view_add_insets_margin_bottom_tag) as ? Int ? : 0
171
- val newBottomMargin = ins.getInsets(WindowInsetsCompat .Type .navigationBars()).bottom + ins.getInsets(WindowInsetsCompat .Type .captionBar()).bottom
171
+ val newBottomMargin = ins.getInsets(WindowInsetsCompat .Type .navigationBars()).bottom +
172
+ ins.getInsets(WindowInsetsCompat .Type .captionBar()).bottom
172
173
v.setTag(R .id.view_add_insets_margin_bottom_tag, newBottomMargin)
173
174
(v.layoutParams as ? ViewGroup .MarginLayoutParams )?.let { layoutParams ->
174
175
layoutParams.bottomMargin =
@@ -291,31 +292,4 @@ fun View.inSafeInset(displayCutout: DisplayCutout): Boolean {
291
292
if (overlapConsiderPaddingMargin(it)) return false
292
293
}
293
294
return true
294
- }
295
-
296
- fun View.setOnDoubleTapListener (onDoubleTap : () -> Unit ) {
297
- isClickable = true
298
- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
299
- focusable = View .FOCUSABLE
300
- }
301
- val doubleTapListener = DoubleTapListener (context, onDoubleTap)
302
- setOnTouchListener { v, event ->
303
- // v.performClick()
304
- doubleTapListener.onTouchEvent(event)
305
- }
306
- }
307
-
308
- class DoubleTapListener (context : Context , private val onDoubleTap : () -> Unit ) :
309
- GestureDetector .SimpleOnGestureListener () {
310
-
311
- private val gestureDetector = GestureDetector (context, this )
312
-
313
- fun onTouchEvent (event : MotionEvent ): Boolean {
314
- return gestureDetector.onTouchEvent(event)
315
- }
316
-
317
- override fun onDoubleTap (e : MotionEvent ): Boolean {
318
- onDoubleTap.invoke()
319
- return true
320
- }
321
295
}
0 commit comments