Skip to content

Commit bb4d4e3

Browse files
committed
Merge development into master for v2.0.0 release
2 parents 3489e7b + d238324 commit bb4d4e3

5 files changed

Lines changed: 79 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Changelog
2+
3+
All notable changes to SENDA are documented in this file.
4+
5+
## [v2.0.0] – 2026-05-22
6+
7+
This is a major release representing a complete overhaul of the SENDA codebase
8+
and a significant expansion of features since v1.3.0.
9+
10+
### Breaking changes
11+
- The app has been **fully rewritten in Kotlin** (previously Java). The minimum
12+
supported Android version remains Android 11.
13+
- The internal package structure was reorganised for improved modularity.
14+
15+
### New features
16+
- **Dark theme** support (follows system setting).
17+
- **In-app tutorial** with multiple pages guiding new users through setup.
18+
- **About dialog** accessible from the action bar.
19+
- **Movella DOT** sensor support: connects once on discovery to resolve the
20+
human-readable name, then reconnects for measurement.
21+
22+
### Improvements & refactoring
23+
- Migrated to **MVVM architecture** with ViewModel and Repository pattern.
24+
- Foreground service and wakelock handling refactored for `targetSdk 34+`.
25+
- Permissions handling streamlined; new transient *starting* / *stopping*
26+
UI states provide clearer feedback.
27+
- **16 KB ELF page-size compatibility**: native code compiled with the required
28+
alignment flags (Google Play requirement since November 2025). Note that the
29+
bundled Movella SDK library is not yet compatible.
30+
- Main layout simplified to `LinearLayout`; old landscape / splash layouts and
31+
unused preference XMLs removed.
32+
- `compileSdk` / `targetSdk` raised to **35**; NDK updated to **r28**.
33+
- Gradle plugin updated to **8.1.2 / 8.10**; `setup-gradle` action bumped; CI
34+
workflow split into separate debug and release APK jobs.
35+
- LSL service start/stop made concurrency-safe.
36+
- LocationBridge crash on startup fixed.
37+
- MainActivity crash fixed by lazy-initialising the ViewModel.
38+
- Sensor outlet race condition fixed (sensor stream now starts only after the
39+
LSL outlet is initialised).
40+
- Unit test added for `MainViewModel`.
41+
- App correctly stops the foreground service when swiped away from recents.
42+
43+
### UI / UX
44+
- Stream availability status text updated.
45+
- Layout margins adjusted in `activity_main.xml`.
46+
- Settings/gear menu icon removed (no configurable settings at this time).
47+
- Tutorial layout constraints and text corrected.
48+
49+
### Build & CI
50+
- APK signed correctly via GitHub Actions using repository secrets.
51+
- Separate CI jobs for debug builds (feature branches) and signed release APKs
52+
(master branch).
53+
- Signing configuration now checks for keystore existence before applying
54+
settings, preventing local-build failures.
55+
56+
---
57+
58+
## [v1.3.0] – see [NeuropsyOL/SENDA](https://github.com/NeuropsyOL/SENDA/releases/tag/v1.3.0)
59+
60+
Previous releases are tagged in the public repository at
61+
https://github.com/NeuropsyOL/SENDA/releases.
62+

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ SENDA (Sensor Data Streamer) is an android application to stream real-time senso
77
## Features
88
The following sensors are included:
99
- Accelerometer
10+
- Gyroscope
1011
- Light
1112
- Proximity
1213
- Gravity
@@ -16,6 +17,10 @@ The following sensors are included:
1617
- Location
1718
- Movella DOT (via Bluetooth)
1819

20+
Additional capabilities:
21+
- Dark theme (follows system setting)
22+
- In-app setup tutorial
23+
1924
## Data formats
2025

2126
### Location
@@ -52,9 +57,9 @@ On newer versions of Android, it may be necessary to prevent the system from lim
5257
## Development
5358

5459
### Prerequisites
55-
- Android Studio Giraffe | 2022.3.1 Patch 2
56-
- Android API 34 SDK platform
57-
- Android NDK 25.2.9519653
60+
- Android Studio Meerkat | 2024.3.1 (or newer)
61+
- Android API 35 SDK platform
62+
- Android NDK r28 (28.0.12433566)
5863
- CMake 3.22.1
5964

6065
Other versions may work, the above listed versions are the ones used for development and testing.

app/build.gradle

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ plugins {
66
id 'org.jetbrains.kotlin.plugin.parcelize'
77
}
88

9-
def appVersionName = "1.3"
9+
def appVersionMajorMinor = "2.0"
10+
// GITHUB_RUN_NUMBER is set automatically by GitHub Actions on every CI run.
11+
// Locally it is unset, so we fall back to 0 (which triggers the local defaults below).
12+
def ciBuildNumber = (System.getenv("GITHUB_RUN_NUMBER") ?: "0").toInteger()
13+
// versionCode must always increase. Offset by 300 so v2.0 CI run #1 (→ 301)
14+
// is greater than all v1.x builds (which used offset 200).
15+
def appVersionCode = ciBuildNumber > 0 ? (300 + ciBuildNumber) : 200
16+
def appVersionName = ciBuildNumber > 0 ? "${appVersionMajorMinor}.${ciBuildNumber}" : "${appVersionMajorMinor}-local"
1017

1118
// AGP 9 removed setProperty("archivesBaseName") from defaultConfig.
1219
// The replacement is the project-level base extension.
@@ -25,7 +32,7 @@ android {
2532
applicationId "de.uol.neuropsy.senda"
2633
minSdkVersion 30
2734
targetSdkVersion 35
28-
versionCode 109
35+
versionCode appVersionCode
2936
versionName appVersionName
3037
}
3138

app/src/main/java/de/uol/neuropsy/senda/ui/main/MainActivity.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,6 @@ class MainActivity : AppCompatActivity() {
119119

120120
override fun onOptionsItemSelected(item: MenuItem): Boolean {
121121
return when (item.itemId) {
122-
R.id.action_settings -> {
123-
true
124-
}
125122
R.id.action_tutorial -> {
126123
val intent = Intent(this, TutorialActivity::class.java)
127124
startActivity(intent)

app/src/main/res/menu/menu_main.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88
android:title="Show tutorial"
99
app:showAsAction="always"/>
1010

11-
<!-- Settings -->
12-
<item android:id="@+id/action_settings"
13-
android:title="Settings"
14-
android:icon="@drawable/settings_24"
15-
app:showAsAction="always"/>
1611

1712
<!-- About, must always be in the overflow. -->
1813
<item android:id="@+id/action_about"

0 commit comments

Comments
 (0)