AmazeFileManager icon indicating copy to clipboard operation
AmazeFileManager copied to clipboard

SDK 34 adaptations

Open TranceLove opened this issue 1 year ago • 6 comments

Description

On Google Play store's requirements. Inevitably support for Kitkats must be dropped.

  • Minimum version requirement set to LOLLIPOP, required after SDK upgrade and future Billing library upgrade to 7.0.0 as well
  • Compile with JDK 17, for future compatibility with sardine-android (#376)
  • Code adaptations to remove switch cases to resource IDs, as mandated since Gradle 8.0
  • Fix import of resource IDs from library level resources
  • Fix bad programming habits in test cases

Automatic tests

  • [ ] Added test cases

Manual tests

  • [ ] Done

Build tasks success

Successfully running following tasks on local:

  • [x] ./gradlew assembledebug
  • [x] ./gradlew spotlessCheck

TranceLove avatar Jul 08 '24 23:07 TranceLove

Pending tasks:

  • [x] Fix Jacoco report stopped working - currently stub task only
  • [ ] Test on devices

TranceLove avatar Jul 08 '24 23:07 TranceLove

Found one issue during local build(./gradlew assembleFdroidRelease).

> Task :app:minifyFdroidReleaseWithR8 FAILED
ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in ~/github/amaze/app/build/outputs/mapping/fdroidRelease/missing_rules.txt.
ERROR: R8: Missing class com.amaze.filemanager.fileoperations.exceptions.CloudPluginException (referenced from: androidx.core.util.Pair com.amaze.filemanager.asynchronous.asynctasks.LoadFilesListTask.doInBackground(java.lang.Void[]) and 7 other contexts)
Missing class com.amaze.filemanager.fileoperations.exceptions.ShellNotRunningException (referenced from: void com.amaze.filemanager.application.AppConfig.lambda$getTrashBinInstance$2(java.lang.String) and 11 other contexts)
Missing class com.amaze.filemanager.fileoperations.exceptions.StreamNotFoundException (referenced from: void com.amaze.filemanager.asynchronous.asynctasks.texteditor.read.ReadTextFileTask.onError(java.lang.Throwable) and 2 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.FolderState (referenced from: java.lang.Integer com.amaze.filemanager.filesystem.ftp.NetCopyClientUtils$checkFolder$template$1.execute(net.schmizz.sshj.sftp.SFTPClient) and 3 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.OpenMode (referenced from: com.amaze.filemanager.fileoperations.filesystem.OpenMode com.amaze.filemanager.adapters.data.LayoutElementParcelable.mode and 208 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.StorageNaming$DeviceDescription (referenced from: java.lang.String com.amaze.filemanager.ui.strings.StorageNamingHelper.getNameForDeviceDescription(android.content.Context, java.io.File, int))
Missing class com.amaze.filemanager.fileoperations.filesystem.StorageNaming (referenced from: java.util.ArrayList com.amaze.filemanager.ui.activities.MainActivity.getStorageDirectoriesLegacy())
Missing class com.amaze.filemanager.fileoperations.filesystem.cloud.CloudStreamer (referenced from: com.amaze.filemanager.fileoperations.filesystem.cloud.CloudStreamer com.amaze.filemanager.filesystem.ssh.SshClientUtils$launchFtp$1.$streamer and 5 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.compressed.ArchivePasswordCache (referenced from: void com.amaze.filemanager.asynchronous.asynctasks.compress.SevenZipHelperCallable.addElements(java.util.ArrayList) and 9 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.root.NativeOperations (referenced from: boolean com.amaze.filemanager.filesystem.HybridFile.isDirectory(android.content.Context) and 1 other context)
Missing class com.amaze.filemanager.fileoperations.filesystem.smbstreamer.Streamer (referenced from: com.amaze.filemanager.fileoperations.filesystem.smbstreamer.Streamer com.amaze.filemanager.filesystem.files.FileUtils$5.val$s and 3 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.usb.SingletonUsbOtg (referenced from: void com.amaze.filemanager.ui.activities.MainActivity$2.onReceive(android.content.Context, android.content.Intent) and 8 other contexts)
Missing class com.amaze.filemanager.fileoperations.filesystem.usb.UsbOtgRepresentation (referenced from: void com.amaze.filemanager.ui.activities.MainActivity$2.onReceive(android.content.Context, android.content.Intent) and 2 other contexts)
Missing class com.amaze.filemanager.fileoperations.utils.OnLowMemory (referenced from: void com.amaze.filemanager.asynchronous.services.CopyService$DoInBackground$Copy.copyFiles(com.amaze.filemanager.filesystem.HybridFileParcelable, com.amaze.filemanager.filesystem.HybridFile, com.amaze.filemanager.utils.ProgressHandler) and 2 other contexts)
Missing class com.amaze.filemanager.fileoperations.utils.UpdatePosition (referenced from: com.amaze.filemanager.fileoperations.utils.UpdatePosition com.amaze.filemanager.asynchronous.management.ServiceWatcherUtil.UPDATE_POSITION and 27 other contexts)
Missing class com.amaze.filemanager.filesystem.compressed.sevenz.SevenZArchiveEntry (referenced from: void com.amaze.filemanager.asynchronous.asynctasks.compress.SevenZipHelperCallable.addElements(java.util.ArrayList) and 2 other contexts)
Missing class com.amaze.filemanager.filesystem.compressed.sevenz.SevenZFile (referenced from: void com.amaze.filemanager.asynchronous.asynctasks.compress.SevenZipHelperCallable.addElements(java.util.ArrayList) and 2 other contexts)
Missing class org.bouncycastle.asn1.ASN1ApplicationSpecific (referenced from: void jcifs.spnego.NegTokenInit.parse(byte[]))
Missing class org.bouncycastle.asn1.DERApplicationSpecific (referenced from: byte[] jcifs.spnego.NegTokenInit.toByteArray())
Missing class org.bouncycastle.jsse.BCSSLParameters (referenced from: void okhttp3.internal.platform.BouncyCastlePlatform.configureTlsExtensions(javax.net.ssl.SSLSocket, java.lang.String, java.util.List) and 1 other context)
Missing class org.bouncycastle.jsse.BCSSLSocket (referenced from: void okhttp3.internal.platform.BouncyCastlePlatform.configureTlsExtensions(javax.net.ssl.SSLSocket, java.lang.String, java.util.List) and 5 other contexts)
Missing class org.bouncycastle.jsse.provider.BouncyCastleJsseProvider (referenced from: void okhttp3.internal.platform.BouncyCastlePlatform.<init>())
Missing class org.conscrypt.Conscrypt$Version (referenced from: boolean okhttp3.internal.platform.ConscryptPlatform$Companion.atLeastVersion(int, int, int))
Missing class org.conscrypt.Conscrypt (referenced from: boolean okhttp3.internal.platform.ConscryptPlatform$Companion.atLeastVersion(int, int, int) and 4 other contexts)
Missing class org.conscrypt.ConscryptHostnameVerifier (referenced from: okhttp3.internal.platform.ConscryptPlatform$DisabledHostnameVerifier)
Missing class org.openjsse.javax.net.ssl.SSLParameters (referenced from: void okhttp3.internal.platform.OpenJSSEPlatform.configureTlsExtensions(javax.net.ssl.SSLSocket, java.lang.String, java.util.List))
Missing class org.openjsse.javax.net.ssl.SSLSocket (referenced from: void okhttp3.internal.platform.OpenJSSEPlatform.configureTlsExtensions(javax.net.ssl.SSLSocket, java.lang.String, java.util.List) and 1 other context)
Missing class org.openjsse.net.ssl.OpenJSSE (referenced from: void okhttp3.internal.platform.OpenJSSEPlatform.<init>())
Missing class sun.security.x509.X509Key (referenced from: void net.i2p.crypto.eddsa.EdDSAEngine.engineInitVerify(java.security.PublicKey))

FAILURE: Build failed with an exception.

So I disable minifyEnabled and the build passed, but the Amaze crashes with NoClassDefFoundError in Android 13.

Bambooin avatar Jul 09 '24 14:07 Bambooin

@Bambooin right, the minify rule. Added them back - although some can indeed just put dontwarn and skip them - either they're not used or should be available at system level. :thinking:

TranceLove avatar Jul 09 '24 15:07 TranceLove

With gradlew clean spotlessApply spotlessCheck jacocoTestPlayReleaseUnitTestReport some other classes, especially at file_operations module are seen missing, failing unit tests.

~~Probably related to proguard rule at file_operations module IMO.~~ Wild guess, still looking into it...

TranceLove avatar Jul 11 '24 16:07 TranceLove

build test apk

TranceLove avatar Aug 03 '24 15:08 TranceLove

getting following error at application startup Caused by: java.lang.SecurityException: com.amaze.filemanager.debug: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts at android.os.Parcel.createExceptionOrNull(Parcel.java:3087) at android.os.Parcel.createException(Parcel.java:3071) at android.os.Parcel.readException(Parcel.java:3054) at android.os.Parcel.readException(Parcel.java:2996) at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5684) at java.lang.reflect.Method.invoke(Native Method) at leakcanary.ServiceWatcher$install$4$2.invoke(ServiceWatcher.kt:85) at java.lang.reflect.Proxy.invoke(Proxy.java:1006) at $Proxy8.registerReceiverWithFeature(Unknown Source) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1868) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1804) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:765) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:765) at com.amaze.filemanager.ui.activities.MainActivity.onResume(MainActivity.java:1366) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1622)

VishalNehra avatar Oct 08 '24 01:10 VishalNehra

@TranceLove is this anywhere near mergeable? seems somewhat urgent.

EmmanuelMess avatar Feb 09 '25 17:02 EmmanuelMess

@EmmanuelMess Check. Will take a look.

TranceLove avatar Feb 10 '25 00:02 TranceLove

build test apk

TranceLove avatar Feb 10 '25 16:02 TranceLove

Sorry the stock Github workflow still uses Java 11 while this PR requires Java 17. Need to build the test apks on your own :bow:

TranceLove avatar Feb 11 '25 06:02 TranceLove

I think it is now requesting exactly java 17, whereas before I could build with java 19:

Could not determine the dependencies of task ':app:packageFdroidDebug'.
> Could not create task ':app:compileFdroidDebugJavaWithJavac'.
   > Failed to calculate the value of task ':app:compileFdroidDebugJavaWithJavac' property 'javaCompiler'.
      > Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=17, vendor=any, implementation=vendor-specific} for LINUX on x86_64.
         > No locally installed toolchains match and toolchain download repositories have not been configured.

