From 9d36e9adde543133873d6ea3487091cb713fb201 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Wed, 24 Mar 2021 03:22:12 +0500 Subject: [PATCH] Add ReportActivity and ReportInfo This implements the framework to report info to users. This may include reporting failure or result of commands or any exceptions that are raised. The ReportInfo provides 5 fields: - userAction: The user action that was being processed for which the report was generated. - sender: The internal app component that sent the report. - title: The report title. - reportString: The markdown text for the report. - addReportAndDeviceDetails: If set to true, then report and device details will be added to the report. This should provide the basics parameters for showing a report to the user. The ReportActivity also allows user to copy and share the report. In future this can also be used to allow users to easily email or post crash reports to github for Termux app crashes instead of going through logcat. --- app/src/main/AndroidManifest.xml | 6 + .../termux/app/activities/ReportActivity.java | 190 ++++++++++++++++++ .../java/com/termux/models/ReportInfo.java | 26 +++ .../java/com/termux/models/UserAction.java | 17 ++ app/src/main/res/drawable/ic_copy.xml | 5 + app/src/main/res/drawable/ic_share.xml | 5 + app/src/main/res/layout/activity_report.xml | 21 ++ ...ctivity_report_adapter_node_code_block.xml | 27 +++ .../activity_report_adapter_node_default.xml | 17 ++ app/src/main/res/layout/toolbar_layout.xml | 22 ++ app/src/main/res/menu/menu_report.xml | 15 ++ app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/dimens.xml | 10 + app/src/main/res/values/strings.xml | 7 +- app/src/main/res/values/styles.xml | 20 +- 15 files changed, 386 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/termux/app/activities/ReportActivity.java create mode 100644 app/src/main/java/com/termux/models/ReportInfo.java create mode 100644 app/src/main/java/com/termux/models/UserAction.java create mode 100644 app/src/main/res/drawable/ic_copy.xml create mode 100644 app/src/main/res/drawable/ic_share.xml create mode 100644 app/src/main/res/layout/activity_report.xml create mode 100644 app/src/main/res/layout/activity_report_adapter_node_code_block.xml create mode 100644 app/src/main/res/layout/activity_report_adapter_node_default.xml create mode 100644 app/src/main/res/layout/toolbar_layout.xml create mode 100644 app/src/main/res/menu/menu_report.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/dimens.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 346f6d3b..17d2c1b2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -101,6 +101,12 @@ android:label="@string/title_activity_termux_settings" android:theme="@style/Theme.AppCompat.Light.DarkActionBar" /> + + + + diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 00000000..9300daf6 --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml new file mode 100644 index 00000000..b442a324 --- /dev/null +++ b/app/src/main/res/layout/activity_report.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_report_adapter_node_code_block.xml b/app/src/main/res/layout/activity_report_adapter_node_code_block.xml new file mode 100644 index 00000000..c5a23f31 --- /dev/null +++ b/app/src/main/res/layout/activity_report_adapter_node_code_block.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/app/src/main/res/layout/activity_report_adapter_node_default.xml b/app/src/main/res/layout/activity_report_adapter_node_default.xml new file mode 100644 index 00000000..414eec12 --- /dev/null +++ b/app/src/main/res/layout/activity_report_adapter_node_default.xml @@ -0,0 +1,17 @@ + + diff --git a/app/src/main/res/layout/toolbar_layout.xml b/app/src/main/res/layout/toolbar_layout.xml new file mode 100644 index 00000000..85bb19b1 --- /dev/null +++ b/app/src/main/res/layout/toolbar_layout.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/app/src/main/res/menu/menu_report.xml b/app/src/main/res/menu/menu_report.xml new file mode 100644 index 00000000..513508a5 --- /dev/null +++ b/app/src/main/res/menu/menu_report.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..cc83b56d --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #1F000000 + #0F000000 + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 00000000..e5167ac7 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,10 @@ + + + + 16dp + 16dp + + 8dip + 16dip + 4dip + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a186ce46..21947fa5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -89,6 +89,10 @@ Invalid coommand path to RunCommandService: \"%1$s\" RunCommandService require allow-external-apps property to be set to \"true\" in &TERMUX_PROPERTIES_PRIMARY_PATH_SHORT; file. + Share + Share With + Copy + Report Text @@ -96,8 +100,6 @@ Settings &TERMUX_APP_NAME; Settings - - Debugging @@ -118,7 +120,6 @@ Logs will not have entries for terminal view keys. (Default) Logcat logs will have entries for terminal view keys. These are very verbose and should be disabled under normal circumstances or will cause performance issues. - Plugin Error Notifications Disable flashes and notifications for plugin errors. diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1f352423..c747fed7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -21,10 +21,6 @@ true - @@ -46,4 +42,20 @@ true true + + + + + + + + +