ReviewOS

also looking at this

craft-native/craft

feat(android): the location-recording controls in Zig — ratchet 65 → 61

#181
Merged glennmichael123 wants to merge feat/android-recording-controls into main
7 files +568 -22
packages/android/templates/CraftBridge.kt.templatemodified+10-0
Changes to packages/android/templates/CraftBridge.kt.template
@@ -1772,6 +1772,10 @@ class CraftBridge(
17721772
17731773 @JavascriptInterface
17741774 fun startLocationRecording(optionsJson: String): String {
1775 // Null is "Zig declined". A permission-denied answer is not null — it
1776 // is a state object saying so, and returning it here is the answer.
1777 CraftNative.startLocationRecording(activity)?.let { return it }
1778
17751779 if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
17761780 return JSONObject().apply {
17771781 put("id", JSONObject.NULL)
@@ -1792,12 +1796,16 @@ class CraftBridge(
17921796
17931797 @JavascriptInterface
17941798 fun pauseLocationRecording(): String {
1799 CraftNative.pauseLocationRecording(activity)?.let { return it }
1800
17951801 CraftLocationRecordingStore.setPaused(activity, true)
17961802 return CraftLocationRecordingStore.state(activity).toString()
17971803 }
17981804
17991805 @JavascriptInterface
18001806 fun resumeLocationRecording(): String {
1807 CraftNative.resumeLocationRecording(activity)?.let { return it }
1808
18011809 CraftLocationRecordingStore.setPaused(activity, false)
18021810 if (CraftLocationRecordingStore.isActive(activity)) {
18031811 ContextCompat.startForegroundService(
@@ -1810,6 +1818,8 @@ class CraftBridge(
18101818
18111819 @JavascriptInterface
18121820 fun stopLocationRecording(): String {
1821 CraftNative.stopLocationRecording(activity)?.let { return it }
1822
18131823 CraftLocationRecordingStore.stop(activity)
18141824 val result = CraftLocationRecordingStore.state(activity, includeLocations = true).toString()
18151825 activity.stopService(Intent(activity, LocationRecordingService::class.java).setAction(LocationRecordingService.ACTION_STOP))