summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod
diff options
context:
space:
mode:
authormarkamaze <mark.amaze@gmail.com>2020-11-30 02:20:02 -0800
committerGitHub <noreply@github.com>2020-11-30 11:20:02 +0100
commitc1482fe5b89b08498de3fb95b69db3a4f832099a (patch)
tree7d4e54bbee461ce6f487fa8ada9c5ac80cc71b2f /app/src/main/java/de/danoeh/antennapod
parent66ee677ebe647d100f0aa32f371085e1c65a1688 (diff)
downloadAntennaPod-c1482fe5b89b08498de3fb95b69db3a4f832099a.zip
Moved export log function to menu and added confirm dialog (#4712)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java88
1 files changed, 58 insertions, 30 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
index bff11fa5e..721291597 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
@@ -11,10 +11,15 @@ import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import com.google.android.material.snackbar.Snackbar;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;
+import android.view.Menu;
+import android.view.MenuItem;
import android.widget.TextView;
@@ -67,42 +72,65 @@ public class BugReportActivity extends AppCompatActivity {
clipboard.setPrimaryClip(clip);
Snackbar.make(findViewById(android.R.id.content), R.string.copied_to_clipboard, Snackbar.LENGTH_SHORT).show();
});
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.bug_report_options, menu);
+ return super.onCreateOptionsMenu(menu);
+ }
- findViewById(R.id.btn_export_logcat).setOnClickListener(v -> {
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ if (item.getItemId() == R.id.export_logcat) {
+ AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
+ alertBuilder.setMessage(R.string.confirm_export_log_dialog_message);
+ alertBuilder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
+ exportLog();
+ dialog.dismiss();
+ });
+ alertBuilder.setNegativeButton(R.string.cancel_label, null);
+ alertBuilder.show();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ private void exportLog() {
+ try {
+ File filename = new File(UserPreferences.getDataFolder(null), "full-logs.txt");
+ filename.createNewFile();
+ String cmd = "logcat -d -f " + filename.getAbsolutePath();
+ Runtime.getRuntime().exec(cmd);
+ //share file
try {
- File filename = new File(UserPreferences.getDataFolder(null), "full-logs.txt");
- filename.createNewFile();
- String cmd = "logcat -d -f " + filename.getAbsolutePath();
- Runtime.getRuntime().exec(cmd);
- //share file
- try {
- Intent i = new Intent(Intent.ACTION_SEND);
- i.setType("text/*");
- String authString = getString(de.danoeh.antennapod.core.R.string.provider_authority);
- Uri fileUri = FileProvider.getUriForFile(this, authString, filename);
- i.putExtra(Intent.EXTRA_STREAM, fileUri);
- i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- PackageManager pm = getPackageManager();
- List<ResolveInfo> resInfos = pm.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
- for (ResolveInfo resolveInfo : resInfos) {
- String packageName = resolveInfo.activityInfo.packageName;
- grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
- }
+ Intent i = new Intent(Intent.ACTION_SEND);
+ i.setType("text/*");
+ String authString = getString(de.danoeh.antennapod.core.R.string.provider_authority);
+ Uri fileUri = FileProvider.getUriForFile(this, authString, filename);
+ i.putExtra(Intent.EXTRA_STREAM, fileUri);
+ i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+ PackageManager pm = getPackageManager();
+ List<ResolveInfo> resInfos = pm.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
+ for (ResolveInfo resolveInfo : resInfos) {
+ String packageName = resolveInfo.activityInfo.packageName;
+ grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
- String chooserTitle = getString(de.danoeh.antennapod.core.R.string.share_file_label);
- startActivity(Intent.createChooser(i, chooserTitle));
- } catch (Exception e) {
- e.printStackTrace();
- int strResId = R.string.log_file_share_exception;
- Snackbar.make(findViewById(android.R.id.content), strResId, Snackbar.LENGTH_LONG)
- .show();
}
- } catch (IOException e) {
+ String chooserTitle = getString(de.danoeh.antennapod.core.R.string.share_file_label);
+ startActivity(Intent.createChooser(i, chooserTitle));
+ } catch (Exception e) {
e.printStackTrace();
- Snackbar.make(findViewById(android.R.id.content), e.getMessage(), Snackbar.LENGTH_LONG).show();
+ int strResId = R.string.log_file_share_exception;
+ Snackbar.make(findViewById(android.R.id.content), strResId, Snackbar.LENGTH_LONG)
+ .show();
}
- });
+ } catch (IOException e) {
+ e.printStackTrace();
+ Snackbar.make(findViewById(android.R.id.content), e.getMessage(), Snackbar.LENGTH_LONG).show();
+ }
}
+
}