Skip to content

Commit c84faad

Browse files
fabriziocuccifacebook-github-bot
authored andcommitted
Kotlinify DoubleTapReloadRecognizer (facebook#43862)
Summary: Pull Request resolved: facebook#43862 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: andrewdacenko Differential Revision: D55747942 fbshipit-source-id: 07376f5ca2790d1656903cd03705f32c2050a589
1 parent 0132142 commit c84faad

File tree

3 files changed

+41
-47
lines changed

3 files changed

+41
-47
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2161,9 +2161,9 @@ public abstract interface class com/facebook/react/devsupport/DevSupportManagerF
21612161
public abstract fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
21622162
}
21632163

2164-
public class com/facebook/react/devsupport/DoubleTapReloadRecognizer {
2164+
public final class com/facebook/react/devsupport/DoubleTapReloadRecognizer {
21652165
public fun <init> ()V
2166-
public fun didDoubleTapR (ILandroid/view/View;)Z
2166+
public final fun didDoubleTapR (ILandroid/view/View;)Z
21672167
}
21682168

21692169
public abstract interface class com/facebook/react/devsupport/HMRClient : com/facebook/react/bridge/JavaScriptModule {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DoubleTapReloadRecognizer.java

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
package com.facebook.react.devsupport
9+
10+
import android.os.Handler
11+
import android.os.Looper
12+
import android.view.KeyEvent
13+
import android.view.View
14+
import android.widget.EditText
15+
16+
/**
17+
* A class allows recognizing double key tap of "R", used to reload JS in [AbstractReactActivity],
18+
* [RedBoxDialogSurfaceDelegate] and [ReactActivity].
19+
*/
20+
public class DoubleTapReloadRecognizer {
21+
private var doRefresh = false
22+
23+
public fun didDoubleTapR(keyCode: Int, view: View): Boolean {
24+
if (keyCode == KeyEvent.KEYCODE_R && view !is EditText) {
25+
if (doRefresh) {
26+
doRefresh = false
27+
return true
28+
} else {
29+
doRefresh = true
30+
Handler(Looper.getMainLooper()).postDelayed({ doRefresh = false }, DOUBLE_TAP_DELAY)
31+
}
32+
}
33+
return false
34+
}
35+
36+
private companion object {
37+
private const val DOUBLE_TAP_DELAY: Long = 200
38+
}
39+
}

0 commit comments

Comments
 (0)