Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7885ca7 authored by Mark Chien's avatar Mark Chien Committed by Gerrit Code Review
Browse files

Merge "Ignore the outdated entitlement check"

parents 44ab00de f9f0d117
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ 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;

@@ -49,14 +50,21 @@ public class TetherProvisioningActivity extends Activity {
        mResultReceiver = (ResultReceiver)getIntent().getParcelableExtra(
                ConnectivityManager.EXTRA_PROVISION_CALLBACK);

        int tetherType = getIntent().getIntExtra(ConnectivityManager.EXTRA_ADD_TETHER_TYPE,
        final int tetherType = getIntent().getIntExtra(ConnectivityManager.EXTRA_ADD_TETHER_TYPE,
                ConnectivityManager.TETHERING_INVALID);

        final int tetherSubId = getIntent().getIntExtra(EXTRA_SUBID,
                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
        final int subId = SubscriptionManager.getDefaultDataSubscriptionId();
        if (tetherSubId != subId) {
            Log.e(TAG, "This Provisioning request is outdated, current subId: " + subId);
            return;
        }
        final Resources res = Utils.getResourcesForSubId(this, subId);
        final String[] provisionApp = res.getStringArray(
                com.android.internal.R.array.config_mobile_hotspot_provision_app);

        Intent intent = new Intent(Intent.ACTION_MAIN);
        final Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setClassName(provisionApp[0], provisionApp[1]);
        intent.putExtra(EXTRA_TETHER_TYPE, tetherType);
        if (DEBUG) {
+14 −0
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@ public class TetherService extends Service {

    @VisibleForTesting
    public static final String EXTRA_RESULT = "EntitlementResult";
    @VisibleForTesting
    public static final String EXTRA_SUBID = "subId";

    // Activity results to match the activity provision protocol.
    // Default to something not ok.
@@ -100,6 +102,18 @@ public class TetherService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (intent.hasExtra(EXTRA_SUBID)) {
            final int tetherSubId = intent.getIntExtra(EXTRA_SUBID,
                    SubscriptionManager.INVALID_SUBSCRIPTION_ID);
            final int subId = getTetherServiceWrapper().getDefaultDataSubscriptionId();
            if (tetherSubId != subId) {
                Log.e(TAG, "This Provisioning request is outdated, current subId: " + subId);
                if (!mInProvisionCheck) {
                    stopSelf();
                }
                return START_NOT_STICKY;
            }
        }
        if (intent.hasExtra(ConnectivityManager.EXTRA_ADD_TETHER_TYPE)) {
            int type = intent.getIntExtra(ConnectivityManager.EXTRA_ADD_TETHER_TYPE,
                    ConnectivityManager.TETHERING_INVALID);
+16 −1
Original line number Diff line number Diff line
@@ -264,11 +264,26 @@ public class TetherServiceTest extends ServiceTestCase<TetherService> {
        assertEquals(TetherService.class.getName(), pi.getIntent().getComponent().getClassName());
    }

    public void testIgnoreOutdatedRequest() {
        Intent intent = new Intent();
        intent.putExtra(EXTRA_ADD_TETHER_TYPE, TETHERING_WIFI);
        intent.putExtra(EXTRA_RUN_PROVISION, true);
        intent.putExtra(EXTRA_PROVISION_CALLBACK, mResultReceiver);
        intent.putExtra(TetherService.EXTRA_SUBID, 1 /* Tested subId number */);
        startService(intent);

        SystemClock.sleep(PROVISION_TIMEOUT);
        assertEquals(TETHERING_INVALID, mLastTetherRequestType);
        assertTrue(mWrapper.isAppInactive(ENTITLEMENT_PACKAGE_NAME));
        assertTrue(mWrapper.isAppInactive(FAKE_PACKAGE_NAME));
    }

    private void runProvisioningForType(int type) {
        Intent intent = new Intent();
        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
        intent.putExtra(EXTRA_RUN_PROVISION, true);
        intent.putExtra(EXTRA_PROVISION_CALLBACK, mResultReceiver);
        intent.putExtra(TetherService.EXTRA_SUBID, INVALID_SUBSCRIPTION_ID);
        startService(intent);
    }

@@ -289,7 +304,7 @@ public class TetherServiceTest extends ServiceTestCase<TetherService> {
        long startTime = SystemClock.uptimeMillis();
        while (true) {
            if (mLastTetherRequestType == expectedType) {
                mLastTetherRequestType = -1;
                mLastTetherRequestType = TETHERING_INVALID;
                return true;
            }
            if ((SystemClock.uptimeMillis() - startTime) > PROVISION_TIMEOUT) {