From 8c6e2ef461b482ee94bf9469f602085165aeeee2 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 12:29:55 -0600 Subject: [PATCH 1/6] GitHub Actions: Test multiple Android versions --- .github/workflows/main.yml | 55 +++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 64043843f..93884c2e5 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: [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/ From 2bf7358207f95ce04a2731391a345c76b764cb48 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 18:00:56 -0600 Subject: [PATCH 2/6] Fix medium tests for Android APIs 23-25 --- .github/workflows/main.yml | 2 +- android/uhabits-android/build.gradle | 3 +++ .../common/BarChart/render.png | Bin .../common/BarChart/renderDataOffset.png | Bin .../common/BarChart/renderDifferentSize.png | Bin .../common/BarChart/renderTransparent.png | Bin .../common/FrequencyChart/render.png | Bin .../common/FrequencyChart/renderDataOffset.png | Bin .../FrequencyChart/renderDifferentSize.png | Bin .../common/FrequencyChart/renderTransparent.png | Bin .../common/HistoryChart/render.png | Bin .../common/HistoryChart/renderDataOffset.png | Bin .../common/HistoryChart/renderDifferentSize.png | Bin .../common/HistoryChart/renderTransparent.png | Bin .../common/RingView/render.png | Bin .../common/RingView/renderDifferentParams.png | Bin .../common/ScoreChart/render.png | Bin .../common/ScoreChart/renderDataOffset.png | Bin .../common/ScoreChart/renderDifferentSize.png | Bin .../common/ScoreChart/renderMonthly.png | Bin .../common/ScoreChart/renderTransparent.png | Bin .../common/ScoreChart/renderYearly.png | Bin .../common/StreakChart/render.png | Bin .../common/StreakChart/renderSmallSize.png | Bin .../common/StreakChart/renderTransparent.png | Bin .../render_explicit_check.png | Bin .../render_implicit_check.png | Bin .../CheckmarkButtonView/render_unchecked.png | Bin .../habits/list/CheckmarkPanelView/render.png | Bin .../list/CheckmarkPanelView/render_offset.png | Bin .../habits/list/HabitCardView/render.png | Bin .../habits/list/HabitCardView/render_changed.png | Bin .../list/HabitCardView/render_numerical.png | Bin .../list/HabitCardView/render_selected.png | Bin .../habits/list/HeaderView/render.png | Bin .../habits/list/HeaderView/render_reverse.png | Bin .../habits/list/HintView/render.png | Bin .../list/NumberButtonView/render_above.png | Bin .../list/NumberButtonView/render_below.png | Bin .../habits/list/NumberButtonView/render_zero.png | Bin .../habits/list/NumberPanelView/render.png | Bin .../NumberPanelView/render_different_color.png | Bin .../list/NumberPanelView/render_offset.png | Bin .../list/NumberPanelView/render_reversed.png | Bin .../habits/show/FrequencyCard/render.png | Bin .../habits/show/HistoryCard/render.png | Bin .../show/NotesCard/render-empty-description.png | Bin .../habits/show/NotesCard/render.png | Bin .../habits/show/OverviewCard/render.png | Bin .../habits/show/ScoreCard/render.png | Bin .../habits/show/StreakCard/render.png | Bin .../habits/show/SubtitleCard/render.png | Bin .../widgets/CheckmarkWidget/render.png | Bin .../widgets/CheckmarkWidgetView/checked.png | Bin .../CheckmarkWidgetView/implicitly_checked.png | Bin .../widgets/CheckmarkWidgetView/large_size.png | Bin .../widgets/CheckmarkWidgetView/unchecked.png | Bin .../widgets/FrequencyWidget/render.png | Bin .../widgets/HistoryWidget/render.png | Bin .../widgets/ScoreWidget/render.png | Bin .../widgets/StreakWidget/render.png | Bin .../widgets/TargetWidget/render.png | Bin .../java/org/isoron/uhabits/BaseAndroidTest.java | 15 ++++++++++++--- .../java/org/isoron/uhabits/BaseViewTest.java | 14 +------------- 64 files changed, 17 insertions(+), 17 deletions(-) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/BarChart/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/BarChart/renderDataOffset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/BarChart/renderDifferentSize.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/BarChart/renderTransparent.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/FrequencyChart/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/FrequencyChart/renderDataOffset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/FrequencyChart/renderDifferentSize.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/FrequencyChart/renderTransparent.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/HistoryChart/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/HistoryChart/renderDataOffset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/HistoryChart/renderDifferentSize.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/HistoryChart/renderTransparent.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/RingView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/RingView/renderDifferentParams.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/renderDataOffset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/renderDifferentSize.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/renderMonthly.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/renderTransparent.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/ScoreChart/renderYearly.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/StreakChart/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/StreakChart/renderSmallSize.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/common/StreakChart/renderTransparent.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/CheckmarkButtonView/render_explicit_check.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/CheckmarkButtonView/render_implicit_check.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/CheckmarkButtonView/render_unchecked.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/CheckmarkPanelView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/CheckmarkPanelView/render_offset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HabitCardView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HabitCardView/render_changed.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HabitCardView/render_numerical.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HabitCardView/render_selected.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HeaderView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HeaderView/render_reverse.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/HintView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberButtonView/render_above.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberButtonView/render_below.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberButtonView/render_zero.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberPanelView/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberPanelView/render_different_color.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberPanelView/render_offset.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/list/NumberPanelView/render_reversed.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/FrequencyCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/HistoryCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/NotesCard/render-empty-description.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/NotesCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/OverviewCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/ScoreCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/StreakCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/habits/show/SubtitleCard/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/CheckmarkWidget/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/CheckmarkWidgetView/checked.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/CheckmarkWidgetView/implicitly_checked.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/CheckmarkWidgetView/large_size.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/CheckmarkWidgetView/unchecked.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/FrequencyWidget/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/HistoryWidget/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/ScoreWidget/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/StreakWidget/render.png (100%) rename android/uhabits-android/src/androidTest/assets/{views-v26 => views}/widgets/TargetWidget/render.png (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 93884c2e5..c260c30f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,7 +32,7 @@ jobs: runs-on: macOS-latest strategy: matrix: - api-level: [26, 27, 28, 29] + api-level: [23, 24, 25, 26, 27, 28, 29] steps: - name: Check out source code uses: actions/checkout@v1 diff --git a/android/uhabits-android/build.gradle b/android/uhabits-android/build.gradle index 45d2a0416..3fc63730b 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 } @@ -94,6 +95,8 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$KOTLIN_VERSION" implementation "androidx.constraintlayout:constraintlayout:2.0.0-beta4" + 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..705097ba0 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,8 +249,17 @@ public class BaseAndroidTest extends TestCase device.executeShellCommand(command); // Set time - command = String.format("date -u @%d", cal.getTimeInMillis() / 1000); - device.executeShellCommand(command); + 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)); + + // Run twice to override daylight saving time + device.executeShellCommand("date " + date); + device.executeShellCommand("date " + date); // Wait for system events to settle Thread.sleep(1000); 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 { From 2a72601153de791e444e873278653a456e49f327 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 18:16:03 -0600 Subject: [PATCH 3/6] Increase minSdkVersion to 23 --- android/gradle.properties | 2 +- docs/TEST.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index 1322d7662..65bdc8bb9 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/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. From b6eefbdb3615635cf436f61733698ce7df9fbdf5 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 18:35:52 -0600 Subject: [PATCH 4/6] setSystemTime: Try two methods --- .../java/org/isoron/uhabits/BaseAndroidTest.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 705097ba0..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 @@ -257,10 +257,17 @@ public class BaseAndroidTest extends TestCase 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); + // Wait for system events to settle Thread.sleep(1000); } From 356b2b06e43b19d5ea4bc5239fca8ae6738eb401 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 18:58:02 -0600 Subject: [PATCH 5/6] Update README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) 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, From 849212fd2fa4b7f635bba21676fc52fe3c3ba0f1 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 27 Nov 2020 19:26:03 -0600 Subject: [PATCH 6/6] Run medium tests three times --- android/build.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 ;;