airbridge-react-native-sdk
Version:
Airbridge SDK for React Native
141 lines (126 loc) • 4.64 kB
JavaScript
import React, { Component } from 'react'
import { View, NativeModules } from 'react-native'
import CustomButton from '../component/CustomButton'
import { Styles } from '../common/Styles'
import { Colors } from '../common/Colors'
import HorizontalPreference from '../component/HorizontalPreference';
import EntryInputDialog from '../component/EntryInputDialog'
import ValueInputDialog from '../component/ValueInputDialog'
import { Airbridge } from 'airbridge-react-native-sdk'
export default class DeviceInfoPage extends Component {
constructor(props) {
super(props);
this.state = { };
this.addRef = React.createRef()
this.removeRef = React.createRef()
this.fetchDeviceInfo()
}
fetchDeviceInfo = async () => {
const response = await NativeModules.DeviceInfoInteractor.deviceInfo()
console.log('response : ' + response)
const jsonData = JSON.parse(response)
const data = jsonData['data']
const NA = 'N/A'
this.setState({
deviceModel: `${data['deviceModel'] ?? NA}`,
deviceManufacturer: `${data['deviceManufacturer'] ?? NA}`,
osVersion: `${data['osVersion'] ?? NA}`,
locale: `${data['locale'] ?? NA}`,
timezone: `${data['timezone'] ?? NA}`,
orientation: `${data['orientation'] ?? NA}`,
screenSize: `${data['screenSize'] ?? NA}`,
location: `${data['location'] ?? NA}`,
speed: `${data['speed'] ?? NA}`,
bluetoothStatus: `${data['wifiStatus'] ?? NA}`,
networkCarrier: `${data['networkCarrier'] ?? NA}`,
cellularStatus: `${data['cellularStatus'] ?? NA}`,
wifiStatus: `${data['wifiStatus'] ?? NA}`,
})
}
render() {
return (
<View style={Styles.container}>
<CustomButton
buttonColor={Colors.red}
title={'ADD ALIAS'}
accessibilityLabel={'addAlias'}
onPress={() => this.addRef.current.show()} />
<CustomButton
buttonColor={Colors.pink}
title={'REMOVE ALIAS'}
accessibilityLabel={'removeAlias'}
onPress={() => this.removeRef.current.show()} />
<CustomButton
buttonColor={Colors.purple}
title={'CLEAR ALIAS'}
accessibilityLabel={'clearAlias'}
onPress={() => {
Airbridge.clearDeviceAlias()
}} />
<View style={{margin : 8}} />
<HorizontalPreference
title={'Device Model'}
text={this.state.deviceModel}
accessibilityLabel={'deviceModel'} />
<HorizontalPreference
title={'Device Manufacturer'}
text={this.state.deviceManufacturer}
accessibilityLabel={'deviceManufacturer'} />
<HorizontalPreference
title={'OS Version'}
text={this.state.osVersion}
accessibilityLabel={'osVersion'} />
<HorizontalPreference
title={'Locale'}
text={this.state.locale}
accessibilityLabel={'locale'} />
<HorizontalPreference
title={'Timezone'}
text={this.state.timezone}
accessibilityLabel={'timezone'} />
<HorizontalPreference
title={'Orientation'}
text={this.state.orientation}
accessibilityLabel={'orientation'} />
<HorizontalPreference
title={'Screen Size'}
text={this.state.screenSize}
accessibilityLabel={'screenSize'} />
<HorizontalPreference
title={'Location'}
text={this.state.location}
accessibilityLabel={'location'} />
<HorizontalPreference
title={'Speed'}
text={this.state.speed}
accessibilityLabel={'speed'} />
<HorizontalPreference
title={'Network Carrier'}
text={this.state.networkCarrier}
accessibilityLabel={'networkCarrier'} />
<HorizontalPreference
title={'Bluetooth Status'}
text={this.state.bluetoothStatus}
accessibilityLabel={'bluetoothStatus'} />
<HorizontalPreference
title={'Cellular Status'}
text={this.state.cellularStatus}
accessibilityLabel={'cellularStatus'} />
<HorizontalPreference
title={'Wifi Status'}
text={this.state.wifiStatus}
accessibilityLabel={'wifiStatus'} />
<EntryInputDialog
ref={this.addRef}
onConfirm={(key, value) => {
Airbridge.setDeviceAlias(key, value)
}} />
<ValueInputDialog
ref={this.removeRef}
onConfirm={(key) => {
Airbridge.removeDeviceAlias(key)
}} />
</View>
)
}
}