From aa918edbabadad57bd4dad8d8b7c577720d9f95a Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Mon, 5 Nov 2018 18:32:02 +0100 Subject: [PATCH] feat(java): export calling getCurrentActivity to display ble ask Signed-off-by: Sacha Froment --- .../main/java/chat/berty/core/CoreModule.java | 12 +++++++++- .../src/main/java/chat/berty/ble/Manager.java | 24 ++++++++++++------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/client/react-native/android/app/src/main/java/chat/berty/core/CoreModule.java b/client/react-native/android/app/src/main/java/chat/berty/core/CoreModule.java index 977628be47..a682aad812 100644 --- a/client/react-native/android/app/src/main/java/chat/berty/core/CoreModule.java +++ b/client/react-native/android/app/src/main/java/chat/berty/core/CoreModule.java @@ -1,5 +1,7 @@ package chat.berty.core; +import android.app.Activity; + import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.Promise; @@ -12,10 +14,18 @@ public class CoreModule extends ReactContextBaseJavaModule { private String filesDir = ""; private ReactApplicationContext reactContext; - public CoreModule(ReactApplicationContext reactContext) { + public CoreModule(final ReactApplicationContext reactContext) { super(reactContext); this.filesDir = reactContext.getFilesDir().getAbsolutePath(); this.reactContext = reactContext; + + Object o = new Manager.ActivityGetter() { + public Activity getCurrentActivity() { + return reactContext.getCurrentActivity(); + } + }; + + Manager.getInstance().setmReactContext(o); } public String getName() { diff --git a/client/react-native/android/ble/src/main/java/chat/berty/ble/Manager.java b/client/react-native/android/ble/src/main/java/chat/berty/ble/Manager.java index 8dc7058ae1..89e1905e20 100644 --- a/client/react-native/android/ble/src/main/java/chat/berty/ble/Manager.java +++ b/client/react-native/android/ble/src/main/java/chat/berty/ble/Manager.java @@ -1,6 +1,7 @@ package chat.berty.ble; import android.app.Activity; +import android.arch.core.util.Function; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGattCharacteristic; @@ -33,6 +34,8 @@ public class Manager { private Context mContext; + private ActivityGetter mReactContext; + final static int BLUETOOTH_ENABLE_REQUEST = 1; protected UUID SERVICE_UUID = UUID.fromString("A06C6AB8-886F-4D56-82FC-2CF8610D6664"); @@ -66,6 +69,10 @@ public class Manager { protected BluetoothGattCharacteristic isRdyCharacteristic; protected BluetoothGattCharacteristic closerCharacteristic; + public interface ActivityGetter { + Activity getCurrentActivity(); + } + private Manager() { super(); Log.e(TAG, "BLEManager init"); @@ -76,6 +83,11 @@ public void setmContext(Context ctx) { mContext = ctx; } + public void setmReactContext(Object rCtx) { + Log.e(TAG, "BLEManager ReactContext set"); + mReactContext = (ActivityGetter)rCtx; + } + public static Manager getInstance() { if (instance == null) { synchronized (Manager.class) { @@ -205,16 +217,12 @@ public void onStartFailure(int errorCode) { public String realTest() { Log.e(TAG, "THIS IS REAL SHIT GUY"); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); -// if (!mBluetoothAdapter.isEnabled()) { + if (!mBluetoothAdapter.isEnabled()) { Log.e(TAG, "NEED TO ENABLE"); Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - if (mContext instanceof Activity) { - ((Activity)mContext).startActivityForResult(enableBtIntent, BLUETOOTH_ENABLE_REQUEST); - } else { - Log.e(TAG, "mContext should be an instanceof Activity."); - } -// ((Activity)mContext).startActivityForResult(enableBtIntent, BLUETOOTH_ENABLE_REQUEST); -// } + mReactContext.getCurrentActivity().startActivityForResult(enableBtIntent, BLUETOOTH_ENABLE_REQUEST); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { Log.e(TAG, "THIS IS REAL SHIT GUY2"); initGattServerCallBack();