From 20ef821b7624fd3517f909e1ab26acbe1ed4e1f5 Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Sun, 15 Jan 2023 11:11:40 +0100 Subject: [PATCH] Fix PCAP file deletion on some Android versions --- .../activities/MainActivity.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java b/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java index ee621af3..db13a6a2 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java +++ b/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java @@ -715,13 +715,27 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig } private void deletePcapFile(Uri pcapUri) { - Log.d(TAG, "Deleting PCAP file" + pcapUri.getPath()); boolean deleted = false; - try { - deleted = (getContentResolver().delete(pcapUri, null, null) == 1); - } catch (UnsupportedOperationException | SecurityException e) { - e.printStackTrace(); + // The getContentResolver().delete in some Android versions does not work, try to delete + // using file path first + String fpath = Utils.uriToFilePath(this, pcapUri); + if(fpath != null) { + Log.d(TAG, "deletePcapFile: path=" + fpath); + + try { + deleted = new File(fpath).delete(); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + Log.d(TAG, "deletePcapFile: uri=" + pcapUri); + + try { + deleted = (getContentResolver().delete(pcapUri, null, null) == 1); + } catch (UnsupportedOperationException | SecurityException e) { + e.printStackTrace(); + } } if(!deleted)