Compare commits
	
		
			5 Commits
		
	
	
		
			8a8de87d85
			...
			v125030901
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0b7f832573 | |||
| 22c966bf16 | |||
| bdf2bb8b31 | |||
| ceae91206d | |||
| 11c0e744dc | 
| @@ -6,8 +6,7 @@ jobs: | ||||
|   BuildAndTestAndCoverage: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out repository code | ||||
|         uses: actions/checkout@v4 | ||||
|       - uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|       - name: "Check android app changes" | ||||
| @@ -1,4 +1,4 @@ | ||||
| name: Create tag | ||||
| name: Realease | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
| @@ -7,7 +7,7 @@ on: | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|   createTagAndChangelog: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: build | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| name: Check PR code | ||||
| name: PR | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   Lint: | ||||
|   PR: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out repository code | ||||
| @@ -36,7 +36,7 @@ jobs: | ||||
|           files: | | ||||
|             androidApp/src/main/res/values/strings.xml | ||||
|       - name: upload translation sources | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         uses: crowdin/github-action@v2 | ||||
|         with: | ||||
|           config: './.gitea/workflows/assets/crowdin.yml' | ||||
| @@ -49,10 +49,10 @@ jobs: | ||||
|           CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | ||||
|           CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} | ||||
|       - name: wait | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         run: sleep 10s | ||||
|       - name: download translations | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         uses: crowdin/github-action@v2 | ||||
|         with: | ||||
|           config: './.gitea/workflows/assets/crowdin.yml' | ||||
| @@ -65,18 +65,18 @@ jobs: | ||||
|           CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | ||||
|           CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} | ||||
|       - name: Check for uncommitted changes | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' | ||||
|         id: check-changes | ||||
|         uses: mskri/check-uncommitted-changes-action@v1.0.1 | ||||
|       - name: Commit Changes | ||||
|         if: steps.check-api-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         if: steps.check-translations-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-api-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         if: steps.check-translations-changes.outputs.any_modified == 'true' && steps.check-changes.outputs.changes != '' | ||||
|         uses: appleboy/git-push-action@v1.0.0 | ||||
|         with: | ||||
|           author_name: giteadrone | ||||
| @@ -86,86 +86,4 @@ jobs: | ||||
|           branch: ${{ github.head_ref || github.ref_name }} | ||||
|   build: | ||||
|     needs: Lint | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
|   RunIntegrationTests: | ||||
|     needs: Lint | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - 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@v45 | ||||
|         with: | ||||
|           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... | ||||
|         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: | | ||||
|           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 | ||||
|           profile: pixel_2 | ||||
|           script: | | ||||
|             ./gradlew androidApp:clearScreenshotsTask || true | ||||
|             ./gradlew androidApp:createScreenshotDirectory | ||||
|             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 | ||||
|           retention-days: 2 | ||||
|           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 | ||||
|           retention-days: 1 | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - name: Clean | ||||
|         if: steps.check-android-changes.outputs.any_modified == 'true' || failure() | ||||
|         run: | | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml stop | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|   | ||||
							
								
								
									
										67
									
								
								.gitea/workflows/on_pr_test.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								.gitea/workflows/on_pr_test.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| name: PR test | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|  | ||||
