Compare commits

...

2 Commits

Author SHA1 Message Date
Warren H 5aac39c6c9 Android build v1.0.42 2026-06-20 20:49:46 -04:00
Warren H 224249e372 Android build v1.0.41 2026-06-20 20:42:10 -04:00
5 changed files with 39 additions and 39 deletions
Binary file not shown.
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 60 versionCode 62
versionName "1.0.40" versionName "1.0.42"
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.
+29 -23
View File
@@ -1795,6 +1795,23 @@ h2 {
font-size: 14px; font-size: 14px;
} }
.run-title-row {
align-items: center;
display: flex;
gap: 10px;
justify-content: space-between;
}
.run-title-row h2 {
min-width: 0;
}
.inline-back-button {
flex: 0 0 auto;
min-height: 34px;
padding: 6px 10px;
}
.run-setup-heading small { .run-setup-heading small {
color: var(--muted); color: var(--muted);
font-size: 16px; font-size: 16px;
@@ -2044,14 +2061,6 @@ h2 {
padding: 10px; padding: 10px;
} }
.dungeon-run-screen .screen-heading {
padding-bottom: 10px;
}
.dungeon-run-screen .screen-heading h1 {
font-size: 18px;
}
.dungeon-run-board, .dungeon-run-board,
.dungeon-run-main { .dungeon-run-main {
gap: 10px; gap: 10px;
@@ -2088,6 +2097,12 @@ h2 {
font-size: 12px; font-size: 12px;
} }
.inline-back-button {
font-size: 12px;
min-height: 28px;
padding: 4px 7px;
}
.activity-pager button { .activity-pager button {
font-size: 9px; font-size: 9px;
min-height: 28px; min-height: 28px;
@@ -2236,21 +2251,6 @@ h2 {
padding: 6px; padding: 6px;
} }
.dungeon-run-screen .screen-heading {
padding-bottom: 4px;
}
.dungeon-run-screen .screen-heading h1 {
font-size: 13px;
line-height: 1.15;
}
.dungeon-run-screen .back-button {
font-size: 14px;
min-height: 34px;
padding: 5px 8px;
}
.dungeon-run-board, .dungeon-run-board,
.dungeon-run-main, .dungeon-run-main,
.dungeon-setup-rail { .dungeon-setup-rail {
@@ -2287,6 +2287,12 @@ h2 {
line-height: 1.2; line-height: 1.2;
} }
.inline-back-button {
font-size: 10px;
min-height: 24px;
padding: 3px 6px;
}
.dungeon-run-screen .eyebrow, .dungeon-run-screen .eyebrow,
.dungeon-run-screen .tier-grid strong, .dungeon-run-screen .tier-grid strong,
.dungeon-choice-grid .activity-card strong, .dungeon-choice-grid .activity-card strong,
+8 -14
View File
@@ -55,7 +55,7 @@ const MENU_ITEMS: Array<{
const LAST_DIFFICULTY_KEY = 'i-want-to-heal:last-difficulty' const LAST_DIFFICULTY_KEY = 'i-want-to-heal:last-difficulty'
const SHOW_LEADERBOARDS = false const SHOW_LEADERBOARDS = false
const ACTIVITY_PAGE_SIZE = 6 const ACTIVITY_PAGE_SIZE = 4
function activityInitials(name: string) { function activityInitials(name: string) {
return name return name
@@ -333,8 +333,6 @@ function App() {
(candidate) => candidate.droppedItemLevel === selectedTierItemLevel, (candidate) => candidate.droppedItemLevel === selectedTierItemLevel,
) ?? activity.difficulties[0] ) ?? activity.difficulties[0]
const difficultyLocked = profile.character.level < selectedDifficulty.unlockLevel const difficultyLocked = profile.character.level < selectedDifficulty.unlockLevel
const activityCompletionCount = activity.completionCount ?? 0
const marathonUnlocked = activityCompletionCount >= 10
const cloudSync = getCloudSyncStatus() const cloudSync = getCloudSyncStatus()
const canShowCloudSync = account.id !== -1 && cloudSync.available const canShowCloudSync = account.id !== -1 && cloudSync.available
const lootPreviewEncounters = [...activity.encounters] const lootPreviewEncounters = [...activity.encounters]
@@ -609,11 +607,6 @@ function App() {
{(screen === 'dungeons' || screen === 'raids') && ( {(screen === 'dungeons' || screen === 'raids') && (
<section className="content-screen dungeon-run-screen"> <section className="content-screen dungeon-run-screen">
<ScreenHeading
eyebrow="Adventure"
title={activity.contentType === 'raid' ? 'Raids' : 'Dungeons'}
onBack={() => setScreen('menu')}
/>
<div className="dungeon-run-board"> <div className="dungeon-run-board">
<div className="dungeon-run-main"> <div className="dungeon-run-main">
<article className="run-summary-card dungeon-focus-card"> <article className="run-summary-card dungeon-focus-card">
@@ -622,7 +615,10 @@ function App() {
</div> </div>
<div className="run-summary-copy"> <div className="run-summary-copy">
<p className="eyebrow">Selected Run</p> <p className="eyebrow">Selected Run</p>
<h2>{activity.name}</h2> <div className="run-title-row">
<h2>{activity.name}</h2>
<button className="back-button inline-back-button" onClick={() => setScreen('menu')} type="button">Back</button>
</div>
<p>{activity.description}</p> <p>{activity.description}</p>
<div className="tag-row"> <div className="tag-row">
<span>Level {activity.recommendedLevel}</span> <span>Level {activity.recommendedLevel}</span>
@@ -751,9 +747,7 @@ function App() {
<small> <small>
{difficultyLocked {difficultyLocked
? `Unlocks at level ${selectedDifficulty.unlockLevel}` ? `Unlocks at level ${selectedDifficulty.unlockLevel}`
: marathonUnlocked : 'Marathon keeps health and mana between boss kills.'}
? 'Marathon keeps health and mana between boss kills.'
: `Marathon unlocks after 10 clears (${activityCompletionCount}/10).`}
</small> </small>
</div> </div>
<div className="part-picker"> <div className="part-picker">
@@ -771,8 +765,8 @@ function App() {
Start Hunt Start Hunt
</button> </button>
<button <button
className={`primary-button ${selectedMarathonMode ? 'selected-part' : ''} ${!marathonUnlocked ? 'locked' : ''}`} className={`primary-button ${selectedMarathonMode ? 'selected-part' : ''}`}
disabled={difficultyLocked || !marathonUnlocked} disabled={difficultyLocked}
onClick={() => { onClick={() => {
setSelectedMarathonMode(true) setSelectedMarathonMode(true)
setCombatContentId(activity.id) setCombatContentId(activity.id)