* Try:
> Learn more about toolchain auto-detection at https://docs.gradle.org/8.7/userguide/toolchains.html#sec:auto_detection.
> Learn more about toolchain repositories at https://docs.gradle.org/8.7/userguide/toolchains.html#sub:download_repositories.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1s

Which is not really an issue, but is just a bit weird.

EmmanuelMess avatar Feb 12 '25 11:02 EmmanuelMess

onOptionsItemSelected's switches got changed into if-else statements?

EmmanuelMess avatar Feb 12 '25 12:02 EmmanuelMess

Issue explanation (write below this line)

I built the apk with the latest commit, but failed to open the Amaze anymore.

./gradlew assemblefdroidRelease

This issue shows up with this pull request at beginning for my device, I try to build every time when the commit is changed in this pull request.

Exception

  • App Name: Amaze File Manager
  • Package: com.amaze.filemanager
  • Version: 3.10
  • User Action: Unknown
  • Request: Could not initialize ACRA crash report
  • OS: Linux Android 13 - 33
  • Device: violet
  • Model:
  • Product: lineage_violet
Crash log

org.acra.config.ACRAConfigurationException: Class org.acra.attachment.DefaultAttachmentProvider cannot be abstract.
	at org.acra.config.ClassValidator.check(ClassValidator.java:35)
	at org.acra.config.CoreConfigurationBuilder.build(CoreConfigurationBuilder.java:844)
	at com.amaze.filemanager.application.AppConfig.initACRA(AppConfig.java:256)
	at com.amaze.filemanager.application.AppConfig.attachBaseContext(AppConfig.java:126)
	at android.app.Application.attach(Application.java:346)
	at android.app.Instrumentation.newApplication(Instrumentation.java:1244)
	at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1458)
	at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1395)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6772)
	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7924)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)