| jobs: | ||||
|   integrationTests: | ||||
|     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 | ||||
|         with: | ||||
|           version: "2.23.3" | ||||
|       - name: run selfoss | ||||
|         run: | | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml up -d | ||||
|       - uses: actions/setup-java@v4 | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: '17' | ||||
|       - uses: gradle/actions/setup-gradle@v3 | ||||
|       - uses: android-actions/setup-android@v3 | ||||
|       - 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 | ||||
|         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 | ||||
|       - name: Tests | ||||
|         uses: reactivecircus/android-emulator-runner@v2 | ||||
|         with: | ||||
|           api-level: 29 | ||||
|           profile: pixel_2 | ||||
|           script: | | ||||
|             ./gradlew androidApp:clearScreenshotsTask || true | ||||
|             ./gradlew androidApp:createScreenshotDirectory | ||||
|             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 | ||||
|         with: | ||||
|           name: screenshot-espresso | ||||
|           path: androidApp/build/reports/androidTests/connected/screenshots | ||||
|           retention-days: 2 | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           path: androidApp/build/reports/androidTests/connected/debug/flavors/githubConfig | ||||
|           retention-days: 1 | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: coverage-espresso | ||||
|           path: androidApp/build/reports/jacoco/JacocoDebugCodeCoverage | ||||
|           retention-days: 1 | ||||
|           overwrite: true | ||||
|           include-hidden-files: true | ||||
|       - name: Clean | ||||
|         if: always() | ||||
|         run: | | ||||
|           docker compose -f .gitea/workflows/assets/docker-compose.yml stop | ||||
| @@ -1,4 +1,4 @@ | ||||
| name: Check master code | ||||
| name: Master | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
| @@ -6,4 +6,4 @@ on: | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     uses: ./.gitea/workflows/common_build.yml | ||||
|     uses: ./.gitea/workflows/on_called_build.yml | ||||
|   | ||||
| @@ -120,6 +120,7 @@ class HomeActivity : | ||||
|         binding.swipeRefreshLayout.setOnRefreshListener { | ||||
|             repository.offlineOverride = false | ||||
|             lastFetchDone = false | ||||
|             items.clear() | ||||
|             getElementsAccordingToTab() | ||||
|             binding.swipeRefreshLayout.isRefreshing = false | ||||
|         } | ||||
| @@ -458,6 +459,8 @@ 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 { | ||||
| @@ -476,6 +479,9 @@ class HomeActivity : | ||||
|                 } | ||||
|                 CountingIdlingResourceSingleton.decrement() | ||||
|             } | ||||
|         } else { | ||||
|             handleListResult() | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun handleListResult(appendResults: Boolean = false) { | ||||
| @@ -534,7 +540,10 @@ class HomeActivity : | ||||
|     } | ||||
|  | ||||
|     private fun reloadBadges() { | ||||
|         if (appSettingsService.isDisplayUnreadCountEnabled() || appSettingsService.isDisplayAllCountEnabled()) { | ||||
|         if (appSettingsService.isInfiniteLoadingEnabled() || | ||||
|             appSettingsService.isDisplayUnreadCountEnabled() || | ||||
|             appSettingsService.isDisplayAllCountEnabled() | ||||
|         ) { | ||||
|             CountingIdlingResourceSingleton.increment() | ||||
|             CoroutineScope(Dispatchers.IO).launch { | ||||
|                 repository.reloadBadges() | ||||
|   | ||||
| @@ -30,7 +30,7 @@ import org.kodein.di.instance | ||||
|  | ||||
| class ItemCardAdapter( | ||||
|     override val app: Activity, | ||||
|     override val items: ArrayList<SelfossModel.Item>, | ||||
|     override var 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 val items: ArrayList<SelfossModel.Item>, | ||||
|     override var 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 val items: ArrayList<SelfossModel.Item> | ||||
|     abstract var items: ArrayList<SelfossModel.Item> | ||||
|     abstract val repository: Repository | ||||
|     abstract val binding: ViewBinding | ||||
|     abstract val appSettingsService: AppSettingsService | ||||
| @@ -31,8 +31,7 @@ abstract class ItemsAdapter<VH : RecyclerView.ViewHolder?> : | ||||
|     protected val c: Context get() = app.baseContext | ||||
|  | ||||
|     fun updateAllItems(items: ArrayList<SelfossModel.Item>) { | ||||
|         this.items.clear() | ||||
|         this.items.addAll(items) | ||||
|         this.items = items | ||||
|         updateHomeItems(items) | ||||
|         notifyDataSetChanged() | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user