diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 64043843f..c260c30f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,31 +1,50 @@ name: Build & Test - -on: - push: - branches: - - dev - pull_request: - branches: - - dev - +on: [push, pull_request] jobs: build: - runs-on: macOS-latest + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - name: Check out source code + uses: actions/checkout@v1 + - name: Install Java Development Kit 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 + - name: Build APK & Run small tests run: android/build.sh build + + - name: Upload APK + uses: actions/upload-artifact@v2 + with: + name: debug-apk + path: android/build/*apk + + - name: Upload build folder + uses: actions/upload-artifact@v2 + with: + name: build + path: android/uhabits-android/build/ + + test: + needs: build + runs-on: macOS-latest + strategy: + matrix: + api-level: [23, 24, 25, 26, 27, 28, 29] + steps: + - name: Check out source code + uses: actions/checkout@v1 + + - name: Download previous build folder + uses: actions/download-artifact@v2 + with: + name: build + path: android/uhabits-android/build/ + - name: Run medium tests - uses: ReactiveCircus/android-emulator-runner@v2.2.0 + uses: ReactiveCircus/android-emulator-runner@v2 with: - api-level: 29 + api-level: ${{ matrix.api-level }} script: android/build.sh medium-tests - - name: Upload artifacts - uses: actions/upload-artifact@v1 - with: - name: Build - path: android/uhabits-android/build/outputs/ diff --git a/README.md b/README.md index 72836df95..f8a426630 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ + + + + + + + # Loop Habit Tracker Loop is a mobile app that helps you create and maintain good habits, diff --git a/android/build.sh b/android/build.sh index b8f288cfa..c95b25e25 100755 --- a/android/build.sh +++ b/android/build.sh @@ -232,7 +232,10 @@ case "$1" in medium-tests) shift; parse_opts $* - run_tests medium + for attempt in {1..3}; do + (run_tests medium) && exit 0 + done + exit 1 ;; large-tests) @@ -253,7 +256,7 @@ case "$1" in build_apk install_apk ;; - + clean) remove_build_dir ;; diff --git a/android/gradle.properties b/android/gradle.properties index b872d9d12..163b6096f 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,7 +1,7 @@ VERSION_CODE = 20000 VERSION_NAME = 2.0.0 -MIN_SDK_VERSION = 21 +MIN_SDK_VERSION = 23 TARGET_SDK_VERSION = 29 COMPILE_SDK_VERSION = 29 diff --git a/android/uhabits-android/build.gradle b/android/uhabits-android/build.gradle index 6d1d802de..8cc8882cf 100644 --- a/android/uhabits-android/build.gradle +++ b/android/uhabits-android/build.gradle @@ -53,6 +53,7 @@ android { } compileOptions { + coreLibraryDesugaringEnabled true targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 } @@ -102,6 +103,8 @@ dependencies { implementation "io.ktor:ktor-client-jackson:$KTOR_VERSION" implementation "com.google.guava:guava:30.0-android" + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' compileOnly "javax.annotation:jsr250-api:1.0" compileOnly "com.google.auto.factory:auto-factory:$AUTO_FACTORY_VERSION" diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/render.png b/android/uhabits-android/src/androidTest/assets/views/common/BarChart/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/BarChart/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderDataOffset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderDataOffset.png rename to android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderDataOffset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderDifferentSize.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderDifferentSize.png rename to android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderDifferentSize.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderTransparent.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/BarChart/renderTransparent.png rename to android/uhabits-android/src/androidTest/assets/views/common/BarChart/renderTransparent.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/render.png b/android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderDataOffset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderDataOffset.png rename to android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderDataOffset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderDifferentSize.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderDifferentSize.png rename to android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderDifferentSize.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderTransparent.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/FrequencyChart/renderTransparent.png rename to android/uhabits-android/src/androidTest/assets/views/common/FrequencyChart/renderTransparent.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/render.png b/android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderDataOffset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderDataOffset.png rename to android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderDataOffset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderDifferentSize.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderDifferentSize.png rename to android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderDifferentSize.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderTransparent.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/HistoryChart/renderTransparent.png rename to android/uhabits-android/src/androidTest/assets/views/common/HistoryChart/renderTransparent.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/RingView/render.png b/android/uhabits-android/src/androidTest/assets/views/common/RingView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/RingView/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/RingView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/RingView/renderDifferentParams.png b/android/uhabits-android/src/androidTest/assets/views/common/RingView/renderDifferentParams.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/RingView/renderDifferentParams.png rename to android/uhabits-android/src/androidTest/assets/views/common/RingView/renderDifferentParams.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/render.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderDataOffset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderDataOffset.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderDataOffset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderDifferentSize.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderDifferentSize.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderDifferentSize.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderMonthly.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderMonthly.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderMonthly.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderMonthly.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderTransparent.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderTransparent.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderTransparent.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderYearly.png b/android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderYearly.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/ScoreChart/renderYearly.png rename to android/uhabits-android/src/androidTest/assets/views/common/ScoreChart/renderYearly.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/render.png b/android/uhabits-android/src/androidTest/assets/views/common/StreakChart/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/render.png rename to android/uhabits-android/src/androidTest/assets/views/common/StreakChart/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/renderSmallSize.png b/android/uhabits-android/src/androidTest/assets/views/common/StreakChart/renderSmallSize.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/renderSmallSize.png rename to android/uhabits-android/src/androidTest/assets/views/common/StreakChart/renderSmallSize.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views/common/StreakChart/renderTransparent.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/common/StreakChart/renderTransparent.png rename to android/uhabits-android/src/androidTest/assets/views/common/StreakChart/renderTransparent.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_explicit_check.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_explicit_check.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_explicit_check.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_explicit_check.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_implicit_check.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_implicit_check.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_implicit_check.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_implicit_check.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_unchecked.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_unchecked.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkButtonView/render_unchecked.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkButtonView/render_unchecked.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkPanelView/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkPanelView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkPanelView/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkPanelView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkPanelView/render_offset.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkPanelView/render_offset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/CheckmarkPanelView/render_offset.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/CheckmarkPanelView/render_offset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_changed.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_changed.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_changed.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_changed.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_numerical.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_numerical.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_selected.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_selected.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_selected.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HabitCardView/render_selected.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HeaderView/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HeaderView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HeaderView/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HeaderView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HeaderView/render_reverse.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HeaderView/render_reverse.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HeaderView/render_reverse.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HeaderView/render_reverse.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HintView/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/HintView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HintView/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/HintView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_above.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_above.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_above.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_above.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_below.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_below.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_below.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_below.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_zero.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_zero.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberButtonView/render_zero.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberButtonView/render_zero.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_different_color.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_different_color.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_different_color.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_different_color.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_offset.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_offset.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_offset.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_offset.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_reversed.png b/android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_reversed.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/list/NumberPanelView/render_reversed.png rename to android/uhabits-android/src/androidTest/assets/views/habits/list/NumberPanelView/render_reversed.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/FrequencyCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/FrequencyCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/FrequencyCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/FrequencyCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/HistoryCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/HistoryCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/HistoryCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/HistoryCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/NotesCard/render-empty-description.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/NotesCard/render-empty-description.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/NotesCard/render-empty-description.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/NotesCard/render-empty-description.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/NotesCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/NotesCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/NotesCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/NotesCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/OverviewCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/OverviewCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/OverviewCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/OverviewCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/ScoreCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/ScoreCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/ScoreCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/ScoreCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/StreakCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/StreakCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/StreakCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/StreakCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/show/SubtitleCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/SubtitleCard/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/habits/show/SubtitleCard/render.png rename to android/uhabits-android/src/androidTest/assets/views/habits/show/SubtitleCard/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/checked.png b/android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/checked.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/implicitly_checked.png b/android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/implicitly_checked.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/implicitly_checked.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/implicitly_checked.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/large_size.png b/android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/large_size.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/unchecked.png b/android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/unchecked.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidgetView/unchecked.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/unchecked.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/FrequencyWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/FrequencyWidget/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/HistoryWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/HistoryWidget/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/ScoreWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/ScoreWidget/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/StreakWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/StreakWidget/render.png diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/TargetWidget/render.png b/android/uhabits-android/src/androidTest/assets/views/widgets/TargetWidget/render.png similarity index 100% rename from android/uhabits-android/src/androidTest/assets/views-v26/widgets/TargetWidget/render.png rename to android/uhabits-android/src/androidTest/assets/views/widgets/TargetWidget/render.png diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseAndroidTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseAndroidTest.java index c778789b6..81b49dea7 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseAndroidTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseAndroidTest.java @@ -230,9 +230,9 @@ public class BaseAndroidTest extends TestCase int minute) throws Exception { GregorianCalendar cal = new GregorianCalendar(); - cal.setTimeZone(TimeZone.getTimeZone(tz)); cal.set(Calendar.SECOND, 0); cal.set(year, javaMonth, day, hourOfDay, minute); + cal.setTimeZone(TimeZone.getTimeZone(tz)); setSystemTime(cal); } @@ -249,6 +249,22 @@ public class BaseAndroidTest extends TestCase device.executeShellCommand(command); // Set time + String date = String.format("%02d%02d%02d%02d%02d.%02d", + cal.get(Calendar.MONTH) + 1, + cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), + cal.get(Calendar.MINUTE), + cal.get(Calendar.YEAR), + cal.get(Calendar.SECOND)); + + // Set time (method 1) + // Run twice to override daylight saving time + device.executeShellCommand("date " + date); + device.executeShellCommand("date " + date); + + // Set time (method 2) + // Run in addition to the method above because one of these mail fail, depending + // on the Android API version. command = String.format("date -u @%d", cal.getTimeInMillis() / 1000); device.executeShellCommand(command); diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseViewTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseViewTest.java index d871da334..9156df2c7 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseViewTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/BaseViewTest.java @@ -33,8 +33,6 @@ import org.isoron.uhabits.widgets.*; import java.io.*; import java.util.*; -import static android.os.Build.VERSION.*; -import static android.os.Build.VERSION_CODES.*; import static android.view.View.MeasureSpec.*; public class BaseViewTest extends BaseAndroidTest @@ -51,7 +49,7 @@ public class BaseViewTest extends BaseAndroidTest throws IOException { InstrumentationRegistry.getInstrumentation().waitForIdleSync(); - expectedImagePath = getVersionedPath(expectedImagePath); + expectedImagePath = "views/" + expectedImagePath; Bitmap actual = renderView(view); if(actual == null) throw new IllegalStateException("actual is null"); @@ -158,16 +156,6 @@ public class BaseViewTest extends BaseAndroidTest return BitmapFactory.decodeStream(stream); } - private String getVersionedPath(String path) - { - int version = SDK_INT; - if (version >= 26) version = 26; - else if (version >= LOLLIPOP) version = LOLLIPOP; - else if (version >= KITKAT) version = KITKAT; - - return String.format("views-v%d/%s", version, path); - } - private String saveBitmap(String filename, String suffix, Bitmap bitmap) throws IOException { diff --git a/docs/TEST.md b/docs/TEST.md index 8b42497f2..32a28b48a 100644 --- a/docs/TEST.md +++ b/docs/TEST.md @@ -42,11 +42,11 @@ Furthermore: Only the following Android versions are supported by our test suite: -* Android 5.0 (Lollipop) -* Android 6.0 (Marshmallow) -* Android 7.1.1 (Nougat) -* Android 8.1 (Oreo) -* Android 9.0 (Pie) -* Android 10.0 +* Android 7.0 (API 24) +* Android 7.1.1 (API 25) +* Android 8.0 (API 26) +* Android 8.1 (API 27) +* Android 9.0 (API 28) +* Android 10.0 (API 30) After creating an emulator and configuring it exactly as described above, launch it, wait for it to finish booting up, then run `./build.sh large-tests`. As mentioned before, this script will uninstall the app before testing it, and therefore will delete all the user data.