Bambooin avatar Feb 12 '25 12:02 Bambooin

I'm getting on the release configuration (it may be because it is minified)

 FATAL EXCEPTION: main
                                                                                                    Process: com.amaze.filemanager, PID: 7038
                                                                                                    java.lang.NoSuchFieldError: No field UNKNOWN of type Lcom/amaze/filemanager/fileoperations/filesystem/OpenMode; in class Lcom/amaze/filemanager/fileoperations/filesystem/OpenMode; or its superclasses (declaration of 'com.amaze.filemanager.fileoperations.filesystem.OpenMode' appears in /data/app/~~7amMas2Iua20Kpjju6IT5g==/com.amaze.filemanager-qtcbB6LVf1jEoCp4ixLb5w==/base.apk)
                                                                                                    	at com.amaze.filemanager.ui.views.drawer.Drawer.refreshDrawer(Drawer.java:297)
                                                                                                    	at com.amaze.filemanager.ui.activities.MainActivity.onResume(MainActivity.java:1358)
                                                                                                    	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1603)
                                                                                                    	at android.app.Activity.performResume(Activity.java:8743)
                                                                                                    	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4952)
                                                                                                    	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4995)
                                                                                                    	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
                                                                                                    	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                    	at android.os.Looper.loop(Looper.java:294)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8177)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

