From: Tobias Brunner Date: Thu, 16 Oct 2025 14:39:49 +0000 (+0200) Subject: android: Fix querying display name of the log file X-Git-Tag: android-2.6.1^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5d98463eed4d423c07cc110cac805c3c63d67d11;p=thirdparty%2Fstrongswan.git android: Fix querying display name of the log file The previous code did not necessarily provide it (in particular if the size, or anything else, was queried as first column). --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java index 46b060c399..0049f08f33 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java @@ -20,6 +20,8 @@ import java.io.File; import java.io.FileNotFoundException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import org.strongswan.android.logic.CharonVpnService; @@ -85,28 +87,33 @@ public class LogContentProvider extends ContentProvider { /* this is called by apps to find out the name and size of the file. * since we only provide a single file this is simple to implement */ - if (projection == null || projection.length < 1) + if (projection == null) { - return null; + projection = new String[]{ OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE }; } Long timestamp = mUris.get(uri); if (timestamp == null) { /* don't check the validity as this information is not really private */ return null; } - MatrixCursor cursor = new MatrixCursor(projection, 1); - if (OpenableColumns.DISPLAY_NAME.equals(cursor.getColumnName(0))) - { - cursor.newRow().add(CharonVpnService.LOG_FILE); - } - else if (OpenableColumns.SIZE.equals(cursor.getColumnName(0))) - { - cursor.newRow().add(mLogFile.length()); - } - else + List cols = new ArrayList<>(); + List vals = new ArrayList<>(); + for (String col : projection) { - return null; + if (OpenableColumns.DISPLAY_NAME.equals(col)) + { + cols.add(OpenableColumns.DISPLAY_NAME); + vals.add(CharonVpnService.LOG_FILE); + } + else if (OpenableColumns.SIZE.equals(col)) + { + cols.add(OpenableColumns.SIZE); + vals.add(mLogFile.length()); + } } + + MatrixCursor cursor = new MatrixCursor(cols.toArray(new String[0]), 1); + cursor.addRow(vals.toArray()); return cursor; }