diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index efc3f8d744e..a359ab29e7a 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -328,6 +328,33 @@ public abstract class BraveActivity extends C } else if (id == R.id.request_brave_vpn_id || id == R.id.request_brave_vpn_check_id) { Log.e("BraveVPN", "purchased user : " + BraveVpnNativeWorker.getInstance().isPurchasedUser()); + if (!InternetConnection.isNetworkAvailable(BraveActivity.this)) { + Toast.makeText(BraveActivity.this, R.string.no_internet, Toast.LENGTH_SHORT).show(); + } else { + if (BraveVpnProfileUtils.getInstance().isBraveVPNConnected(BraveActivity.this)) { + BraveVpnUtils.showProgressDialog(BraveActivity.this, + getResources().getString(R.string.vpn_disconnect_text)); + BraveVpnProfileUtils.getInstance().stopVpn(BraveActivity.this); + BraveVpnUtils.dismissProgressDialog(); + } else { + if (BraveVpnNativeWorker.getInstance().isPurchasedUser()) { + if (WireguardConfigUtils.isConfigExist(BraveActivity.this)) { + BraveVpnProfileUtils.getInstance().startVpn(BraveActivity.this); + } else { + BraveVpnUtils.openBraveVpnProfileActivity(BraveActivity.this); + } + } else { + BraveVpnUtils.showProgressDialog(BraveActivity.this, + getResources().getString(R.string.vpn_connect_text)); + if (BraveVpnPrefUtils.isSubscriptionPurchase()) { + verifySubscription(); + } else { + BraveVpnUtils.dismissProgressDialog(); + BraveVpnUtils.openBraveVpnPlansActivity(BraveActivity.this); + } + } + } + } // if (!InternetConnection.isNetworkAvailable(BraveActivity.this)) { // Toast.makeText(BraveActivity.this, R.string.no_internet, // Toast.LENGTH_SHORT).show(); diff --git a/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java b/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java index 9c458052154..f7d9ae93e36 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java @@ -104,13 +104,21 @@ public class BraveVpnPreferences extends BravePreferenceFragment implements Brav getActivity(), getResources().getString(R.string.vpn_disconnect_text)); BraveVpnProfileUtils.getInstance().stopVpn(getActivity()); } else { - BraveVpnUtils.showProgressDialog( - getActivity(), getResources().getString(R.string.vpn_connect_text)); - if (BraveVpnPrefUtils.isSubscriptionPurchase()) { - verifyPurchase(true); + if (BraveVpnNativeWorker.getInstance().isPurchasedUser()) { + if (WireguardConfigUtils.isConfigExist(getActivity())) { + BraveVpnProfileUtils.getInstance().startVpn(getActivity()); + } else { + BraveVpnUtils.openBraveVpnProfileActivity(getActivity()); + } } else { - BraveVpnUtils.openBraveVpnPlansActivity(getActivity()); - BraveVpnUtils.dismissProgressDialog(); + BraveVpnUtils.showProgressDialog( + getActivity(), getResources().getString(R.string.vpn_connect_text)); + if (BraveVpnPrefUtils.isSubscriptionPurchase()) { + verifyPurchase(true); + } else { + BraveVpnUtils.openBraveVpnPlansActivity(getActivity()); + BraveVpnUtils.dismissProgressDialog(); + } } } return false; diff --git a/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java b/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java index b0057fbc7af..dbcb10aa691 100644 --- a/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java +++ b/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java @@ -181,6 +181,10 @@ public class BraveVpnNativeWorker { return BraveVpnNativeWorkerJni.get().isPurchasedUser(mNativeBraveVpnNativeWorker); } + public void getSubscriberCredentialV12() { + BraveVpnNativeWorkerJni.get().getSubscriberCredentialV12(mNativeBraveVpnNativeWorker); + } + public void reportBackgroundP3A(long sessionStartTimeMs, long sessionEndTimeMs) { BraveVpnNativeWorkerJni.get().reportBackgroundP3A( mNativeBraveVpnNativeWorker, sessionStartTimeMs, sessionEndTimeMs); @@ -210,6 +214,7 @@ public class BraveVpnNativeWorker { String productId, String productType, String packageName); void reloadPurchasedState(long nativeBraveVpnNativeWorker); boolean isPurchasedUser(long nativeBraveVpnNativeWorker); + void getSubscriberCredentialV12(long nativeBraveVpnNativeWorker); void reportBackgroundP3A( long nativeBraveVpnNativeWorker, long sessionStartTimeMs, long sessionEndTimeMs); void reportForegroundP3A(long nativeBraveVpnNativeWorker); diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java index cacf00ebf3b..2291e830047 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java @@ -136,6 +136,7 @@ public abstract class BraveVpnParentActivity @Override public void onGetSubscriberCredential(String subscriberCredential, boolean isSuccess) { + mBraveVpnPrefModel = new BraveVpnPrefModel(); mBraveVpnPrefModel.setSubscriberCredential(subscriberCredential); BraveVpnApiResponseUtils.handleOnGetSubscriberCredential( BraveVpnParentActivity.this, isSuccess); diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnProfileActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnProfileActivity.java index fc0e312ae2c..6c677a7e3b9 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnProfileActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnProfileActivity.java @@ -70,7 +70,11 @@ public class BraveVpnProfileActivity extends BraveVpnParentActivity { public void onClick(View v) { BraveVpnUtils.showProgressDialog(BraveVpnProfileActivity.this, getResources().getString(R.string.vpn_connect_text)); - verifySubscription(); + if (BraveVpnNativeWorker.getInstance().isPurchasedUser()) { + BraveVpnNativeWorker.getInstance().getSubscriberCredentialV12(); + } else { + verifySubscription(); + } } }); diff --git a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java index 6ad6dfcbd57..fe2e626bb59 100644 --- a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java +++ b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java @@ -38,8 +38,8 @@ public class BraveVpnApiResponseUtils { public static void handleOnGetSubscriberCredential(Activity activity, boolean isSuccess) { if (isSuccess) { - InAppPurchaseWrapper.getInstance().processPurchases( - activity, InAppPurchaseWrapper.getInstance().queryPurchases()); + // InAppPurchaseWrapper.getInstance().processPurchases( + // activity, InAppPurchaseWrapper.getInstance().queryPurchases()); BraveVpnNativeWorker.getInstance().getTimezonesForRegions(); } else { Toast.makeText(activity, R.string.vpn_profile_creation_failed, Toast.LENGTH_SHORT) diff --git a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java index 086166ca1d3..287460bb2ec 100644 --- a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java +++ b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java @@ -50,6 +50,7 @@ public class BraveVpnUtils { public static final String SUBSCRIPTION_PARAM_TEXT = "subscription"; public static final String IAP_ANDROID_PARAM_TEXT = "iap-android"; public static final String VERIFY_CREDENTIALS_FAILED = "verify_credentials_failed"; + public static final String DESKTOP_CREDENTIAL = "desktop_credential"; public static boolean mIsServerLocationChanged; public static boolean mUpdateProfileAfterSplitTunnel; diff --git a/android/java/org/chromium/chrome/browser/vpn/wireguard/TunnelModel.java b/android/java/org/chromium/chrome/browser/vpn/wireguard/TunnelModel.java index e8670b09960..c37ae53ed38 100644 --- a/android/java/org/chromium/chrome/browser/vpn/wireguard/TunnelModel.java +++ b/android/java/org/chromium/chrome/browser/vpn/wireguard/TunnelModel.java @@ -5,13 +5,13 @@ package org.chromium.chrome.browser.vpn.wireguard; -import android.util.Log; - import androidx.annotation.NonNull; import com.wireguard.android.backend.Tunnel; import com.wireguard.config.Config; +import org.chromium.base.Log; + public class TunnelModel implements Tunnel { public static final String TUNNEL_NAME = "Brave"; private final String name; diff --git a/browser/brave_vpn/android/brave_vpn_native_worker.cc b/browser/brave_vpn/android/brave_vpn_native_worker.cc index 9aa352ef741..ec641d08e92 100644 --- a/browser/brave_vpn/android/brave_vpn_native_worker.cc +++ b/browser/brave_vpn/android/brave_vpn_native_worker.cc @@ -208,9 +208,22 @@ void BraveVpnNativeWorker::GetSubscriberCredential( } } +void BraveVpnNativeWorker::GetSubscriberCredentialV12(JNIEnv* env) { + BraveVpnService* brave_vpn_service = GetBraveVpnService(); + if (brave_vpn_service) { + LOG(ERROR) << "BraveVPN : " + << "GetSubscriberCredentialV12"; + brave_vpn_service->GetSubscriberCredentialV12( + base::BindOnce(&BraveVpnNativeWorker::OnGetSubscriberCredential, + weak_factory_.GetWeakPtr())); + } +} + void BraveVpnNativeWorker::OnGetSubscriberCredential( const std::string& subscriber_credential, bool success) { + LOG(ERROR) << "BraveVPN : " + << "subscriber credential : " << subscriber_credential; JNIEnv* env = base::android::AttachCurrentThread(); Java_BraveVpnNativeWorker_onGetSubscriberCredential( env, weak_java_brave_vpn_native_worker_.get(env), diff --git a/browser/brave_vpn/android/brave_vpn_native_worker.h b/browser/brave_vpn/android/brave_vpn_native_worker.h index c2428683a9b..446698c1dee 100644 --- a/browser/brave_vpn/android/brave_vpn_native_worker.h +++ b/browser/brave_vpn/android/brave_vpn_native_worker.h @@ -78,6 +78,8 @@ class BraveVpnNativeWorker { const base::android::JavaParamRef& purchase_token, const base::android::JavaParamRef& bundle_id); + void GetSubscriberCredentialV12(JNIEnv* env); + void OnGetSubscriberCredential(const std::string& subscriber_credential, bool success);