@momo-kits/calculator-keyboard 0.153.1-beta.4 → 0.153.1-test.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (14) hide show
  1. package/android/src/main/java/com/calculatorkeyboard/InputCalculatorViewManager.kt +36 -4
  2. package/package.json +3 -3
  3. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/NativeInputCalculatorManagerDelegate.java +0 -67
  4. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/NativeInputCalculatorManagerInterface.java +0 -28
  5. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/ComponentDescriptors.cpp +0 -22
  6. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/ComponentDescriptors.h +0 -24
  7. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/EventEmitters.cpp +0 -69
  8. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/EventEmitters.h +0 -55
  9. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/Props.cpp +0 -32
  10. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/Props.h +0 -66
  11. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/ShadowNodes.cpp +0 -17
  12. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/ShadowNodes.h +0 -32
  13. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/States.cpp +0 -16
  14. package/android/app/build/generated/source/codegen/jni/react/renderer/components/CalculatorKeyboardSpecs/States.h +0 -29
@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
4
4
  import android.content.Context
5
5
  import android.graphics.Color
6
6
  import android.graphics.Typeface
7
+ import android.graphics.drawable.Drawable
7
8
  import android.os.Build
8
9
  import android.text.Editable
9
10
  import android.text.TextWatcher
10
11
  import android.view.KeyEvent
11
12
  import android.view.inputmethod.InputMethodManager
13
+ import android.widget.TextView
12
14
  import androidx.annotation.RequiresApi
15
+ import androidx.appcompat.content.res.AppCompatResources
13
16
  import androidx.core.graphics.toColorInt
14
17
  import androidx.core.view.ViewCompat
15
18
  import androidx.core.view.WindowInsetsCompat
@@ -113,14 +116,43 @@ class InputCalculatorViewManager : SimpleViewManager<ReactEditText>(), NativeInp
113
116
  keyboardView?.setMode(mode ?: "NumDefault")
114
117
  }
115
118
 
116
- @RequiresApi(Build.VERSION_CODES.Q)
119
+ @SuppressLint("DiscouragedPrivateApi")
117
120
  override fun setSelectionColor(
118
121
  view: ReactEditText?,
119
122
  value: String?
120
123
  ) {
121
- if (value == null) return
122
- view?.highlightColor = value.toColorInt()
123
- view?.textCursorDrawable?.setTint(value.toColorInt())
124
+ if (view == null || value == null) return
125
+ val color = value.toColorInt()
126
+
127
+ view.highlightColor = color
128
+
129
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
130
+ view.textCursorDrawable?.setTint(color)
131
+ } else {
132
+ try {
133
+ val field = TextView::class.java.getDeclaredField("mCursorDrawableRes")
134
+ field.isAccessible = true
135
+ val drawableResId = field.getInt(view)
136
+
137
+ val drawables = arrayOfNulls<Drawable>(2)
138
+ val drawable = AppCompatResources.getDrawable(view.context, drawableResId)
139
+ drawable?.setTint(color)
140
+
141
+ drawables[0] = drawable
142
+ drawables[1] = drawable
143
+
144
+ val editorField = TextView::class.java.getDeclaredField("mEditor")
145
+ editorField.isAccessible = true
146
+ val editor = editorField.get(view)
147
+
148
+ val cursorField = editor.javaClass.getDeclaredField("mCursorDrawable")
149
+ cursorField.isAccessible = true
150
+ cursorField.set(editor, drawables)
151
+
152
+ } catch (e: Exception) {
153
+ e.printStackTrace()
154
+ }
155
+ }
124
156
  }
125
157
 
126
158
  @ReactProp(name = "customKeyText")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/calculator-keyboard",
3
- "version": "0.153.1-beta.4",
3
+ "version": "0.153.1-test.1",
4
4
  "description": "react native calculator keyboard",
5
5
  "main": "./src/index.tsx",
