OSDN Git Service

Fixing incorrect method to launch mobile data plan app.
authorJan Nordqvist <jannq@google.com>
Wed, 18 Apr 2018 00:31:33 +0000 (17:31 -0700)
committerJan Nordqvist <jannq@google.com>
Wed, 18 Apr 2018 01:21:25 +0000 (18:21 -0700)
Bug: 77529772

Test: manual
Change-Id: Id102cb11bcbcc94b139caff47195364e281850e3

src/com/android/settings/datausage/DataUsageSummaryPreference.java
tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java

index c8d2cef..e5e83eb 100644 (file)
@@ -187,7 +187,7 @@ public class DataUsageSummaryPreference extends Preference {
             updateCarrierInfo(carrierInfo);
             if (mLaunchIntent != null) {
                 launchButton.setOnClickListener((view) -> {
-                    getContext().sendBroadcast(mLaunchIntent);
+                    getContext().startActivity(mLaunchIntent);
                 });
                 launchButton.setVisibility(View.VISIBLE);
             } else {
index a5a1c45..876f5d1 100644 (file)
@@ -26,6 +26,7 @@ import android.graphics.Typeface;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.support.v7.preference.PreferenceViewHolder;
+import android.telephony.SubscriptionManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
@@ -401,6 +402,31 @@ public class DataUsageSummaryPreferenceTest {
     }
 
     @Test
+    public void testSetAppIntent_toMdpApp_intentCorrect() {
+        final Activity activity = Robolectric.setupActivity(Activity.class);
+        final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
+        intent.setPackage("test-owner.example.com");
+        intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, 42);
+
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 0 /* numPlans */,
+                intent);
+
+        bindViewHolder();
+        assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mLaunchButton.getText())
+                .isEqualTo(mContext.getString(R.string.launch_mdp_app_text));
+
+        mLaunchButton.callOnClick();
+        ShadowActivity shadowActivity = Shadows.shadowOf(activity);
+        Intent startedIntent = shadowActivity.getNextStartedActivity();
+        assertThat(startedIntent.getAction())
+                .isEqualTo(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
+        assertThat(startedIntent.getPackage()).isEqualTo("test-owner.example.com");
+        assertThat(startedIntent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, -1))
+                .isEqualTo(42);
+    }
+
+    @Test
     public void testSetWifiMode_withUsageInfo_dataUsageShown() {
         final int daysLeft = 3;
         final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)