Android build v1.1.41

This commit is contained in:
Warren H
2026-07-10 00:01:17 -04:00
parent e9ee7bcd70
commit 1f633e5aaa
6 changed files with 48 additions and 9 deletions
Binary file not shown.
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "com.warren.iwanttoheal" applicationId "com.warren.iwanttoheal"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 121 versionCode 122
versionName "1.1.40" versionName "1.1.41"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions { aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
+30
View File
@@ -1437,6 +1437,36 @@
} }
@media (max-width: 1000px) and (max-height: 620px) { @media (max-width: 1000px) and (max-height: 620px) {
.pause-screen.iwt2-arena-overlay {
padding: 10px;
}
.pause-screen.iwt2-arena-overlay > .iwt2-result-panel {
gap: 8px;
max-height: calc(100dvh - 20px);
max-width: 460px;
min-width: min(460px, calc(100vw - 20px));
padding: 12px 14px;
}
.iwt2-result-panel .iwt2-result-crest {
display: none;
}
.iwt2-result-panel h1 {
font-size: 1.35rem;
}
.iwt2-result-summary {
gap: 6px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.iwt2-result-summary span {
min-height: 42px;
padding: 6px;
}
.iwt2-arena-layout { .iwt2-arena-layout {
grid-template-columns: 154px minmax(0, 1fr); grid-template-columns: 154px minmax(0, 1fr);
} }
+5 -3
View File
@@ -84,7 +84,9 @@ export function AuthScreen({ onContinue }: Props) {
const result = await loadIwt2OnlineSave() const result = await loadIwt2OnlineSave()
if (cancelled()) return if (cancelled()) return
setOnlineSave(result.save) setOnlineSave(result.save)
setMessage(result.save ? 'Online save ready. Choose its local destination slot.' : 'Account has no online IWT2 save yet.') setMessage(result.save
? 'Online save ready. Load it below, or continue a local slot and upload it from Cloud Backup.'
: 'No online save yet. Continue a local slot, then use Cloud Backup to upload it.')
setMessageIsError(false) setMessageIsError(false)
} catch (reason) { } catch (reason) {
if (cancelled()) return if (cancelled()) return
@@ -127,7 +129,7 @@ export function AuthScreen({ onContinue }: Props) {
if (!save) return if (!save) return
selectActiveIwt2SaveSlot(slot) selectActiveIwt2SaveSlot(slot)
selectOfflineMode() selectOfflineMode()
onContinue({ localSlot: slot, save, onlineBackupsAvailable: false }) onContinue({ localSlot: slot, save, onlineBackupsAvailable: Boolean(account) })
} }
function openCharacterEditor(slot: Iwt2LocalSaveSlot) { function openCharacterEditor(slot: Iwt2LocalSaveSlot) {
@@ -151,7 +153,7 @@ export function AuthScreen({ onContinue }: Props) {
replaceIwt2Save(save, slot) replaceIwt2Save(save, slot)
selectActiveIwt2SaveSlot(slot) selectActiveIwt2SaveSlot(slot)
selectOfflineMode() selectOfflineMode()
onContinue({ localSlot: slot, save, onlineBackupsAvailable: false }) onContinue({ localSlot: slot, save, onlineBackupsAvailable: Boolean(account) })
} }
async function signIn(event: React.FormEvent) { async function signIn(event: React.FormEvent) {
+7 -2
View File
@@ -59,10 +59,14 @@ type OverlayNavEntry = {
column: number column: number
} }
const DEFAULT_OVERLAY_NAV_ENTRIES: OverlayNavEntry[] = [ const PAUSE_OVERLAY_NAV_ENTRIES: OverlayNavEntry[] = [
{ action: 'primary', row: 0, column: 0 }, { action: 'primary', row: 0, column: 0 },
{ action: 'menu', row: 1, column: 0 }, { action: 'menu', row: 1, column: 0 },
] ]
const RESULT_OVERLAY_NAV_ENTRIES: OverlayNavEntry[] = [
{ action: 'primary', row: 0, column: 0 },
{ action: 'menu', row: 0, column: 1 },
]
const PVP_RESULT_OVERLAY_NAV_ENTRIES: OverlayNavEntry[] = [ const PVP_RESULT_OVERLAY_NAV_ENTRIES: OverlayNavEntry[] = [
{ action: 'primary', row: 0, column: 0 }, { action: 'primary', row: 0, column: 0 },
{ action: 'requeue', row: 0, column: 1 }, { action: 'requeue', row: 0, column: 1 },
@@ -693,8 +697,9 @@ function rewardDifficultySlugForKill(
} }
function overlayNavEntriesFor(status: ArenaStatus, pvpRoguelike: boolean): OverlayNavEntry[] { function overlayNavEntriesFor(status: ArenaStatus, pvpRoguelike: boolean): OverlayNavEntry[] {
if (status === 'paused') return PAUSE_OVERLAY_NAV_ENTRIES
if (pvpRoguelike && (status === 'victory' || status === 'defeat')) return PVP_RESULT_OVERLAY_NAV_ENTRIES if (pvpRoguelike && (status === 'victory' || status === 'defeat')) return PVP_RESULT_OVERLAY_NAV_ENTRIES
return DEFAULT_OVERLAY_NAV_ENTRIES return RESULT_OVERLAY_NAV_ENTRIES
} }
function formatBossEncounterTitle(bosses: Iwt2ArenaState['bosses']): string { function formatBossEncounterTitle(bosses: Iwt2ArenaState['bosses']): string {
+4 -2
View File
@@ -1886,7 +1886,9 @@ export function Iwt2CloudSaveScreen({
const [onlineSave, setOnlineSave] = useState<Iwt2Save | null>(null) const [onlineSave, setOnlineSave] = useState<Iwt2Save | null>(null)
const [syncingOnlineSave, setSyncingOnlineSave] = useState(false) const [syncingOnlineSave, setSyncingOnlineSave] = useState(false)
const [message, setMessage] = useState('') const [message, setMessage] = useState('')
const statusMessage = message || (!onlineBackupsAvailable ? 'Online save unavailable in offline mode.' : '') const statusMessage = message || (!onlineBackupsAvailable
? 'Sign in at character select to upload or download this local save.'
: '')
const checkOnlineSave = useCallback(async (isCancelled: () => boolean) => { const checkOnlineSave = useCallback(async (isCancelled: () => boolean) => {
setSyncingOnlineSave(true) setSyncingOnlineSave(true)
@@ -1923,7 +1925,7 @@ export function Iwt2CloudSaveScreen({
const handleUseLocalSave = useCallback(async () => { const handleUseLocalSave = useCallback(async () => {
if (!onlineBackupsAvailable) { if (!onlineBackupsAvailable) {
setMessage('Using local save. Sign in online to update the server copy.') setMessage('Using local save. Sign in at character select to update the server copy.')
return return
} }
setSyncingOnlineSave(true) setSyncingOnlineSave(true)