6
6
  "files": [
@@ -66,10 +66,10 @@
66
66
  "peerDependencies": {
67
67
  "react": "*",
68
68
  "react-native": "*",
69
- "@momo-kits/foundation": "*"
69
+ "@momo-kits/foundation": "latest"
70
70
  },
71
71
  "engines": {
72
72
  "node": ">=18.0.0"
73
73
  },
74
74
  "dependencies": {}
75
- }
75
+ }
@@ -1,67 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaDelegate.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.bridge.ReadableArray;
15
- import com.facebook.react.bridge.ReadableMap;
16
- import com.facebook.react.uimanager.BaseViewManager;
17
- import com.facebook.react.uimanager.BaseViewManagerDelegate;
18
- import com.facebook.react.uimanager.LayoutShadowNode;
19
-
20
- public class NativeInputCalculatorManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & NativeInputCalculatorManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
21
- public NativeInputCalculatorManagerDelegate(U viewManager) {
22
- super(viewManager);
23
- }
24
- @Override
25
- public void setProperty(T view, String propName, @Nullable Object value) {
26
- switch (propName) {
27
- case "value":
28
- mViewManager.setValue(view, value == null ? null : (String) value);
29
- break;
30
- case "textAttributes":
31
- mViewManager.setTextAttributes(view, (ReadableMap) value);
32
- break;
33
- case "mode":
34
- mViewManager.setMode(view, value == null ? null : (String) value);
35
- break;
36
- case "selectionColor":
37
- mViewManager.setSelectionColor(view, value == null ? null : (String) value);
38
- break;
39
- case "customKeyText":
40
- mViewManager.setCustomKeyText(view, value == null ? null : (String) value);
41
- break;
42
- case "customKeyBackground":
43
- mViewManager.setCustomKeyBackground(view, value == null ? null : (String) value);
44
- break;
45
- case "customKeyTextColor":
46
- mViewManager.setCustomKeyTextColor(view, value == null ? null : (String) value);
47
- break;
48
- case "customKeyState":
49
- mViewManager.setCustomKeyState(view, value == null ? null : (String) value);
50
- break;
51
- default:
52
- super.setProperty(view, propName, value);
53
- }
54
- }
55
-
56
- @Override
57
- public void receiveCommand(T view, String commandName, @Nullable ReadableArray args) {
58
- switch (commandName) {
59
- case "focus":
60
- mViewManager.focus(view);
61
- break;
62
- case "blur":
63
- mViewManager.blur(view);
64
- break;
65
- }
66
- }
67
- }
@@ -1,28 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaInterface.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.bridge.ReadableMap;
15
- import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
16
-
17
- public interface NativeInputCalculatorManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
18
- void setValue(T view, @Nullable String value);
19
- void setTextAttributes(T view, @Nullable ReadableMap value);
20
- void setMode(T view, @Nullable String value);
21
- void setSelectionColor(T view, @Nullable String value);
22
- void setCustomKeyText(T view, @Nullable String value);
23
- void setCustomKeyBackground(T view, @Nullable String value);
24
- void setCustomKeyTextColor(T view, @Nullable String value);
25
- void setCustomKeyState(T view, @Nullable String value);
26
- void focus(T view);
27
- void blur(T view);
28
- }
@@ -1,22 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateComponentDescriptorCpp.js
9
- */
10
-
11
- #include <react/renderer/components/CalculatorKeyboardSpecs/ComponentDescriptors.h>
12
- #include <react/renderer/core/ConcreteComponentDescriptor.h>
13
- #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
14
-
15
- namespace facebook::react {
16
-
17
- void CalculatorKeyboardSpecs_registerComponentDescriptorsFromCodegen(
18
- std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {
19
- registry->add(concreteComponentDescriptorProvider<NativeInputCalculatorComponentDescriptor>());
20
- }
21
-
22
- } // namespace facebook::react
@@ -1,24 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateComponentDescriptorH.js
9
- */
10
-
11
- #pragma once
12
-
13
- #include <react/renderer/components/CalculatorKeyboardSpecs/ShadowNodes.h>
14
- #include <react/renderer/core/ConcreteComponentDescriptor.h>
15
- #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
16
-
17
- namespace facebook::react {
18
-
19
- using NativeInputCalculatorComponentDescriptor = ConcreteComponentDescriptor<NativeInputCalculatorShadowNode>;
20
-
21
- void CalculatorKeyboardSpecs_registerComponentDescriptorsFromCodegen(
22
- std::shared_ptr<const ComponentDescriptorProviderRegistry> registry);
23
-
24
- } // namespace facebook::react
@@ -1,69 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateEventEmitterCpp.js
9
- */
10
-
11
- #include <react/renderer/components/CalculatorKeyboardSpecs/EventEmitters.h>
12
-
13
-
14
- namespace facebook::react {
15
-
16
- void NativeInputCalculatorEventEmitter::onChange(OnChange event) const {
17
- dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) {
18
- auto payload = jsi::Object(runtime);
19
- payload.setProperty(runtime, "text", event.text);
20
- return payload;
21
- });
22
- }
23
-
24
-
25
- void NativeInputCalculatorEventEmitter::onKeyPress(OnKeyPress event) const {
26
- dispatchEvent("keyPress", [event=std::move(event)](jsi::Runtime &runtime) {
27
- auto payload = jsi::Object(runtime);
28
- payload.setProperty(runtime, "key", event.key);
29
- return payload;
30
- });
31
- }
32
-
33
-
34
- void NativeInputCalculatorEventEmitter::onResult(OnResult event) const {
35
- dispatchEvent("result", [event=std::move(event)](jsi::Runtime &runtime) {
36
- auto payload = jsi::Object(runtime);
37
- payload.setProperty(runtime, "result", event.result);
38
- return payload;
39
- });
40
- }
41
-
42
-
43
- void NativeInputCalculatorEventEmitter::onBlur(OnBlur event) const {
44
- dispatchEvent("blur", [](jsi::Runtime &runtime) {
45
- auto payload = jsi::Object(runtime);
46
-
47
- return payload;
48
- });
49
- }
50
-
51
-
52
- void NativeInputCalculatorEventEmitter::onFocus(OnFocus event) const {
53
- dispatchEvent("focus", [](jsi::Runtime &runtime) {
54
- auto payload = jsi::Object(runtime);
55
-
56
- return payload;
57
- });
58
- }
59
-
60
-
61
- void NativeInputCalculatorEventEmitter::onCustomKeyEvent(OnCustomKeyEvent event) const {
62
- dispatchEvent("customKeyEvent", [](jsi::Runtime &runtime) {
63
- auto payload = jsi::Object(runtime);
64
-
65
- return payload;
66
- });
67
- }
68
-
69
- } // namespace facebook::react
@@ -1,55 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateEventEmitterH.js
9
- */
10
- #pragma once
11
-
12
- #include <react/renderer/components/view/ViewEventEmitter.h>
13
-
14
-
15
- namespace facebook::react {
16
- class NativeInputCalculatorEventEmitter : public ViewEventEmitter {
17
- public:
18
- using ViewEventEmitter::ViewEventEmitter;
19
-
20
- struct OnChange {
21
- std::string text;
22
- };
23
-
24
- struct OnKeyPress {
25
- std::string key;
26
- };
27
-
28
- struct OnResult {
29
- std::string result;
30
- };
31
-
32
- struct OnBlur {
33
-
34
- };
35
-
36
- struct OnFocus {
37
-
38
- };
39
-
40
- struct OnCustomKeyEvent {
41
-
42
- };
43
- void onChange(OnChange value) const;
44
-
45
- void onKeyPress(OnKeyPress value) const;
46
-
47
- void onResult(OnResult value) const;
48
-
49
- void onBlur(OnBlur value) const;
50
-
51
- void onFocus(OnFocus value) const;
52
-
53
- void onCustomKeyEvent(OnCustomKeyEvent value) const;
54
- };
55
- } // namespace facebook::react
@@ -1,32 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GeneratePropsCpp.js
9
- */
10
-
11
- #include <react/renderer/components/CalculatorKeyboardSpecs/Props.h>
12
- #include <react/renderer/core/PropsParserContext.h>
13
- #include <react/renderer/core/propsConversions.h>
14
-
15
- namespace facebook::react {
16
-
17
- NativeInputCalculatorProps::NativeInputCalculatorProps(
18
- const PropsParserContext &context,
19
- const NativeInputCalculatorProps &sourceProps,
20
- const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
21
-
22
- value(convertRawProp(context, rawProps, "value", sourceProps.value, {})),
23
- textAttributes(convertRawProp(context, rawProps, "textAttributes", sourceProps.textAttributes, {})),
24
- mode(convertRawProp(context, rawProps, "mode", sourceProps.mode, {})),
25
- selectionColor(convertRawProp(context, rawProps, "selectionColor", sourceProps.selectionColor, {})),
26
- customKeyText(convertRawProp(context, rawProps, "customKeyText", sourceProps.customKeyText, {})),
27
- customKeyBackground(convertRawProp(context, rawProps, "customKeyBackground", sourceProps.customKeyBackground, {})),
28
- customKeyTextColor(convertRawProp(context, rawProps, "customKeyTextColor", sourceProps.customKeyTextColor, {})),
29
- customKeyState(convertRawProp(context, rawProps, "customKeyState", sourceProps.customKeyState, {}))
30
- {}
31
-
32
- } // namespace facebook::react
@@ -1,66 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GeneratePropsH.js
9
- */
10
- #pragma once
11
-
12
- #include <react/renderer/components/view/ViewProps.h>
13
- #include <react/renderer/core/PropsParserContext.h>
14
- #include <react/renderer/core/propsConversions.h>
15
-
16
- namespace facebook::react {
17
-
18
- struct NativeInputCalculatorTextAttributesStruct {
19
- Float fontSize{0.0};
20
- std::string fontWeight{};
21
- std::string placeholder{};
22
- std::string placeholderTextColor{};
23
- };
24
-
25
- static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, NativeInputCalculatorTextAttributesStruct &result) {
26
- auto map = (std::unordered_map<std::string, RawValue>)value;
27
-
28
- auto tmp_fontSize = map.find("fontSize");
29
- if (tmp_fontSize != map.end()) {
30
- fromRawValue(context, tmp_fontSize->second, result.fontSize);
31
- }
32
- auto tmp_fontWeight = map.find("fontWeight");
33
- if (tmp_fontWeight != map.end()) {
34
- fromRawValue(context, tmp_fontWeight->second, result.fontWeight);
35
- }
36
- auto tmp_placeholder = map.find("placeholder");
37
- if (tmp_placeholder != map.end()) {
38
- fromRawValue(context, tmp_placeholder->second, result.placeholder);
39
- }
40
- auto tmp_placeholderTextColor = map.find("placeholderTextColor");
41
- if (tmp_placeholderTextColor != map.end()) {
42
- fromRawValue(context, tmp_placeholderTextColor->second, result.placeholderTextColor);
43
- }
44
- }
45
-
46
- static inline std::string toString(const NativeInputCalculatorTextAttributesStruct &value) {
47
- return "[Object NativeInputCalculatorTextAttributesStruct]";
48
- }
49
- class NativeInputCalculatorProps final : public ViewProps {
50
- public:
51
- NativeInputCalculatorProps() = default;
52
- NativeInputCalculatorProps(const PropsParserContext& context, const NativeInputCalculatorProps &sourceProps, const RawProps &rawProps);
53
-
54
- #pragma mark - Props
55
-
56
- std::string value{};
57
- NativeInputCalculatorTextAttributesStruct textAttributes{};
58
- std::string mode{};
59
- std::string selectionColor{};
60
- std::string customKeyText{};
61
- std::string customKeyBackground{};
62
- std::string customKeyTextColor{};
63
- std::string customKeyState{};
64
- };
65
-
66
- } // namespace facebook::react
@@ -1,17 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateShadowNodeCpp.js
9
- */
10
-
11
- #include <react/renderer/components/CalculatorKeyboardSpecs/ShadowNodes.h>
12
-
13
- namespace facebook::react {
14
-
15
- extern const char NativeInputCalculatorComponentName[] = "NativeInputCalculator";
16
-
17
- } // namespace facebook::react
@@ -1,32 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateShadowNodeH.js
9
- */
10
-
11
- #pragma once
12
-
13
- #include <react/renderer/components/CalculatorKeyboardSpecs/EventEmitters.h>
14
- #include <react/renderer/components/CalculatorKeyboardSpecs/Props.h>
15
- #include <react/renderer/components/CalculatorKeyboardSpecs/States.h>
16
- #include <react/renderer/components/view/ConcreteViewShadowNode.h>
17
- #include <jsi/jsi.h>
18
-
19
- namespace facebook::react {
20
-
21
- JSI_EXPORT extern const char NativeInputCalculatorComponentName[];
22
-
23
- /*
24
- * `ShadowNode` for <NativeInputCalculator> component.
25
- */
26
- using NativeInputCalculatorShadowNode = ConcreteViewShadowNode<
27
- NativeInputCalculatorComponentName,
28
- NativeInputCalculatorProps,
29
- NativeInputCalculatorEventEmitter,
30
- NativeInputCalculatorState>;
31
-
32
- } // namespace facebook::react
@@ -1,16 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateStateCpp.js
9
- */
10
- #include <react/renderer/components/CalculatorKeyboardSpecs/States.h>
11
-
12
- namespace facebook::react {
13
-
14
-
15
-
16
- } // namespace facebook::react
@@ -1,29 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GenerateStateH.js
8
- */
9
- #pragma once
10
-
11
- #ifdef ANDROID
12
- #include <folly/dynamic.h>
13
- #endif
14
-
15
- namespace facebook::react {
16
-
17
- class NativeInputCalculatorState {
18
- public:
19
- NativeInputCalculatorState() = default;
20
-
21
- #ifdef ANDROID
22
- NativeInputCalculatorState(NativeInputCalculatorState const &previousState, folly::dynamic data){};
23
- folly::dynamic getDynamic() const {
24
- return {};
25
- };
26
- #endif
27
- };
28
-
29
- } // namespace facebook::react