push unified endpoint to js layer

This commit is contained in:
Roland Osborne 2023-06-07 14:04:54 -07:00
parent 7c05d1e4fc
commit 817394e7cf
4 changed files with 48 additions and 9 deletions

View File

@ -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 => {

View File

@ -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
}

View File

@ -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()
);
}
});
}
/**

View File

@ -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) {