Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f4635967c7 | |||
| 41ab2f21a4 |
@@ -1,7 +1,13 @@
|
||||
<div align="center">
|
||||
|
||||
<img src="docs/logo.png" alt="VIGIL" width="96" height="96" />
|
||||
|
||||
# VIGIL
|
||||
|
||||
**What's been following you?**
|
||||
|
||||
</div>
|
||||
|
||||
A native Android (Kotlin) app that watches for personal item-trackers — Apple
|
||||
AirTags, Tile, Samsung Galaxy SmartTags, and Google Find My Device / DULT tags —
|
||||
that are **travelling with you over time**. It is the temporal counterpart to
|
||||
|
||||
@@ -13,8 +13,8 @@ android {
|
||||
applicationId = "org.soulstone.vigil"
|
||||
minSdk = 26
|
||||
targetSdk = 35
|
||||
versionCode = 6
|
||||
versionName = "0.1.5"
|
||||
versionCode = 8
|
||||
versionName = "0.1.7"
|
||||
}
|
||||
|
||||
// Fixed debug keystore committed to the repo (a debug key is non-secret — its
|
||||
|
||||
@@ -9,7 +9,9 @@ import androidx.compose.material3.FilledTonalButton
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.graphics.lerp
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import org.soulstone.vigil.service.ScanService
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
@@ -70,6 +72,7 @@ import org.soulstone.vigil.BuildConfig
|
||||
import org.soulstone.vigil.data.db.TrackerEntity
|
||||
import org.soulstone.vigil.model.Sensitivity
|
||||
import org.soulstone.vigil.model.TrackerEcosystem
|
||||
import org.soulstone.vigil.R
|
||||
import org.soulstone.vigil.model.TrackerStatus
|
||||
import org.soulstone.vigil.ui.theme.VigilGreen
|
||||
import org.soulstone.vigil.ui.theme.VigilPeach
|
||||
@@ -106,7 +109,11 @@ fun MainScreen(
|
||||
TopAppBar(
|
||||
title = {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Icon(Icons.Filled.Shield, null, tint = MaterialTheme.colorScheme.primary)
|
||||
Image(
|
||||
painterResource(R.drawable.vigil_logo),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(26.dp)
|
||||
)
|
||||
Spacer(Modifier.size(8.dp))
|
||||
Text("VIGIL", fontWeight = FontWeight.Bold)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Mocha radial ground: a subtle lift toward the top-centre, falling to crust. -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path android:pathData="M0,0h108v108h-108z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:type="radial"
|
||||
android:centerX="54"
|
||||
android:centerY="42"
|
||||
android:gradientRadius="82"
|
||||
android:startColor="#2A2A40"
|
||||
android:endColor="#11111B" />
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
||||
@@ -1,13 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- VIGIL "Radar Eye" — a watchful eye whose iris is a radar target. Content sits
|
||||
within the adaptive-icon safe zone (centre ~66dp of the 108dp canvas). -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<!-- eye outline -->
|
||||
<path
|
||||
android:fillColor="#1FAA59"
|
||||
android:pathData="M54,30 m-18,0 a18,18 0 1,0 36,0 a18,18 0 1,0 -36,0" />
|
||||
android:pathData="M26,54 Q54,30 82,54 Q54,78 26,54 Z"
|
||||
android:strokeColor="#89B4FA"
|
||||
android:strokeWidth="4.5"
|
||||
android:strokeLineJoin="round"
|
||||
android:fillColor="#00000000" />
|
||||
<!-- radar iris — outer ring -->
|
||||
<path
|
||||
android:fillColor="#F4F6FA"
|
||||
android:pathData="M54,30 m-6,0 a6,6 0 1,0 12,0 a6,6 0 1,0 -12,0" />
|
||||
android:pathData="M54,54 m-11,0 a11,11 0 1,0 22,0 a11,11 0 1,0 -22,0"
|
||||
android:strokeColor="#89B4FA"
|
||||
android:strokeWidth="3.2"
|
||||
android:fillColor="#00000000" />
|
||||
<!-- radar iris — inner ring -->
|
||||
<path
|
||||
android:pathData="M54,54 m-6.5,0 a6.5,6.5 0 1,0 13,0 a6.5,6.5 0 1,0 -13,0"
|
||||
android:strokeColor="#B4BEFE"
|
||||
android:strokeWidth="2.8"
|
||||
android:fillColor="#00000000" />
|
||||
<!-- centre contact (the detected device) -->
|
||||
<path
|
||||
android:pathData="M54,54 m-3.2,0 a3.2,3.2 0 1,0 6.4,0 a3.2,3.2 0 1,0 -6.4,0"
|
||||
android:fillColor="#A6E3A1" />
|
||||
</vector>
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- VIGIL wordmark glyph (Radar Eye), tight-cropped for in-app use (top bar). -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
android:height="48dp"
|
||||
android:viewportWidth="48"
|
||||
android:viewportHeight="48">
|
||||
<path
|
||||
android:pathData="M4,24 Q24,8 44,24 Q24,40 4,24 Z"
|
||||
android:strokeColor="#89B4FA"
|
||||
android:strokeWidth="3"
|
||||
android:strokeLineJoin="round"
|
||||
android:fillColor="#00000000" />
|
||||
<path
|
||||
android:pathData="M24,24 m-7.5,0 a7.5,7.5 0 1,0 15,0 a7.5,7.5 0 1,0 -15,0"
|
||||
android:strokeColor="#89B4FA"
|
||||
android:strokeWidth="2.4"
|
||||
android:fillColor="#00000000" />
|
||||
<path
|
||||
android:pathData="M24,24 m-4.4,0 a4.4,4.4 0 1,0 8.8,0 a4.4,4.4 0 1,0 -8.8,0"
|
||||
android:strokeColor="#B4BEFE"
|
||||
android:strokeWidth="2"
|
||||
android:fillColor="#00000000" />
|
||||
<path
|
||||
android:pathData="M24,24 m-2.2,0 a2.2,2.2 0 1,0 4.4,0 a2.2,2.2 0 1,0 -4.4,0"
|
||||
android:fillColor="#A6E3A1" />
|
||||
</vector>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/bg_dark" />
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/bg_dark" />
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 108 108" width="108" height="108" role="img" aria-label="VIGIL">
|
||||
<defs>
|
||||
<radialGradient id="bg" cx="50%" cy="36%" r="78%">
|
||||
<stop offset="0" stop-color="#2a2a40"/>
|
||||
<stop offset="1" stop-color="#11111b"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<rect x="4" y="4" width="100" height="100" rx="26" fill="url(#bg)" stroke="#313244"/>
|
||||
<path d="M26 54 Q54 30 82 54 Q54 78 26 54 Z" fill="none" stroke="#89b4fa" stroke-width="4.5" stroke-linejoin="round"/>
|
||||
<circle cx="54" cy="54" r="11" fill="none" stroke="#89b4fa" stroke-width="3.2"/>
|
||||
<circle cx="54" cy="54" r="6.5" fill="none" stroke="#b4befe" stroke-width="2.8"/>
|
||||
<circle cx="54" cy="54" r="3.2" fill="#a6e3a1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 740 B |
Reference in New Issue
Block a user