From e71232870cb8e051f64095daa1d3542010e79131 Mon Sep 17 00:00:00 2001 From: Harold Lopez <61238804+har0ld-scl@users.noreply.github.com> Date: Sat, 20 Feb 2021 05:00:06 -0300 Subject: [PATCH] fix: android native variant stops responding at unmount during spinn (#296) --- .../date_picker/pickers/AndroidNative.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java b/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java index 196d291..5b511ea 100644 --- a/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java +++ b/android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java @@ -24,6 +24,7 @@ public class AndroidNative extends NumberPicker implements Picker { private int state = SCROLL_STATE_IDLE; private OnValueChangeListenerInScrolling listenerInScrolling; private boolean isAnimating; + private final Handler handler = new Handler(); public AndroidNative(Context context) { super(context); @@ -111,7 +112,7 @@ public class AndroidNative extends NumberPicker implements Picker { int timeBetweenScrollsMs = 100; int willStopScrollingInMs = timeBetweenScrollsMs * moves; isAnimating = true; - new Handler().postDelayed(new Runnable() { + handler.postDelayed(new Runnable() { @Override public void run() { isAnimating = false; @@ -149,7 +150,7 @@ public class AndroidNative extends NumberPicker implements Picker { private void changeValueByOne(final boolean increment, final int ms, final boolean isLast) { final AndroidNative self = this; - new Handler().postDelayed(new Runnable() { + handler.postDelayed(new Runnable() { @Override public void run() { changeValueByOne(self, increment); @@ -202,7 +203,7 @@ public class AndroidNative extends NumberPicker implements Picker { } private void sendEventIn500ms(){ - new Handler().postDelayed(new Runnable() { + handler.postDelayed(new Runnable() { @Override public void run() { onValueChangedListener.onValueChange(); @@ -211,4 +212,9 @@ public class AndroidNative extends NumberPicker implements Picker { }, 500); } + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + handler.removeCallbacksAndMessages(null); + } }