Compare commits
	
		
			1 Commits
		
	
	
		
			v125051211
			...
			c2e2a73595
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c2e2a73595 | 
| @@ -6,12 +6,13 @@ jobs: | ||||
|   BuildAndTestAndCoverage: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: Check out repository code | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|       - name: "Check android app changes" | ||||
|         id: check-android-changes | ||||
|         uses: tj-actions/changed-files@v46 | ||||
|         uses: tj-actions/changed-files@v45 | ||||
|         with: | ||||
|           files: | | ||||
|             androidApp/src/** | ||||
| @@ -26,6 +27,7 @@ jobs: | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: '17' | ||||
|           cache: gradle | ||||
|       - uses: gradle/actions/setup-gradle@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|       - uses: android-actions/setup-android@v3 | ||||
| @@ -1,37 +1,53 @@ | ||||
| name: PR test | ||||
| name: Coverage | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|   workflow_call: | ||||
| 
 | ||||
| jobs: | ||||
|   integrationTests: | ||||
|   RunIntegrationTests: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out repository code | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|       - name: Fetch tags | ||||
|         run: git fetch --tags -p | ||||
|       - uses: KengoTODA/actions-setup-docker-compose@v1 | ||||
|       - name: "Check android app changes" | ||||
|         id: check-android-changes | ||||
|         uses: tj-actions/changed-files@v45 | ||||
|         with: | ||||
|           version: "2.23.3" | ||||
|       - name: run selfoss | ||||
|         run: | | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml up -d | ||||
|           files: | | ||||
|             androidApp/src/** | ||||
|             shared/src/commonMain/** | ||||
|             shared/src/androidMain/** | ||||
|             shared/src/commonTest/** | ||||
|       - name: Fetch tags | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         run: git fetch --tags -p | ||||
|       - uses: actions/setup-java@v4 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: '17' | ||||
|       - uses: gradle/actions/setup-gradle@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|       - uses: android-actions/setup-android@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|       - name: Configure gradle... | ||||
|         run: mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true" >> ~/.gradle/gradle.properties | ||||
|       - name: Change url until I find a better way to do it | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         run: mkdir -p ~/.gradle && echo "ignoreGitVersion=true" >> ~/.gradle/gradle.properties | ||||
|       - uses: KengoTODA/actions-setup-docker-compose@v1 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         with: | ||||
|           version: "2.23.3" | ||||
|       - name: run selfoss | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         run: | | ||||
|           sed -i "s/const val DEFAULT_URL = \"http:\/\/10\.0\.2\.2\:8888\"/const val DEFAULT_URL = \"http:\/\/172\.17\.0\.1\:8888\"/g" ./androidApp/src/androidTest/kotlin/bou/amine/apps/readerforselfossv2/android/CommonTests.kt | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml up -d | ||||
|       - name: Change url until I find a better way to do it | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         run: | | ||||
|           sed -i "s/const DEFAULT_URL = \"http:\/\/10\.0\.2\.2\:8888\"/const DEFAULT_URL = \"http:\/\/172\.17\.0\.1\:8888\"/g" ./androidApp/src/androidTest/kotlin/bou/amine/apps/readerforselfossv2/android/CommonTests.kt | ||||
|       - name: Tests | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         uses: reactivecircus/android-emulator-runner@v2 | ||||
|         with: | ||||
|           api-level: 29 | ||||
| @@ -42,6 +58,7 @@ jobs: | ||||
|             adb logcat -G 16M | ||||
|             ./gradlew JacocoDebugCodeCoverage || (./gradlew androidApp:fetchScreenshots && adb logcat 'InputReader:S' 'chatty:S' 'audio_hw_generic:S' 'LogApiCalls:D' '*:I' -d > ./androidApp/build/reports/androidTests/connected/screenshots/logs.txt) | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         with: | ||||
|           name: screenshot-espresso | ||||
|           path: androidApp/build/reports/androidTests/connected/screenshots | ||||
| @@ -49,12 +66,14 @@ jobs: | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         with: | ||||
|           path: androidApp/build/reports/androidTests/connected/debug/flavors/githubConfig | ||||
|           retention-days: 1 | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' | ||||
|         with: | ||||
|           name: coverage-espresso | ||||
|           path: androidApp/build/reports/jacoco/JacocoDebugCodeCoverage | ||||
| @@ -62,6 +81,6 @@ jobs: | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - name: Clean | ||||
|         if: always() | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' || failure() | ||||
|         run: | | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml stop | ||||
| @@ -1,4 +1,4 @@ | ||||
| name: Realease | ||||
| name: Create tag | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
| @@ -7,7 +7,7 @@ on: | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
|   createTagAndChangelog: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: build | ||||
| @@ -86,6 +86,7 @@ jobs: | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: '17' | ||||
|           cache: gradle | ||||
|       - name: Setup Android SDK | ||||
|         uses: android-actions/setup-android@v3 | ||||
|       - name: Configure gradle... | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| name: PR | ||||
| name: Check PR code | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   PR: | ||||
|   Lint: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out repository code | ||||
| @@ -14,6 +14,7 @@ jobs: | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: '17' | ||||
|           cache: gradle | ||||
|       - name: Install klint | ||||
|         run: curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.5.0/ktlint && chmod a+x ktlint && mv ktlint /usr/local/bin/ | ||||
|       - name: Install detekt | ||||
| @@ -31,13 +32,12 @@ jobs: | ||||
|           fetch-depth: 0 | ||||
|       - name: "Check translations changes" | ||||
|         id: check-translations-changes | ||||
|         uses: tj-actions/changed-files@v46 | ||||
|         uses: tj-actions/changed-files@v45 | ||||
|         with: | ||||
|           base_sha: ${{ github.event.pull_request.base.sha }} | ||||
|           files: | | ||||
|             androidApp/src/main/res/values/strings.xml | ||||
|       - name: upload translation sources | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         uses: crowdin/github-action@v2 | ||||
|         with: | ||||
|           config: './.gitea/workflows/assets/crowdin.yml' | ||||
| @@ -50,10 +50,10 @@ jobs: | ||||
|           CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | ||||
|           CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} | ||||
|       - name: wait | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         run: sleep 10s | ||||
|       - name: download translations | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         uses: crowdin/github-action@v2 | ||||
|         with: | ||||
|           config: './.gitea/workflows/assets/crowdin.yml' | ||||
| @@ -66,18 +66,18 @@ jobs: | ||||
|           CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | ||||
|           CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} | ||||
|       - name: Check for uncommitted changes | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         id: check-changes | ||||
|         uses: mskri/check-uncommitted-changes-action@v1.0.1 | ||||
|       - name: Commit Changes | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         run: | | ||||
|           git config --global user.email aminecmi+giteadrone@pm.me | ||||
|           git config --global user.name giteadrone | ||||
|           git add ./androidApp/src/main/res/* | ||||
|           git commit -m "translation: translation files" | ||||
|       - name: Push changes | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         uses: appleboy/git-push-action@v1.0.0 | ||||
|         with: | ||||
|           author_name: giteadrone | ||||
| @@ -87,4 +87,7 @@ jobs: | ||||
|           branch: ${{ github.head_ref || github.ref_name }} | ||||
|   build: | ||||
|     needs: Lint | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
|   integrationTests: | ||||
|     needs: Lint | ||||
|     uses: ./.gitea/workflows/common_coverage.yml | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| name: Master | ||||
| name: Check master code | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
| @@ -6,4 +6,4 @@ on: | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
							
								
								
									
										27
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,30 +1,3 @@ | ||||
| **v125040991 | ||||
|  | ||||
| - fix: Connectivity toast message was causing issues. | ||||
| - Changelog for v125030901 | ||||
|  | ||||
| -------------------------------------------------------------------- | ||||
|  | ||||
| **v125030901 | ||||
|  | ||||
| - Merge pull request 'fix-reload' (#195) from fix-reload into master | ||||
| - fix: Infinite scroll needs loading stats. | ||||
| - fix: do not reload items on resume. | ||||
| - Merge pull request 'tests' (#193) from tests into master | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - chore: better handling of coroutine dispatchers. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - chore: comment robolectric tests for now. | ||||
| - fix: Fixed source deletion test. | ||||
| - Merge pull request 'Fix alignment changes resetting reader article position' (#190) from davidoskky/ReaderForSelfoss-multiplatform:alignment into master | ||||
| - Refactor star icon handling | ||||
| - Don't restart activity changing alignment | ||||
| - Changelog for v125030711 | ||||
|  | ||||
| -------------------------------------------------------------------- | ||||
|  | ||||
| **v125030711 | ||||
|  | ||||
| - Merge pull request 'fix: initial status loading issues.' (#192) from connectivity into master | ||||
|   | ||||
| @@ -120,7 +120,6 @@ class HomeActivity : | ||||
|         binding.swipeRefreshLayout.setOnRefreshListener { | ||||
|             repository.offlineOverride = false | ||||
|             lastFetchDone = false | ||||
|             items.clear() | ||||
|             getElementsAccordingToTab() | ||||
|             binding.swipeRefreshLayout.isRefreshing = false | ||||
|         } | ||||
| @@ -387,7 +386,6 @@ class HomeActivity : | ||||
|                     lastFetchDone = false | ||||
|  | ||||
|                     elementsShown = ItemType.fromInt(position + 1) | ||||
|                     items = ArrayList() | ||||
|                     getElementsAccordingToTab() | ||||
|                     binding.recyclerView.scrollToPosition(0) | ||||
|  | ||||
| @@ -460,8 +458,6 @@ class HomeActivity : | ||||
|         appendResults: Boolean, | ||||
|         itemType: ItemType, | ||||
|     ) { | ||||
|         @Suppress("detekt:ComplexCondition") | ||||
|         if ((appendResults && items.size > 0) || (!appendResults && items.size == 0)) { | ||||
|         CountingIdlingResourceSingleton.increment() | ||||
|         binding.swipeRefreshLayout.isRefreshing = true | ||||
|         CoroutineScope(Dispatchers.IO).launch { | ||||
| @@ -480,9 +476,6 @@ class HomeActivity : | ||||
|             } | ||||
|             CountingIdlingResourceSingleton.decrement() | ||||
|         } | ||||
|         } else { | ||||
|             handleListResult() | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun handleListResult(appendResults: Boolean = false) { | ||||
| @@ -541,10 +534,7 @@ class HomeActivity : | ||||
|     } | ||||
|  | ||||
|     private fun reloadBadges() { | ||||
|         if (appSettingsService.isInfiniteLoadingEnabled() || | ||||
|             appSettingsService.isDisplayUnreadCountEnabled() || | ||||
|             appSettingsService.isDisplayAllCountEnabled() | ||||
|         ) { | ||||
|         if (appSettingsService.isDisplayUnreadCountEnabled() || appSettingsService.isDisplayAllCountEnabled()) { | ||||
|             CountingIdlingResourceSingleton.increment() | ||||
|             CoroutineScope(Dispatchers.IO).launch { | ||||
|                 repository.reloadBadges() | ||||
|   | ||||
| @@ -82,7 +82,7 @@ class MyApp : | ||||
|                         } else { | ||||
|                             R.string.network_connectivity_lost | ||||
|                         } | ||||
|                     launch(Dispatchers.Main) { | ||||
|  | ||||
|                     Toast | ||||
|                         .makeText( | ||||
|                             applicationContext, | ||||
| @@ -92,7 +92,6 @@ class MyApp : | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         } | ||||
|  | ||||
|         repository.migrate(driverFactory) | ||||
|     } | ||||
|   | ||||
| @@ -30,7 +30,7 @@ import org.kodein.di.instance | ||||
|  | ||||
| class ItemCardAdapter( | ||||
|     override val app: Activity, | ||||
|     override var items: ArrayList<SelfossModel.Item>, | ||||
|     override val items: ArrayList<SelfossModel.Item>, | ||||
|     override val updateHomeItems: (ArrayList<SelfossModel.Item>) -> Unit, | ||||
| ) : ItemsAdapter<ItemCardAdapter.ViewHolder>() { | ||||
|     override lateinit var binding: CardItemBinding | ||||
|   | ||||
| @@ -21,7 +21,7 @@ import org.kodein.di.instance | ||||
|  | ||||
| class ItemListAdapter( | ||||
|     override val app: Activity, | ||||
|     override var items: ArrayList<SelfossModel.Item>, | ||||
|     override val items: ArrayList<SelfossModel.Item>, | ||||
|     override val updateHomeItems: (ArrayList<SelfossModel.Item>) -> Unit, | ||||
| ) : ItemsAdapter<ItemListAdapter.ViewHolder>() { | ||||
|     override lateinit var binding: ListItemBinding | ||||
|   | ||||
| @@ -21,7 +21,7 @@ import org.kodein.di.DIAware | ||||
| abstract class ItemsAdapter<VH : RecyclerView.ViewHolder?> : | ||||
|     RecyclerView.Adapter<VH>(), | ||||
|     DIAware { | ||||
|     abstract var items: ArrayList<SelfossModel.Item> | ||||
|     abstract val items: ArrayList<SelfossModel.Item> | ||||
|     abstract val repository: Repository | ||||
|     abstract val binding: ViewBinding | ||||
|     abstract val appSettingsService: AppSettingsService | ||||
| @@ -31,7 +31,8 @@ abstract class ItemsAdapter<VH : RecyclerView.ViewHolder?> : | ||||
|     protected val c: Context get() = app.baseContext | ||||
|  | ||||
|     fun updateAllItems(items: ArrayList<SelfossModel.Item>) { | ||||
|         this.items = items | ||||
|         this.items.clear() | ||||
|         this.items.addAll(items) | ||||
|         updateHomeItems(items) | ||||
|         notifyDataSetChanged() | ||||
|     } | ||||
|   | ||||
| @@ -1,17 +0,0 @@ | ||||
| **v125030901** | ||||
|  | ||||
| - Merge pull request 'fix-reload' (#195) from fix-reload into master | ||||
| - fix: Infinite scroll needs loading stats. | ||||
| - fix: do not reload items on resume. | ||||
| - Merge pull request 'tests' (#193) from tests into master | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - chore: better handling of coroutine dispatchers. | ||||
| - ci: Instrumentation tests coverage in ci. | ||||
| - chore: comment robolectric tests for now. | ||||
| - fix: Fixed source deletion test. | ||||
| - Merge pull request 'Fix alignment changes resetting reader article position' (#190) from davidoskky/ReaderForSelfoss-multiplatform:alignment into master | ||||
| - Refactor star icon handling | ||||
| - Don't restart activity changing alignment | ||||
| - Changelog for v125030711 | ||||
| @@ -1,4 +0,0 @@ | ||||
| **v125040991** | ||||
|  | ||||
| - fix: Connectivity toast message was causing issues. | ||||
| - Changelog for v125030901 | ||||
| @@ -32,7 +32,6 @@ import io.ktor.utils.io.charsets.Charsets | ||||
| import io.ktor.utils.io.core.toByteArray | ||||
| import kotlinx.coroutines.CoroutineScope | ||||
| import kotlinx.coroutines.Dispatchers | ||||
| import kotlinx.coroutines.IO | ||||
| import kotlinx.coroutines.launch | ||||
| import kotlinx.serialization.json.Json | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user