Skip to content

Commit 7ec3817

Browse files
committed
feat: gallery and flashlight buttons
1 parent 9dbc93c commit 7ec3817

File tree

3 files changed

+105
-18
lines changed

3 files changed

+105
-18
lines changed

app/src/main/java/to/bitkit/ui/screens/scanner/QrScanningScreen.kt

Lines changed: 60 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ package to.bitkit.ui.screens.scanner
44

55
import android.Manifest
66
import android.view.View.LAYER_TYPE_HARDWARE
7+
import android.widget.ImageButton
78
import androidx.camera.core.Camera
89
import androidx.camera.core.CameraSelector
910
import androidx.camera.core.ImageAnalysis
1011
import androidx.camera.core.Preview
1112
import androidx.camera.lifecycle.ProcessCameraProvider
1213
import androidx.camera.view.PreviewView
13-
import androidx.compose.foundation.BorderStroke
14-
import androidx.compose.foundation.Canvas
1514
import androidx.compose.foundation.background
16-
import androidx.compose.foundation.border
1715
import androidx.compose.foundation.layout.Box
1816
import androidx.compose.foundation.layout.Column
1917
import androidx.compose.foundation.layout.Spacer
@@ -22,8 +20,12 @@ import androidx.compose.foundation.layout.fillMaxWidth
2220
import androidx.compose.foundation.layout.height
2321
import androidx.compose.foundation.layout.padding
2422
import androidx.compose.foundation.layout.size
23+
import androidx.compose.foundation.shape.CircleShape
2524
import androidx.compose.foundation.shape.RoundedCornerShape
2625
import androidx.compose.material.Icon
26+
import androidx.compose.material.IconButton
27+
import androidx.compose.material3.ShapeDefaults
28+
import androidx.compose.material3.Shapes
2729
import androidx.compose.runtime.Composable
2830
import androidx.compose.runtime.DisposableEffect
2931
import androidx.compose.runtime.LaunchedEffect
@@ -36,14 +38,7 @@ import androidx.compose.ui.Alignment
3638
import androidx.compose.ui.Modifier
3739
import androidx.compose.ui.draw.clip
3840
import androidx.compose.ui.draw.clipToBounds
39-
import androidx.compose.ui.geometry.CornerRadius
40-
import androidx.compose.ui.geometry.Offset
41-
import androidx.compose.ui.geometry.Rect
42-
import androidx.compose.ui.geometry.Size
43-
import androidx.compose.ui.graphics.BlendMode
44-
import androidx.compose.ui.graphics.Color
4541
import androidx.compose.ui.platform.LocalContext
46-
import androidx.compose.ui.platform.LocalDensity
4742
import androidx.compose.ui.res.painterResource
4843
import androidx.compose.ui.res.stringResource
4944
import androidx.compose.ui.unit.dp
@@ -63,7 +58,6 @@ import to.bitkit.ui.scaffold.AppTopBar
6358
import to.bitkit.ui.scaffold.ScreenColumn
6459
import to.bitkit.ui.shared.util.gradientBackground
6560
import to.bitkit.ui.theme.Colors
66-
import to.bitkit.ui.theme.Shapes
6761
import to.bitkit.utils.Logger
6862
import java.util.concurrent.Executors
6963

