Skip to content

Commit 3f8a140

Browse files
authored
Merge pull request #23 from CodePandaaAI/refactor
Refresh sharing UI and establish Sync360’s blue identity for v0.5.2
2 parents e5cbbae + 3ddb975 commit 3f8a140

12 files changed

Lines changed: 162 additions & 226 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

77
## [Unreleased]
88

9+
## [0.5.2] - 2026-09-19
10+
11+
### Changed
12+
13+
- Replace the olive-green theme with a blue-violet palette across light and dark modes, and use the Sync360 palette consistently on Android instead of substituting system dynamic colors.
14+
- Refine discovery and file-selection colors so primary icons remain crisp on neutral surfaces in both light and dark themes.
15+
- Use consistent outlined, fixed-height file-picker actions across Android, iOS, and Desktop.
16+
- Prepare Android, Desktop, and iOS version metadata as `0.5.2`; Android and iOS build numbers are `9`.
17+
18+
Release preparation only: new package builds and device validation have not been recorded in this task.
19+
920
## [0.5.1] - 2026-09-09
1021

1122
### Changed

‎androidApp/build.gradle.kts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ android {
3636
applicationId = "com.liftley.sync360"
3737
minSdk = libs.versions.android.minSdk.get().toInt()
3838
targetSdk = libs.versions.android.targetSdk.get().toInt()
39-
versionCode = 8
40-
versionName = "0.5.1"
39+
versionCode = 9
40+
versionName = "0.5.2"
4141
}
4242

