mirror of https://github.com/termux/termux-app
Generate potentially long running reports in background threads instead of main UI thread
This commit is contained in:
parent
339b2a24a2
commit
2f828255ee
|
@ -69,19 +69,24 @@ public class SettingsActivity extends AppCompatActivity {
|
||||||
Preference aboutPreference = findPreference("about");
|
Preference aboutPreference = findPreference("about");
|
||||||
if (aboutPreference != null) {
|
if (aboutPreference != null) {
|
||||||
aboutPreference.setOnPreferenceClickListener(preference -> {
|
aboutPreference.setOnPreferenceClickListener(preference -> {
|
||||||
String title = "About";
|
new Thread() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
String title = "About";
|
||||||
|
|
||||||
StringBuilder aboutString = new StringBuilder();
|
StringBuilder aboutString = new StringBuilder();
|
||||||
aboutString.append(TermuxUtils.getAppInfoMarkdownString(context, false));
|
aboutString.append(TermuxUtils.getAppInfoMarkdownString(context, false));
|
||||||
|
|
||||||
String termuxPluginAppsInfo = TermuxUtils.getTermuxPluginAppsInfoMarkdownString(context);
|
String termuxPluginAppsInfo = TermuxUtils.getTermuxPluginAppsInfoMarkdownString(context);
|
||||||
if (termuxPluginAppsInfo != null)
|
if (termuxPluginAppsInfo != null)
|
||||||
aboutString.append("\n\n").append(termuxPluginAppsInfo);
|
aboutString.append("\n\n").append(termuxPluginAppsInfo);
|
||||||
|
|
||||||
aboutString.append("\n\n").append(TermuxUtils.getDeviceInfoMarkdownString(context));
|
aboutString.append("\n\n").append(TermuxUtils.getDeviceInfoMarkdownString(context));
|
||||||
aboutString.append("\n\n").append(TermuxUtils.getImportantLinksMarkdownString(context));
|
aboutString.append("\n\n").append(TermuxUtils.getImportantLinksMarkdownString(context));
|
||||||
|
|
||||||
ReportActivity.startReportActivity(context, new ReportInfo(UserAction.ABOUT, TermuxConstants.TERMUX_APP.TERMUX_SETTINGS_ACTIVITY_NAME, title, null, aboutString.toString(), null, false));
|
ReportActivity.startReportActivity(context, new ReportInfo(UserAction.ABOUT, TermuxConstants.TERMUX_APP.TERMUX_SETTINGS_ACTIVITY_NAME, title, null, aboutString.toString(), null, false));
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
|
@ -494,26 +494,34 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase {
|
||||||
TerminalSession session = mActivity.getCurrentSession();
|
TerminalSession session = mActivity.getCurrentSession();
|
||||||
if (session == null) return;
|
if (session == null) return;
|
||||||
|
|
||||||
String transcriptText = ShellUtils.getTerminalSessionTranscriptText(session, false, true);
|
final String transcriptText = ShellUtils.getTerminalSessionTranscriptText(session, false, true);
|
||||||
if (transcriptText == null) return;
|
if (transcriptText == null) return;
|
||||||
|
|
||||||
transcriptText = DataUtils.getTruncatedCommandOutput(transcriptText, DataUtils.TRANSACTION_SIZE_LIMIT_IN_BYTES, false, true, false).trim();
|
Logger.showToast(mActivity, mActivity.getString(R.string.msg_generating_report), true);
|
||||||
|
|
||||||
StringBuilder reportString = new StringBuilder();
|
new Thread() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
String title = TermuxConstants.TERMUX_APP_NAME + " Report Issue";
|
String transcriptTextTruncated = DataUtils.getTruncatedCommandOutput(transcriptText, DataUtils.TRANSACTION_SIZE_LIMIT_IN_BYTES, false, true, false).trim();
|
||||||
|
|
||||||
reportString.append("## Transcript\n");
|
StringBuilder reportString = new StringBuilder();
|
||||||
reportString.append("\n").append(MarkdownUtils.getMarkdownCodeForString(transcriptText, true));
|
|
||||||
|
|
||||||
reportString.append("\n\n").append(TermuxUtils.getAppInfoMarkdownString(mActivity, true));
|
String title = TermuxConstants.TERMUX_APP_NAME + " Report Issue";
|
||||||
reportString.append("\n\n").append(TermuxUtils.getDeviceInfoMarkdownString(mActivity));
|
|
||||||
|
|
||||||
String termuxAptInfo = TermuxUtils.geAPTInfoMarkdownString(mActivity);
|
reportString.append("## Transcript\n");
|
||||||
if (termuxAptInfo != null)
|
reportString.append("\n").append(MarkdownUtils.getMarkdownCodeForString(transcriptTextTruncated, true));
|
||||||
reportString.append("\n\n").append(termuxAptInfo);
|
|
||||||
|
|
||||||
ReportActivity.startReportActivity(mActivity, new ReportInfo(UserAction.REPORT_ISSUE_FROM_TRANSCRIPT, TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY_NAME, title, null, reportString.toString(), "\n\n" + TermuxUtils.getReportIssueMarkdownString(mActivity), false));
|
reportString.append("\n\n").append(TermuxUtils.getAppInfoMarkdownString(mActivity, true));
|
||||||
|
reportString.append("\n\n").append(TermuxUtils.getDeviceInfoMarkdownString(mActivity));
|
||||||
|
|
||||||
|
String termuxAptInfo = TermuxUtils.geAPTInfoMarkdownString(mActivity);
|
||||||
|
if (termuxAptInfo != null)
|
||||||
|
reportString.append("\n\n").append(termuxAptInfo);
|
||||||
|
|
||||||
|
ReportActivity.startReportActivity(mActivity, new ReportInfo(UserAction.REPORT_ISSUE_FROM_TRANSCRIPT, TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY_NAME, title, null, reportString.toString(), "\n\n" + TermuxUtils.getReportIssueMarkdownString(mActivity), false));
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void doPaste() {
|
public void doPaste() {
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<string name="action_autofill_password">Autofill password</string>
|
<string name="action_autofill_password">Autofill password</string>
|
||||||
|
|
||||||
<string name="action_reset_terminal">Reset</string>
|
<string name="action_reset_terminal">Reset</string>
|
||||||
<string name="msg_terminal_reset">Terminal reset.</string>
|
<string name="msg_terminal_reset">Terminal reset</string>
|
||||||
|
|
||||||
<string name="action_kill_process">Kill process (%d)</string>
|
<string name="action_kill_process">Kill process (%d)</string>
|
||||||
<string name="title_confirm_kill_process">Really kill this session?</string>
|
<string name="title_confirm_kill_process">Really kill this session?</string>
|
||||||
|
@ -75,7 +75,9 @@
|
||||||
<string name="action_toggle_keep_screen_on">Keep screen on</string>
|
<string name="action_toggle_keep_screen_on">Keep screen on</string>
|
||||||
<string name="action_open_help">Help</string>
|
<string name="action_open_help">Help</string>
|
||||||
<string name="action_open_settings">Settings</string>
|
<string name="action_open_settings">Settings</string>
|
||||||
|
|
||||||
<string name="action_report_issue">Report Issue</string>
|
<string name="action_report_issue">Report Issue</string>
|
||||||
|
<string name="msg_generating_report">Generating Report</string>
|
||||||
|
|
||||||
<string name="error_styling_not_installed">The &TERMUX_STYLING_APP_NAME; Plugin App is not installed.</string>
|
<string name="error_styling_not_installed">The &TERMUX_STYLING_APP_NAME; Plugin App is not installed.</string>
|
||||||
<string name="action_styling_install">Install</string>
|
<string name="action_styling_install">Install</string>
|
||||||
|
|
Loading…
Reference in New Issue