From 19e85289d9873555a64d1b05b875d041fed27574 Mon Sep 17 00:00:00 2001 From: jens Date: Sun, 19 Sep 2021 20:16:56 +0200 Subject: [PATCH] Progress displayed --- .../server47/messageexport/MainActivity.java | 44 ++++++++++++------- app/src/main/res/values/strings.xml | 3 ++ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/de/server47/messageexport/MainActivity.java b/app/src/main/java/de/server47/messageexport/MainActivity.java index d33012a..99cb214 100644 --- a/app/src/main/java/de/server47/messageexport/MainActivity.java +++ b/app/src/main/java/de/server47/messageexport/MainActivity.java @@ -48,6 +48,7 @@ public class MainActivity extends Activity long messageCount = 0; + enum EnumResult { success, errorReadingMessages, noMessages, errorWritingFile }; @Override protected void onCreate(@Nullable Bundle savedInstanceState) @@ -92,7 +93,7 @@ public class MainActivity extends Activity } } - class AsyncTaskExport extends AsyncTask + class AsyncTaskExport extends AsyncTask { String getExportString() { @@ -168,7 +169,7 @@ public class MainActivity extends Activity } @Override - protected Boolean doInBackground(Uri... uriTree) + protected EnumResult doInBackground(Uri... uriTree) { int selectedMessageType; if(rbRcs.isChecked()) @@ -185,10 +186,11 @@ public class MainActivity extends Activity { if (Looper.myLooper() == null) Looper.prepare(); - Toast.makeText(MainActivity.this, "Error reading messages. Can\'t export.", Toast.LENGTH_SHORT).show(); - } - return false; + Toast.makeText(MainActivity.this, "Error reading messages. Can\'t export.", Toast.LENGTH_SHORT).show(); + + return EnumResult.noMessages; + } } @Override @@ -199,14 +201,25 @@ public class MainActivity extends Activity } @Override - protected void onPostExecute(Boolean result) + protected void onPostExecute(EnumResult result) { super.onPostExecute(result); - if(result) - tvStatus.setText(String.format(getResources().getString(R.string.exported), String.valueOf(messageCount))); - else - tvStatus.setText(getResources().getString(R.string.errorExporting)); + switch(result) + { + case success: + tvStatus.setText(String.format(getResources().getString(R.string.exported), String.valueOf(messageCount))); + break; + case errorReadingMessages: + tvStatus.setText(getResources().getString(R.string.errorReadingMessages)); + break; + case noMessages: + tvStatus.setText(getResources().getString(R.string.noMessages)); + break; + case errorWritingFile: + tvStatus.setText(getResources().getString(R.string.errorWritingFile)); + break; + } } } @@ -220,7 +233,7 @@ public class MainActivity extends Activity switch (requestCode) { case requestCodeExport: - AsyncTask exportTask = new AsyncTaskExport(); + AsyncTask exportTask = new AsyncTaskExport(); exportTask.execute(data.getData()); break; case requestCodePermissionRequest: @@ -230,7 +243,7 @@ public class MainActivity extends Activity } } - boolean exportFiles(Uri uriTree, int messageType, String content) + EnumResult exportFiles(Uri uriTree, int messageType, String content) { String messageTypeString; if(messageType == typeRCS) @@ -269,17 +282,18 @@ public class MainActivity extends Activity OutputStream out = getApplicationContext().getContentResolver().openOutputStream(exportFile.getUri()); out.write(content.getBytes()); out.close(); - return true; + return EnumResult.success; } catch (IOException e) { e.printStackTrace(); + return EnumResult.errorWritingFile; } } + else + return EnumResult.errorWritingFile; // else // Toast.makeText(MainActivity.this, getResources().getString(R.string.ConfigurationExportError), Toast.LENGTH_LONG).show(); - - return false; } List> readMessages(int messageType) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ef78498..860052e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,4 +13,7 @@ Exporting %1$s messages. %1$s messages have been exported. An error occured while exporting your messages. + Error reading messages. + There are no messages of the selected type. Nothing exported. + File could not be written. \ No newline at end of file