mirror of
https://github.com/balzack/databag.git
synced 2025-04-21 17:15:16 +00:00
push unified endpoint to js layer
This commit is contained in:
parent
7c05d1e4fc
commit
817394e7cf
@ -12,7 +12,6 @@ import { RingContextProvider } from 'context/RingContext'
|
||||
import { ChannelContextProvider } from 'context/ChannelContext';
|
||||
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { ConversationContextProvider } from 'context/ConversationContext';
|
||||
import { LogBox, Alert } from 'react-native';
|
||||
import { Root } from 'src/root/Root';
|
||||
import { Access } from 'src/access/Access';
|
||||
import { Dashboard } from 'src/dashboard/Dashboard';
|
||||
@ -28,6 +27,7 @@ export default function App() {
|
||||
const [sharing, setSharing] = useState();
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS);
|
||||
|
||||
ReceiveSharingIntent.getReceivedFiles(files => {
|
||||
|
@ -15,6 +15,13 @@ import android.net.Uri;
|
||||
import android.media.RingtoneManager;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
|
||||
public class CustomReceiver extends MessagingReceiver {
|
||||
public CustomReceiver() {
|
||||
super();
|
||||
@ -22,7 +29,18 @@ public class CustomReceiver extends MessagingReceiver {
|
||||
@Override
|
||||
public void onNewEndpoint(@NotNull Context context, @NotNull String endpoint, @NotNull String instance) {
|
||||
|
||||
Log.i("UNIFIED", "onNewEndpoint:instance=" + instance + " endpoint=" + endpoint);
|
||||
final ReactInstanceManager reactInstanceManager =
|
||||
((ReactApplication) context.getApplicationContext())
|
||||
.getReactNativeHost()
|
||||
.getReactInstanceManager();
|
||||
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||
|
||||
WritableMap params = Arguments.createMap();
|
||||
params.putString("instance", instance);
|
||||
params.putString("endpoint", endpoint);
|
||||
reactContext
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit("unifiedPushURL", params);
|
||||
|
||||
// Called when a new endpoint be used for sending push messages
|
||||
}
|
||||
|
@ -11,6 +11,13 @@ import com.facebook.react.defaults.DefaultReactActivityDelegate;
|
||||
import org.unifiedpush.android.connector.UnifiedPush;
|
||||
import org.unifiedpush.android.connector.RegistrationDialogContent;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
|
||||
public class MainActivity extends ReactActivity {
|
||||
|
||||
/**
|
||||
@ -25,14 +32,22 @@ public class MainActivity extends ReactActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(null);
|
||||
MainActivity activityContext = this;
|
||||
|
||||
UnifiedPush.registerAppWithDialog(
|
||||
this,
|
||||
"default",
|
||||
new RegistrationDialogContent(),
|
||||
new ArrayList<String>(),
|
||||
getApplicationContext().getPackageName()
|
||||
);
|
||||
ReactInstanceManager mReactInstanceManager = getReactNativeHost().getReactInstanceManager();
|
||||
mReactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
|
||||
public void onReactContextInitialized(ReactContext validContext) {
|
||||
|
||||
UnifiedPush.registerAppWithDialog(
|
||||
activityContext,
|
||||
"default",
|
||||
new RegistrationDialogContent(),
|
||||
new ArrayList<String>(),
|
||||
getApplicationContext().getPackageName()
|
||||
);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,6 +13,7 @@ import { CardContext } from 'context/CardContext';
|
||||
import { ChannelContext } from 'context/ChannelContext';
|
||||
import { RingContext } from 'context/RingContext';
|
||||
import { getVersion, getApplicationName, getDeviceId } from 'react-native-device-info'
|
||||
import { DeviceEventEmitter } from 'react-native';
|
||||
|
||||
export function useAppContext() {
|
||||
const [state, setState] = useState({
|
||||
@ -40,6 +41,11 @@ export function useAppContext() {
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
DeviceEventEmitter.addListener('unifiedPushURL', (e) => {
|
||||
Alert.alert("PUSH ENDPOINT", JSON.stringify(e));
|
||||
});
|
||||
|
||||
(async () => {
|
||||
access.current = await store.actions.init();
|
||||
if (access.current) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user