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
+19 -4
View File
@@ -28,8 +28,18 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
readonly newAccessibilityServiceEnabled?: boolean readonly newAccessibilityServiceEnabled?: boolean
readonly newAppVersion?: number readonly newAppVersion?: number
readonly didReboot: boolean 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 newProtetionLevel?: ProtectionLevel
newUsageStatsPermissionStatus?: RuntimePermissionStatus newUsageStatsPermissionStatus?: RuntimePermissionStatus
newNotificationAccessPermission?: NewPermissionStatus newNotificationAccessPermission?: NewPermissionStatus
@@ -37,6 +47,7 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
newAccessibilityServiceEnabled?: boolean newAccessibilityServiceEnabled?: boolean
newAppVersion?: number newAppVersion?: number
didReboot: boolean didReboot: boolean
isQOrLaterNow: boolean
}) { }) {
super() super()
@@ -53,6 +64,7 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
this.newAccessibilityServiceEnabled = newAccessibilityServiceEnabled this.newAccessibilityServiceEnabled = newAccessibilityServiceEnabled
this.newAppVersion = newAppVersion this.newAppVersion = newAppVersion
this.didReboot = didReboot this.didReboot = didReboot
this.isQOrLaterNow = isQOrLaterNow
} }
serialize = (): SerializedUpdateDeviceStatusAction => ({ serialize = (): SerializedUpdateDeviceStatusAction => ({
@@ -63,10 +75,11 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
overlayPermission: this.newOverlayPermission, overlayPermission: this.newOverlayPermission,
accessibilityServiceEnabled: this.newAccessibilityServiceEnabled, accessibilityServiceEnabled: this.newAccessibilityServiceEnabled,
appVersion: this.newAppVersion, 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({ new UpdateDeviceStatusAction({
newProtetionLevel: protectionLevel, newProtetionLevel: protectionLevel,
newUsageStatsPermissionStatus: usageStats, newUsageStatsPermissionStatus: usageStats,
@@ -74,7 +87,8 @@ export class UpdateDeviceStatusAction extends AppLogicAction {
newOverlayPermission: overlayPermission, newOverlayPermission: overlayPermission,
newAccessibilityServiceEnabled: accessibilityServiceEnabled, newAccessibilityServiceEnabled: accessibilityServiceEnabled,
newAppVersion: appVersion, newAppVersion: appVersion,
didReboot: !!didReboot didReboot: !!didReboot,
isQOrLaterNow: !!isQOrLaterNow
}) })
) )
} }
@@ -88,4 +102,5 @@ export interface SerializedUpdateDeviceStatusAction {
accessibilityServiceEnabled?: boolean accessibilityServiceEnabled?: boolean
appVersion?: number appVersion?: number
didReboot?: boolean didReboot?: boolean
isQOrLaterNow?: boolean
} }
+3
View File
@@ -1225,6 +1225,9 @@ const definitions = {
}, },
"didReboot": { "didReboot": {
"type": "boolean" "type": "boolean"
},
"isQOrLaterNow": {
"type": "boolean"
} }
}, },
"additionalProperties": false, "additionalProperties": false,
@@ -140,6 +140,14 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
deviceEntry.didReboot = true deviceEntry.didReboot = true
} }
if (action.isQOrLaterNow) {
const hasChanged = deviceEntry.isQorLater === false
if (hasChanged) {
deviceEntry.isQorLater = true
}
}
await deviceEntry.save({ transaction: cache.transaction }) await deviceEntry.save({ transaction: cache.transaction })
if (hasDeviceManipulation(deviceEntry)) { if (hasDeviceManipulation(deviceEntry)) {