From 61443530792029a61ee7bd7d16d57f5bf13af487 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Tue, 21 Nov 2017 21:15:42 -0500 Subject: [PATCH] List correct file name on imports --- .../card_locker/ImportExportActivity.java | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/protect/card_locker/ImportExportActivity.java b/app/src/main/java/protect/card_locker/ImportExportActivity.java index 32677f53c..ee230b49e 100644 --- a/app/src/main/java/protect/card_locker/ImportExportActivity.java +++ b/app/src/main/java/protect/card_locker/ImportExportActivity.java @@ -7,10 +7,12 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; +import android.provider.OpenableColumns; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.content.FileProvider; @@ -235,7 +237,34 @@ public class ImportExportActivity extends AppCompatActivity return super.onOptionsItemSelected(item); } - private void onImportComplete(boolean success, String path) + private String fileNameFromUri(Uri uri) + { + if("file".equals(uri.getScheme())) + { + return uri.getPath(); + } + + Cursor returnCursor = + getContentResolver().query(uri, null, null, null, null); + if(returnCursor == null) + { + return null; + } + + int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + if(returnCursor.moveToFirst() == false) + { + returnCursor.close(); + return null; + } + + String name = returnCursor.getString(nameIndex); + returnCursor.close(); + + return name; + } + + private void onImportComplete(boolean success, Uri path) { AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -251,7 +280,15 @@ public class ImportExportActivity extends AppCompatActivity int messageId = success ? R.string.importedFrom : R.string.importFailed; final String template = getResources().getString(messageId); - final String message = String.format(template, path); + + // Get the filename of the file being imported + String filename = fileNameFromUri(path); + if(filename == null) + { + filename = "(unknown)"; + } + + final String message = String.format(template, filename); builder.setMessage(message); builder.setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() { @@ -379,7 +416,7 @@ public class ImportExportActivity extends AppCompatActivity { InputStream reader = getContentResolver().openInputStream(uri); Log.e(TAG, "Starting file import with: " + uri.toString()); - startImport(reader, uri.toString()); + startImport(reader, uri); } catch (FileNotFoundException e) {