Extend device status action for q or later

This commit is contained in:
Jonas L 2019-06-03 00:00:00 +00:00
parent 65200e83c2
commit 46af33f2cd
3 changed files with 30 additions and 4 deletions

View file

@ -28,8 +28,18 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
readonly newAccessibilityServiceEnabled?: boolean
readonly newAppVersion?: number
readonly didReboot: boolean
readonly isQOrLaterNow: boolean
constructor ({ newProtetionLevel, newUsageStatsPermissionStatus, newNotificationAccessPermission, newOverlayPermission, newAccessibilityServiceEnabled, newAppVersion, didReboot }: {
constructor ({
newProtetionLevel,
newUsageStatsPermissionStatus,
newNotificationAccessPermission,
newOverlayPermission,
newAccessibilityServiceEnabled,
newAppVersion,
didReboot,
isQOrLaterNow
}: {
newProtetionLevel?: ProtectionLevel
newUsageStatsPermissionStatus?: RuntimePermissionStatus
newNotificationAccessPermission?: NewPermissionStatus
@ -37,6 +47,7 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
newAccessibilityServiceEnabled?: boolean
newAppVersion?: number
didReboot: boolean
isQOrLaterNow: boolean
}) {
super()
@ -53,6 +64,7 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
this.newAccessibilityServiceEnabled = newAccessibilityServiceEnabled
this.newAppVersion = newAppVersion
this.didReboot = didReboot
this.isQOrLaterNow = isQOrLaterNow
}
serialize = (): SerializedUpdateDeviceStatusAction => ({
@ -63,10 +75,11 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
overlayPermission: this.newOverlayPermission,
accessibilityServiceEnabled: this.newAccessibilityServiceEnabled,
appVersion: this.newAppVersion,
didReboot: this.didReboot
didReboot: this.didReboot,
isQOrLaterNow: this.isQOrLaterNow
})
static parse = ({ protectionLevel, usageStats, notificationAccess, overlayPermission, accessibilityServiceEnabled, appVersion, didReboot }: SerializedUpdateDeviceStatusAction) => (
static parse = ({ protectionLevel, usageStats, notificationAccess, overlayPermission, accessibilityServiceEnabled, appVersion, didReboot, isQOrLaterNow }: SerializedUpdateDeviceStatusAction) => (
new UpdateDeviceStatusAction({
newProtetionLevel: protectionLevel,
newUsageStatsPermissionStatus: usageStats,
@ -74,7 +87,8 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
newOverlayPermission: overlayPermission,
newAccessibilityServiceEnabled: accessibilityServiceEnabled,
newAppVersion: appVersion,
didReboot: !!didReboot
didReboot: !!didReboot,
isQOrLaterNow: !!isQOrLaterNow
})
)
}
@ -88,4 +102,5 @@ export interface SerializedUpdateDeviceStatusAction {
accessibilityServiceEnabled?: boolean
appVersion?: number
didReboot?: boolean
isQOrLaterNow?: boolean
}

View file

@ -1225,6 +1225,9 @@ const definitions = {
},
"didReboot": {
"type": "boolean"
},
"isQOrLaterNow": {
"type": "boolean"
}
},
"additionalProperties": false,

View file

@ -140,6 +140,14 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
deviceEntry.didReboot = true
}
if (action.isQOrLaterNow) {
const hasChanged = deviceEntry.isQorLater === false
if (hasChanged) {
deviceEntry.isQorLater = true
}
}
await deviceEntry.save({ transaction: cache.transaction })
if (hasDeviceManipulation(deviceEntry)) {