From 3f1028604d389010e558e57907c16fbae3f5b6ea Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Wed, 3 Mar 2021 16:03:23 +0100 Subject: [PATCH] Ability to copy/share stats and connection details --- app/src/main/AndroidManifest.xml | 1 + .../com/emanuelef/remote_capture/Utils.java | 26 ++++++++++ .../activities/ConnectionDetailsActivity.java | 49 ++++++++++++++++++- .../activities/StatsActivity.java | 46 +++++++++++++++++ app/src/main/res/drawable/ic_content_copy.xml | 5 ++ app/src/main/res/drawable/ic_share.xml | 5 ++ .../layout/activity_connection_details.xml | 30 ++++++------ app/src/main/res/layout/activity_stats.xml | 3 +- app/src/main/res/menu/copy_share_menu.xml | 19 +++++++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/values/styles.xml | 3 +- 11 files changed, 170 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/drawable/ic_content_copy.xml create mode 100644 app/src/main/res/drawable/ic_share.xml create mode 100644 app/src/main/res/menu/copy_share_menu.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9e15a055..948f8ccd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + 0) mDroppedConns.setTextColor(Color.RED); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.copy_share_menu, menu); + + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + int id = item.getItemId(); + + if(id == R.id.copy_to_clipboard) { + String contents = Utils.table2Text(mTable); + + ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText(getString(R.string.stats), contents); + clipboard.setPrimaryClip(clip); + + Utils.showToast(this, R.string.copied_to_clipboard); + return true; + } else if(id == R.id.share) { + String contents = Utils.table2Text(mTable); + + Intent intent = new Intent(android.content.Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.stats)); + intent.putExtra(android.content.Intent.EXTRA_TEXT, contents); + + startActivity(Intent.createChooser(intent, getResources().getString(R.string.share))); + + return true; + } + + return super.onOptionsItemSelected(item); + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_content_copy.xml b/app/src/main/res/drawable/ic_content_copy.xml new file mode 100644 index 00000000..0fb13c2d --- /dev/null +++ b/app/src/main/res/drawable/ic_content_copy.xml @@ -0,0 +1,5 @@ + + + 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_connection_details.xml b/app/src/main/res/layout/activity_connection_details.xml index a3a79c82..025113a3 100644 --- a/app/src/main/res/layout/activity_connection_details.xml +++ b/app/src/main/res/layout/activity_connection_details.xml @@ -1,10 +1,12 @@ - @@ -25,7 +27,7 @@ android:layout_height="wrap_content" android:layout_weight="0.75" android:textIsSelectable="true" - android:text="com.emanuelef.remote_capture (14503)" /> + tools:text="com.emanuelef.remote_capture (14503)" /> + tools:text="TLS (TCP)" /> + tools:text="ssl.example.com" /> + tools:text="1.2.3.4:14631" /> + tools:text="5.6.7.8:443" /> + tools:text="Open" /> + tools:text="example.com/test" /> - + tools:text="1.5 MB down - 0.1 up" /> - + tools:text="1.1 K down - 98 down" /> + tools:text="2 min" /> + tools:text="01/02/20 00:45:01" /> + tools:text="01/02/20 00:47:01" /> diff --git a/app/src/main/res/layout/activity_stats.xml b/app/src/main/res/layout/activity_stats.xml index d1068942..a3b8cf34 100644 --- a/app/src/main/res/layout/activity_stats.xml +++ b/app/src/main/res/layout/activity_stats.xml @@ -7,7 +7,8 @@ android:layout_height="fill_parent"> + android:padding="8dp" + android:id="@+id/table"> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a884e59..137ea833 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -105,5 +105,7 @@ First Seen Last Seen Closed + Copy to clipboard + Copied to clipboard! diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index c4e6f10f..9a816cad 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,5 +1,4 @@ - - +