From bae1f52d4a90fa63743ce21ac1549eff05bf259a Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Thu, 18 Jan 2024 18:55:49 +0100 Subject: [PATCH] chore: Cleanup Android codebase (#2415) --- .../mrousavy/camera/CameraDevicesManager.kt | 2 ++ .../DynamicRangeProfiles+bestProfile.kt | 27 ------------------- .../camera/extensions/List+containsAny.kt | 3 --- .../camera/frameprocessor/FrameProcessor.java | 1 + .../frameprocessor/FrameProcessorPlugin.java | 4 +-- .../FrameProcessorPluginRegistry.java | 11 ++++++++ .../frameprocessor/VisionCameraScheduler.java | 1 - 7 files changed, 16 insertions(+), 33 deletions(-) delete mode 100644 package/android/src/main/java/com/mrousavy/camera/extensions/DynamicRangeProfiles+bestProfile.kt delete mode 100644 package/android/src/main/java/com/mrousavy/camera/extensions/List+containsAny.kt diff --git a/package/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt b/package/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt index abf3b08..e09e5e0 100644 --- a/package/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt +++ b/package/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt @@ -82,9 +82,11 @@ class CameraDevicesManager(private val reactContext: ReactApplicationContext) : } // Required for NativeEventEmitter, this is just a dummy implementation: + @Suppress("unused", "UNUSED_PARAMETER") @ReactMethod fun addListener(eventName: String) {} + @Suppress("unused", "UNUSED_PARAMETER") @ReactMethod fun removeListeners(count: Int) {} } diff --git a/package/android/src/main/java/com/mrousavy/camera/extensions/DynamicRangeProfiles+bestProfile.kt b/package/android/src/main/java/com/mrousavy/camera/extensions/DynamicRangeProfiles+bestProfile.kt deleted file mode 100644 index 0c25d14..0000000 --- a/package/android/src/main/java/com/mrousavy/camera/extensions/DynamicRangeProfiles+bestProfile.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mrousavy.camera.extensions - -import android.hardware.camera2.params.DynamicRangeProfiles -import android.os.Build -import androidx.annotation.RequiresApi - -private fun Set.firstMatch(filter: Set): Long? { - filter.forEach { f -> - if (this.contains(f)) { - return f - } - } - return null -} - -@RequiresApi(Build.VERSION_CODES.TIRAMISU) -private val bestProfiles = setOf( - DynamicRangeProfiles.HDR10_PLUS, - DynamicRangeProfiles.HDR10, - DynamicRangeProfiles.HLG10 -) - -val DynamicRangeProfiles.bestProfile: Long? - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - get() { - return supportedProfiles.firstMatch(bestProfiles) - } diff --git a/package/android/src/main/java/com/mrousavy/camera/extensions/List+containsAny.kt b/package/android/src/main/java/com/mrousavy/camera/extensions/List+containsAny.kt deleted file mode 100644 index 57c85cc..0000000 --- a/package/android/src/main/java/com/mrousavy/camera/extensions/List+containsAny.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.mrousavy.camera.extensions - -fun List.containsAny(elements: List): Boolean = elements.any { element -> this.contains(element) } diff --git a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessor.java b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessor.java index d32de78..09e1b29 100644 --- a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessor.java +++ b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessor.java @@ -9,6 +9,7 @@ import com.facebook.proguard.annotations.DoNotStrip; /** * Represents a JS Frame Processor + * @noinspection JavaJniMissingFunction */ public final class FrameProcessor { /** diff --git a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPlugin.java b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPlugin.java index a3fb344..b933b4b 100644 --- a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPlugin.java +++ b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPlugin.java @@ -8,10 +8,10 @@ import java.util.Map; /** * The base class of a native Frame Processor Plugin. - * + *

* Subclass this to create a custom Frame Processor Plugin, which can be called from a JS Frame Processor. * Once subclassed, it needs to be registered in the VisionCamera Frame Processor - * runtime via `FrameProcessorPluginRegistry.addFrameProcessorPlugin` - ideally at app startup. + * runtime via FrameProcessorPluginRegistry.addFrameProcessorPlugin - ideally at app startup. * See: Creating Frame Processor Plugins (Android) * for more information diff --git a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPluginRegistry.java b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPluginRegistry.java index 23d6278..84f6966 100644 --- a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPluginRegistry.java +++ b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/FrameProcessorPluginRegistry.java @@ -14,6 +14,17 @@ public class FrameProcessorPluginRegistry { private static final Map Plugins = new HashMap<>(); private static final String TAG = "FrameProcessorPluginRegistry"; + /** + * Adds the given Plugin to the Frame Processor Plugin Registry. + * The given Plugin might then be initialized later from JavaScript, through the VisionCameraProxy. + * The returned Plugin will be deallocated once the value is no longer used in JavaScript. + *

+ * This function can be called from any Thread, and should be called as soon as possible - ideally on app start + * or in a static initializer. + * + * @param name The name of the plugin which will be used to find the plugin from the JS side. + * @param pluginInitializer An initializer function to create instances of this Plugin. + */ @DoNotStrip @Keep public static void addFrameProcessorPlugin(String name, PluginInitializer pluginInitializer) { diff --git a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/VisionCameraScheduler.java b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/VisionCameraScheduler.java index b437d6f..11249e9 100644 --- a/package/android/src/main/java/com/mrousavy/camera/frameprocessor/VisionCameraScheduler.java +++ b/package/android/src/main/java/com/mrousavy/camera/frameprocessor/VisionCameraScheduler.java @@ -23,7 +23,6 @@ public class VisionCameraScheduler { @DoNotStrip private void scheduleTrigger() { CameraQueues.CameraQueue videoQueue = CameraQueues.Companion.getVideoQueue(); - // TODO: Make sure post(this::trigger) works. videoQueue.getHandler().post(this::trigger); } }