Fix level transition scrolling and keyboard blank-space behavior
Use commit-summary.txt for AndroidProjectTooling auto-commit messages
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,6 +9,7 @@ jdk/
|
|||||||
.tmp-android-build/
|
.tmp-android-build/
|
||||||
.setup-build-environment.state
|
.setup-build-environment.state
|
||||||
.android-project-tooling.state
|
.android-project-tooling.state
|
||||||
|
commit-summary.txt
|
||||||
keystore.properties
|
keystore.properties
|
||||||
*.keystore
|
*.keystore
|
||||||
*.jks
|
*.jks
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ JDK_DIR="$PROJECT_DIR/jdk"
|
|||||||
GRADLE_USER_HOME_DIR="$PROJECT_DIR/.gradle-user-home"
|
GRADLE_USER_HOME_DIR="$PROJECT_DIR/.gradle-user-home"
|
||||||
STATE_FILE="$PROJECT_DIR/.android-project-tooling.state"
|
STATE_FILE="$PROJECT_DIR/.android-project-tooling.state"
|
||||||
LEGACY_STATE_FILE="$PROJECT_DIR/.setup-build-environment.state"
|
LEGACY_STATE_FILE="$PROJECT_DIR/.setup-build-environment.state"
|
||||||
|
COMMIT_SUMMARY_FILE="$PROJECT_DIR/commit-summary.txt"
|
||||||
CMDLINE_TOOLS_DIR="$SDK_DIR/cmdline-tools"
|
CMDLINE_TOOLS_DIR="$SDK_DIR/cmdline-tools"
|
||||||
CMDLINE_TOOLS_LATEST_DIR="$CMDLINE_TOOLS_DIR/latest"
|
CMDLINE_TOOLS_LATEST_DIR="$CMDLINE_TOOLS_DIR/latest"
|
||||||
WRAPPER_JAR_PATH="$PROJECT_DIR/gradle/wrapper/gradle-wrapper.jar"
|
WRAPPER_JAR_PATH="$PROJECT_DIR/gradle/wrapper/gradle-wrapper.jar"
|
||||||
@@ -93,6 +94,7 @@ auto_commit_if_needed() {
|
|||||||
# included in the automatic commit, even if a file was force-added manually.
|
# included in the automatic commit, even if a file was force-added manually.
|
||||||
git -C "$PROJECT_DIR" reset -q HEAD -- \
|
git -C "$PROJECT_DIR" reset -q HEAD -- \
|
||||||
keystore.properties \
|
keystore.properties \
|
||||||
|
commit-summary.txt \
|
||||||
'*.keystore' \
|
'*.keystore' \
|
||||||
'*.jks' 2>/dev/null || true
|
'*.jks' 2>/dev/null || true
|
||||||
|
|
||||||
@@ -101,27 +103,13 @@ auto_commit_if_needed() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local changed_files
|
|
||||||
changed_files="$(git -C "$PROJECT_DIR" diff --cached --name-only)"
|
|
||||||
|
|
||||||
local -a summary_parts=()
|
|
||||||
if printf '%s\n' "$changed_files" | grep -q '^app/src/main/java/'; then
|
|
||||||
summary_parts+=("update app gameplay/UI")
|
|
||||||
fi
|
|
||||||
if printf '%s\n' "$changed_files" | grep -Eq '^(AndroidProjectTooling\.sh|gradle\.properties|gradle/|gradlew|gradlew\.bat|build\.gradle\.kts|settings\.gradle\.kts|app/build\.gradle\.kts)'; then
|
|
||||||
summary_parts+=("improve build setup")
|
|
||||||
fi
|
|
||||||
if printf '%s\n' "$changed_files" | grep -Eq '^(README\.md|\.gitignore)$'; then
|
|
||||||
summary_parts+=("update docs/config")
|
|
||||||
fi
|
|
||||||
if [ ${#summary_parts[@]} -eq 0 ]; then
|
|
||||||
summary_parts+=("project updates")
|
|
||||||
fi
|
|
||||||
|
|
||||||
local commit_message
|
|
||||||
commit_message="Auto-commit after successful build: $(printf '%s, ' "${summary_parts[@]}" | sed 's/, $//')"
|
|
||||||
log "Creating git commit for the latest successful build"
|
log "Creating git commit for the latest successful build"
|
||||||
git -C "$PROJECT_DIR" commit -m "$commit_message" -m "Changed files:\n$changed_files"
|
if [ -s "$COMMIT_SUMMARY_FILE" ] && grep -q '[^[:space:]]' "$COMMIT_SUMMARY_FILE"; then
|
||||||
|
git -C "$PROJECT_DIR" commit -F "$COMMIT_SUMMARY_FILE"
|
||||||
|
else
|
||||||
|
git -C "$PROJECT_DIR" commit -m "Misc Changes"
|
||||||
|
fi
|
||||||
|
: > "$COMMIT_SUMMARY_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
download_if_missing() {
|
download_if_missing() {
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ android {
|
|||||||
applicationId = "solutions.tretter.githugandroid"
|
applicationId = "solutions.tretter.githugandroid"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 35
|
targetSdk = 35
|
||||||
versionCode = 112
|
versionCode = 113
|
||||||
versionName = "0.1.111"
|
versionName = "0.1.112"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|||||||
@@ -11,10 +11,8 @@ import androidx.compose.foundation.background
|
|||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
|
||||||
import androidx.compose.foundation.layout.imePadding
|
import androidx.compose.foundation.layout.imePadding
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
@@ -92,6 +90,11 @@ fun GitHugApp() {
|
|||||||
paneLayout = persistedPaneLayout
|
paneLayout = persistedPaneLayout
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(currentLevelIndex) {
|
||||||
|
delay(100)
|
||||||
|
screenScrollState.animateScrollTo(0)
|
||||||
|
}
|
||||||
|
|
||||||
fun updatePaneLayout(transform: (PaneLayout) -> PaneLayout, persist: Boolean = true) {
|
fun updatePaneLayout(transform: (PaneLayout) -> PaneLayout, persist: Boolean = true) {
|
||||||
val updated = transform(paneLayout)
|
val updated = transform(paneLayout)
|
||||||
paneLayout = updated
|
paneLayout = updated
|
||||||
@@ -316,7 +319,6 @@ fun GitHugApp() {
|
|||||||
)
|
)
|
||||||
scope.launch { persistProgress(updatedCompletedLevels, nextLevelId) }
|
scope.launch { persistProgress(updatedCompletedLevels, nextLevelId) }
|
||||||
loadLevel(nextLevelIndex, message = emptyList())
|
loadLevel(nextLevelIndex, message = emptyList())
|
||||||
scope.launch { screenScrollState.animateScrollTo(0) }
|
|
||||||
} else {
|
} else {
|
||||||
AppLog.d("GitHugApp", "All levels completed")
|
AppLog.d("GitHugApp", "All levels completed")
|
||||||
scope.launch { persistProgress(updatedCompletedLevels, levels.lastOrNull()?.id) }
|
scope.launch { persistProgress(updatedCompletedLevels, levels.lastOrNull()?.id) }
|
||||||
@@ -528,7 +530,6 @@ fun GitHugApp() {
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.height(220.dp))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,8 +80,6 @@ fun TerminalPane(
|
|||||||
val desiredOutputHeight = (output.size.coerceAtLeast(6) * outputLineHeight.value).dp.coerceAtMost(maxOutputHeight)
|
val desiredOutputHeight = (output.size.coerceAtLeast(6) * outputLineHeight.value).dp.coerceAtMost(maxOutputHeight)
|
||||||
|
|
||||||
LaunchedEffect(inputFieldVersion) {
|
LaunchedEffect(inputFieldVersion) {
|
||||||
focusRequester.requestFocus()
|
|
||||||
keyboardController?.show()
|
|
||||||
outputHorizontalScroll.scrollTo(0)
|
outputHorizontalScroll.scrollTo(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user