From d4c7973615fb5fd8ae9701f75ddcb56fb7073412 Mon Sep 17 00:00:00 2001 From: Jan Nordqvist Date: Tue, 17 Apr 2018 17:31:33 -0700 Subject: [PATCH] Fixing incorrect method to launch mobile data plan app. Bug: 77529772 Test: manual Change-Id: Id102cb11bcbcc94b139caff47195364e281850e3 --- .../datausage/DataUsageSummaryPreference.java | 2 +- .../datausage/DataUsageSummaryPreferenceTest.java | 26 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java index c8d2cef441..e5e83eba54 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java @@ -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 { diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java index a5a1c457c3..876f5d1366 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java @@ -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) -- 2.11.0