Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/android/app/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4=_internal-unified-test-platf
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1=debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.jetbrains:annotations:13.0=_internal-unified-test-platform-android-device-provider-gradle,_internal-unified-test-platform-android-test-plugin-host-additional-test-output,_internal-unified-test-platform-android-test-plugin-host-apk-installer,_internal-unified-test-platform-android-test-plugin-host-coverage,_internal-unified-test-platform-android-test-plugin-host-device-info,_internal-unified-test-platform-android-test-plugin-host-emulator-control,_internal-unified-test-platform-android-test-plugin-host-logcat,_internal-unified-test-platform-android-test-plugin-host-retention,_internal-unified-test-platform-android-test-plugin-result-listener-gradle,debugAndroidTestCompileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains:annotations:23.0.0=_internal-unified-test-platform-android-device-provider-ddmlib,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.jitsi:webrtc:124.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.ow2.asm:asm-analysis:9.2=androidJacocoAnt
org.ow2.asm:asm-commons:9.2=androidJacocoAnt
org.ow2.asm:asm-tree:9.2=androidJacocoAnt
Expand Down
14 changes: 14 additions & 0 deletions app/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ca.bc.gov.BCWallet"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.audio.output" />
<uses-feature android:name="android.hardware.microphone" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.INTERNET" />
Expand All @@ -8,6 +15,13 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<!-- Additional permissions for react-native-incall-manager (live call) -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />

<queries>
<intent>
Expand Down
6 changes: 5 additions & 1 deletion app/ios/AriesBifold/AppDelegate.mm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#import "AppDelegate.h"

#import <WebRTCModuleOptions.h>
#import <Firebase.h>
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
Expand All @@ -11,6 +12,9 @@ @implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// allows background WebRTC
[WebRTCModuleOptions sharedInstance].enableMultitaskingCameraAccess = YES;

[FIRApp configure];
self.moduleName = @"BCWallet";
// You can add your custom initial props in the dictionary below.
Expand All @@ -20,7 +24,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
// Because certain file operations can reset resource values, we
// excluded file’s resource values each time the application starts.
[self excludeDotAFJFolderFromBackup];

return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

