Merge "[Audiosharing] Gates legacy le audio sharing UI in sound Settings." into main
This commit is contained in:
@@ -37,6 +37,7 @@ import com.android.settings.media.MediaOutputIndicatorWorker;
|
|||||||
import com.android.settings.slices.CustomSliceRegistry;
|
import com.android.settings.slices.CustomSliceRegistry;
|
||||||
import com.android.settings.slices.SliceBackgroundWorker;
|
import com.android.settings.slices.SliceBackgroundWorker;
|
||||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||||
|
import com.android.settingslib.flags.Flags;
|
||||||
import com.android.settingslib.media.BluetoothMediaDevice;
|
import com.android.settingslib.media.BluetoothMediaDevice;
|
||||||
import com.android.settingslib.media.MediaDevice;
|
import com.android.settingslib.media.MediaDevice;
|
||||||
import com.android.settingslib.media.MediaOutputConstants;
|
import com.android.settingslib.media.MediaOutputConstants;
|
||||||
@@ -94,7 +95,9 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
boolean isSupportEndItem() {
|
boolean isSupportEndItem() {
|
||||||
return getWorker() != null && getWorker().isBroadcastSupported()
|
return Flags.legacyLeAudioSharing()
|
||||||
|
&& getWorker() != null
|
||||||
|
&& getWorker().isBroadcastSupported()
|
||||||
&& (getWorker().isDeviceBroadcasting() || isConnectedBLEDevice());
|
&& (getWorker().isDeviceBroadcasting() || isConnectedBLEDevice());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,7 +117,8 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont
|
|||||||
if (mPreference != null) {
|
if (mPreference != null) {
|
||||||
if (mPreference.isMuted()) {
|
if (mPreference.isMuted()) {
|
||||||
mPreference.updateContentDescription(
|
mPreference.updateContentDescription(
|
||||||
mContext.getString(R.string.volume_content_description_silent_mode,
|
mContext.getString(
|
||||||
|
R.string.volume_content_description_silent_mode,
|
||||||
mPreference.getTitle()));
|
mPreference.getTitle()));
|
||||||
} else {
|
} else {
|
||||||
mPreference.updateContentDescription(mPreference.getTitle());
|
mPreference.updateContentDescription(mPreference.getTitle());
|
||||||
@@ -134,10 +138,15 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont
|
|||||||
if (getWorker().isDeviceBroadcasting()) {
|
if (getWorker().isDeviceBroadcasting()) {
|
||||||
intent.setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME);
|
intent.setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME);
|
||||||
intent.setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG);
|
intent.setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG);
|
||||||
intent.putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
|
intent.putExtra(
|
||||||
|
MediaOutputConstants.EXTRA_PACKAGE_NAME,
|
||||||
getWorker().getActiveLocalMediaController().getPackageName());
|
getWorker().getActiveLocalMediaController().getPackageName());
|
||||||
|
|
||||||
pi = PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
|
pi =
|
||||||
|
PendingIntent.getBroadcast(
|
||||||
|
context,
|
||||||
|
0 /* requestCode */,
|
||||||
|
intent,
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||||
} else {
|
} else {
|
||||||
final CachedBluetoothDevice bluetoothDevice =
|
final CachedBluetoothDevice bluetoothDevice =
|
||||||
@@ -147,14 +156,20 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
intent.setAction(ACTION_LAUNCH_BROADCAST_DIALOG);
|
intent.setAction(ACTION_LAUNCH_BROADCAST_DIALOG);
|
||||||
intent.putExtra(BluetoothBroadcastDialog.KEY_APP_LABEL,
|
intent.putExtra(
|
||||||
|
BluetoothBroadcastDialog.KEY_APP_LABEL,
|
||||||
Utils.getApplicationLabel(mContext, getWorker().getPackageName()));
|
Utils.getApplicationLabel(mContext, getWorker().getPackageName()));
|
||||||
intent.putExtra(BluetoothBroadcastDialog.KEY_DEVICE_ADDRESS,
|
intent.putExtra(
|
||||||
bluetoothDevice.getAddress());
|
BluetoothBroadcastDialog.KEY_DEVICE_ADDRESS, bluetoothDevice.getAddress());
|
||||||
intent.putExtra(BluetoothBroadcastDialog.KEY_MEDIA_STREAMING, getWorker() != null
|
intent.putExtra(
|
||||||
&& getWorker().getActiveLocalMediaController() != null);
|
BluetoothBroadcastDialog.KEY_MEDIA_STREAMING,
|
||||||
|
getWorker() != null && getWorker().getActiveLocalMediaController() != null);
|
||||||
|
|
||||||
pi = PendingIntent.getActivity(context, 0 /* requestCode */, intent,
|
pi =
|
||||||
|
PendingIntent.getActivity(
|
||||||
|
context,
|
||||||
|
0 /* requestCode */,
|
||||||
|
intent,
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,8 +179,8 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont
|
|||||||
}
|
}
|
||||||
|
|
||||||
private IconCompat getBroadcastIcon(Context context) {
|
private IconCompat getBroadcastIcon(Context context) {
|
||||||
final Drawable drawable = context.getDrawable(
|
final Drawable drawable =
|
||||||
com.android.settingslib.R.drawable.settings_input_antenna);
|
context.getDrawable(com.android.settingslib.R.drawable.settings_input_antenna);
|
||||||
if (drawable != null) {
|
if (drawable != null) {
|
||||||
drawable.setTint(Utils.getColorAccentDefaultColor(context));
|
drawable.setTint(Utils.getColorAccentDefaultColor(context));
|
||||||
return Utils.createIconWithDrawable(drawable);
|
return Utils.createIconWithDrawable(drawable);
|
||||||
|
@@ -31,17 +31,23 @@ import android.content.Intent;
|
|||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.session.MediaController;
|
import android.media.session.MediaController;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.platform.test.annotations.RequiresFlagsDisabled;
|
||||||
|
import android.platform.test.annotations.RequiresFlagsEnabled;
|
||||||
|
import android.platform.test.flag.junit.CheckFlagsRule;
|
||||||
|
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
|
||||||
|
|
||||||
import androidx.slice.builders.SliceAction;
|
import androidx.slice.builders.SliceAction;
|
||||||
|
|
||||||
import com.android.settings.media.MediaOutputIndicatorWorker;
|
import com.android.settings.media.MediaOutputIndicatorWorker;
|
||||||
import com.android.settings.slices.SliceBackgroundWorker;
|
import com.android.settings.slices.SliceBackgroundWorker;
|
||||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||||
|
import com.android.settingslib.flags.Flags;
|
||||||
import com.android.settingslib.media.BluetoothMediaDevice;
|
import com.android.settingslib.media.BluetoothMediaDevice;
|
||||||
import com.android.settingslib.media.MediaDevice;
|
import com.android.settingslib.media.MediaDevice;
|
||||||
import com.android.settingslib.media.MediaOutputConstants;
|
import com.android.settingslib.media.MediaOutputConstants;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
@@ -60,16 +66,16 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
"android.settings.MEDIA_BROADCAST_DIALOG";
|
"android.settings.MEDIA_BROADCAST_DIALOG";
|
||||||
private static MediaOutputIndicatorWorker sMediaOutputIndicatorWorker;
|
private static MediaOutputIndicatorWorker sMediaOutputIndicatorWorker;
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
|
||||||
|
|
||||||
private MediaVolumePreferenceController mController;
|
private MediaVolumePreferenceController mController;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@Mock
|
@Mock private MediaController mMediaController;
|
||||||
private MediaController mMediaController;
|
@Mock private MediaDevice mDevice1;
|
||||||
@Mock
|
@Mock private MediaDevice mDevice2;
|
||||||
private MediaDevice mDevice1;
|
|
||||||
@Mock
|
|
||||||
private MediaDevice mDevice2;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -77,8 +83,8 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
|
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
mController = new MediaVolumePreferenceController(mContext);
|
mController = new MediaVolumePreferenceController(mContext);
|
||||||
sMediaOutputIndicatorWorker = spy(
|
sMediaOutputIndicatorWorker =
|
||||||
new MediaOutputIndicatorWorker(mContext, VOLUME_MEDIA_URI));
|
spy(new MediaOutputIndicatorWorker(mContext, VOLUME_MEDIA_URI));
|
||||||
when(mDevice1.isBLEDevice()).thenReturn(true);
|
when(mDevice1.isBLEDevice()).thenReturn(true);
|
||||||
when(mDevice2.isBLEDevice()).thenReturn(false);
|
when(mDevice2.isBLEDevice()).thenReturn(false);
|
||||||
}
|
}
|
||||||
@@ -101,8 +107,8 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void isSliceableCorrectKey_returnsTrue() {
|
public void isSliceableCorrectKey_returnsTrue() {
|
||||||
final MediaVolumePreferenceController controller = new MediaVolumePreferenceController(
|
final MediaVolumePreferenceController controller =
|
||||||
mContext);
|
new MediaVolumePreferenceController(mContext);
|
||||||
assertThat(controller.isSliceable()).isTrue();
|
assertThat(controller.isSliceable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,6 +118,17 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsDisabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
|
public void isSupportEndItem_flagOff_returnsFalse() {
|
||||||
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
|
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
||||||
|
|
||||||
|
assertThat(mController.isSupportEndItem()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void isSupportEndItem_withBleDevice_returnsTrue() {
|
public void isSupportEndItem_withBleDevice_returnsTrue() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
@@ -121,6 +138,7 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void isSupportEndItem_notSupportedBroadcast_returnsFalse() {
|
public void isSupportEndItem_notSupportedBroadcast_returnsFalse() {
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
||||||
@@ -129,6 +147,7 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void isSupportEndItem_withNonBleDevice_returnsFalse() {
|
public void isSupportEndItem_withNonBleDevice_returnsFalse() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
@@ -138,6 +157,7 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void isSupportEndItem_deviceIsBroadcastingAndConnectedToNonBleDevice_returnsTrue() {
|
public void isSupportEndItem_deviceIsBroadcastingAndConnectedToNonBleDevice_returnsTrue() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
@@ -147,6 +167,7 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void isSupportEndItem_deviceIsNotBroadcastingAndConnectedToNonBleDevice_returnsFalse() {
|
public void isSupportEndItem_deviceIsNotBroadcastingAndConnectedToNonBleDevice_returnsFalse() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
@@ -155,8 +176,20 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
assertThat(mController.isSupportEndItem()).isFalse();
|
assertThat(mController.isSupportEndItem()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsDisabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
|
public void getSliceEndItem_flagOff_getsNullSliceAction() {
|
||||||
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
|
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
|
doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
||||||
|
|
||||||
|
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
|
||||||
|
|
||||||
|
assertThat(sliceAction).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void getSliceEndItem_NotSupportEndItem_getsNullSliceAction() {
|
public void getSliceEndItem_NotSupportEndItem_getsNullSliceAction() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
@@ -168,22 +201,26 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void getSliceEndItem_deviceIsBroadcasting_getsBroadcastIntent() {
|
public void getSliceEndItem_deviceIsBroadcasting_getsBroadcastIntent() {
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
|
doReturn(mMediaController)
|
||||||
|
.when(sMediaOutputIndicatorWorker)
|
||||||
.getActiveLocalMediaController();
|
.getActiveLocalMediaController();
|
||||||
|
|
||||||
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
|
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
|
||||||
|
|
||||||
final PendingIntent endItemPendingIntent = sliceAction.getAction();
|
final PendingIntent endItemPendingIntent = sliceAction.getAction();
|
||||||
final PendingIntent expectedToggleIntent = getBroadcastIntent(
|
final PendingIntent expectedToggleIntent =
|
||||||
|
getBroadcastIntent(
|
||||||
MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG);
|
MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG);
|
||||||
assertThat(endItemPendingIntent).isEqualTo(expectedToggleIntent);
|
assertThat(endItemPendingIntent).isEqualTo(expectedToggleIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_LEGACY_LE_AUDIO_SHARING)
|
||||||
public void getSliceEndItem_deviceIsNotBroadcasting_getsActivityIntent() {
|
public void getSliceEndItem_deviceIsNotBroadcasting_getsActivityIntent() {
|
||||||
final MediaDevice device = mock(BluetoothMediaDevice.class);
|
final MediaDevice device = mock(BluetoothMediaDevice.class);
|
||||||
final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
|
final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
|
||||||
@@ -192,7 +229,8 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
|
||||||
doReturn(device).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
doReturn(device).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
|
||||||
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
|
||||||
doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
|
doReturn(mMediaController)
|
||||||
|
.when(sMediaOutputIndicatorWorker)
|
||||||
.getActiveLocalMediaController();
|
.getActiveLocalMediaController();
|
||||||
|
|
||||||
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
|
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
|
||||||
@@ -215,13 +253,19 @@ public class MediaVolumePreferenceControllerTest {
|
|||||||
private PendingIntent getBroadcastIntent(String action) {
|
private PendingIntent getBroadcastIntent(String action) {
|
||||||
final Intent intent = new Intent(action);
|
final Intent intent = new Intent(action);
|
||||||
intent.setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME);
|
intent.setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME);
|
||||||
return PendingIntent.getBroadcast(mContext, 0 /* requestCode */, intent,
|
return PendingIntent.getBroadcast(
|
||||||
|
mContext,
|
||||||
|
0 /* requestCode */,
|
||||||
|
intent,
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PendingIntent getActivityIntent(String action) {
|
private PendingIntent getActivityIntent(String action) {
|
||||||
final Intent intent = new Intent(action);
|
final Intent intent = new Intent(action);
|
||||||
return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent,
|
return PendingIntent.getActivity(
|
||||||
|
mContext,
|
||||||
|
0 /* requestCode */,
|
||||||
|
intent,
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user