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

Commit 635e57bd authored by Weng Su's avatar Weng Su Committed by Android (Google) Code Review
Browse files

Merge "[Provider Model] Fix the panel non responsive issue" into sc-dev

parents 6a1ff49c 8c29ff0a
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkProviderWorker;
import com.android.settings.slices.CustomSliceable;
import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settings.slices.SliceBroadcastReceiver;
import com.android.settings.slices.SliceBuilderUtils;
import com.android.settings.wifi.WifiUtils;
import com.android.settings.wifi.slice.WifiSlice;
@@ -163,6 +164,18 @@ public class ProviderModelSlice extends WifiSlice {
        return listBuilder.build();
    }

    @Override
    public PendingIntent getBroadcastIntent(Context context) {
        final Intent intent = new Intent(getUri().toString())
                // The FLAG_RECEIVER_FOREGROUND flag is necessary to avoid the intent delay of
                // the first sending after the device restarts
                .addFlags(Intent.FLAG_RECEIVER_FOREGROUND)
                .setData(getUri())
                .setClass(context, SliceBroadcastReceiver.class);
        return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
    }

    /**
     * Update the current carrier's mobile data status.
     */
+10 −0
Original line number Diff line number Diff line
@@ -142,6 +142,16 @@ public class ProviderModelSliceTest {
        mockBuilder();
    }

    @Test
    @UiThreadTest
    public void getBroadcastIntent_shouldHaveFlagReceiverForeground() {
        final PendingIntent pendingIntent = mMockProviderModelSlice.getBroadcastIntent(mContext);

        final int flags = pendingIntent.getIntent().getFlags();
        assertThat(flags & Intent.FLAG_RECEIVER_FOREGROUND)
                .isEqualTo(Intent.FLAG_RECEIVER_FOREGROUND);
    }

    @Test
    @UiThreadTest
    public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() {