Expand Down
6 changes: 6 additions & 0 deletions app/ios/AriesBifold/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@
</dict>
</dict>
</dict>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to Bluetooth to manage audio routing during calls</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to Bluetooth to connect to audio devices during calls</string>
<key>NSCameraUsageDescription</key>
<string>Camera used for QR Code scanning and video calls</string>
<key>NSFaceIDUsageDescription</key>
Expand All @@ -84,6 +88,8 @@
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
<string>audio</string>
<string>voip</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
Expand Down
26 changes: 26 additions & 0 deletions app/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,9 @@ PODS:
- React
- React-callinvoker
- React-Core
- JitsiWebRTC (124.0.2)
- libevent (2.1.12)
- Mute (0.6.1)
- nanopb (2.30908.0):
- nanopb/decode (= 2.30908.0)
- nanopb/encode (= 2.30908.0)
Expand Down Expand Up @@ -1070,6 +1072,12 @@ PODS:
- glog
- RCT-Folly (= 2022.05.16.00)
- React-Core
- react-native-volume-manager (1.10.0):
- Mute
- React-Core
- react-native-webrtc (124.0.6):
- JitsiWebRTC (~> 124.0.0)
- React-Core
- react-native-webview (13.10.7):
- glog
- RCT-Folly (= 2022.05.16.00)
Expand Down Expand Up @@ -1241,6 +1249,8 @@ PODS:
- React-jsi (= 0.73.11)
- React-logger (= 0.73.11)
- React-perflogger (= 0.73.11)
- ReactNativeIncallManager (4.2.1):
- React-Core
- RNArgon2 (2.0.1):
- CatCrypto
- React-Core
Expand Down Expand Up @@ -1349,6 +1359,8 @@ DEPENDENCIES:
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-tcp-socket (from `../node_modules/react-native-tcp-socket`)
- react-native-video (from `../node_modules/react-native-video`)
- react-native-volume-manager (from `../node_modules/react-native-volume-manager`)
- react-native-webrtc (from `../node_modules/react-native-webrtc`)
- react-native-webview (from `../node_modules/react-native-webview`)
- React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
Expand All @@ -1370,6 +1382,7 @@ DEPENDENCIES:
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- ReactNativeIncallManager (from `../node_modules/react-native-incall-manager`)
- RNArgon2 (from `../node_modules/react-native-argon2`)
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)"
Expand Down Expand Up @@ -1404,7 +1417,9 @@ SPEC REPOS:
- GoogleAppMeasurement
- GoogleDataTransport
- GoogleUtilities
- JitsiWebRTC
- libevent
- Mute
- nanopb
- PromisesObjC
- SDWebImage
Expand Down Expand Up @@ -1498,6 +1513,10 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-tcp-socket"
react-native-video:
:path: "../node_modules/react-native-video"
react-native-volume-manager:
:path: "../node_modules/react-native-volume-manager"
react-native-webrtc:
:path: "../node_modules/react-native-webrtc"
react-native-webview:
:path: "../node_modules/react-native-webview"
React-nativeconfig:
Expand Down Expand Up @@ -1540,6 +1559,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/react/utils"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
ReactNativeIncallManager:
:path: "../node_modules/react-native-incall-manager"
RNArgon2:
:path: "../node_modules/react-native-argon2"
RNCAsyncStorage:
Expand Down Expand Up @@ -1601,7 +1622,9 @@ SPEC CHECKSUMS:
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
hermes-engine: d992945b77c506e5164e6a9a77510c9d57472c59
indy-vdr: aada31078a9ed270dd618fadb4cf69bcdc333d68
JitsiWebRTC: b47805ab5668be38e7ee60e2258f49badfe8e1d0
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
Mute: 20135a96076f140cc82bfc8b810e2d6150d8ec7e
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
RCT-Folly: cd21f1661364f975ae76b3308167ad66b09f53f5
Expand Down Expand Up @@ -1637,6 +1660,8 @@ SPEC CHECKSUMS:
react-native-splash-screen: 95994222cc95c236bd3cdc59fe45ed5f27969594
react-native-tcp-socket: ae8abcfebc071216302a09d9ed1e375d4e877484
react-native-video: d74d94fbaeee3c0d8f6570173289f43fe210066f
react-native-volume-manager: d9d2863a2374420af89c89662333ea6adf506988
react-native-webrtc: 96fdff9e3a942ed88cafe01898da1c93fd628957
react-native-webview: f802f655c8446404bb0c134da9335a8cf667e8cb
React-nativeconfig: 8fd29a35a3e4e8c37682d976667663d834ba6165
React-NativeModulesApple: 83d7077877f8eda8e1b6055b3f8f16f7db8463b5
Expand All @@ -1658,6 +1683,7 @@ SPEC CHECKSUMS:
React-runtimescheduler: 398069b748d97567cc7585cc9a97284ad19d72fa
React-utils: e8549669b504c18929b2e9aa4d87657e530a91a4
ReactCommon: 9c38e8797dc2ac72edf63cd18cf450d918575666
ReactNativeIncallManager: dccd3e7499caa3bb73d3acfedf4fb0360f1a87d5
RNArgon2: 708e188b7a4d4ec8baf62463927c47abef453a94
RNCAsyncStorage: 9350c2956f996b3ff1ac7cfdb50901c113a27640
RNCClipboard: f6679d470d0da2bce2a37b0af7b9e0bf369ecda5
Expand Down
4 changes: 4 additions & 0 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
"@hyperledger/aries-askar-react-native": "0.2.3",
"@hyperledger/indy-vdr-react-native": "0.2.2",
"@hyperledger/indy-vdr-shared": "0.2.2",
"@pexip/infinity-api": "~19.1.2",
"@react-native-async-storage/async-storage": "~1.22.3",
"@react-native-clipboard/clipboard": "~1.16.3",
"@react-native-community/netinfo": "~11.3.3",
Expand Down Expand Up @@ -109,6 +110,7 @@
"react-native-get-random-values": "~1.8.0",
"react-native-gifted-chat": "*",
"react-native-inappbrowser-reborn": "~3.7.0",
"react-native-incall-manager": "~4.2.1",
"react-native-keychain": "~8.1.3",
"react-native-localize": "~2.2.6",
"react-native-logs": "~5.1.0",
Expand All @@ -127,6 +129,8 @@
"react-native-vector-icons": "~10.0.3",
"react-native-video": "~6.16.1",
"react-native-vision-camera": "~4.3.2",
"react-native-volume-manager": "~1.10.0",
"react-native-webrtc": "~124.0.6",
"react-native-webview": "~13.10.7",
"reflect-metadata": "~0.1.14",
"rxjs": "~7.8.2",
Expand Down
17 changes: 17 additions & 0 deletions app/src/assets/img/mountains-circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion app/src/bcsc-theme/api/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ interface BCSCEndpoints {
token: string
credential: string
evidence: string
video: string
}

class BCSCService {
Expand Down Expand Up @@ -95,6 +96,7 @@ class BCSCService {
token: `${this.baseURL}/device/token`,
credential: `${this.baseURL}/credentials/v1/person`,
evidence: `${this.baseURL}/evidence`,
video: `${this.baseURL}/video`,
}

// Add interceptors
Expand Down Expand Up @@ -158,8 +160,9 @@ class BCSCService {
savedServices: response.data['saved_services_endpoint'],
token: response.data['token_endpoint'],
credential: response.data['credential_endpoint'],
// TODO(bm): request backend team to add evidence endpoint to the response
// TODO(bm): request backend team to add evidence and video endpoints to the response
evidence: `${this.baseURL}/evidence`,
video: `${this.baseURL}/video`,
}
}

Expand Down
5 changes: 4 additions & 1 deletion app/src/bcsc-theme/api/hooks/useApi.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import useUserApi from './useUserApi'
import useEvidenceApi from './useEvidenceApi'
import useMetadataApi from './useMetadataApi'
import useJwksApi from './useJwksApi'
import useVideoCallApi from './useVideoCallApi'

const useApi = () => {
const config = useConfigApi()
Expand All @@ -19,6 +20,7 @@ const useApi = () => {
const evidence = useEvidenceApi()
const metadata = useMetadataApi()
const jwks = useJwksApi()
const video = useVideoCallApi()

return useMemo(
() => ({
Expand All @@ -31,8 +33,9 @@ const useApi = () => {
evidence,
metadata,
jwks,
video,
}),
[config, pairing, registration, authorization, token, user, evidence, metadata, jwks]
[config, pairing, registration, authorization, token, user, evidence, metadata, jwks, video]
)
}

Expand Down
8 changes: 4 additions & 4 deletions app/src/bcsc-theme/api/hooks/useAuthorizationApi.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { ProvinceCode } from '@/bcsc-theme/utils/address-utils'
import { isAxiosError } from 'axios'
import { useCallback, useMemo } from 'react'
import { createDeviceSignedJWT } from 'react-native-bcsc-core'
import apiClient from '../client'
import { withAccount } from './withAccountGuard'
import { createDeviceSignedJWT } from 'react-native-bcsc-core'
import { isAxiosError } from 'axios'
import { ProvinceCode } from '@/bcsc-theme/utils/address-utils'

const INVALID_REGISTRATION_REQUEST = 'invalid_registration_request'

Expand Down Expand Up @@ -31,7 +31,7 @@ export interface VerifyUnknownBCSCResponseData {
expires_in: number
}

interface AuthorizeDeviceUnknownBCSCConfig {
export interface AuthorizeDeviceUnknownBCSCConfig {
firstName: string
lastName: string
birthdate: string
Expand Down
Loading
Loading