feat: enhance UI, branding assets, onboarding flow, and screen layouts

This commit is contained in:
R-Bharathraj
2026-09-18 15:23:30 +05:30
parent cafffd27e0
commit 5122eebc11
68 changed files with 1661 additions and 470 deletions

View File

@@ -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 {

View File

@@ -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}"

View File

@@ -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>

View File

@@ -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>

View 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>

View 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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View 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>

View 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>

View 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>