Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
0420dde
refactor: refactored game view model, added method to game repository
the-only-queen-anna May 22, 2026
56ef72a
added tests for web socket session manager
the-only-queen-anna May 22, 2026
e99431b
refactor: removed offline test screen
ad-devel May 25, 2026
0660bdb
refactor: improved color management for ui
ad-devel May 25, 2026
f9ad860
refactor: margin, placement & size of ui elements
ad-devel May 25, 2026
4682a8e
fix: sonar issue cognitive complexity
ad-devel May 25, 2026
8267f0d
Merge pull request #69 from SS26-SE2-Codenames/ui_fixes
ad-devel May 28, 2026
cc5fb21
Merge branch 'development' into refactoring/game-repository
the-only-queen-anna May 31, 2026
64b9c8d
test: fixed tests + coverage
the-only-queen-anna May 31, 2026
b7d221b
"reformatting of frontend"
the-only-queen-anna May 31, 2026
c251a38
changed IP handling: set IP in local.properties now
the-only-queen-anna May 31, 2026
0d382a2
format
the-only-queen-anna May 31, 2026
e7bd49e
rename game websocket handler to controller, fix tests to be insensit…
the-only-queen-anna May 31, 2026
92c065e
refactor: extract chat logic into ChatViewModel
5eli Jun 2, 2026
abed34f
removed placeholder sendGuess endpoint, will be replaced by real endp…
the-only-queen-anna Jun 2, 2026
4355a53
removed test case for removed method
the-only-queen-anna Jun 2, 2026
9f33e98
formatting
the-only-queen-anna Jun 2, 2026
38b2d54
Merge pull request #71 from SS26-SE2-Codenames/refactoring/game-repos…
the-only-queen-anna Jun 2, 2026
f622961
Merge remote-tracking branch 'origin/development' into feature/send-g…
tasaje1 Jun 5, 2026
563efa9
refactor: align guess message DTO with backend reveal payload
tasaje1 Jun 5, 2026
e85ce48
refactor: align guess message DTO with backend reveal payload
tasaje1 Jun 5, 2026
235232d
feat: add websocket guess submission
tasaje1 Jun 5, 2026
01f8b98
test: cover websocket guess submission
tasaje1 Jun 5, 2026
056eed2
feat: add repository guess submission
tasaje1 Jun 5, 2026
c974454
test: cover repository guess submission
tasaje1 Jun 5, 2026
071198d
feat: add viewmodel guess submission
tasaje1 Jun 6, 2026
989f8eb
test: cover viewmodel guess submission
tasaje1 Jun 6, 2026
3211917
test: adapt tests after chat logic refactor to ChatViewModel
5eli Jun 6, 2026
76d228e
Merge remote-tracking branch 'origin/development' into chat_view_model
5eli Jun 6, 2026
fa141af
efactor: resolve merge conflicts and finalize ChatViewModel extraction
5eli Jun 6, 2026
962b01e
refactor: resolve merge conflicts and finalize ChatViewModel extraction
5eli Jun 6, 2026
97d72ed
feat: wire guess submission from game screen
tasaje1 Jun 9, 2026
bc27511
feat: add selectable game board cards
tasaje1 Jun 9, 2026
a653146
refactor: move websocket destination from ViewModel to Repository
5eli Jun 10, 2026
4d326f0
test: update tests and format affected files
5eli Jun 10, 2026
0a2c4fe
refactor: introduce ChatWebSocketController
5eli Jun 10, 2026
bfc549a
test: update Tests affected from implementing ChatWebSocketController
5eli Jun 10, 2026
be06356
Merge branch 'chat_view_model' of https://github.com/SS26-SE2-Codenam…
5eli Jun 10, 2026
b45e35b
test: add tests for more coverage
5eli Jun 10, 2026
0e5b80e
feat: add deselect all button for selected cards
tasaje1 Jun 10, 2026
3ab081c
test: cover guess selection flow
tasaje1 Jun 10, 2026
0a3566f
refactor: reduce game screen complexity
tasaje1 Jun 10, 2026
dd161bc
refactor: extract connection error message constant
tasaje1 Jun 10, 2026
9c023f0
refactor: reduce game screen parameter count
tasaje1 Jun 10, 2026
0af181a
Merge pull request #73 from SS26-SE2-Codenames/feature/send-guesses
tasaje1 Jun 10, 2026
1a4a4e8
fix: guesses are now counted properly:
the-only-queen-anna Jun 11, 2026
b0665d9
test: fixed tests + reformatting
the-only-queen-anna Jun 11, 2026
8e31b23
Merge pull request #72 from SS26-SE2-Codenames/chat_view_model
5eli Jun 11, 2026
e2ea55b
Merge branch 'development' into fix/fix-guess-count
the-only-queen-anna Jun 11, 2026
b36ffdb
fix websocket connection, move chat subscription to different launche…
the-only-queen-anna Jun 11, 2026
687eb39
Merge pull request #74 from SS26-SE2-Codenames/fix/fix-guess-count
the-only-queen-anna Jun 11, 2026
9566ef0
fix: restrict card selection to active operative
tasaje1 Jun 11, 2026
9f79a14
fix: send guesses with player team
tasaje1 Jun 11, 2026
e001ec8
test: cover active team guess restrictions
tasaje1 Jun 11, 2026
3203dbf
Merge pull request #76 from SS26-SE2-Codenames/fix/restrict-guesses-t…
tasaje1 Jun 12, 2026
1e890f6
Merge remote-tracking branch 'origin/development' into fix/restrict-c…
tasaje1 Jun 12, 2026
33c5e58
fix: restrict clue input to active spymaster
tasaje1 Jun 12, 2026
65850fe
fix: send clues with player team
tasaje1 Jun 12, 2026
90aed88
test: cover active spymaster clue restrictions
tasaje1 Jun 12, 2026
a55e72a
refactor: remove unused game connection parameter
tasaje1 Jun 12, 2026
4e8ca7c
added data store for saving user and lobby data
the-only-queen-anna Jun 12, 2026
fde9dd7
added gradle dependency for datastore
the-only-queen-anna Jun 12, 2026
fc60387
added repository and SessionData.kt for accessing datastore
the-only-queen-anna Jun 12, 2026
6e5ef15
use SessionState instead of SessionData, delete duplicate state
the-only-queen-anna Jun 12, 2026
f2a90d3
refactor: change color of neutral cards in spymaster view
XtophB Jun 12, 2026
7f591e1
refactor: update text color to not clash with beige background
XtophB Jun 12, 2026
631e8ad
Merge pull request #78 from SS26-SE2-Codenames/fix/restrict-clues-to-…
tasaje1 Jun 12, 2026
787b6a7
feat: change opacity for guessed cards in spymaster view
XtophB Jun 12, 2026
ff983fd
add rejoin logic to viewmodel:
the-only-queen-anna Jun 12, 2026
a2ae7cb
merge with development
the-only-queen-anna Jun 12, 2026
547a2c1
Merge remote-tracking branch 'origin/development' into fix/158-change…
XtophB Jun 12, 2026
eb0c0a0
lobby state and user state are now saved
the-only-queen-anna Jun 12, 2026
88c64a2
style: run ktlint command
XtophB Jun 12, 2026
5358463
added if condition to prevent loading empty username
the-only-queen-anna Jun 12, 2026
57db028
saved username is displayed in username input field
the-only-queen-anna Jun 12, 2026
59b426b
feat: allow changing background color based on current turn
XtophB Jun 13, 2026
c9bdde3
refactor: decrease strength of opacity modifier
XtophB Jun 13, 2026
b2d5d74
refactor: extract colors to Color.kt file
XtophB Jun 13, 2026
cf38bf5
feat: change color of guessed neutral cards to grey
XtophB Jun 13, 2026
ded6bd9
style: run ktlint format
XtophB Jun 13, 2026
07c30b8
refaactor: increase font size of cards
XtophB Jun 13, 2026
7b1d70e
add rejoin functionality:
the-only-queen-anna Jun 13, 2026
4953450
removed unnecessary checks from game wrapper screen
the-only-queen-anna Jun 13, 2026
5d1d168
test: add session view model tests
the-only-queen-anna Jun 13, 2026
97122f2
Merge pull request #79 from SS26-SE2-Codenames/fix/158-change-card-co…
XtophB Jun 13, 2026
ed42ce0
test: add GameViewModel Tests
the-only-queen-anna Jun 13, 2026
21b5cc2
test: add SessionRepositoryTest.kt
the-only-queen-anna Jun 13, 2026
a736ee2
test: add datastore tests
the-only-queen-anna Jun 13, 2026
3bcb2a5
refactor: remove unused method
the-only-queen-anna Jun 13, 2026
2ad24b7
refactor: refactored method to fit sonar qube quality gates
the-only-queen-anna Jun 13, 2026
1c28ae2
style: reformat code
the-only-queen-anna Jun 13, 2026
a4282b2
Merge branch 'development' into fix/rejoin-fix
the-only-queen-anna Jun 13, 2026
3b53022
add android tests to github workflow + dependency update
the-only-queen-anna Jun 13, 2026
8dccb13
include android test outputs in jacoco report
the-only-queen-anna Jun 13, 2026
783b142
fix: change workflow to use github emulator instead of local managed …
the-only-queen-anna Jun 13, 2026
70560e8
style: format
the-only-queen-anna Jun 14, 2026
9d6796b
fix: add kvm to worflow to speed up emulator booting
the-only-queen-anna Jun 14, 2026
f5a80b1
Merge pull request #80 from SS26-SE2-Codenames/fix/rejoin-fix
the-only-queen-anna Jun 14, 2026
24ecff2
Merge remote-tracking branch 'origin/development' into feature/pass-turn
tasaje1 Jun 14, 2026
b9ba0fa
feat: add pass turn message dto
tasaje1 Jun 14, 2026
63ec7ee
feat: add pass turn websocket call
tasaje1 Jun 14, 2026
27dbc0f
feat: add pass turn repository method
tasaje1 Jun 14, 2026
fd96869
feat: add pass turn action to game viewmodel
tasaje1 Jun 14, 2026
e516f8a
feat: add end turn button
tasaje1 Jun 14, 2026
3d5e24f
style: adjust settings button position
tasaje1 Jun 14, 2026
c172fb8
test: cover pass turn websocket call
tasaje1 Jun 14, 2026
41485c4
test: cover pass turn repository method
tasaje1 Jun 14, 2026
3324c46
test: cover pass turn viewmodel action
tasaje1 Jun 14, 2026
dd7d88d
test: cover end turn button behavior
tasaje1 Jun 14, 2026
72f8367
style: format
tasaje1 Jun 14, 2026
bccf663
Merge pull request #83 from SS26-SE2-Codenames/feature/pass-turn
tasaje1 Jun 14, 2026
c06f0dd
Implement shake cheat frontend
Zheaver Jun 15, 2026
59c8f8e
Add tests for chat and cheat functionality
Zheaver Jun 15, 2026
8ca9bd8
Merge branch 'development' into shake-cheat
Zheaver Jun 15, 2026
938c0d4
fix
Zheaver Jun 15, 2026
d01def4
Update GameboardScreenTest.kt
Zheaver Jun 15, 2026
f25182a
Fix Sonar issues
Zheaver Jun 15, 2026
87fec0d
feature: improved error messages (pop-up, text descriptions)
ad-devel Jun 16, 2026
62761be
refactor: removed old error lines in favour of error message pop-up
ad-devel Jun 16, 2026
cb0d675
Add cheat status fields to game state
Zheaver Jun 16, 2026
893f270
fix: sonar issue useless null-safe access
ad-devel Jun 16, 2026
48241ad
refactor: reworked color themes of error message pop-up
ad-devel Jun 16, 2026
b372676
Fix cheat system message handling
Zheaver Jun 17, 2026
cc0c9ab
Fix Sonar issues
Zheaver Jun 17, 2026
db54003
refactor: removed redundant code
ad-devel Jun 17, 2026
27807f2
Merge pull request #85 from SS26-SE2-Codenames/feature/64-improved_er…
ad-devel Jun 17, 2026
904c1a4
Merge branch 'development' into shake-cheat
Zheaver Jun 17, 2026
160e2fb
Error Fix
Zheaver Jun 17, 2026
c9de930
dto: update player dto and lobby response to include UUID
the-only-queen-anna Jun 17, 2026
4bebe28
update lobby flow to include uuid in requests, where the backend expe…
the-only-queen-anna Jun 17, 2026
d6ef9e7
add uuid calls to lobby screen
the-only-queen-anna Jun 17, 2026
6932f98
Fix Sonar issues
Zheaver Jun 17, 2026
5e028b3
fix: fix user id save flow to avoid loops
the-only-queen-anna Jun 17, 2026
b3f39a6
Merge pull request #84 from SS26-SE2-Codenames/shake-cheat
Zheaver Jun 17, 2026
cabdb3a
add userId to websocket join message
the-only-queen-anna Jun 17, 2026
31e08b6
Merge branch 'development' into player_uuid_integration
the-only-queen-anna Jun 17, 2026
7dcaec9
reorganised user id saving to adhere to hilt best practice
the-only-queen-anna Jun 17, 2026
4e213bf
refactor: remove userId from join request to avoid data base duplicat…
the-only-queen-anna Jun 17, 2026
b7de567
fix: add remove id function to datastore to correctly save new ids (s…
the-only-queen-anna Jun 17, 2026
1d690bb
test: fix unit tests
the-only-queen-anna Jun 17, 2026
c1df7b7
style: formatting
the-only-queen-anna Jun 17, 2026
d10e29f
test: added tests
the-only-queen-anna Jun 17, 2026
0ba2e93
test: add tests
the-only-queen-anna Jun 17, 2026
b280f12
ui: removed useless timer button, replaced with paywall
the-only-queen-anna Jun 17, 2026
f661bde
ui: add return to home button + state resets
the-only-queen-anna Jun 17, 2026
7df740b
hide hint section after game end + adjust background color
the-only-queen-anna Jun 17, 2026
007a0a7
text: fix game board sceen tests
the-only-queen-anna Jun 17, 2026
e848852
chore: change server URL to that of uni server
XtophB Jun 17, 2026
c39844a
style: formatting
the-only-queen-anna Jun 17, 2026
a5666e1
test: added tests
the-only-queen-anna Jun 17, 2026
ef2e5f4
refactor: make url building more robust (does not need ending / anymore)
the-only-queen-anna Jun 17, 2026
48009a4
Merge pull request #86 from SS26-SE2-Codenames/player_uuid_integration
the-only-queen-anna Jun 17, 2026
a94cfc6
Merge pull request #88 from SS26-SE2-Codenames/chore/87-update-url-fo…
XtophB Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ jobs:
restore-keys: ${{ runner.os }}-gradle
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Run Unit Tests
run: ./gradlew testDebugUnitTest
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
| sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run Android Test (Managed Device)
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
target: google_apis
arch: x86_64
profile: pixel_6
emulator-boot-timeout: 900
script: ./gradlew connectedDebugAndroidTest
- name: Build project
run: ./gradlew build

Expand Down
109 changes: 109 additions & 0 deletions .idea/androidTestResultsUserPreferences.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
import java.util.Properties
val localProperties = Properties()
val localPropertiesFile = rootProject.file("local.properties")

if (localPropertiesFile.exists()) {
localProperties.load(localPropertiesFile.inputStream())
}

val serverUrl: String? =
localProperties.getProperty(
"SERVER_URL",
"se2-demo.aau.at:53213",
)

plugins {
id("com.android.application")
alias(libs.plugins.kotlin.compose)
Expand Down Expand Up @@ -81,6 +95,8 @@ tasks.register<JacocoReport>("jacocoTestReport") {
include("jacoco/testDebugUnitTest.exec")
include("outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec")
include("outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec.ec")
include("outputs/androidTest-results/connected/**/*.ec")
include("outputs/code_coverage/**/connected/**/*.ec")
},
)
}
Expand All @@ -102,23 +118,47 @@ android {
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField(
"String",
"SERVER_URL",
"\"$serverUrl\"",
)
}

buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
)
}

debug {
enableUnitTestCoverage = true
enableAndroidTestCoverage = true
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildFeatures {
compose = true
buildConfig = true
}

testOptions {
managedDevices {
localDevices {
create("pixel6Api34") {
device = "Pixel 6"
apiLevel = 34
systemImageSource = "aosp-atd"
}
}
}
}
}

Expand All @@ -130,6 +170,9 @@ dependencies {
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.activity.compose)

// Android Data Store
implementation(libs.androidx.datastore.preferences)

// Jetpack Compose
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
Expand Down
Loading
Loading