From ac037a9dc5b4e83cd352c55184dae2582dc7d8f5 Mon Sep 17 00:00:00 2001 From: Nathan Freitas Date: Mon, 24 Oct 2016 15:00:47 -0400 Subject: [PATCH] fix browser install request --- .../torproject/android/OrbotMainActivity.java | 24 +++++----- .../android/ui/PromoAppsActivity.java | 17 +++---- app/src/main/res/layout/layout_main.xml | 48 +++++++------------ 3 files changed, 40 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java index 202cff55..d95e0f25 100644 --- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java +++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java @@ -737,8 +737,12 @@ public class OrbotMainActivity extends AppCompatActivity private void openBrowser(final String browserLaunchUrl,boolean forceExternal) { boolean isBrowserInstalled = appInstalledOrNot(TorServiceConstants.BROWSER_APP_USERNAME); - - if (mBtnVPN.isChecked()||forceExternal) + + if (isBrowserInstalled) + { + startIntent(TorServiceConstants.BROWSER_APP_USERNAME,Intent.ACTION_VIEW,Uri.parse(browserLaunchUrl)); + } + else if (mBtnVPN.isChecked()||forceExternal) { //use the system browser since VPN is on Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(browserLaunchUrl)); @@ -751,10 +755,6 @@ public class OrbotMainActivity extends AppCompatActivity intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } - else if (isBrowserInstalled) - { - startIntent(TorServiceConstants.BROWSER_APP_USERNAME,Intent.ACTION_VIEW,Uri.parse(browserLaunchUrl)); - } else { AlertDialog aDialog = new AlertDialog.Builder(OrbotMainActivity.this) @@ -768,10 +768,13 @@ public class OrbotMainActivity extends AppCompatActivity public void onClick(DialogInterface dialog, int which) { //prompt to install Orweb - Intent intent = new Intent(OrbotMainActivity.this,PromoAppsActivity.class); - startActivity(intent); - - } + //Intent intent = new Intent(OrbotMainActivity.this,PromoAppsActivity.class); + //startActivity(intent); + + startActivity(PromoAppsActivity.getInstallIntent(TorServiceConstants.BROWSER_APP_USERNAME,OrbotMainActivity.this)); + + + } }) .setNegativeButton(R.string.standard_browser, new Dialog.OnClickListener () @@ -1291,7 +1294,6 @@ public class OrbotMainActivity extends AppCompatActivity if (torStatus == null && newTorStatus != null) //first time status { torStatus = newTorStatus; - findViewById(R.id.pbConnecting).setVisibility(View.GONE); findViewById(R.id.frameMain).setVisibility(View.VISIBLE); updateStatus(log); diff --git a/app/src/main/java/org/torproject/android/ui/PromoAppsActivity.java b/app/src/main/java/org/torproject/android/ui/PromoAppsActivity.java index 01c24831..2fdf2df2 100644 --- a/app/src/main/java/org/torproject/android/ui/PromoAppsActivity.java +++ b/app/src/main/java/org/torproject/android/ui/PromoAppsActivity.java @@ -1,6 +1,7 @@ package org.torproject.android.ui; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -69,7 +70,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { @Override public void onClick(View view) { finish(); - startActivity(getInstallIntent("info.guardianproject.otr.app.im")); + startActivity(getInstallIntent("info.guardianproject.otr.app.im",PromoAppsActivity.this)); } }); @@ -81,7 +82,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { @Override public void onClick(View view) { finish(); - startActivity(getInstallIntent(TorServiceConstants.BROWSER_APP_USERNAME)); + startActivity(getInstallIntent(TorServiceConstants.BROWSER_APP_USERNAME,PromoAppsActivity.this)); } }); @@ -94,7 +95,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { public void onClick(View view) { finish(); - startActivity(getInstallIntent("com.duckduckgo.mobile.android")); + startActivity(getInstallIntent("com.duckduckgo.mobile.android",PromoAppsActivity.this)); } }); @@ -120,7 +121,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { @Override public void onClick(View view) { finish(); - startActivity(getInstallIntent("info.guardianproject.mrapp")); + startActivity(getInstallIntent("info.guardianproject.mrapp",PromoAppsActivity.this)); } }); @@ -132,7 +133,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { @Override public void onClick(View view) { finish(); - startActivity(getInstallIntent("org.martus.android")); + startActivity(getInstallIntent("org.martus.android",PromoAppsActivity.this)); } }); @@ -179,7 +180,7 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { } - boolean isAppInstalled(PackageManager pm, String packageName) { + public static boolean isAppInstalled(PackageManager pm, String packageName) { try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); return true; @@ -188,11 +189,11 @@ public class PromoAppsActivity extends Activity implements OrbotConstants { } } - Intent getInstallIntent(String packageName) { + public static Intent getInstallIntent(String packageName, Context context) { final Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(MARKET_URI + packageName)); - PackageManager pm = getPackageManager(); + PackageManager pm = context.getPackageManager(); List resInfos = pm.queryIntentActivities(intent, 0); String foundPackageName = null; diff --git a/app/src/main/res/layout/layout_main.xml b/app/src/main/res/layout/layout_main.xml index 2759cf59..3dfd15aa 100644 --- a/app/src/main/res/layout/layout_main.xml +++ b/app/src/main/res/layout/layout_main.xml @@ -2,7 +2,9 @@ - - - - - + > + android:padding="0dp" android:layout_margin="0dp" android:src="@drawable/toroff" /> - + /> - - - + app:switchPadding="9dp" + + />