diff options
author | Paul Hu <paulhu@google.com> | 2020-05-26 05:47:09 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-05-26 05:47:09 +0000 |
commit | 37318d03a4a438647cd696e59f1bb782c1a979c5 (patch) | |
tree | a1fef12117915534370ddb270899211cfc0054a9 /src/com/android/settings/network | |
parent | 1e0789355ec6125d2cc01a64691684d3f3767bca (diff) | |
parent | 2efe482d95d77723191d4c9ba07ab39de2d7361b (diff) | |
download | packages_apps_Settings-37318d03a4a438647cd696e59f1bb782c1a979c5.tar.gz packages_apps_Settings-37318d03a4a438647cd696e59f1bb782c1a979c5.tar.bz2 packages_apps_Settings-37318d03a4a438647cd696e59f1bb782c1a979c5.zip |
Merge "Forward the ResultReceiver to Tethering Entitlement app" into rvc-dev
Diffstat (limited to 'src/com/android/settings/network')
-rw-r--r-- | src/com/android/settings/network/TetherProvisioningActivity.java | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/com/android/settings/network/TetherProvisioningActivity.java b/src/com/android/settings/network/TetherProvisioningActivity.java index 230cfe0718..09efe482e6 100644 --- a/src/com/android/settings/network/TetherProvisioningActivity.java +++ b/src/com/android/settings/network/TetherProvisioningActivity.java @@ -21,12 +21,16 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.net.ConnectivityManager; +import android.net.TetheringConstants; +import android.net.TetheringManager; import android.os.Bundle; import android.os.ResultReceiver; import android.os.UserHandle; import android.telephony.SubscriptionManager; import android.util.Log; +import androidx.annotation.VisibleForTesting; + import com.android.settings.Utils; /** @@ -36,17 +40,18 @@ import com.android.settings.Utils; * with {@link android.permission.TETHER_PRIVILEGED}. */ public class TetherProvisioningActivity extends Activity { - private static final int PROVISION_REQUEST = 0; private static final String TAG = "TetherProvisioningAct"; private static final String EXTRA_TETHER_TYPE = "TETHER_TYPE"; - private static final String EXTRA_SUBID = "subId"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private ResultReceiver mResultReceiver; + @VisibleForTesting + static final int PROVISION_REQUEST = 0; + @VisibleForTesting + static final String EXTRA_SUBID = "subId"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mResultReceiver = (ResultReceiver)getIntent().getParcelableExtra( ConnectivityManager.EXTRA_PROVISION_CALLBACK); @@ -58,16 +63,22 @@ public class TetherProvisioningActivity extends Activity { final int subId = SubscriptionManager.getActiveDataSubscriptionId(); if (tetherSubId != subId) { Log.e(TAG, "This Provisioning request is outdated, current subId: " + subId); + mResultReceiver.send(TetheringManager.TETHER_ERROR_PROVISIONING_FAILED, null); + finish(); return; } - final Resources res = Utils.getResourcesForSubId(this, subId); - final String[] provisionApp = res.getStringArray( - com.android.internal.R.array.config_mobile_hotspot_provision_app); - + String[] provisionApp = getIntent().getStringArrayExtra( + TetheringConstants.EXTRA_RUN_PROVISION); + if (provisionApp == null || provisionApp.length < 2) { + final Resources res = Utils.getResourcesForSubId(this, subId); + provisionApp = res.getStringArray( + com.android.internal.R.array.config_mobile_hotspot_provision_app); + } final Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClassName(provisionApp[0], provisionApp[1]); intent.putExtra(EXTRA_TETHER_TYPE, tetherType); intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId); + intent.putExtra(ConnectivityManager.EXTRA_PROVISION_CALLBACK, mResultReceiver); if (DEBUG) { Log.d(TAG, "Starting provisioning app: " + provisionApp[0] + "." + provisionApp[1]); } @@ -75,7 +86,7 @@ public class TetherProvisioningActivity extends Activity { if (getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) { Log.e(TAG, "Provisioning app is configured, but not available."); - mResultReceiver.send(ConnectivityManager.TETHER_ERROR_PROVISION_FAILED, null); + mResultReceiver.send(TetheringManager.TETHER_ERROR_PROVISIONING_FAILED, null); finish(); return; } @@ -89,8 +100,8 @@ public class TetherProvisioningActivity extends Activity { if (requestCode == PROVISION_REQUEST) { if (DEBUG) Log.d(TAG, "Got result from app: " + resultCode); int result = resultCode == Activity.RESULT_OK ? - ConnectivityManager.TETHER_ERROR_NO_ERROR : - ConnectivityManager.TETHER_ERROR_PROVISION_FAILED; + TetheringManager.TETHER_ERROR_NO_ERROR : + TetheringManager.TETHER_ERROR_PROVISIONING_FAILED; mResultReceiver.send(result, null); finish(); } |