package com.demo.library_flutter.message;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.widget.Toast;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.idlefish.flutterboost.FlutterBoost;
|
import com.jaeger.library.StatusBarUtil;
|
|
import java.util.Map;
|
|
import androidx.annotation.NonNull;
|
import io.flutter.plugin.common.BinaryMessenger;
|
import io.flutter.plugin.common.MethodCall;
|
import io.flutter.plugin.common.MethodChannel;
|
import io.flutter.plugin.common.MethodCodec;
|
import io.flutter.plugin.common.StandardMessageCodec;
|
import io.flutter.plugin.common.StandardMethodCodec;
|
|
public class UIMethodChannel extends MethodChannel {
|
public UIMethodChannel(BinaryMessenger messenger, Context context, DataListener dataListener) {
|
super(messenger, "com.yeshi.video/ui", StandardMethodCodec.INSTANCE);
|
setMethodCallHandler(new MethodCallHandler() {
|
@Override
|
public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
|
|
switch (call.method) {
|
case "toast": {
|
Toast.makeText(context, call.arguments + "", Toast.LENGTH_SHORT).show();
|
}
|
break;
|
|
case "setStatusBarLight": {
|
StatusBarUtil.setLightMode(FlutterBoost.instance().currentActivity());
|
}
|
break;
|
|
case "setStatusBarDark": {
|
StatusBarUtil.setDarkMode(FlutterBoost.instance().currentActivity());
|
}
|
break;
|
case "setStatusBarDefault":
|
if (dataListener.isStatusBarDefaultLight()) {
|
StatusBarUtil.setLightMode(FlutterBoost.instance().currentActivity());
|
} else {
|
StatusBarUtil.setDarkMode(FlutterBoost.instance().currentActivity());
|
}
|
break;
|
//跳转原生页面
|
case "jumpAppPage": {
|
Map<String, Object> params = (Map<String, Object>) call.arguments;
|
String type = params.get("type").toString();
|
Map<String, Object> ps = (Map<String, Object>) params.get("params");
|
dataListener.jumpAppPage(type, ps);
|
}
|
break;
|
}
|
}
|
});
|
}
|
|
public interface DataListener {
|
//状态栏是否默认浅色
|
public boolean isStatusBarDefaultLight();
|
|
public void jumpAppPage(String type, Map<String, Object> params);
|
|
}
|
}
|