@@ -163,23 +157,71 @@ private fun Content(
163157
previewView: PreviewView,
164158
modifier: Modifier = Modifier,
165159
) {
166-
Column(modifier = modifier.fillMaxSize().padding(horizontal = 16.dp)) {
167-
Box(modifier = modifier
168-
.fillMaxWidth()
169-
.clip(RoundedCornerShape(16.dp))
170-
.weight(1f)) {
160+
Column(
161+
modifier = modifier
162+
.fillMaxSize()
163+
.padding(horizontal = 16.dp)
164+
) {
165+
Box(
166+
modifier = modifier
167+
.fillMaxWidth()
168+
.clip(RoundedCornerShape(16.dp))
169+
.weight(1f)
170+
) {
171171
AndroidView(
172172
modifier = Modifier
173173
.fillMaxSize()
174174
.clipToBounds(),
175175
factory = { previewView.apply { setLayerType(LAYER_TYPE_HARDWARE, null) } }
176176
)
177+
178+
IconButton(
179+
onClick = {}, //TODO IMPLEMENT
180+
modifier = Modifier
181+
.padding(16.dp)
182+
.clip(CircleShape)
183+
.background(
184+
Colors.White64
185+
)
186+
.size(48.dp)
187+
.align(Alignment.TopStart)
188+
) {
189+
Icon(
190+
painter = painterResource(R.drawable.ic_image_square),
191+
contentDescription = null,
192+
tint = Colors.White
193+
)
194+
}
195+
196+
IconButton(
197+
onClick = {}, //TODO IMPLEMENT
198+
modifier = Modifier
199+
.padding(16.dp)
200+
.clip(CircleShape)
201+
.background(
202+
Colors.White64
203+
)
204+
.size(48.dp)
205+
.align(Alignment.TopEnd)
206+
) {
207+
Icon(
208+
painter = painterResource(R.drawable.ic_flashlight),
209+
contentDescription = null,
210+
tint = Colors.White
211+
)
212+
}
177213
}
178214
Spacer(modifier = Modifier.height(16.dp))
179215
PrimaryButton(
180-
icon = { Icon(painterResource(R.drawable.ic_clipboard_text_simple), contentDescription = null, tint = Colors.White) },
216+
icon = {
217+
Icon(
218+
painterResource(R.drawable.ic_clipboard_text_simple),
219+
contentDescription = null,
220+
tint = Colors.White
221+
)
222+
},
181223
text = stringResource(R.string.other__qr_paste),
182-
onClick = {}
224+
onClick = {} //TODO IMPLEMENT
183225
)
184226
Spacer(modifier = Modifier.height(16.dp))
185227
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="M18,7.25C18,7.412 17.947,7.57 17.85,7.7L15.9,10.3C15.803,10.43 15.75,10.588 15.75,10.75V21C15.75,21.199 15.671,21.39 15.53,21.53C15.39,21.671 15.199,21.75 15,21.75H9C8.801,21.75 8.61,21.671 8.47,21.53C8.329,21.39 8.25,21.199 8.25,21V10.75C8.25,10.588 8.197,10.43 8.1,10.3L6.15,7.7C6.053,7.57 6,7.412 6,7.25V6H18V7.25Z"
8+
android:strokeAlpha="0.2"
9+
android:fillColor="#ffffff"
10+
android:fillAlpha="0.2"/>
11+
<path
12+
android:pathData="M5.689,1.939C5.971,1.658 6.352,1.5 6.75,1.5H17.25C17.648,1.5 18.029,1.658 18.311,1.939C18.592,2.221 18.75,2.602 18.75,3V7.25C18.75,7.575 18.645,7.89 18.45,8.15L16.5,10.75L16.5,21C16.5,21.398 16.342,21.779 16.061,22.061C15.779,22.342 15.398,22.5 15,22.5H9C8.602,22.5 8.221,22.342 7.939,22.061C7.658,21.779 7.5,21.398 7.5,21L7.5,10.75L5.55,8.15C5.355,7.89 5.25,7.575 5.25,7.25V3C5.25,2.602 5.408,2.221 5.689,1.939ZM6.75,3L6.75,7.25L8.7,9.85C8.895,10.11 9,10.425 9,10.75V21H15V10.75C15,10.425 15.105,10.11 15.3,9.85L17.25,7.25V3H6.75Z"
13+
android:fillColor="#ffffff"
14+
android:fillType="evenOdd"/>
15+
<path
16+
android:pathData="M12,10.5C12.414,10.5 12.75,10.836 12.75,11.25V14.25C12.75,14.664 12.414,15 12,15C11.586,15 11.25,14.664 11.25,14.25V11.25C11.25,10.836 11.586,10.5 12,10.5Z"
17+
android:fillColor="#ffffff"
18+
android:fillType="evenOdd"/>
19+
<path
20+
android:pathData="M5.25,6C5.25,5.586 5.586,5.25 6,5.25H18C18.414,5.25 18.75,5.586 18.75,6C18.75,6.414 18.414,6.75 18,6.75H6C5.586,6.75 5.25,6.414 5.25,6Z"
21+
android:fillColor="#ffffff"
22+
android:fillType="evenOdd"/>
23+
</vector>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="M3.75,16.5V4.5C3.75,4.301 3.829,4.11 3.97,3.97C4.11,3.829 4.301,3.75 4.5,3.75H19.5C19.699,3.75 19.89,3.829 20.03,3.97C20.171,4.11 20.25,4.301 20.25,4.5V15L20.25,15L16.28,11.03C16.14,10.89 15.949,10.811 15.75,10.811C15.551,10.811 15.36,10.89 15.22,11.03L11.03,15.22C10.89,15.36 10.699,15.439 10.5,15.439C10.301,15.439 10.11,15.36 9.97,15.22L8.03,13.28C7.89,13.14 7.699,13.061 7.5,13.061C7.301,13.061 7.11,13.14 6.97,13.28L3.75,16.5Z"
8+
android:strokeAlpha="0.2"
9+
android:fillColor="#ffffff"
10+
android:fillAlpha="0.2"/>
11+
<path
12+
android:pathData="M9.375,9.75C9.996,9.75 10.5,9.246 10.5,8.625C10.5,8.004 9.996,7.5 9.375,7.5C8.754,7.5 8.25,8.004 8.25,8.625C8.25,9.246 8.754,9.75 9.375,9.75Z"
13+
android:fillColor="#ffffff"/>
14+
<path
15+
android:pathData="M3,4.5C3,3.672 3.672,3 4.5,3H19.5C20.328,3 21,3.672 21,4.5V19.5C21,20.328 20.328,21 19.5,21H4.5C3.672,21 3,20.328 3,19.5V4.5ZM19.5,4.5H4.5V19.5H19.5V4.5Z"
16+
android:fillColor="#ffffff"
17+
android:fillType="evenOdd"/>
18+
<path
19+
android:pathData="M14.689,10.5C14.971,10.219 15.352,10.061 15.75,10.061C16.148,10.061 16.529,10.219 16.811,10.5L16.28,11.03L16.811,10.5L20.78,14.469C21.073,14.762 21.073,15.237 20.78,15.53C20.487,15.823 20.013,15.823 19.72,15.53L15.75,11.561L11.561,15.75C11.279,16.031 10.898,16.189 10.5,16.189C10.102,16.189 9.721,16.031 9.439,15.75L7.5,13.811L4.28,17.03C3.987,17.323 3.513,17.323 3.22,17.03C2.927,16.737 2.927,16.263 3.22,15.97L6.439,12.75L6.944,13.255L6.439,12.75C6.721,12.469 7.102,12.311 7.5,12.311C7.898,12.311 8.279,12.469 8.561,12.75L8.03,13.28L8.561,12.75L10.5,14.689L14.689,10.5Z"
20+
android:fillColor="#ffffff"
21+
android:fillType="evenOdd"/>
22+
</vector>

0 commit comments

Comments
 (0)