From e8a56aa669539582106b08f8a805adee50e478a0 Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Thu, 4 Mar 2021 23:14:30 +0100 Subject: [PATCH] Add about view and share app --- app/src/main/AndroidManifest.xml | 5 ++ .../com/emanuelef/remote_capture/Utils.java | 19 +++++ .../activities/AboutActivity.java | 48 +++++++++++++ .../activities/MainActivity.java | 37 +++++----- app/src/main/res/drawable/ic_copyright.xml | 5 ++ app/src/main/res/layout/about_activity.xml | 72 +++++++++++++++++++ app/src/main/res/menu/nav_items.xml | 9 +++ app/src/main/res/values/strings.xml | 9 ++- 8 files changed, 185 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/com/emanuelef/remote_capture/activities/AboutActivity.java create mode 100644 app/src/main/res/drawable/ic_copyright.xml create mode 100644 app/src/main/res/layout/about_activity.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 21368743..ae4fa8e1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -52,6 +52,11 @@ android:label="@string/title_activity_settings" android:launchMode="singleTop" android:parentActivityName=".activities.MainActivity" /> + . + * + * Copyright 2020-21 - Emanuele Faranda + */ + +package com.emanuelef.remote_capture.activities; + +import android.os.Bundle; +import android.text.Html; +import android.text.method.LinkMovementMethod; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +import com.emanuelef.remote_capture.R; +import com.emanuelef.remote_capture.Utils; + +public class AboutActivity extends AppCompatActivity { + private static final String TAG = "AboutActivity"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.about_activity); + + TextView appVersion = findViewById(R.id.app_version); + appVersion.setText(getString(R.string.app_name) + " " + Utils.getAppVersion(this)); + + TextView gplLicense = findViewById(R.id.app_license_link); + String localized = gplLicense.getText().toString(); + gplLicense.setText(Html.fromHtml("" + localized + "")); + gplLicense.setMovementMethod(LinkMovementMethod.getInstance()); + } +} diff --git a/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java b/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java index 772d08cb..43165f00 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java +++ b/app/src/main/java/com/emanuelef/remote_capture/activities/MainActivity.java @@ -24,8 +24,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; import android.net.VpnService; @@ -188,21 +186,13 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On navView.setNavigationItemSelectedListener(this); View header = navView.getHeaderView(0); - try { - PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); - String version = pInfo.versionName; - boolean isRelease = version.contains("."); - final String verStr = isRelease ? ("v" + version) : version; - TextView appVer = header.findViewById(R.id.app_version); - - appVer.setText(verStr); - appVer.setOnClickListener((ev) -> { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(GITHUB_PROJECT_URL + "/tree/" + verStr)); - startActivity(browserIntent); - }); - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "Could not retrieve package version"); - } + TextView appVer = header.findViewById(R.id.app_version); + String verStr = Utils.getAppVersion(this); + appVer.setText(verStr); + appVer.setOnClickListener((ev) -> { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(GITHUB_PROJECT_URL + "/tree/" + verStr)); + startActivity(browserIntent); + }); } @Override @@ -327,6 +317,19 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On startActivity(intent); } else Utils.showToast(this, R.string.capture_not_started); + } else if (id == R.id.action_about) { + Intent intent = new Intent(MainActivity.this, AboutActivity.class); + startActivity(intent); + } else if (id == R.id.action_share_app) { + String description = getString(R.string.about_text); + String getApp = getString(R.string.get_app); + String url = "http://play.google.com/store/apps/details?id=" + this.getPackageName(); + + Intent intent = new Intent(android.content.Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(android.content.Intent.EXTRA_TEXT, description + "\n" + getApp + "\n" + url); + + startActivity(Intent.createChooser(intent, getResources().getString(R.string.share))); } return false; diff --git a/app/src/main/res/drawable/ic_copyright.xml b/app/src/main/res/drawable/ic_copyright.xml new file mode 100644 index 00000000..b542c98d --- /dev/null +++ b/app/src/main/res/drawable/ic_copyright.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/about_activity.xml b/app/src/main/res/layout/about_activity.xml new file mode 100644 index 00000000..5640395a --- /dev/null +++ b/app/src/main/res/layout/about_activity.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/nav_items.xml b/app/src/main/res/menu/nav_items.xml index 50d5a92a..c0aaca90 100644 --- a/app/src/main/res/menu/nav_items.xml +++ b/app/src/main/res/menu/nav_items.xml @@ -19,6 +19,10 @@ android:id="@+id/action_rate_app" android:title="@string/rate_app" android:icon="@drawable/ic_star" /> + + + \ 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 fa1c7353..dc5ca3c7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ PCAPdroid + Copyright (C) 2020-21 - Emanuele Faranda black.silver@hotmail.it Start Stop Settings @@ -59,9 +60,9 @@ PCAP Dump TLS Decryption User Guide - Rate App + Rate Telegram Group - Github Project + Source Code YES NO The currently active VPN app will be disconnected. Do you want to proceed? @@ -112,5 +113,9 @@ Save to file File successfully saved %1$d older connections not shown + PCAPdroid is an open source network capture and monitoring tool which works without root privileges. + PCAPdroid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + GPLv3 License + Get it: