icons changed
This commit is contained in:
parent
000c48bf6b
commit
8671d459cf
96
CLAUDE.md
Normal file
96
CLAUDE.md
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Build Commands
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Build debug APK
|
||||||
|
./gradlew assembleDebug
|
||||||
|
|
||||||
|
# Build release APK
|
||||||
|
./gradlew assembleRelease
|
||||||
|
|
||||||
|
# Run unit tests
|
||||||
|
./gradlew test
|
||||||
|
|
||||||
|
# Run instrumented tests (requires connected device/emulator)
|
||||||
|
./gradlew connectedAndroidTest
|
||||||
|
|
||||||
|
# Run a single unit test class
|
||||||
|
./gradlew :app:test --tests "com.mob.utsmyammer.ExampleUnitTest"
|
||||||
|
|
||||||
|
# Clean build
|
||||||
|
./gradlew clean assembleDebug
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
|
||||||
|
**MOBPOS** is a mobile Point-of-Sale system for Myanmar, targeting Sunmi hardware devices (card readers, PIN pads, thermal printers). It processes EMV card transactions (sale, void, refund, settlement) and QR payments (MMQR, Wave Pay).
|
||||||
|
|
||||||
|
### Single-Activity Compose App
|
||||||
|
|
||||||
|
`MainActivity` hosts the entire app. Navigation is handled by Compose Navigation (`AppNavGraph.kt`) with typed routes defined in a sealed `Routes` object.
|
||||||
|
|
||||||
|
### MVVM with Shared State
|
||||||
|
|
||||||
|
- Each screen has a dedicated `ViewModel` (Hilt-injected)
|
||||||
|
- `SharedViewModel` in `viewmodel/` is the central state holder for cross-screen transaction data (card info, amount, transaction type, approval codes)
|
||||||
|
- Hardware interaction is abstracted into `CardReaderViewModel` and `EmvTransactionProcessViewModel`
|
||||||
|
- State is a mix of `LiveData` (older screens) and `StateFlow` (newer screens like card reading)
|
||||||
|
|
||||||
|
### Screen Structure Pattern
|
||||||
|
|
||||||
|
Every feature follows: `ui/<feature>/` containing:
|
||||||
|
- `*Screen.kt` — Composable UI
|
||||||
|
- `*ViewModel.kt` — business logic and state
|
||||||
|
|
||||||
|
### Key Transaction Flow
|
||||||
|
|
||||||
|
Dashboard → InputAmount → CardWaiting → ProcessingCard → SendingToHost → TransactionResult → PrintReceipt
|
||||||
|
|
||||||
|
### Local Modules
|
||||||
|
|
||||||
|
The app depends on several local library modules (in `settings.gradle.kts`):
|
||||||
|
- `:baselib` — Room DB, Retrofit, Hilt base setup
|
||||||
|
- `:paylibs` / `:paysdk-lib` — Payment SDK wrappers
|
||||||
|
- `:ecr` / `:ecr-service-lib` — Electronic Cash Register integration
|
||||||
|
- `:mpulib` / `:mpu-lib` — Mini POS Unit hardware
|
||||||
|
- `:sunmiui-lib` — Sunmi device UI components
|
||||||
|
- `:qrgen-lib` — QR code generation
|
||||||
|
|
||||||
|
### Key Dependencies
|
||||||
|
|
||||||
|
- **UI:** Jetpack Compose + Material 3, Compose Navigation
|
||||||
|
- **DI:** Hilt 2.59.2 with KSP
|
||||||
|
- **Async:** RxJava 3 + RxAndroid (primary async pattern)
|
||||||
|
- **Network:** Retrofit 3 + OkHttp 4 + GSON
|
||||||
|
- **DB:** Room 2.4.3 with RxJava 3 support
|
||||||
|
- **Hardware:** Sunmi SDK (card reader, PIN pad, printer APIs)
|
||||||
|
|
||||||
|
### Package Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
com.mob.utsmyammer/
|
||||||
|
├── config/ # Constants, SunmiPayManager
|
||||||
|
├── model/ # Data models (CardTransactionType, ProcessCode, TransactionStatus)
|
||||||
|
│ └── ecr/ # ECR-specific models
|
||||||
|
├── ui/ # All Compose screens (one subdir per feature)
|
||||||
|
│ ├── components/ # Shared reusables (NumericEntryScreen, SquareButton, AppBar)
|
||||||
|
│ ├── navigation/ # AppNavGraph, Routes
|
||||||
|
│ └── theme/ # Compose theme and colors
|
||||||
|
├── utils/ # Utility functions
|
||||||
|
└── viewmodel/ # Shared ViewModels (SharedViewModel, CardReaderViewModel, etc.)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hardware Integration Notes
|
||||||
|
|
||||||
|
Sunmi device permissions are declared in `AndroidManifest.xml` (LED, MSR, ICC, PINPAD, PRINTER). When modifying card reading or PIN entry flows, be aware that `CardReaderViewModel` and the Sunmi ECR service handle hardware callbacks via RxJava subjects. Hardware callbacks arrive on background threads — always observe on the main thread before updating UI state.
|
||||||
|
|
||||||
|
## Build Configuration
|
||||||
|
|
||||||
|
- `compileSdk 36`, `minSdk 24`, `targetSdk 36`
|
||||||
|
- Java 11 toolchain, Kotlin 2.2.10
|
||||||
|
- Compose BOM 2026.02.01
|
||||||
|
- ProGuard/minification is **disabled** for all build types
|
||||||
|
- Application ID: `com.mob.ustmm`
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.mob.utsmyanmar
|
package com.mob.utsmyanmar
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.WindowManager
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.SystemBarStyle
|
import androidx.activity.SystemBarStyle
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
@ -14,9 +15,10 @@ import dagger.hilt.android.AndroidEntryPoint
|
|||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
installSplashScreen()
|
// installSplashScreen()
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
// enableEdgeToEdge()
|
// enableEdgeToEdge()
|
||||||
|
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
setContent {
|
setContent {
|
||||||
MOBPOSTheme {
|
MOBPOSTheme {
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
|
|||||||
@ -365,7 +365,7 @@ private fun AdvertisingArea() {
|
|||||||
|
|
||||||
val imageArray = listOf(
|
val imageArray = listOf(
|
||||||
"https://i.ytimg.com/vi/eRUVxGRp1Ms/maxresdefault.jpg",
|
"https://i.ytimg.com/vi/eRUVxGRp1Ms/maxresdefault.jpg",
|
||||||
"https://sunmi.ua/wp-content/themes/yootheme/cache/04/p6-3-en-04a68bb5.jpeg",
|
"https://i.ytimg.com/vi/AwvmgTPd7qw/maxresdefault.jpg",
|
||||||
"https://mma.prnewswire.com/media/2080956/SUNMI_3rd_generation_products_T3_PRO_series_V3_MIX.jpg?p=facebook"
|
"https://mma.prnewswire.com/media/2080956/SUNMI_3rd_generation_products_T3_PRO_series_V3_MIX.jpg?p=facebook"
|
||||||
);
|
);
|
||||||
val pageState = rememberPagerState(pageCount = { imageArray.size })
|
val pageState = rememberPagerState(pageCount = { imageArray.size })
|
||||||
|
|||||||
@ -13,7 +13,7 @@ annotation class P2Preview
|
|||||||
|
|
||||||
@Preview(
|
@Preview(
|
||||||
name = "P3",
|
name = "P3",
|
||||||
device = "spec:width=720px,height=1600px,dpi=300",
|
device = "spec:width=720px,height=1600px,dpi=270",
|
||||||
showBackground = true,
|
showBackground = true,
|
||||||
showSystemUi = true
|
showSystemUi = true
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,42 +1,23 @@
|
|||||||
package com.mob.utsmyanmar.ui.version
|
package com.mob.utsmyanmar.ui.version
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.material.icons.*
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.material.icons.filled.*
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.ui.*
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.foundation.layout.padding
|
|
||||||
import androidx.compose.foundation.layout.size
|
|
||||||
import androidx.compose.foundation.layout.width
|
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.ChevronLeft
|
|
||||||
import androidx.compose.material.icons.filled.Square
|
|
||||||
import androidx.compose.material3.Card
|
|
||||||
import androidx.compose.material3.CardColors
|
|
||||||
import androidx.compose.material3.CardDefaults
|
|
||||||
import androidx.compose.material3.Icon
|
|
||||||
import androidx.compose.material3.Scaffold
|
|
||||||
import androidx.compose.material3.Text
|
|
||||||
import androidx.compose.runtime.Composable
|
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.collectAsState
|
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.ui.Alignment
|
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.compose.ui.unit.sp
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
|
||||||
import com.mob.utsmyanmar.ui.components.appbar.AppBar
|
import com.mob.utsmyanmar.ui.components.appbar.AppBar
|
||||||
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel
|
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel
|
||||||
|
import com.mob.utsmyanmar.ui.preview.P2Preview
|
||||||
import com.mob.utsmyanmar.ui.preview.P3Preview
|
import com.mob.utsmyanmar.ui.preview.P3Preview
|
||||||
import com.mob.utsmyanmar.ui.theme.Color
|
import com.mob.utsmyanmar.ui.theme.Color
|
||||||
|
import com.mob.utsmyanmar.R
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun VersionScreen(
|
fun VersionScreen(
|
||||||
@ -81,43 +62,92 @@ fun VersionScreen(
|
|||||||
Item(
|
Item(
|
||||||
title = "PROD NAME",
|
title = "PROD NAME",
|
||||||
value = deviceInfo.deviceModel,
|
value = deviceInfo.deviceModel,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_function),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "TERMINAL SERIAL",
|
title = "TERMINAL SERIAL",
|
||||||
value = deviceInfo.serialNumber,
|
value = deviceInfo.serialNumber,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_four_vertical_bars),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "HARDWARE VER",
|
title = "HARDWARE VER",
|
||||||
value = deviceInfo.hardwareVersion,
|
value = deviceInfo.hardwareVersion,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_gear),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "FIRMWARE VER",
|
title = "FIRMWARE VER",
|
||||||
value = deviceInfo.firmwareVersion,
|
value = deviceInfo.firmwareVersion,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_code),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "S/W VER",
|
title = "S/W VER",
|
||||||
value = deviceInfo.finalVersion,
|
value = deviceInfo.finalVersion,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_settings),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "PAYHARDWARE SERVICE VER",
|
title = "PAYHARDWARE SERVICE VER",
|
||||||
value = deviceInfo.payHardwareVersion,
|
value = deviceInfo.payHardwareVersion,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_protection_shield),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(itemSpace))
|
Spacer(Modifier.height(itemSpace))
|
||||||
Item(
|
Item(
|
||||||
title = "ROM VER",
|
title = "ROM VER",
|
||||||
value = deviceInfo.romVersion,
|
value = deviceInfo.romVersion,
|
||||||
icon = Icons.Default.Square
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(R.drawable.ic_function),
|
||||||
|
contentDescription = "icon",
|
||||||
|
modifier = Modifier.size(24.dp),
|
||||||
|
tint = Color.LegacyRed
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,7 +159,7 @@ fun VersionScreen(
|
|||||||
fun Item(
|
fun Item(
|
||||||
title: String,
|
title: String,
|
||||||
value: String,
|
value: String,
|
||||||
icon: ImageVector
|
icon: @Composable () -> Unit,
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
@ -137,24 +167,23 @@ fun Item(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.weight(1.4f),
|
modifier = Modifier.weight(1f),
|
||||||
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier.size(40.dp).background(
|
modifier = Modifier
|
||||||
color = Color.CrimsonRed.copy(alpha = 0.2f),
|
.size(50.dp)
|
||||||
shape = CircleShape
|
.background(
|
||||||
),
|
Color.CrimsonRed.copy(alpha = 0.1f),
|
||||||
|
shape = RoundedCornerShape(12.dp)
|
||||||
|
),
|
||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
){
|
) {
|
||||||
Icon(
|
icon()
|
||||||
imageVector = icon,
|
|
||||||
contentDescription = "icon"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Text(text = title)
|
Text(text = title, fontSize = 14.sp)
|
||||||
}
|
}
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
@ -162,11 +191,12 @@ fun Item(
|
|||||||
horizontalArrangement = Arrangement.SpaceBetween
|
horizontalArrangement = Arrangement.SpaceBetween
|
||||||
) {
|
) {
|
||||||
Text(text = ":")
|
Text(text = ":")
|
||||||
Text(text = value)
|
Text(text = value, fontSize = 14.sp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@P2Preview
|
||||||
@P3Preview
|
@P3Preview
|
||||||
@Composable
|
@Composable
|
||||||
fun P3PreviewVersionScreen() {
|
fun P3PreviewVersionScreen() {
|
||||||
|
|||||||
37
app/src/main/res/drawable/ic_circle_wrong.xml
Normal file
37
app/src/main/res/drawable/ic_circle_wrong.xml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="14dp"
|
||||||
|
android:height="14dp"
|
||||||
|
android:viewportWidth="14"
|
||||||
|
android:viewportHeight="14">
|
||||||
|
<path
|
||||||
|
android:pathData="M9.078,4.669L4.669,9.078M4.669,4.669L9.078,9.078"
|
||||||
|
android:strokeAlpha="0.8"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="1.5"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#6F0D1E"
|
||||||
|
android:strokeLineCap="round"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M6.873,12.997C10.255,12.997 12.997,10.255 12.997,6.873C12.997,3.491 10.255,0.75 6.873,0.75C3.491,0.75 0.75,3.491 0.75,6.873C0.75,10.255 3.491,12.997 6.873,12.997Z"
|
||||||
|
android:strokeAlpha="0.8"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="1.5"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#6F0D1E"
|
||||||
|
android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
||||||
20
app/src/main/res/drawable/ic_code.xml
Normal file
20
app/src/main/res/drawable/ic_code.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="16" android:viewportWidth="16" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="#00000000" android:pathData="M4.573,5.227L1.96,7.84L4.573,10.453M11.107,5.227L13.72,7.84L11.107,10.453M9.147,2.613L6.533,13.067" android:strokeColor="#6F0D1E" android:strokeLineCap="round" android:strokeLineJoin="round" android:strokeWidth="2"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
20
app/src/main/res/drawable/ic_four_vertical_bars.xml
Normal file
20
app/src/main/res/drawable/ic_four_vertical_bars.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="12" android:viewportWidth="12" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="#6F0D1E" android:fillType="evenOdd" android:pathData="M11.025,-0C11.22,-0 11.407,0.077 11.545,0.215C11.683,0.353 11.76,0.54 11.76,0.735L11.76,11.025C11.76,11.22 11.683,11.407 11.545,11.545C11.407,11.683 11.22,11.76 11.025,11.76C10.83,11.76 10.643,11.683 10.505,11.545C10.367,11.407 10.29,11.22 10.29,11.025L10.29,0.735C10.29,0.54 10.367,0.353 10.505,0.215C10.643,0.077 10.83,-0 11.025,-0ZM0.735,-0C0.93,-0 1.117,0.077 1.255,0.215C1.393,0.353 1.47,0.54 1.47,0.735L1.47,11.025C1.47,11.22 1.393,11.407 1.255,11.545C1.117,11.683 0.93,11.76 0.735,11.76C0.54,11.76 0.353,11.683 0.215,11.545C0.077,11.407 -0,11.22 -0,11.025L-0,0.735C-0,0.54 0.077,0.353 0.215,0.215C0.353,0.077 0.54,-0 0.735,-0ZM7.595,-0C7.79,-0 7.977,0.077 8.115,0.215C8.253,0.353 8.33,0.54 8.33,0.735L8.33,11.025C8.33,11.22 8.253,11.407 8.115,11.545C7.977,11.683 7.79,11.76 7.595,11.76C7.4,11.76 7.213,11.683 7.075,11.545C6.937,11.407 6.86,11.22 6.86,11.025L6.86,0.735C6.86,0.54 6.937,0.353 7.075,0.215C7.213,0.077 7.4,-0 7.595,-0ZM4.165,-0C4.36,-0 4.547,0.077 4.685,0.215C4.823,0.353 4.9,0.54 4.9,0.735L4.9,11.025C4.9,11.22 4.823,11.407 4.685,11.545C4.547,11.683 4.36,11.76 4.165,11.76C3.97,11.76 3.783,11.683 3.645,11.545C3.507,11.407 3.43,11.22 3.43,11.025L3.43,0.735C3.43,0.54 3.507,0.353 3.645,0.215C3.783,0.077 3.97,-0 4.165,-0Z"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
25
app/src/main/res/drawable/ic_function.xml
Normal file
25
app/src/main/res/drawable/ic_function.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="12dp"
|
||||||
|
android:height="12dp"
|
||||||
|
android:viewportWidth="12"
|
||||||
|
android:viewportHeight="12">
|
||||||
|
<path
|
||||||
|
android:pathData="M0,0.653C0,0.48 0.069,0.314 0.191,0.191C0.314,0.069 0.48,0 0.653,0H4.573C4.747,0 4.913,0.069 5.035,0.191C5.158,0.314 5.227,0.48 5.227,0.653V4.573C5.227,4.747 5.158,4.913 5.035,5.035C4.913,5.158 4.747,5.227 4.573,5.227H0.653C0.48,5.227 0.314,5.158 0.191,5.035C0.069,4.913 0,4.747 0,4.573V0.653ZM0,7.187C0,7.013 0.069,6.847 0.191,6.725C0.314,6.602 0.48,6.533 0.653,6.533H4.573C4.747,6.533 4.913,6.602 5.035,6.725C5.158,6.847 5.227,7.013 5.227,7.187V11.107C5.227,11.28 5.158,11.446 5.035,11.569C4.913,11.691 4.747,11.76 4.573,11.76H0.653C0.48,11.76 0.314,11.691 0.191,11.569C0.069,11.446 0,11.28 0,11.107V7.187ZM6.533,0.653C6.533,0.48 6.602,0.314 6.725,0.191C6.847,0.069 7.013,0 7.187,0H11.107C11.28,0 11.446,0.069 11.569,0.191C11.691,0.314 11.76,0.48 11.76,0.653V4.573C11.76,4.747 11.691,4.913 11.569,5.035C11.446,5.158 11.28,5.227 11.107,5.227H7.187C7.013,5.227 6.847,5.158 6.725,5.035C6.602,4.913 6.533,4.747 6.533,4.573V0.653ZM6.533,7.187C6.533,7.013 6.602,6.847 6.725,6.725C6.847,6.602 7.013,6.533 7.187,6.533H11.107C11.28,6.533 11.446,6.602 11.569,6.725C11.691,6.847 11.76,7.013 11.76,7.187V11.107C11.76,11.28 11.691,11.446 11.569,11.569C11.446,11.691 11.28,11.76 11.107,11.76H7.187C7.013,11.76 6.847,11.691 6.725,11.569C6.602,11.446 6.533,11.28 6.533,11.107V7.187Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"/>
|
||||||
|
</vector>
|
||||||
20
app/src/main/res/drawable/ic_gear.xml
Normal file
20
app/src/main/res/drawable/ic_gear.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="16" android:viewportWidth="16" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="#6F0D1E" android:pathData="M15.595,7.53C15.642,7.538 15.68,7.585 15.68,7.632V9.614C15.679,9.638 15.67,9.661 15.655,9.68C15.64,9.698 15.619,9.711 15.595,9.716L13.717,10.066C13.691,10.072 13.668,10.084 13.649,10.101C13.629,10.118 13.615,10.14 13.606,10.165L13.019,11.629C13.009,11.653 13.004,11.679 13.006,11.705C13.008,11.731 13.016,11.757 13.03,11.779L14.097,13.333C14.11,13.354 14.115,13.378 14.113,13.402C14.11,13.426 14.1,13.449 14.084,13.467L12.683,14.867C12.665,14.883 12.643,14.893 12.619,14.896C12.595,14.898 12.571,14.892 12.55,14.88L11.023,13.832C11.001,13.818 10.976,13.811 10.95,13.81C10.925,13.809 10.899,13.815 10.877,13.826L10.204,14.186C10.194,14.191 10.183,14.194 10.172,14.195C10.161,14.196 10.149,14.195 10.139,14.191C10.128,14.187 10.119,14.181 10.111,14.173C10.103,14.165 10.097,14.156 10.093,14.145L8.704,10.79C8.696,10.768 8.695,10.743 8.702,10.72C8.71,10.698 8.725,10.678 8.745,10.665L8.913,10.562C8.945,10.542 8.987,10.509 9.02,10.48C9.419,10.225 9.725,9.847 9.892,9.403C10.058,8.96 10.076,8.474 9.943,8.019C9.81,7.564 9.534,7.165 9.154,6.88C8.775,6.596 8.314,6.442 7.84,6.442C7.366,6.442 6.905,6.596 6.526,6.88C6.146,7.165 5.87,7.564 5.737,8.019C5.604,8.474 5.622,8.96 5.788,9.403C5.955,9.847 6.261,10.225 6.66,10.48C6.693,10.51 6.735,10.543 6.767,10.562L6.935,10.665C6.955,10.678 6.97,10.698 6.978,10.72C6.985,10.743 6.984,10.768 6.976,10.79L5.587,14.145C5.583,14.155 5.577,14.165 5.569,14.173C5.561,14.181 5.552,14.187 5.541,14.191C5.531,14.194 5.519,14.196 5.508,14.195C5.497,14.194 5.486,14.191 5.476,14.186L4.803,13.826C4.781,13.815 4.755,13.809 4.73,13.81C4.704,13.811 4.679,13.818 4.657,13.831L3.129,14.88C3.109,14.892 3.085,14.898 3.061,14.896C3.037,14.894 3.014,14.884 2.996,14.867L1.595,13.467C1.579,13.449 1.568,13.426 1.566,13.402C1.564,13.378 1.57,13.354 1.582,13.333L2.649,11.778C2.663,11.756 2.671,11.731 2.673,11.705C2.675,11.679 2.671,11.653 2.66,11.629L2.074,10.165C2.065,10.14 2.05,10.119 2.031,10.102C2.012,10.085 1.988,10.073 1.963,10.066L0.085,9.716C0.061,9.71 0.04,9.698 0.025,9.679C0.009,9.66 0.001,9.637 0,9.613L0,7.632C0,7.585 0.039,7.538 0.085,7.53L2.01,7.172C2.036,7.166 2.06,7.154 2.079,7.137C2.099,7.12 2.115,7.098 2.125,7.074L2.715,5.696C2.725,5.673 2.729,5.647 2.728,5.621C2.726,5.595 2.719,5.57 2.705,5.548L1.584,3.913C1.571,3.892 1.566,3.868 1.568,3.844C1.57,3.82 1.58,3.798 1.596,3.78L2.997,2.378C3.014,2.361 3.037,2.351 3.061,2.349C3.086,2.347 3.11,2.353 3.13,2.366L4.794,3.508C4.833,3.535 4.9,3.54 4.943,3.519L6.278,2.973C6.324,2.958 6.367,2.907 6.376,2.86L6.746,0.869C6.752,0.845 6.765,0.824 6.783,0.809C6.802,0.794 6.825,0.785 6.849,0.783H8.831C8.879,0.783 8.925,0.822 8.934,0.868L9.304,2.86C9.31,2.885 9.322,2.908 9.339,2.928C9.356,2.948 9.378,2.963 9.402,2.973L10.737,3.519C10.761,3.529 10.787,3.534 10.813,3.532C10.839,3.53 10.865,3.522 10.887,3.508L12.55,2.366C12.571,2.353 12.595,2.348 12.619,2.35C12.643,2.352 12.666,2.363 12.683,2.379L14.084,3.78C14.118,3.813 14.123,3.874 14.097,3.913L12.974,5.548C12.961,5.57 12.954,5.595 12.952,5.621C12.95,5.647 12.955,5.673 12.965,5.696L13.555,7.074C13.566,7.098 13.581,7.119 13.601,7.136C13.621,7.153 13.644,7.165 13.67,7.172L15.595,7.53Z"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
25
app/src/main/res/drawable/ic_lock.xml
Normal file
25
app/src/main/res/drawable/ic_lock.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="11dp"
|
||||||
|
android:height="14dp"
|
||||||
|
android:viewportWidth="11"
|
||||||
|
android:viewportHeight="14">
|
||||||
|
<path
|
||||||
|
android:pathData="M1.306,13.716C0.947,13.716 0.64,13.588 0.384,13.333C0.128,13.077 0,12.77 0,12.41V5.878C0,5.519 0.128,5.212 0.384,4.956C0.64,4.701 0.948,4.573 1.306,4.572H1.959V3.266C1.959,2.362 2.278,1.592 2.915,0.956C3.552,0.319 4.322,0 5.225,0C6.128,-0 6.899,0.318 7.536,0.956C8.174,1.593 8.492,2.363 8.491,3.266V4.572H9.144C9.503,4.572 9.811,4.7 10.067,4.956C10.323,5.212 10.451,5.52 10.45,5.878V12.41C10.45,12.769 10.323,13.077 10.067,13.333C9.811,13.589 9.504,13.717 9.144,13.716H1.306ZM1.306,12.41H9.144V5.878H1.306V12.41ZM6.148,10.066C6.404,9.811 6.532,9.504 6.532,9.144C6.532,8.784 6.404,8.477 6.148,8.222C5.893,7.967 5.585,7.839 5.225,7.838C4.866,7.837 4.558,7.965 4.303,8.222C4.048,8.479 3.92,8.786 3.919,9.144C3.918,9.502 4.046,9.81 4.303,10.067C4.56,10.324 4.867,10.452 5.225,10.45C5.583,10.449 5.891,10.32 6.148,10.066ZM3.266,4.572H7.185V3.266C7.185,2.721 6.994,2.259 6.613,1.878C6.232,1.497 5.77,1.306 5.225,1.306C4.681,1.306 4.218,1.497 3.837,1.878C3.456,2.259 3.266,2.721 3.266,3.266V4.572Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"/>
|
||||||
|
</vector>
|
||||||
35
app/src/main/res/drawable/ic_protection_shield.xml
Normal file
35
app/src/main/res/drawable/ic_protection_shield.xml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="16dp"
|
||||||
|
android:height="17dp"
|
||||||
|
android:viewportWidth="16"
|
||||||
|
android:viewportHeight="17">
|
||||||
|
<path
|
||||||
|
android:pathData="M7.922,9.629C8.565,9.629 9.182,9.373 9.637,8.918M7.922,9.629C7.278,9.629 6.661,9.373 6.206,8.918M7.922,9.629V11.449M9.637,8.918C10.092,8.463 10.348,7.846 10.348,7.202M9.637,8.918L10.924,10.205M10.348,7.202C10.348,6.559 10.092,5.942 9.637,5.486M10.348,7.202H12.168M9.637,5.486C9.182,5.031 8.565,4.776 7.922,4.776M9.637,5.486L10.924,4.2M7.922,4.776C7.278,4.776 6.661,5.031 6.206,5.486M7.922,4.776V2.956M6.206,5.486C5.751,5.942 5.495,6.559 5.495,7.202M6.206,5.486L4.919,4.2M5.495,7.202C5.495,7.846 5.751,8.463 6.206,8.918M5.495,7.202H3.675M6.206,8.918L4.919,10.205M7.517,2.956H8.326M10.638,3.913L11.21,4.486M12.168,6.798V7.607M11.21,9.919L10.638,10.491M8.326,11.449H7.517M5.205,10.491L4.633,9.919M3.675,7.607V6.798M4.633,4.486L5.205,3.913"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="1.5"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#6F0D1E"
|
||||||
|
android:strokeLineCap="round"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M1.47,7.798V2.824C1.469,2.636 1.522,2.453 1.623,2.295C1.723,2.137 1.867,2.012 2.037,1.934C3.867,1.135 5.844,0.732 7.84,0.751C9.836,0.732 11.814,1.135 13.643,1.934C13.813,2.012 13.957,2.137 14.057,2.295C14.158,2.453 14.211,2.636 14.21,2.824V7.798C14.21,10.21 13.144,13.551 8.544,15.32C8.091,15.494 7.589,15.494 7.136,15.32C2.534,13.547 1.47,10.231 1.47,7.798Z"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="1.5"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#6F0D1E"
|
||||||
|
android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
||||||
20
app/src/main/res/drawable/ic_settings.xml
Normal file
20
app/src/main/res/drawable/ic_settings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="16" android:viewportWidth="16" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="#6F0D1E" android:pathData="M6.043,14.373L5.782,12.283C5.64,12.228 5.507,12.163 5.382,12.087C5.257,12.01 5.135,11.929 5.014,11.842L3.071,12.658L1.274,9.555L2.956,8.281C2.945,8.205 2.94,8.131 2.94,8.061V7.62C2.94,7.549 2.945,7.475 2.956,7.399L1.274,6.125L3.071,3.022L5.014,3.838C5.134,3.751 5.259,3.67 5.39,3.593C5.521,3.517 5.651,3.452 5.782,3.397L6.043,1.307H9.637L9.898,3.397C10.04,3.452 10.173,3.517 10.299,3.593C10.424,3.67 10.546,3.751 10.666,3.838L12.609,3.022L14.406,6.125L12.724,7.399C12.735,7.475 12.74,7.549 12.74,7.62V8.06C12.74,8.131 12.729,8.205 12.707,8.281L14.39,9.555L12.593,12.658L10.666,11.842C10.546,11.929 10.421,12.01 10.29,12.087C10.159,12.163 10.029,12.228 9.898,12.283L9.637,14.373H6.043ZM7.873,10.127C8.504,10.127 9.043,9.903 9.49,9.457C9.936,9.011 10.159,8.472 10.159,7.84C10.159,7.208 9.936,6.669 9.49,6.223C9.043,5.777 8.504,5.553 7.873,5.553C7.23,5.553 6.688,5.777 6.247,6.223C5.806,6.669 5.586,7.208 5.586,7.84C5.586,8.472 5.807,9.011 6.248,9.457C6.689,9.903 7.23,10.127 7.873,10.127Z"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
24
app/src/main/res/drawable/ic_version.xml
Normal file
24
app/src/main/res/drawable/ic_version.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="12dp"
|
||||||
|
android:height="14dp"
|
||||||
|
android:viewportWidth="12"
|
||||||
|
android:viewportHeight="14">
|
||||||
|
<path
|
||||||
|
android:pathData="M11.212,7.908C11.822,8.309 11.794,9.239 11.127,9.591L6.436,12.071C6.247,12.17 6.038,12.223 5.825,12.223C5.612,12.223 5.402,12.17 5.214,12.071L0.522,9.591C-0.144,9.238 -0.173,8.309 0.438,7.908L0.479,7.934L5.214,10.438C5.402,10.537 5.612,10.589 5.825,10.589C6.038,10.589 6.247,10.537 6.436,10.438L11.127,7.958C11.156,7.942 11.184,7.926 11.212,7.908ZM11.212,5.295C11.346,5.384 11.457,5.505 11.534,5.648C11.61,5.79 11.65,5.95 11.65,6.112C11.65,6.273 11.61,6.433 11.534,6.575C11.457,6.718 11.346,6.839 11.212,6.929L11.127,6.978L6.436,9.458C6.265,9.548 6.077,9.599 5.884,9.608C5.691,9.617 5.498,9.582 5.32,9.508L5.215,9.458L0.522,6.978C-0.144,6.625 -0.173,5.696 0.438,5.295L0.479,5.321L5.214,7.824C5.385,7.915 5.573,7.966 5.766,7.975C5.959,7.983 6.152,7.949 6.33,7.875L6.436,7.824L11.127,5.344C11.156,5.329 11.184,5.312 11.212,5.295ZM6.436,0.152L11.127,2.632C11.824,2.999 11.824,3.997 11.127,4.364L6.436,6.845C6.247,6.945 6.038,6.997 5.825,6.997C5.612,6.997 5.402,6.945 5.214,6.845L0.522,4.364C-0.174,3.996 -0.174,2.999 0.522,2.632L5.214,0.152C5.402,0.052 5.612,0 5.825,0C6.038,0 6.247,0.052 6.436,0.152Z"
|
||||||
|
android:fillColor="#6F0D1E"/>
|
||||||
|
</vector>
|
||||||
46
app/src/main/res/drawable/upside_down_arrows.xml
Normal file
46
app/src/main/res/drawable/upside_down_arrows.xml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<!--
|
||||||
|
~ Copyright (C) 2026 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="16dp"
|
||||||
|
android:height="16dp"
|
||||||
|
android:viewportWidth="16"
|
||||||
|
android:viewportHeight="16">
|
||||||
|
<path
|
||||||
|
android:pathData="M8.067,6.041C7.921,5.894 7.838,5.694 7.838,5.486C7.838,5.279 7.921,5.079 8.067,4.932L10.419,2.581C10.491,2.506 10.578,2.446 10.673,2.405C10.769,2.364 10.872,2.343 10.976,2.342C11.08,2.341 11.183,2.361 11.279,2.4C11.376,2.44 11.463,2.498 11.537,2.571C11.61,2.645 11.669,2.732 11.708,2.829C11.747,2.925 11.767,3.028 11.766,3.132C11.766,3.236 11.744,3.339 11.703,3.435C11.662,3.53 11.602,3.617 11.527,3.689L9.176,6.041C9.029,6.188 8.829,6.27 8.622,6.27C8.414,6.27 8.214,6.188 8.067,6.041Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M13.878,6.041C13.731,6.188 13.532,6.27 13.324,6.27C13.116,6.27 12.917,6.188 12.77,6.041L10.419,3.689C10.276,3.541 10.197,3.343 10.199,3.138C10.201,2.932 10.283,2.736 10.428,2.591C10.574,2.445 10.77,2.363 10.976,2.361C11.181,2.359 11.379,2.438 11.527,2.581L13.878,4.932C14.025,5.079 14.108,5.279 14.108,5.487C14.108,5.694 14.025,5.894 13.878,6.041Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M10.973,3.919C11.181,3.919 11.38,4.002 11.527,4.149C11.674,4.295 11.757,4.495 11.757,4.703V10.973C11.757,11.181 11.674,11.38 11.527,11.527C11.38,11.674 11.181,11.757 10.973,11.757C10.765,11.757 10.566,11.674 10.419,11.527C10.272,11.38 10.189,11.181 10.189,10.973V4.703C10.189,4.495 10.272,4.295 10.419,4.149C10.566,4.002 10.765,3.919 10.973,3.919ZM7.608,9.635C7.755,9.782 7.838,9.981 7.838,10.189C7.838,10.397 7.755,10.596 7.608,10.743L5.257,13.095C5.109,13.238 4.911,13.316 4.706,13.315C4.5,13.313 4.303,13.231 4.158,13.085C4.013,12.94 3.93,12.743 3.929,12.538C3.927,12.332 4.006,12.134 4.149,11.986L6.5,9.635C6.647,9.488 6.846,9.406 7.054,9.406C7.262,9.406 7.461,9.488 7.608,9.635Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M1.797,9.635C1.944,9.488 2.144,9.406 2.351,9.406C2.559,9.406 2.759,9.488 2.905,9.635L5.257,11.986C5.332,12.059 5.391,12.145 5.432,12.241C5.474,12.336 5.495,12.439 5.496,12.543C5.497,12.647 5.477,12.751 5.438,12.847C5.398,12.943 5.34,13.031 5.267,13.104C5.193,13.178 5.105,13.236 5.009,13.276C4.913,13.315 4.81,13.335 4.706,13.334C4.601,13.333 4.499,13.311 4.403,13.27C4.307,13.229 4.221,13.17 4.149,13.095L1.797,10.743C1.65,10.596 1.568,10.397 1.568,10.189C1.568,9.981 1.65,9.782 1.797,9.635Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M4.703,11.757C4.495,11.757 4.295,11.674 4.149,11.527C4.002,11.38 3.919,11.181 3.919,10.973V4.703C3.919,4.495 4.002,4.295 4.149,4.149C4.295,4.002 4.495,3.919 4.703,3.919C4.911,3.919 5.11,4.002 5.257,4.149C5.404,4.295 5.487,4.495 5.487,4.703V10.973C5.487,11.181 5.404,11.38 5.257,11.527C5.11,11.674 4.911,11.757 4.703,11.757Z"
|
||||||
|
android:fillColor="#6F0D1E"
|
||||||
|
android:fillAlpha="0.8"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
</vector>
|
||||||
@ -58,7 +58,7 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
def lottieVersion = "3.5.0"
|
def lottieVersion = "3.5.0"
|
||||||
def roomVersion = "2.4.3"
|
def roomVersion = "2.8.4"
|
||||||
|
|
||||||
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user