4343
buildFeatures {

‎androidApp/src/main/kotlin/com/liftley/sync360/MainActivity.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MainActivity : ComponentActivity() {
1111
enableEdgeToEdge()
1212
super.onCreate(savedInstanceState)
1313
setContent {
14-
Sync360Theme(dynamicColor = true) {
14+
Sync360Theme {
1515
Sync360Root()
1616
}
1717
}

‎desktopApp/build.gradle.kts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ compose.desktop {
3737
nativeDistributions {
3838
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
3939
packageName = "Sync360"
40-
packageVersion = "0.5.1"
40+
packageVersion = "0.5.2"
4141
appResourcesRootDir.set(
4242
project.layout.projectDirectory.dir("packaging/app-resources")
4343
)

‎desktopApp/src/main/kotlin/com/liftley/sync360/main.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ fun main() {
2323
icon = painterResource(Res.drawable.app_icon)
2424
) {
2525
Sync360Theme(
26-
darkTheme = false,
27-
dynamicColor = false
26+
dynamicColor = false,
27+
darkTheme = false
2828
) {
2929
Sync360Root()
3030
}

‎docs/DEVELOPMENT.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ The Desktop `hotRun` task is configured to use a Java 23 toolchain when it is a
5858

5959
## Preparing public packages
6060

61-
The current package version is `0.5.1`.
61+
The current package version is `0.5.2`.
6262

6363
Android release APKs must use the maintainer's permanent private signing key. Copy `keystore.properties.example` to the ignored `keystore.properties` file and set:
6464

@@ -156,8 +156,8 @@ Automated coverage is still minimal. Add focused tests for pure Kotlin logic whe
156156

157157
There is no stable release yet. Treat current builds as development software.
158158

159-
## 0.5.1 UI validation
159+
## 0.5.2 UI validation
160160

161161
Before publishing the final packages, check the grouped Nearby devices header, rows, and footer with zero, one, and multiple devices. Check discovery off, scanning, and failure/retry states; light and dark themes; compact and wide windows; and the intentionally limited empty-state text at larger font sizes. Check media/document selection and adding more files. The shared default surface shape changed, so inspect other screens that use its default corners too.
162162

163-
Build and device validation for 0.5.1 have not been recorded in this preparation task.
163+
Build and device validation for 0.5.2 have not been recorded in this preparation task.

‎iosApp/Configuration/Config.xcconfig‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ TEAM_ID=
33
PRODUCT_NAME=Sync360
44
PRODUCT_BUNDLE_IDENTIFIER=com.liftley.sync360.Sync360$(TEAM_ID)
55

6-
CURRENT_PROJECT_VERSION=8
7-
MARKETING_VERSION=0.5.1
6+
CURRENT_PROJECT_VERSION=9
7+
MARKETING_VERSION=0.5.2

‎shared/src/commonMain/kotlin/com/liftley/sync360/core/designsystem/Color.kt‎

Lines changed: 56 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,74 @@ package com.liftley.sync360.core.designsystem
22

33
import androidx.compose.ui.graphics.Color
44

5-
val primaryLight = Color(0xFF4C662B)
5+
val primaryLight = Color(0xFF2346D5)
66
val onPrimaryLight = Color(0xFFFFFFFF)
7-
val primaryContainerLight = Color(0xFFCDEDA3)
8-
val onPrimaryContainerLight = Color(0xFF354E16)
9-
val secondaryLight = Color(0xFF586249)
7+
val primaryContainerLight = Color(0xFF4361EE)
8+
val onPrimaryContainerLight = Color(0xFFF4F2FF)
9+
val secondaryLight = Color(0xFF4F5A95)
1010
val onSecondaryLight = Color(0xFFFFFFFF)
11-
val secondaryContainerLight = Color(0xFFDCE7C8)
12-
val onSecondaryContainerLight = Color(0xFF404A33)
13-
val tertiaryLight = Color(0xFF386663)
11+
val secondaryContainerLight = Color(0xFFB2BDFF)
12+
val onSecondaryContainerLight = Color(0xFF404B85)
13+
val tertiaryLight = Color(0xFF8E239F)
1414
val onTertiaryLight = Color(0xFFFFFFFF)
15-
val tertiaryContainerLight = Color(0xFFBCECE7)
16-
val onTertiaryContainerLight = Color(0xFF1F4E4B)
15+
val tertiaryContainerLight = Color(0xFFAA41BA)
16+
val onTertiaryContainerLight = Color(0xFFFFEFFB)
1717
val errorLight = Color(0xFFBA1A1A)
1818
val onErrorLight = Color(0xFFFFFFFF)
1919
val errorContainerLight = Color(0xFFFFDAD6)
2020
val onErrorContainerLight = Color(0xFF93000A)
21-
val backgroundLight = Color(0xFFF9FAEF)
22-
val onBackgroundLight = Color(0xFF1A1C16)
23-
val surfaceLight = Color(0xFFF9FAEF)
24-
val onSurfaceLight = Color(0xFF1A1C16)
25-
val surfaceVariantLight = Color(0xFFE1E4D5)
26-
val onSurfaceVariantLight = Color(0xFF44483D)
27-
val outlineLight = Color(0xFF75796C)
28-
val outlineVariantLight = Color(0xFFC5C8BA)
21+
val backgroundLight = Color(0xFFFBF8FF)
22+
val onBackgroundLight = Color(0xFF1A1B23)
23+
val surfaceLight = Color(0xFFFBF8FF)
24+
val onSurfaceLight = Color(0xFF1A1B23)
25+
val surfaceVariantLight = Color(0xFFE1E1F4)
26+
val onSurfaceVariantLight = Color(0xFF444655)
27+
val outlineLight = Color(0xFF747686)
28+
val outlineVariantLight = Color(0xFFC4C5D7)
2929
val scrimLight = Color(0xFF000000)
30-
val inverseSurfaceLight = Color(0xFF2F312A)
31-
val inverseOnSurfaceLight = Color(0xFFF1F2E6)
32-
val inversePrimaryLight = Color(0xFFB1D18A)
33-
val surfaceDimLight = Color(0xFFDADBD0)
34-
val surfaceBrightLight = Color(0xFFF9FAEF)
30+
val inverseSurfaceLight = Color(0xFF2F3039)
31+
val inverseOnSurfaceLight = Color(0xFFF1EFFC)
32+
val inversePrimaryLight = Color(0xFFBAC3FF)
33+
val surfaceDimLight = Color(0xFFDAD9E5)
34+
val surfaceBrightLight = Color(0xFFFBF8FF)
3535
val surfaceContainerLowestLight = Color(0xFFFFFFFF)
36-
val surfaceContainerLowLight = Color(0xFFF3F4E9)
37-
val surfaceContainerLight = Color(0xFFEEEFE3)
38-
val surfaceContainerHighLight = Color(0xFFE8E9DE)
39-
val surfaceContainerHighestLight = Color(0xFFE2E3D8)
36+
val surfaceContainerLowLight = Color(0xFFF4F2FE)
37+
val surfaceContainerLight = Color(0xFFEEEDF9)
38+
val surfaceContainerHighLight = Color(0xFFE8E7F3)
39+
val surfaceContainerHighestLight = Color(0xFFE2E1ED)
4040

41-
42-
val primaryDark = Color(0xFFB1D18A)
43-
val onPrimaryDark = Color(0xFF1F3701)
44-
val primaryContainerDark = Color(0xFF354E16)
45-
val onPrimaryContainerDark = Color(0xFFCDEDA3)
46-
val secondaryDark = Color(0xFFBFCBAD)
47-
val onSecondaryDark = Color(0xFF2A331E)
48-
val secondaryContainerDark = Color(0xFF404A33)
49-
val onSecondaryContainerDark = Color(0xFFDCE7C8)
50-
val tertiaryDark = Color(0xFFA0D0CB)
51-
val onTertiaryDark = Color(0xFF003735)
52-
val tertiaryContainerDark = Color(0xFF1F4E4B)
53-
val onTertiaryContainerDark = Color(0xFFBCECE7)
41+
val primaryDark = Color(0xFFBAC3FF)
42+
val onPrimaryDark = Color(0xFF00218D)
43+
val primaryContainerDark = Color(0xFF4361EE)
44+
val onPrimaryContainerDark = Color(0xFFF4F2FF)
45+
val secondaryDark = Color(0xFFBAC3FF)
46+
val onSecondaryDark = Color(0xFF202C64)
47+
val secondaryContainerDark = Color(0xFF3A457E)
48+
val onSecondaryContainerDark = Color(0xFFAAB5F6)
49+
val tertiaryDark = Color(0xFFFAABFF)
50+
val onTertiaryDark = Color(0xFF570066)
51+
val tertiaryContainerDark = Color(0xFFAA41BA)
52+
val onTertiaryContainerDark = Color(0xFFFFEFFB)
5453
val errorDark = Color(0xFFFFB4AB)
5554
val onErrorDark = Color(0xFF690005)
5655
val errorContainerDark = Color(0xFF93000A)
5756
val onErrorContainerDark = Color(0xFFFFDAD6)
58-
val backgroundDark = Color(0xFF12140E)
59-
val onBackgroundDark = Color(0xFFE2E3D8)
60-
val surfaceDark = Color(0xFF12140E)
61-
val onSurfaceDark = Color(0xFFE2E3D8)
62-
val surfaceVariantDark = Color(0xFF44483D)
63-
val onSurfaceVariantDark = Color(0xFFC5C8BA)
64-
val outlineDark = Color(0xFF8F9285)
65-
val outlineVariantDark = Color(0xFF44483D)
57+
val backgroundDark = Color(0xFF12131B)
58+
val onBackgroundDark = Color(0xFFE2E1ED)
59+
val surfaceDark = Color(0xFF12131B)
60+
val onSurfaceDark = Color(0xFFE2E1ED)
61+
val surfaceVariantDark = Color(0xFF444655)
62+
val onSurfaceVariantDark = Color(0xFFC4C5D7)
63+
val outlineDark = Color(0xFF8E8FA1)
64+
val outlineVariantDark = Color(0xFF444655)
6665
val scrimDark = Color(0xFF000000)
67-
val inverseSurfaceDark = Color(0xFFE2E3D8)
68-
val inverseOnSurfaceDark = Color(0xFF2F312A)
69-
val inversePrimaryDark = Color(0xFF4C662B)
70-
val surfaceDimDark = Color(0xFF12140E)
71-
val surfaceBrightDark = Color(0xFF383A32)
72-
val surfaceContainerLowestDark = Color(0xFF0C0F09)
73-
val surfaceContainerLowDark = Color(0xFF1A1C16)
74-
val surfaceContainerDark = Color(0xFF1E201A)
75-
val surfaceContainerHighDark = Color(0xFF282B24)
76-
val surfaceContainerHighestDark = Color(0xFF33362E)
66+
val inverseSurfaceDark = Color(0xFFE2E1ED)
67+
val inverseOnSurfaceDark = Color(0xFF2F3039)
68+
val inversePrimaryDark = Color(0xFF2E4EDC)
69+
val surfaceDimDark = Color(0xFF12131B)
70+
val surfaceBrightDark = Color(0xFF383942)
71+
val surfaceContainerLowestDark = Color(0xFF0C0E16)
72+
val surfaceContainerLowDark = Color(0xFF1A1B23)
73+
val surfaceContainerDark = Color(0xFF1E1F28)
74+
val surfaceContainerHighDark = Color(0xFF282932)
75+
val surfaceContainerHighestDark = Color(0xFF33343D)

‎shared/src/commonMain/kotlin/com/liftley/sync360/domain/service/NetworkServices.kt‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,5 @@ interface NetworkServices {
1212

1313
suspend fun startDiscoveryAndAdvertising(httpServerPort: Int, fileTransferPort: Int)
1414

15-
/** Stops discovery and advertising, not transfer listeners. */
1615
suspend fun stopDiscoveryAndAdvertising()
1716
}

0 commit comments

Comments
 (0)