作者 AnstJJ

update

1 -package com.customIcon; 1 +package com.vodeapp.customsIcon;
2 2
  3 +import android.app.Activity;
  4 +import android.content.ComponentName;
  5 +import android.content.pm.PackageManager;
  6 +
  7 +import com.facebook.react.bridge.Callback;
3 import com.facebook.react.bridge.ReactApplicationContext; 8 import com.facebook.react.bridge.ReactApplicationContext;
4 import com.facebook.react.bridge.ReactContextBaseJavaModule; 9 import com.facebook.react.bridge.ReactContextBaseJavaModule;
5 import com.facebook.react.bridge.ReactMethod; 10 import com.facebook.react.bridge.ReactMethod;
6 -import com.facebook.react.bridge.Callback;  
7 -  
8 -public class CustomIconModule extends ReactContextBaseJavaModule {  
9 11
  12 +public class CustomsIconModule extends ReactContextBaseJavaModule {
10 private final ReactApplicationContext reactContext; 13 private final ReactApplicationContext reactContext;
11 14
12 - public CustomIconModule(ReactApplicationContext reactContext) { 15 + public CustomsIconModule(ReactApplicationContext reactContext) {
13 super(reactContext); 16 super(reactContext);
14 this.reactContext = reactContext; 17 this.reactContext = reactContext;
15 } 18 }
@@ -20,6 +23,22 @@ public class CustomIconModule extends ReactContextBaseJavaModule { @@ -20,6 +23,22 @@ public class CustomIconModule extends ReactContextBaseJavaModule {
20 } 23 }
21 24
22 @ReactMethod 25 @ReactMethod
  26 + public void changeIcon(String name) {
  27 + String pageName = this.reactContext.getPackageName();
  28 + PackageManager packageManager = this.reactContext.getPackageManager();
  29 + Activity activity = getActivity();
  30 + ComponentName am =activity.getComponentName();
  31 + packageManager.setComponentEnabledSetting(new ComponentName(this.reactContext, pageName +
  32 + am.getShortClassName()), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager
  33 + .DONT_KILL_APP);
  34 + packageManager.setComponentEnabledSetting(new ComponentName(this.reactContext,pageName +
  35 + "."+name), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager
  36 + .DONT_KILL_APP);
  37 + }
  38 + public Activity getActivity() {
  39 + return this.getCurrentActivity();
  40 + }
  41 + @ReactMethod
23 public void sampleMethod(String stringArgument, int numberArgument, Callback callback) { 42 public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
24 // TODO: Implement some actually useful functionality 43 // TODO: Implement some actually useful functionality
25 callback.invoke("Received numberArgument: " + numberArgument + " stringArgument: " + stringArgument); 44 callback.invoke("Received numberArgument: " + numberArgument + " stringArgument: " + stringArgument);
1 -package com.customIcon;  
2 -  
3 -import java.util.Arrays;  
4 -import java.util.Collections;  
5 -import java.util.List; 1 +package com.vodeapp.customsIcon;
6 2
  3 +import com.customIcon.CustomIconModule;
7 import com.facebook.react.ReactPackage; 4 import com.facebook.react.ReactPackage;
8 import com.facebook.react.bridge.NativeModule; 5 import com.facebook.react.bridge.NativeModule;
9 import com.facebook.react.bridge.ReactApplicationContext; 6 import com.facebook.react.bridge.ReactApplicationContext;
10 import com.facebook.react.uimanager.ViewManager; 7 import com.facebook.react.uimanager.ViewManager;
11 8
12 -public class CustomIconPackage implements ReactPackage { 9 +import java.util.Arrays;
  10 +import java.util.Collections;
  11 +import java.util.List;
  12 +
  13 +public class CustomsIconPackage implements ReactPackage {
13 @Override 14 @Override
14 public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { 15 public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
15 - return Arrays.<NativeModule>asList(new CustomIconModule(reactContext)); 16 + return Arrays.<NativeModule>asList(new CustomsIconModule(reactContext));
16 } 17 }
17 18
18 @Override 19 @Override