|
|
|
@ -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<Uri, Integer, Boolean>
|
|
|
|
|
class AsyncTaskExport extends AsyncTask<Uri, Integer, EnumResult>
|
|
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
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<Uri,Integer,Boolean> exportTask = new AsyncTaskExport();
|
|
|
|
|
AsyncTask<Uri,Integer,EnumResult> 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<Map<String,String>> readMessages(int messageType)
|
|
|
|
|