feat: enhance UI, branding assets, onboarding flow, and screen layouts
@@ -6,7 +6,10 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = "in.nearle.krow.krow_worker_app"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
// Pinned above flutter.compileSdkVersion because permission_handler_android
|
||||
// compiles against 37 and AAR metadata requires anything depending on it to
|
||||
// do the same. Drop this back once Flutter's default reaches 37.
|
||||
compileSdk = 37
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
|
||||
@@ -1,4 +1,24 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Clock-in is gated on being at the venue, so the app asks for location
|
||||
only while it is in use. It never tracks in the background. -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
|
||||
<!-- Shift offers, clock-in reminders and pay alerts. Runtime-requested
|
||||
from Android 13; older versions grant it at install. -->
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
||||
<!-- Photographing attire and documents. -->
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
<!-- Choosing an existing photo instead. READ_MEDIA_IMAGES is the Android
|
||||
13+ replacement for READ_EXTERNAL_STORAGE, which is capped below it. -->
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission
|
||||
android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="32" />
|
||||
|
||||
<application
|
||||
android:label="krow_worker_app"
|
||||
android:name="${applicationName}"
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<!-- See drawable/launch_background.xml. Brand blue in dark mode too, since the
|
||||
app's splash is always the blue immersive screen. -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
<item android:drawable="@color/krow_blue" />
|
||||
</layer-list>
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<!-- Launch screen for Android 11 and below: brand blue, no image. The app's
|
||||
own splash draws the KROW wordmark on the same colour, so there is no
|
||||
white flash and nothing jumps between the two. -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
<item android:drawable="@color/krow_blue" />
|
||||
</layer-list>
|
||||
|
||||
8
android/app/src/main/res/drawable/splash_icon_none.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- A deliberately empty splash icon. Android 12 and above always draws an
|
||||
icon on the system splash screen, defaulting to the launcher icon; pointing
|
||||
it at nothing is how you get a plain screen instead. -->
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
11
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Adaptive icon for Android 8 and above: the launcher masks the foreground
|
||||
to whatever shape the device uses (circle, squircle, teardrop), so the
|
||||
wordmark is drawn inside the guaranteed-visible middle of the canvas and
|
||||
the brand blue fills the rest. -->
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/icon_background" />
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
<!-- Themed icons on Android 13+ recolour this silhouette. -->
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 2.2 KiB |
BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 1.3 KiB |
BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 3.3 KiB |
BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
15
android/app/src/main/res/values-night-v31/styles.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Same as values-v31, for devices in dark mode. The splash is brand blue
|
||||
either way, because the app's own splash always is. -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<item name="android:windowSplashScreenBackground">@color/krow_blue</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">
|
||||
@drawable/splash_icon_none
|
||||
</item>
|
||||
</style>
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
16
android/app/src/main/res/values-v31/styles.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Android 12 and above ignore windowBackground for the launch screen and
|
||||
use the system splash screen API instead, which shows the launcher icon
|
||||
by default. These two items replace that with plain brand blue. -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<item name="android:windowSplashScreenBackground">@color/krow_blue</item>
|
||||
<item name="android:windowSplashScreenAnimatedIcon">
|
||||
@drawable/splash_icon_none
|
||||
</item>
|
||||
</style>
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
11
android/app/src/main/res/values/colors.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- 286CP, the brand blue. Matches KrowPalette.blue so the native launch
|
||||
screen and the app's own splash are the same colour and the handover
|
||||
is invisible. -->
|
||||
<color name="krow_blue">#3752A8</color>
|
||||
|
||||
<!-- The launcher icon's ground. Separate from the splash colour on
|
||||
purpose: the icon is a blue mark on white, the splash is brand blue. -->
|
||||
<color name="icon_background">#FFFFFF</color>
|
||||
</resources>
|
||||