Sync my-releases with v2rayNG master (v2.3.9) - #26
Conversation
Pass the optional failure message from the service layer through `MainServiceEvent` and show it in `MainViewModel` when available. This preserves the existing generic error toast as a fallback while surfacing more specific startup failures to the user.
Increase toast background opacity from 70% to 85% for all theme variants in Theme.kt. This improves readability and keeps toast notifications visually consistent without changing their content or behavior.
Co-authored-by: patterniha <71074308+patterniha@users.noreply.github.com>
|
@copilot |
Re-verified every change independently. I'm confident — with one caveat at the end. Method: instead of trusting the merge, I recomputed it. File-by-file:
PattNG features intact: Aether protocol + Hygiene: no conflict markers remain; Caveat (unchanged from PR notes): I could not run a Gradle compile — |
Syncs the
my-releasesbranch with 2dust/v2rayNGmaster(v2.3.9), merging 6 upstream commits while preserving all PattNG-specific customizations. Resolved as a true two-parent merge (99f19bbeb) plus a resolution commit (6354fe2cb).Upstream changes merged
MmkvManagerMainBottomBarcompose/ThemeConflicts resolved (PattNG customization kept, upstream behavior adopted)
build.gradle.kts— adopted upstreamversionCode 749/2.3.9, kept thepattngVersionproperty override:MainServiceEvent.kt— took upstream's nullableStateStartFailure(val message: String? = null); kept PattNG'sStateConnectingevent.MainRepository.kt— passes the nullable content through for start-failure; kept theMSG_STATE_CONNECTINGmapping.MainViewModel.kt— switched to upstream'sisNullOrBlankfailure-message handling; kept the PattNG comment documenting that the daemon only attaches localized resource strings (Aether core) as the reason.Preserved PattNG behavior
ServerAetherActivity(includingopen validateBasicConfig)StateConnectingUI state (not present upstream)Notes
MmkvManager.kt,Theme.kt,MainActivity.kt,MainBottomBar.kt,CheckUpdateViewModel.kt) merged cleanly.git diff --checkis clean and no conflict markers remain. A local Gradle build could not be run in this environment (dl.google.comis unreachable from the sandbox), so a compile/device check is Not run and should be verified before release.