react-native-studia
Version:
160 lines (104 loc) • 4.45 kB
JavaScript
// @flow
'use strict'
import { NativeModules, NativeEventEmitter } from 'react-native';
import { State,
Carriers,
Network,
type Subscription,
type ServalId,
type Base64,
type Message,
type Subscriber,
Feed,
PeerState,
type ObservableId } from './Types';
export interface NativeFeed {
ownerId: Subscriber;
name: string;
icon: Base64;
message: Message;
date: string;
token: string;
}
export interface NativeMessage {
token: string;
message: string;
date: string;
isDelivered: boolean;
isDropped: boolean;
myMessage: boolean;
}
export interface NativeIdentity {
id: Subscriber;
key: string;
name: string;
icon: Base64;
}
export interface NativePeer {
id: Subscriber;
name: string;
icon: ?Base64;
isReachable: boolean;
}
export interface NetworkNativeModule {
addListener(string): void;
removeListeners(number): void;
setBleEnable() : Promise<Network>;
setBleDisable() : Promise<void>;
setWifiEnable() : Promise<Network>;
setWifiDisable() : Promise<void>;
setHotspotEnable() : Promise<Network>;
setHotspotDisable() : Promise<void>;
setWifiDirectEnable() : Promise<Network>;
setWifiDirectDisable() : Promise<void>;
getState(carrier: $Values<typeof Carriers>) : Promise<$Keys<typeof State>>;
BleStateChangeEvent: string;
WifiStateChangeEvent: string;
HotspotStateChangeEvent: string;
WifiDirectStateChangeEvent: string;
}
export interface IdentityNativeModule {
/*addListener(string): void;
removeListeners(number): void;*/
createIdentity(identityName: string) : Promise<NativeIdentity>;
getIdentities() : Promise<Array<NativeIdentity>>;
updateIdentity(identityKey: Subscriber, identityName: string) : Promise<NativeIdentity>;
runFeedObservable(identityId: Subscriber): Promise<void>;
sendFeed(message: string) : Promise<NativeFeed>;
stopFeedObservable(): void;
getFeeds(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativeFeed>>;
getContacts(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
getBlocklist(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
//getPeers(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
getNearby(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
getPeersConversations(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
getPeersRequests(identityId: Subscriber, observerId: ObservableId) : Promise<Array<NativePeer>>;
getPeerFeeds(servalId: ServalId, observerId: ObservableId) : Promise<Array<Feed>>;
getPrivateMessages(identityId: Subscriber, peerId: Subscriber, observerId: ObservableId) : Promise<Array<NativeMessage>>;
runMessageObservable(identityId: Subscriber, peerId: Subscriber): Promise<void>;
sendMessage(message: string) : Promise<NativeMessage>;
stopMessageObservable(): void;
follow(identityId: Subscriber, peerId: Subscriber) : Promise<void>;
block(identityId: Subscriber, peerId: Subscriber) : Promise<void>;
ignore(identityId: Subscriber, peerId: Subscriber) : Promise<void>;
getPeerState(identityId: Subscriber, peerId: Subscriber) : Promise<$Keys<typeof PeerState>>;
getUnreadMessages(identityId: Subscriber, observerId: ObservableId) : Promise<number>;
getRequestMessages(identityId: Subscriber, observerId: ObservableId) : Promise<number>;
getNearbyPeers(identityId: Subscriber, observerId: ObservableId) : Promise<number>;
stopObserving(observerId: ObservableId) : void;
UnreadMessagesChanged: string;
RequestMessagesChanged: string;
NearbyPeersChanged: string;
//FeedAddedEvent: string;
//FeedResetEvent: string;
onFeedAddedEvent: string;
//onFeedResetEvent: string;
onPeerFoundEvent: string;
onPeerUpdatedEvent: string;
onPeersResetEvent: string;
onMessageRecievedEvent: string;
onMessageDeliveredEvent: string;
}
export const NetworkModule: NetworkNativeModule = NativeModules.Networks
export const IdentityModule: IdentityNativeModule = NativeModules.Identity
export const EventEmitter = NativeEventEmitter