package io.rado.backgroundcolor; import android.widget.Toast; import android.app.Activity; import android.view.View; import android.graphics.Color; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import java.util.HashMap; import java.util.Map; import java.lang.Runnable; public class BackgroundColorModule extends ReactContextBaseJavaModule { private static final String DURATION_SHORT_KEY = "SHORT"; private static final String DURATION_LONG_KEY = "LONG"; public BackgroundColorModule(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return "BackgroundColor"; } @Override public Map<String, Object> getConstants() { final Map<String, Object> constants = new HashMap<>(); constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT); constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG); return constants; } @ReactMethod public void show(String message, int duration) { Toast.makeText(getReactApplicationContext(), message, duration).show(); } @ReactMethod public void setColor(final String color) { final Activity activity = getCurrentActivity(); if (activity == null) { return; } activity.runOnUiThread(new Runnable() { @Override public void run() { View view = activity.getWindow().getDecorView(); int parsedColor = Color.parseColor(color); view.getRootView().setBackgroundColor(parsedColor); } }); } }