Skip to content

Commit c893370

Browse files
committed
[Fabric] Create the corresponding ViewManager
1 parent 32885f5 commit c893370

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.rnnewarchitectureapp.components;
2+
3+
import android.content.Context;
4+
import android.util.AttributeSet;
5+
6+
import androidx.annotation.Nullable;
7+
8+
public class AnswerViewer extends androidx.appcompat.widget.AppCompatTextView {
9+
10+
public AnswerViewer(Context context) {
11+
super(context);
12+
}
13+
14+
public AnswerViewer(Context context, @Nullable AttributeSet attrs) {
15+
super(context, attrs);
16+
}
17+
18+
public AnswerViewer(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
19+
super(context, attrs, defStyleAttr);
20+
}
21+
22+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.rnnewarchitectureapp.components;
2+
3+
import android.graphics.Color;
4+
5+
import androidx.annotation.NonNull;
6+
import androidx.annotation.Nullable;
7+
8+
import com.facebook.react.bridge.ReadableArray;
9+
import com.facebook.react.module.annotations.ReactModule;
10+
import com.facebook.react.uimanager.SimpleViewManager;
11+
import com.facebook.react.uimanager.ThemedReactContext;
12+
import com.facebook.react.uimanager.ViewManagerDelegate;
13+
import com.facebook.react.uimanager.annotations.ReactProp;
14+
import com.facebook.react.viewmanagers.AnswerViewerManagerDelegate;
15+
import com.facebook.react.viewmanagers.AnswerViewerManagerInterface;
16+
17+
@ReactModule(name = AnswerViewerManager.REACT_CLASS)
18+
public class AnswerViewerManager extends SimpleViewManager<AnswerViewer>
19+
implements AnswerViewerManagerInterface<AnswerViewer> {
20+
21+
public static final String REACT_CLASS = "AnswerViewer";
22+
23+
private final ViewManagerDelegate<AnswerViewer> mDelegate;
24+
25+
public AnswerViewerManager() {
26+
mDelegate = new AnswerViewerManagerDelegate<>(this);
27+
}
28+
29+
@Nullable
30+
@Override
31+
protected ViewManagerDelegate<AnswerViewer> getDelegate() {
32+
return mDelegate;
33+
}
34+
35+
@NonNull
36+
@Override
37+
public String getName() {
38+
return REACT_CLASS;
39+
}
40+
41+
@NonNull
42+
@Override
43+
protected AnswerViewer createViewInstance(@NonNull ThemedReactContext reactContext) {
44+
return new AnswerViewer(reactContext);
45+
}
46+
47+
@Override
48+
@ReactProp(name = "color")
49+
public void setColor(AnswerViewer view, @Nullable String value) {
50+
view.setTextColor(Color.parseColor(value));
51+
}
52+
53+
@Override
54+
@ReactProp(name = "step", defaultInt = 0)
55+
public void setStep(AnswerViewer view, int value) {
56+
view.setText("Step: " + value);
57+
}
58+
59+
@Override
60+
public void changeBackgroundColor(AnswerViewer view, String value) {
61+
view.setBackgroundColor(Color.parseColor(value));
62+
}
63+
64+
@Override
65+
public void receiveCommand(@NonNull AnswerViewer root, String commandId, @Nullable ReadableArray args) {
66+
mDelegate.receiveCommand(root, commandId, args);
67+
}
68+
}

0 commit comments

Comments
 (0)