summaryrefslogtreecommitdiff
path: root/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java')
-rw-r--r--main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java34
1 files changed, 30 insertions, 4 deletions
diff --git a/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java b/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java
index 58698ea3..fe98cf77 100644
--- a/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java
+++ b/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java
@@ -5,11 +5,11 @@
package de.blinkt.openvpn.activities;
-import android.annotation.TargetApi;
import android.content.Intent;
-import android.os.Build;
+import android.net.Uri;
import android.view.Menu;
import android.view.MenuItem;
+import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
import androidx.viewpager.widget.ViewPager;
@@ -21,6 +21,7 @@ import de.blinkt.openvpn.fragments.AboutFragment;
import de.blinkt.openvpn.fragments.FaqFragment;
import de.blinkt.openvpn.fragments.GeneralSettings;
import de.blinkt.openvpn.fragments.GraphFragment;
+import de.blinkt.openvpn.fragments.ImportRemoteConfig;
import de.blinkt.openvpn.fragments.LogFragment;
import de.blinkt.openvpn.fragments.SendDumpFragment;
import de.blinkt.openvpn.fragments.VPNProfileList;
@@ -76,8 +77,14 @@ public class MainActivity extends BaseActivity {
@Override
protected void onResume() {
super.onResume();
- if (getIntent() != null) {
- String page = getIntent().getStringExtra("PAGE");
+ Intent intent = getIntent();
+ if (intent != null) {
+ if (intent.getAction().equals(Intent.ACTION_VIEW))
+ {
+ Uri uri = intent.getData();
+ checkUriForProfileImport(uri);
+ }
+ String page = intent.getStringExtra("PAGE");
if ("graph".equals(page)) {
mPager.setCurrentItem(1);
}
@@ -85,6 +92,25 @@ public class MainActivity extends BaseActivity {
}
}
+ private void checkUriForProfileImport(Uri uri) {
+ if ("openvpn".equals(uri.getScheme()) && "import-profile".equals(uri.getHost()))
+ {
+ String realUrl = uri.getEncodedPath() + "?" + uri.getEncodedQuery();
+ if (!realUrl.startsWith("/https://"))
+ {
+ Toast.makeText(this, "Cannot use openvpn://import-profile/ URL that does not use https://", Toast.LENGTH_LONG).show();
+ return;
+ }
+ realUrl = realUrl.substring(1);
+ startOpenVPNUrlImport(realUrl);
+ }
+ }
+
+ private void startOpenVPNUrlImport(String url) {
+ ImportRemoteConfig asImportFrag = ImportRemoteConfig.newInstance(url);
+ asImportFrag.show(getSupportFragmentManager(), "dialog");
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);