diff --git a/CHANGELOG.md b/CHANGELOG.md index 59f20a6..23c0c0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # CHANGELOG +## v5.0.0 - 2026-03-16 + +- **Breaking change**: `requestPermissionBackgroundLocation` now returns + `'granted' | 'denied'` (removed `'settings_change_required'`) +- **Breaking change**: `requestPermissionBatteryOptimization` now returns + `'granted' | 'denied'` (removed `'settings_change_required'`) + ## v4.2.0 - 2026-03-13 - `bottomSheet`: Add basic Tag to Sheet of type LIST / SINGLE_SELECTION diff --git a/README.md b/README.md index 94bcbf4..767645f 100644 --- a/README.md +++ b/README.md @@ -1890,13 +1890,13 @@ Request background location permission from the user. ```ts requestPermissionBackgroundLocation: () => Promise<{ - status: 'granted' | 'denied' | 'settings_change_required'; + status: 'granted' | 'denied'; }>; ``` #### Notes -- Android: show a custom alert and navigate to OS settings on accept. +- Android: this method navigates to OS settings. - iOS: upgrade to Always happens via OS escalation after background usage. #### Error cases @@ -1953,13 +1953,13 @@ Request permission to disable battery optimization (Android only). ```ts requestPermissionBatteryOptimization: () => Promise<{ - status: 'denied' | 'settings_change_required'; + status: 'granted' | 'denied'; }>; ``` #### Notes -- Android: show a custom alert and navigate to OS settings on accept. +- Android: this method navigates to OS settings. #### Error cases diff --git a/src/__tests__/family-locator-test.ts b/src/__tests__/family-locator-test.ts index 521953a..e2c489c 100644 --- a/src/__tests__/family-locator-test.ts +++ b/src/__tests__/family-locator-test.ts @@ -256,12 +256,12 @@ test('requestPermissionBackgroundLocation', async () => { getResponse: (msg) => ({ type: 'REQUEST_PERMISSION_BACKGROUND_LOCATION', id: msg.id, - payload: {status: 'settings_change_required'}, + payload: {status: 'granted'}, }), }); const res = await requestPermissionBackgroundLocation(); - expect(res).toEqual({status: 'settings_change_required'}); + expect(res).toEqual({status: 'granted'}); }); test('requestPermissionMicrophone', async () => { @@ -320,10 +320,10 @@ test('requestPermissionBatteryOptimization', async () => { getResponse: (msg) => ({ type: 'REQUEST_PERMISSION_BATTERY_OPTIMIZATION', id: msg.id, - payload: {status: 'settings_change_required'}, + payload: {status: 'denied'}, }), }); const res = await requestPermissionBatteryOptimization(); - expect(res).toEqual({status: 'settings_change_required'}); + expect(res).toEqual({status: 'denied'}); }); diff --git a/src/family-locator.ts b/src/family-locator.ts index f7625b0..c9fddf3 100644 --- a/src/family-locator.ts +++ b/src/family-locator.ts @@ -129,7 +129,7 @@ export const requestPermissionLocation = (): Promise<{ }> => postMessageToNativeApp({type: 'REQUEST_PERMISSION_LOCATION'}); export const requestPermissionBackgroundLocation = (): Promise<{ - status: PermissionStatus | 'settings_change_required'; + status: PermissionStatus; }> => postMessageToNativeApp({type: 'REQUEST_PERMISSION_BACKGROUND_LOCATION'}); export const requestPermissionMicrophone = (): Promise<{ @@ -145,5 +145,5 @@ export const requestPermissionCriticalAlerts = (): Promise<{ }> => postMessageToNativeApp({type: 'REQUEST_PERMISSION_CRITICAL_ALERTS'}); export const requestPermissionBatteryOptimization = (): Promise<{ - status: 'denied' | 'settings_change_required'; + status: PermissionStatus; }> => postMessageToNativeApp({type: 'REQUEST_PERMISSION_BATTERY_OPTIMIZATION'}); diff --git a/src/post-message.ts b/src/post-message.ts index d3f2d19..4554eb4 100644 --- a/src/post-message.ts +++ b/src/post-message.ts @@ -180,7 +180,7 @@ export type ResponsesFromNativeApp = { id: string; type: 'REQUEST_PERMISSION_BACKGROUND_LOCATION'; payload: { - status: 'granted' | 'denied' | 'settings_change_required'; + status: 'granted' | 'denied'; }; }; REQUEST_PERMISSION_MICROPHONE: { @@ -208,7 +208,7 @@ export type ResponsesFromNativeApp = { id: string; type: 'REQUEST_PERMISSION_BATTERY_OPTIMIZATION'; payload: { - status: 'denied' | 'settings_change_required'; + status: 'granted' | 'denied'; }; }; INTERNAL_NAVIGATION: {