-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDebugPlugin.kt
More file actions
61 lines (48 loc) · 1.94 KB
/
DebugPlugin.kt
File metadata and controls
61 lines (48 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package co.stonephone.stonecamera.plugins
import android.annotation.SuppressLint
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import co.stonephone.stonecamera.StoneCameraViewModel
import co.stonephone.stonecamera.utils.calculateImageCoverageRegion
class DebugPlugin : IPlugin {
override val id: String = "debugPlugin"
override val name: String = "Debug"
var visibleRegion by mutableStateOf(null as android.graphics.Rect?)
@SuppressLint("ClickableViewAccessibility")
override fun initialize(viewModel: StoneCameraViewModel) {
visibleRegion =
calculateImageCoverageRegion(
viewModel.previewView!!,
viewModel.imageCapture,
)
}
@Composable
override fun renderViewfinder(viewModel: StoneCameraViewModel, pluginInstance: IPlugin) {
val visibleRegion = visibleRegion ?: return
Box(
modifier = Modifier
.width(visibleRegion!!.width().dp)
.height(visibleRegion!!.height().dp)
.offset(
x = visibleRegion!!.left.dp,
y = visibleRegion!!.top.dp
)
.border(2.dp, Color.Yellow)
.padding(16.dp),
contentAlignment = Alignment.TopCenter
) { }
}
override val settings: List<PluginSetting> = emptyList() // No settings for tap-to-focus yet
}