Test quickdraw#11
Conversation
|
vv |
There was a problem hiding this comment.
Pull request overview
This PR appears to introduce an initial Android (Gradle/AGP) project scaffold for ListyCity, including Gradle wrapper/config, an app module, basic UI/resources, and a simple MainActivity that adds/deletes cities from a ListView.
Changes:
- Added Gradle settings/version catalog and Gradle wrapper scripts/jar.
- Added Android app module with manifest, resources (themes/layouts/icons), and a basic
MainActivity. - Added initial README/license and IDE project configuration files.
Reviewed changes
Copilot reviewed 26 out of 50 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Sets up plugin/dependency repositories and includes :app. |
| gradlew.bat | Adds Windows Gradle wrapper script. |
| gradlew | Adds POSIX Gradle wrapper script. |
| gradle/wrapper/gradle-wrapper.properties | Pins Gradle distribution URL and wrapper settings. |
| gradle/wrapper/gradle-wrapper.jar | Adds Gradle wrapper JAR. |
| gradle/libs.versions.toml | Adds version catalog for dependencies and the Android application plugin. |
| gradle.properties | Adds project-wide Gradle/AndroidX properties. |
| build.gradle.kts | Adds top-level plugin aliases (via version catalog). |
| app/build.gradle.kts | Adds Android app module build configuration and dependencies. |
| app/proguard-rules.pro | Adds ProGuard/R8 rules template. |
| app/.gitignore | Ignores the app module build directory. |
| app/src/main/AndroidManifest.xml | Declares the application and MainActivity launcher entry. |
| app/src/main/java/com/example/listycity/MainActivity.java | Implements basic add/delete city list UI logic. |
| app/src/main/res/layout/activity_main.xml | Adds main UI layout with input, add/delete buttons, and a list. |
| app/src/main/res/layout/content.xml | Adds a simple TextView layout. |
| app/src/main/res/values/strings.xml | Adds app name and sample string resources. |
| app/src/main/res/values/colors.xml | Adds basic black/white colors. |
| app/src/main/res/values/themes.xml | Adds light theme definitions. |
| app/src/main/res/values-night/themes.xml | Adds dark theme definitions. |
| app/src/main/res/xml/backup_rules.xml | Adds backup rules template. |
| app/src/main/res/xml/data_extraction_rules.xml | Adds data extraction rules template. |
| app/src/main/res/drawable/ic_launcher_background.xml | Adds launcher icon background vector. |
| app/src/main/res/drawable/ic_launcher_foreground.xml | Adds launcher icon foreground vector. |
| app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml | Adds adaptive launcher icon definition. |
| app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml | Adds adaptive round launcher icon definition. |
| app/src/main/res/mipmap-mdpi/ic_launcher.webp | Adds mdpi launcher icon asset. |
| app/src/main/res/mipmap-mdpi/ic_launcher_round.webp | Adds mdpi round launcher icon asset. |
| app/src/main/res/mipmap-hdpi/ic_launcher.webp | Adds hdpi launcher icon asset. |
| app/src/main/res/mipmap-hdpi/ic_launcher_round.webp | Adds hdpi round launcher icon asset. |
| app/src/main/res/mipmap-xhdpi/ic_launcher.webp | Adds xhdpi launcher icon asset. |
| app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp | Adds xhdpi round launcher icon asset. |
| app/src/main/res/mipmap-xxhdpi/ic_launcher.webp | Adds xxhdpi launcher icon asset. |
| app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp | Adds xxhdpi round launcher icon asset. |
| app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp | Adds xxxhdpi launcher icon asset. |
| app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp | Adds xxxhdpi round launcher icon asset. |
| app/src/test/java/com/example/listycity/ExampleUnitTest.java | Adds a sample local unit test. |
| app/src/androidTest/java/com/example/listycity/ExampleInstrumentedTest.java | Adds a sample instrumented test. |
| README.md | Adds lab/participant README content. |
| LICENSE.md | Fills in the student submission license placeholder. |
| .gitignore | Adds ignore rules for Gradle/Android Studio artifacts. |
| .idea/.name | Adds IDE project name config. |
| .idea/AndroidProjectSystem.xml | Adds Android Studio project system config. |
| .idea/compiler.xml | Adds IDE compiler bytecode target level config. |
| .idea/deploymentTargetSelector.xml | Adds IDE run target selection state. |
| .idea/gradle.xml | Adds IDE Gradle linkage settings. |
| .idea/markdown.xml | Adds IDE Markdown plugin settings. |
| .idea/migrations.xml | Adds IDE migration settings. |
| .idea/misc.xml | Adds IDE project JDK/language level configuration. |
| .idea/runConfigurations.xml | Adds IDE run configuration producer ignores. |
| .idea/vcs.xml | Adds IDE VCS mappings. |
Files not reviewed (10)
- .idea/.name: Language not supported
- .idea/AndroidProjectSystem.xml: Language not supported
- .idea/compiler.xml: Language not supported
- .idea/deploymentTargetSelector.xml: Language not supported
- .idea/gradle.xml: Language not supported
- .idea/markdown.xml: Language not supported
- .idea/migrations.xml: Language not supported
- .idea/misc.xml: Language not supported
- .idea/runConfigurations.xml: Language not supported
- .idea/vcs.xml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "-Dorg.gradle.appname=$APP_BASE_NAME" \ | ||
| -classpath "$CLASSPATH" \ | ||
| -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ | ||
| "$@" |
There was a problem hiding this comment.
The script passes -classpath "$CLASSPATH" and -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" together. This combination is non-standard for the Gradle wrapper and (with the current invalid CLASSPATH) is error-prone. Prefer the official wrapper invocation (either classpath + main class, or just -jar without an unrelated -classpath).
| set CLASSPATH= | ||
|
|
||
|
|
||
| @rem Execute Gradle | ||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* |
There was a problem hiding this comment.
CLASSPATH is set to empty, but the script still passes -classpath "%CLASSPATH%" along with -jar ...gradle-wrapper.jar. This is non-standard for Gradle wrapper scripts and can cause confusing behavior; set CLASSPATH to the wrapper JAR (or drop -classpath when using -jar).
| <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> | ||
| <output url="file://$PROJECT_DIR$/out" /> | ||
| </component> |
There was a problem hiding this comment.
This file hard-codes local IDE/JDK settings (e.g., project-jdk-name="jbr-21", languageLevel="JDK_21"). These values are machine-specific and tend to cause churn/cross-developer issues; consider removing .idea configs from version control or stripping them down to only project-shared settings.
| <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> | |
| <output url="file://$PROJECT_DIR$/out" /> | |
| </component> | |
| <component name="ProjectRootManager" version="2" /> |
| android:layout_height="wrap_content" | ||
| android:hint="Enter City" | ||
| android:padding="12dp" |
There was a problem hiding this comment.
The EditText hint is hard-coded (android:hint="Enter City"). Move this to a string resource (e.g., @string/...) to support localization and avoid Android lint warnings.
| android:layout_height="wrap_content" | ||
| android:text="DELETE CITY" | ||
| android:padding = "16dp" |
There was a problem hiding this comment.
Button labels are hard-coded (DELETE CITY, ADD CITY). Prefer @string/... resources so the UI can be localized and consistently reused across layouts.
| compileSdk { | ||
| version = release(36) | ||
| } |
There was a problem hiding this comment.
compileSdk { version = release(36) } uses a release() function/DSL that isn’t defined anywhere in the repo, so this build script won’t compile as-is. Use the standard AGP DSL (e.g., compileSdk = 36) or whichever officially-supported compileSdk syntax matches the AGP version you’re targeting.
| compileSdk { | |
| version = release(36) | |
| } | |
| compileSdk = 36 |
| NONSTOP* ) nonstop=true ;; | ||
| esac | ||
|
|
||
| CLASSPATH="\\\"\\\"" |
There was a problem hiding this comment.
CLASSPATH is set to a literal escaped-quote string (\"\"). This is not a valid classpath and is likely a corrupted Gradle wrapper script; it can also break cygpath conversion in MSYS/Cygwin flows.
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="CompilerConfiguration"> | ||
| <bytecodeTargetLevel target="21" /> |
There was a problem hiding this comment.
bytecodeTargetLevel is set to 21 here, but the Android Gradle module is configured to compile with Java 11 (compileOptions in app/build.gradle.kts). Keeping IDE bytecode/level settings consistent with the Gradle build avoids confusing editor vs CI behavior.
| <bytecodeTargetLevel target="21" /> | |
| <bytecodeTargetLevel target="11" /> |
| import androidx.activity.EdgeToEdge; | ||
| import androidx.appcompat.app.AppCompatActivity; | ||
| import androidx.core.graphics.Insets; | ||
| import androidx.core.view.ViewCompat; | ||
| import androidx.core.view.WindowInsetsCompat; |
There was a problem hiding this comment.
Unused imports: androidx.activity.EdgeToEdge, androidx.core.graphics.Insets, androidx.core.view.ViewCompat, and androidx.core.view.WindowInsetsCompat are not referenced in this class. Remove them to avoid warnings and keep the file tidy.
| import androidx.activity.EdgeToEdge; | |
| import androidx.appcompat.app.AppCompatActivity; | |
| import androidx.core.graphics.Insets; | |
| import androidx.core.view.ViewCompat; | |
| import androidx.core.view.WindowInsetsCompat; | |
| import androidx.appcompat.app.AppCompatActivity; |
| import androidx.core.view.WindowInsetsCompat; | ||
|
|
||
| import java.util.ArrayList; | ||
| import java.util.Arrays; |
There was a problem hiding this comment.
Unused import: java.util.Arrays isn’t used in this class. Remove it to avoid warnings.
| import java.util.Arrays; |
No description provided.