Skip to content

Conversation

@alperozturk96
Copy link
Collaborator

@alperozturk96 alperozturk96 commented Nov 20, 2025

  • Tests written, or not not needed

Moves IO tasks from main thread
Uses cached entries for search task
Faster file list filtering
Only update the adapter if data is changed (swapDirectory gets called multiple times with same data inner check must be implemented and also swapDirectory calls needs to be checked in different PR)

@alperozturk96 alperozturk96 linked an issue Nov 20, 2025 that may be closed by this pull request
3 tasks
@alperozturk96 alperozturk96 added the performance 🚀 Performance improvement opportunities (non-crash related) label Nov 20, 2025
@alperozturk96 alperozturk96 changed the title feat: cache content of different tabs feat: cache content of different tabs 🚀 Nov 21, 2025
@alperozturk96 alperozturk96 force-pushed the feat/cache-content-of-different-tabs branch 3 times, most recently from b2885c4 to f20cd24 Compare November 26, 2025 12:06
@alperozturk96 alperozturk96 force-pushed the feat/cache-content-of-different-tabs branch 2 times, most recently from 3979e36 to 9346fc0 Compare November 28, 2025 07:23
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
@alperozturk96 alperozturk96 force-pushed the feat/cache-content-of-different-tabs branch from 9346fc0 to c1fd43c Compare November 28, 2025 09:59
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
@github-actions
Copy link

@github-actions
Copy link

Codacy

SpotBugs

CategoryBaseNew
Bad practice4242
Correctness7474
Dodgy code276267
Experimental11
Internationalization77
Malicious code vulnerability22
Multithreaded correctness3535
Performance4848
Security1818
Total503494

@github-actions
Copy link

APK file: https://www.kaminsky.me/nc-dev/android-artifacts/15988.apk

qrcode

To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.

@github-actions
Copy link

blue-Light-Screenshot test failed, but no output was generated. Maybe a preliminary stage failed.

@tobiasKaminsky
Copy link
Member

  E  FATAL EXCEPTION: DefaultDispatcher-worker-4
                                                                                                    Process: com.nextcloud.client, PID: 7482
                                                                                                    java.lang.IllegalArgumentException: Trying to create a OCFile with a non valid remote path: 
                                                                                                    	at com.owncloud.android.datamodel.OCFile.<init>(OCFile.java:162)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter.buildOcFile(OCShareToOCFileConverter.kt:92)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter.buildOCFilesFromShares(OCShareToOCFileConverter.kt:41)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter$parseAndSaveShares$2.invokeSuspend(OCShareToOCFileConverter.kt:68)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter$parseAndSaveShares$2.invoke(Unknown Source:8)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter$parseAndSaveShares$2.invoke(Unknown Source:4)
                                                                                                    	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:61)
                                                                                                    	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
                                                                                                    	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
                                                                                                    	at com.owncloud.android.ui.adapter.OCShareToOCFileConverter.parseAndSaveShares(OCShareToOCFileConverter.kt:50)
                                                                                                    	at com.owncloud.android.ui.fragment.OCFileListSearchTask$execute$1.invokeSuspend(OCFileListSearchTask.kt:97)
                                                                                                    	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
                                                                                                    	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
                                                                                                    	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
                                                                                                    	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
                                                                                                    	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
                                                                                                    	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)
                                                                                                    	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)
                                                                                                    	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)
                                                                                                    	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@de30701, Dispatchers.IO]
2025-11-28 16:09:41.365  7482-7482  FileDisplayActivity     com.nextcloud.client                 V  onPause() start

I tried it with user "christine" and after fresh setup open "shared" view

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review performance 🚀 Performance improvement opportunities (non-crash related)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cache content of different tabs

3 participants