diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/DeleteTask.java b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/DeleteTask.java index 4f83f4bd0a..a5a06eec60 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/DeleteTask.java +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/DeleteTask.java @@ -130,10 +130,11 @@ protected final AsyncTaskResult doInBackground( @Override public void onPostExecute(AsyncTaskResult result) { - Intent intent = new Intent(MainActivity.KEY_INTENT_LOAD_LIST); if (files.size() > 0) { String path = files.get(0).getParent(applicationContext); + Intent intent = new Intent(MainActivity.KEY_INTENT_LOAD_LIST); intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, path); + intent.setPackage(applicationContext.getPackageName()); applicationContext.sendBroadcast(intent); } diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/movecopy/MoveFilesTask.kt b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/movecopy/MoveFilesTask.kt index 9d9a3b6566..a1d700a606 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/movecopy/MoveFilesTask.kt +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/movecopy/MoveFilesTask.kt @@ -80,6 +80,7 @@ class MoveFilesTask( // mainFrag.updateList(); val intent = Intent(MainActivity.KEY_INTENT_LOAD_LIST) intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, paths[0]) + intent.setPackage(applicationContext.packageName) applicationContext.sendBroadcast(intent) } diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/services/CopyService.java b/app/src/main/java/com/amaze/filemanager/asynchronous/services/CopyService.java index 398cb8ff64..e49e0f26f0 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/services/CopyService.java +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/services/CopyService.java @@ -297,6 +297,7 @@ public void onPostExecute(Void b) { Intent intent = new Intent(MainActivity.KEY_INTENT_LOAD_LIST); intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, targetPath); + intent.setPackage(getPackageName()); sendBroadcast(intent); stopSelf(); } diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/services/EncryptService.java b/app/src/main/java/com/amaze/filemanager/asynchronous/services/EncryptService.java index c10c02ce85..47d4ade742 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/services/EncryptService.java +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/services/EncryptService.java @@ -238,6 +238,7 @@ public void onFinish(Long value) { Intent intent = new Intent(MainActivity.KEY_INTENT_LOAD_LIST); intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, ""); + intent.setPackage(getPackageName()); sendBroadcast(intent); stopSelf(); } diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/services/ExtractService.java b/app/src/main/java/com/amaze/filemanager/asynchronous/services/ExtractService.java index 0ed4775a43..409600c6d8 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/services/ExtractService.java +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/services/ExtractService.java @@ -423,6 +423,7 @@ public void onPostExecute(Boolean hasInvalidEntries) { if (watcherUtil != null) watcherUtil.stopWatch(); Intent intent = new Intent(MainActivity.KEY_INTENT_LOAD_LIST); intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, extractionPath); + intent.setPackage(extractService.getPackageName()); extractService.sendBroadcast(intent); extractService.stopSelf(); diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/services/ZipService.kt b/app/src/main/java/com/amaze/filemanager/asynchronous/services/ZipService.kt index 726cf21244..acb40516ef 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/services/ZipService.kt +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/services/ZipService.kt @@ -259,6 +259,7 @@ class ZipService : AbstractProgressiveService() { val intent = Intent(MainActivity.KEY_INTENT_LOAD_LIST) .putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, zipPath) + .setPackage(applicationContext.packageName) zipService.sendBroadcast(intent) zipService.stopSelf() }, diff --git a/app/src/main/java/com/amaze/filemanager/ui/activities/MainActivityViewModel.kt b/app/src/main/java/com/amaze/filemanager/ui/activities/MainActivityViewModel.kt index e9c8c83246..069e2b95cf 100644 --- a/app/src/main/java/com/amaze/filemanager/ui/activities/MainActivityViewModel.kt +++ b/app/src/main/java/com/amaze/filemanager/ui/activities/MainActivityViewModel.kt @@ -239,6 +239,7 @@ class MainActivityViewModel(val applicationContext: Application) : val intent = Intent(MainActivity.KEY_INTENT_LOAD_LIST) hybridFile.getParent(applicationContext)?.let { intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, it) + intent.setPackage(applicationContext.packageName) applicationContext.sendBroadcast(intent) } return true @@ -295,6 +296,7 @@ class MainActivityViewModel(val applicationContext: Application) : val intent = Intent(MainActivity.KEY_INTENT_LOAD_LIST) hybridFile.getParent(applicationContext)?.let { intent.putExtra(MainActivity.KEY_INTENT_LOAD_LIST_FILE, it) + intent.setPackage(applicationContext.packageName) applicationContext.sendBroadcast(intent) } return true diff --git a/app/src/main/java/com/amaze/filemanager/ui/fragments/MainFragment.java b/app/src/main/java/com/amaze/filemanager/ui/fragments/MainFragment.java index 5b66d5ba11..8dddfa8579 100644 --- a/app/src/main/java/com/amaze/filemanager/ui/fragments/MainFragment.java +++ b/app/src/main/java/com/amaze/filemanager/ui/fragments/MainFragment.java @@ -402,7 +402,7 @@ void loadViews() { } } - private BroadcastReceiver receiver2 = + private BroadcastReceiver intentLoadListReceiver = new BroadcastReceiver() { @Override @@ -1246,14 +1246,18 @@ public void updateList(boolean forceReload) { } @Override - public void onResume() { - super.onResume(); + public void onStart() { + super.onStart(); ContextCompatExtKt.registerReceiverCompat( - requireMainActivity(), - receiver2, + requireActivity().getApplicationContext(), + intentLoadListReceiver, new IntentFilter(MainActivity.KEY_INTENT_LOAD_LIST), ContextCompat.RECEIVER_NOT_EXPORTED); + } + @Override + public void onResume() { + super.onResume(); resumeDecryptOperations(); startFileObserver(); } @@ -1261,7 +1265,6 @@ public void onResume() { @Override public void onPause() { super.onPause(); - (requireActivity()).unregisterReceiver(receiver2); if (customFileObserver != null) { customFileObserver.stopWatching(); } @@ -1271,6 +1274,12 @@ public void onPause() { } } + @Override + public void onStop() { + super.onStop(); + requireActivity().getApplicationContext().unregisterReceiver(intentLoadListReceiver); + } + public ArrayList addToSmb( @NonNull SmbFile[] mFile, @NonNull String path, boolean showHiddenFiles) throws SmbException { ArrayList smbFileList = new ArrayList<>(); diff --git a/app/src/main/java/com/amaze/filemanager/utils/ContextCompatExt.kt b/app/src/main/java/com/amaze/filemanager/utils/ContextCompatExt.kt index a419ab37db..50223c6121 100644 --- a/app/src/main/java/com/amaze/filemanager/utils/ContextCompatExt.kt +++ b/app/src/main/java/com/amaze/filemanager/utils/ContextCompatExt.kt @@ -6,6 +6,7 @@ import android.content.Context import android.content.IntentFilter import android.os.Build import android.os.Build.VERSION_CODES.O +import androidx.core.content.ContextCompat /** * Context.registerReceiver() for SDK compatibility. @@ -17,7 +18,7 @@ import android.os.Build.VERSION_CODES.O fun Context.registerReceiverCompat( broadcastReceiver: BroadcastReceiver, intentFilter: IntentFilter, - flag: Int = 0x4, + flag: Int = ContextCompat.RECEIVER_NOT_EXPORTED, ) { if (Build.VERSION.SDK_INT >= O) { this.registerReceiver(broadcastReceiver, intentFilter, flag) diff --git a/app/src/main/java/com/amaze/filemanager/utils/MainActivityHelper.java b/app/src/main/java/com/amaze/filemanager/utils/MainActivityHelper.java index b9532d49c3..a6010b06ad 100644 --- a/app/src/main/java/com/amaze/filemanager/utils/MainActivityHelper.java +++ b/app/src/main/java/com/amaze/filemanager/utils/MainActivityHelper.java @@ -393,6 +393,7 @@ public void done(final HybridFile hFile, final boolean b) { intent.putExtra( MainActivity.KEY_INTENT_LOAD_LIST_FILE, hFile.getParent(context)); + intent.setPackage(mainActivity.getPackageName()); mainActivity.sendBroadcast(intent); // update the database entry to reflect rename for encrypted file