EmmanuelMess avatar Feb 12 '25 13:02 EmmanuelMess

onOptionsItemSelected's switches got changed into if-else statements?

As of Gradle Android 8.0,

AGP 8.0 generates R classes with non-final fields by default.

see https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes?hl=en#default-changes and also https://googlesamples.github.io/android-custom-lint-rules/checks/NonConstantResourceId.md.html

TranceLove avatar Feb 12 '25 14:02 TranceLove

The ACRA crash was fixed in latest commit, and the size change is very tiny with minifyEnabled false: (11440019 - 11362203) / 11362203 = 0.00684

No issue found with Android 13 device anymore.

Bambooin avatar Feb 13 '25 10:02 Bambooin

Re: library modules not minified on release config in submodules' build.gradle, as mentioned here this is not necessary - app minification will minify everything anyway.

@EmmanuelMess

TranceLove avatar Feb 13 '25 13:02 TranceLove

Tested and passes.

EmmanuelMess avatar Feb 13 '25 23:02 EmmanuelMess

hi, I am getting ForegroundServiceException when doing compression, extraction, encryption & decryption. seems like we should add foregroundServiceType (ref).

FATAL EXCEPTION: main
                 Process: com.amaze.filemanager.debug, PID: 27122
                 java.lang.RuntimeException: Unable to start service com.amaze.filemanager.asynchronous.services.ZipService@16f0a25 with Intent { cmp=com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService (has extras) }: android.app.ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false: service com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService
                 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4983)
                 	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
                 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2413)
                 	at android.os.Handler.dispatchMessage(Handler.java:111)
                 	at android.os.Looper.loopOnce(Looper.java:242)
                 	at android.os.Looper.loop(Looper.java:362)
                 	at android.app.ActivityThread.main(ActivityThread.java:8448)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:992)
                 Caused by: android.app.ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false: service com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService
                 	at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:54)
                 	at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:50)
                 	at android.os.Parcel.readParcelableInternal(Parcel.java:4870)
                 	at android.os.Parcel.readParcelable(Parcel.java:4852)
                 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3052)
                 	at android.os.Parcel.createException(Parcel.java:3041)
                 	at android.os.Parcel.readException(Parcel.java:3024)
                 	at android.os.Parcel.readException(Parcel.java:2966)
                 	at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7163)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at leakcanary.ServiceWatcher$install$4$2.invoke(ServiceWatcher.kt:85)
                 	at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
                 	at $Proxy4.setServiceForeground(Unknown Source)
                 	at android.app.Service.startForeground(Service.java:775)
                 	at com.amaze.filemanager.asynchronous.services.ZipService.onStartCommand(ZipService.kt:170)
                 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4965)
                 	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 
                 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2413) 
                 	at android.os.Handler.dispatchMessage(Handler.java:111) 
                 	at android.os.Looper.loopOnce(Looper.java:242) 
                 	at android.os.Looper.loop(Looper.java:362) 
                 	at android.app.ActivityThread.main(ActivityThread.java:8448) 
                 	at java.lang.reflect.Method.invoke(Native Method) 
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:992) 
00:53:48.697  E  ACRA caught a RuntimeException for com.amaze.filemanager.debug
                 java.lang.RuntimeException: Unable to start service com.amaze.filemanager.asynchronous.services.ZipService@16f0a25 with Intent { cmp=com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService (has extras) }: android.app.ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false: service com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService
                 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4983)
                 	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
                 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2413)
                 	at android.os.Handler.dispatchMessage(Handler.java:111)
                 	at android.os.Looper.loopOnce(Looper.java:242)
                 	at android.os.Looper.loop(Looper.java:362)
                 	at android.app.ActivityThread.main(ActivityThread.java:8448)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:992)
                 Caused by: android.app.ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false: service com.amaze.filemanager.debug/com.amaze.filemanager.asynchronous.services.ZipService
                 	at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:54)
                 	at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:50)
                 	at android.os.Parcel.readParcelableInternal(Parcel.java:4870)
                 	at android.os.Parcel.readParcelable(Parcel.java:4852)
                 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3052)
                 	at android.os.Parcel.createException(Parcel.java:3041)
                 	at android.os.Parcel.readException(Parcel.java:3024)
                 	at android.os.Parcel.readException(Parcel.java:2966)
                 	at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7163)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at leakcanary.ServiceWatcher$install$4$2.invoke(ServiceWatcher.kt:85)
                 	at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
                 	at $Proxy4.setServiceForeground(Unknown Source)
                 	at android.app.Service.startForeground(Service.java:775)
                 	at com.amaze.filemanager.asynchronous.services.ZipService.onStartCommand(ZipService.kt:170)
                 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4965)
                 	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 
                 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2413) 
                 	at android.os.Handler.dispatchMessage(Handler.java:111) 
                 	at android.os.Looper.loopOnce(Looper.java:242) 
                 	at android.os.Looper.loop(Looper.java:362) 
                 	at android.app.ActivityThread.main(ActivityThread.java:8448) 
                 	at java.lang.reflect.Method.invoke(Native Method) 
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:992) 

VishnuSanal avatar Feb 22 '25 19:02 VishnuSanal

ping @TranceLove

EmmanuelMess avatar Mar 04 '25 14:03 EmmanuelMess

Let's see if 70687e4 would work. Tested on Pixel 7 emulator running SDK 34.

But in the long run we may consider alternatives, like User-initiated data transfer or WorkManager :thinking:

TranceLove avatar Mar 04 '25 16:03 TranceLove

ping @VishnuSanal

EmmanuelMess avatar Mar 21 '25 16:03 EmmanuelMess

tested all ops viz. cut, copy, encryption, decryption, compression, extraction, search, app manager backup, and theme change. everything works perfectly. :)

VishnuSanal avatar Mar 22 '25 04:03 VishnuSanal