Snap for 8195043 from 3b3c6bc564 to tm-release
Change-Id: Id1eaa96c3cea05b66651b102c34d05f92615d33f
This commit is contained in:
@@ -4349,6 +4349,7 @@
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.safetycenter.action.REFRESH_SAFETY_SOURCES"/>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
||||
@@ -21,13 +21,11 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent">
|
||||
|
||||
<com.android.settingslib.widget.settingsspinner.SettingsSpinner
|
||||
<Spinner
|
||||
android:id="@+id/filter_spinner"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:theme="@style/Widget.PopupWindow.Settings"/>
|
||||
|
||||
<ImageView
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight">
|
||||
|
||||
<com.android.settingslib.widget.settingsspinner.SettingsSpinner
|
||||
<Spinner
|
||||
android:id="@+id/cycles_spinner"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -21,12 +21,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent">
|
||||
|
||||
<com.android.settingslib.widget.settingsspinner.SettingsSpinner
|
||||
<Spinner
|
||||
android:id="@+id/filter_spinner"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:theme="@style/Widget.PopupWindow.Settings"/>
|
||||
</FrameLayout>
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".development.tare.DropdownActivity">
|
||||
<com.android.settingslib.widget.settingsspinner.SettingsSpinner
|
||||
<Spinner
|
||||
android:id="@+id/spinner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:theme="@style/Widget.PopupWindow.Settings"
|
||||
android:padding="10dp" />
|
||||
android:theme="@style/Widget.PopupWindow.Settings" />
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_layout"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -60,5 +60,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="20dp"
|
||||
android:onClick="revertSettings"
|
||||
android:text="@string/tare_revert" />
|
||||
android:text="@string/tare_revert"
|
||||
style="@style/ActionPrimaryButton" />
|
||||
</LinearLayout>
|
||||
|
||||
@@ -13332,7 +13332,7 @@
|
||||
<!-- Wallet (formerly Cards and passes) toggle name [CHAR LIMIT=60] -->
|
||||
<string name="lockscreen_privacy_wallet_setting_toggle">Show wallet</string>
|
||||
<!-- Wallet (formerly Cards and passes) summary [CHAR LIMIT=NONE] -->
|
||||
<string name="lockscreen_privacy_wallet_summary">Allow access to wallet from lock screen and quick settings</string>
|
||||
<string name="lockscreen_privacy_wallet_summary">Allow access to wallet from lock screen</string>
|
||||
|
||||
<!-- QR Code Scanner toggle name [CHAR LIMIT=60] -->
|
||||
<string name="lockscreen_privacy_qr_code_scanner_setting_toggle">Show QR scanner</string>
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.applications.ProcStatsData.MemInfo;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.core.instrumentation.Instrumentable;
|
||||
import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
|
||||
import com.android.settingslib.widget.SettingsSpinnerAdapter;
|
||||
|
||||
public abstract class ProcessStatsBase extends SettingsPreferenceFragment
|
||||
implements OnItemSelectedListener {
|
||||
|
||||
@@ -135,7 +135,7 @@ import com.android.settingslib.applications.ApplicationsState.CompoundFilter;
|
||||
import com.android.settingslib.applications.ApplicationsState.VolumeFilter;
|
||||
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
|
||||
import com.android.settingslib.widget.SettingsSpinnerAdapter;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import com.android.net.module.util.NetworkStatsUtils;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settingslib.net.ChartData;
|
||||
import com.android.settingslib.net.NetworkCycleData;
|
||||
import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
|
||||
import com.android.settingslib.widget.SettingsSpinnerAdapter;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Iterator;
|
||||
|
||||
@@ -18,12 +18,12 @@ import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.widget.settingsspinner.SettingsSpinner;
|
||||
|
||||
public class SpinnerPreference extends Preference implements CycleAdapter.SpinnerInterface {
|
||||
|
||||
@@ -63,7 +63,7 @@ public class SpinnerPreference extends Preference implements CycleAdapter.Spinne
|
||||
@Override
|
||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||
super.onBindViewHolder(holder);
|
||||
SettingsSpinner spinner = (SettingsSpinner) holder.findViewById(R.id.cycles_spinner);
|
||||
Spinner spinner = (Spinner) holder.findViewById(R.id.cycles_spinner);
|
||||
spinner.setAdapter(mAdapter);
|
||||
spinner.setSelection(mPosition);
|
||||
spinner.setOnItemSelectedListener(mOnSelectedListener);
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.widget.ArrayAdapter;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.widget.SettingsSpinnerAdapter;
|
||||
|
||||
/**
|
||||
* Dropdown activity to allow for the user to easily switch between the different TARE
|
||||
@@ -58,9 +59,8 @@ public class DropdownActivity extends Activity {
|
||||
|
||||
String[] policies = getResources().getStringArray(R.array.tare_policies);
|
||||
|
||||
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(DropdownActivity.this,
|
||||
android.R.layout.simple_list_item_1, policies);
|
||||
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
ArrayAdapter<String> arrayAdapter = new SettingsSpinnerAdapter<String>(this);
|
||||
arrayAdapter.addAll(policies);
|
||||
mSpinner.setAdapter(arrayAdapter);
|
||||
|
||||
mSpinner.setSelection(policy);
|
||||
|
||||
@@ -26,8 +26,8 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settingslib.widget.SettingsSpinnerAdapter;
|
||||
import com.android.settingslib.widget.SettingsSpinnerPreference;
|
||||
import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.safetycenter;
|
||||
|
||||
import static android.content.Intent.ACTION_BOOT_COMPLETED;
|
||||
import static android.safetycenter.SafetyCenterManager.ACTION_REFRESH_SAFETY_SOURCES;
|
||||
import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCE_IDS;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
@@ -24,6 +26,8 @@ import android.content.Intent;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/** Broadcast receiver for handling requests from Safety Center for fresh data. */
|
||||
public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
|
||||
|
||||
@@ -33,17 +37,33 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
|
||||
return;
|
||||
}
|
||||
|
||||
String[] sourceIdsExtra = intent.getStringArrayExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS);
|
||||
if (sourceIdsExtra != null && sourceIdsExtra.length > 0) {
|
||||
ImmutableList<String> sourceIds = ImmutableList.copyOf(sourceIdsExtra);
|
||||
|
||||
if (sourceIds.contains(LockScreenSafetySource.SAFETY_SOURCE_ID)) {
|
||||
LockScreenSafetySource.sendSafetyData(context);
|
||||
if (ACTION_REFRESH_SAFETY_SOURCES.equals(intent.getAction())) {
|
||||
String[] sourceIdsExtra =
|
||||
intent.getStringArrayExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS);
|
||||
if (sourceIdsExtra != null && sourceIdsExtra.length > 0) {
|
||||
refreshSafetySources(context, ImmutableList.copyOf(sourceIdsExtra));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
|
||||
BiometricsSafetySource.sendSafetyData(context);
|
||||
}
|
||||
|
||||
if (ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
|
||||
refreshAllSafetySources(context);
|
||||
}
|
||||
}
|
||||
|
||||
private static void refreshSafetySources(Context context, List<String> sourceIds) {
|
||||
if (sourceIds.contains(LockScreenSafetySource.SAFETY_SOURCE_ID)) {
|
||||
LockScreenSafetySource.sendSafetyData(context);
|
||||
}
|
||||
|
||||
if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
|
||||
BiometricsSafetySource.sendSafetyData(context);
|
||||
}
|
||||
}
|
||||
|
||||
private static void refreshAllSafetySources(Context context) {
|
||||
LockScreenSafetySource.sendSafetyData(context);
|
||||
BiometricsSafetySource.sendSafetyData(context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,7 +195,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
|
||||
private void setupBluetoothEnvironment() {
|
||||
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
|
||||
mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
|
||||
mBluetoothManager = new BluetoothManager(mContext);
|
||||
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
|
||||
mBluetoothAdapter = mBluetoothManager.getAdapter();
|
||||
when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
|
||||
when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
|
||||
|
||||
@@ -76,7 +76,7 @@ public abstract class BluetoothDetailsControllerTestBase {
|
||||
when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
|
||||
mLifecycleOwner = () -> mLifecycle;
|
||||
mLifecycle = spy(new Lifecycle(mLifecycleOwner));
|
||||
mBluetoothManager = new BluetoothManager(mContext);
|
||||
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
|
||||
mBluetoothAdapter = mBluetoothManager.getAdapter();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.bluetooth.BluetoothClass;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Parcel;
|
||||
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||
|
||||
@@ -40,12 +41,22 @@ import org.robolectric.annotation.Config;
|
||||
@Config(shadows = {ShadowBluetoothAdapter.class})
|
||||
public class BluetoothPairingControllerTest {
|
||||
private final BluetoothClass mBluetoothClass =
|
||||
new BluetoothClass(BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE);
|
||||
createBtClass(BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE);
|
||||
@Mock
|
||||
private BluetoothDevice mBluetoothDevice;
|
||||
private Context mContext;
|
||||
private BluetoothPairingController mBluetoothPairingController;
|
||||
|
||||
private BluetoothClass createBtClass(int deviceClass) {
|
||||
Parcel p = Parcel.obtain();
|
||||
p.writeInt(deviceClass);
|
||||
p.setDataPosition(0); // reset position of parcel before passing to constructor
|
||||
|
||||
BluetoothClass bluetoothClass = BluetoothClass.CREATOR.createFromParcel(p);
|
||||
p.recycle();
|
||||
return bluetoothClass;
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
@@ -139,7 +139,7 @@ public class AudioOutputSwitchPreferenceControllerTest {
|
||||
mPackageManager = Shadow.extract(mContext.getPackageManager());
|
||||
mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, true);
|
||||
|
||||
mBluetoothManager = new BluetoothManager(mContext);
|
||||
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
|
||||
mBluetoothAdapter = mBluetoothManager.getAdapter();
|
||||
|
||||
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
|
||||
|
||||
@@ -130,7 +130,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest {
|
||||
when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile);
|
||||
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
|
||||
|
||||
mBluetoothManager = new BluetoothManager(mContext);
|
||||
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
|
||||
mBluetoothAdapter = mBluetoothManager.getAdapter();
|
||||
|
||||
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
|
||||
|
||||
@@ -171,7 +171,7 @@ public class MediaOutputPreferenceControllerTest {
|
||||
when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
|
||||
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
|
||||
|
||||
mBluetoothManager = new BluetoothManager(mContext);
|
||||
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
|
||||
mBluetoothAdapter = mBluetoothManager.getAdapter();
|
||||
|
||||
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings.safetycenter;
|
||||
|
||||
import static android.safetycenter.SafetyCenterManager.ACTION_REFRESH_SAFETY_SOURCES;
|
||||
import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCE_IDS;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -66,13 +67,25 @@ public class SafetySourceBroadcastReceiverTest {
|
||||
SafetyCenterStatusHolder.sInstance = null;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendSafetyData_whenSafetyCenterIsEnabled_withNoIntentAction_sendsNoData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent = new Intent().putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{});
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
|
||||
verify(mSafetyCenterManagerWrapper, never()).sendSafetyCenterUpdate(any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(false);
|
||||
Intent intent =
|
||||
new Intent().putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID });
|
||||
new Intent()
|
||||
.setAction(ACTION_REFRESH_SAFETY_SOURCES)
|
||||
.putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID });
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
|
||||
@@ -82,7 +95,7 @@ public class SafetySourceBroadcastReceiverTest {
|
||||
@Test
|
||||
public void sendSafetyData_whenSafetyCenterIsEnabled_withNullSourceIds_sendsNoData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent = new Intent();
|
||||
Intent intent = new Intent().setAction(ACTION_REFRESH_SAFETY_SOURCES);
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
|
||||
@@ -92,7 +105,10 @@ public class SafetySourceBroadcastReceiverTest {
|
||||
@Test
|
||||
public void sendSafetyData_whenSafetyCenterIsEnabled_withNoSourceIds_sendsNoData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent = new Intent().putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{});
|
||||
Intent intent =
|
||||
new Intent()
|
||||
.setAction(ACTION_REFRESH_SAFETY_SOURCES)
|
||||
.putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{});
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
|
||||
@@ -103,9 +119,11 @@ public class SafetySourceBroadcastReceiverTest {
|
||||
public void sendSafetyData_withLockscreenSourceId_sendsLockscreenData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent =
|
||||
new Intent().putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID });
|
||||
new Intent()
|
||||
.setAction(ACTION_REFRESH_SAFETY_SOURCES)
|
||||
.putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID });
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||
@@ -120,13 +138,31 @@ public class SafetySourceBroadcastReceiverTest {
|
||||
public void sendSafetyData_withBiometricsSourceId_sendsBiometricData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent =
|
||||
new Intent().putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ BiometricsSafetySource.SAFETY_SOURCE_ID });
|
||||
new Intent()
|
||||
.setAction(ACTION_REFRESH_SAFETY_SOURCES)
|
||||
.putExtra(
|
||||
EXTRA_REFRESH_SAFETY_SOURCE_IDS,
|
||||
new String[]{ BiometricsSafetySource.SAFETY_SOURCE_ID });
|
||||
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
|
||||
// TODO(b/215517420): Update this test when BiometricSafetySource is implemented.
|
||||
verify(mSafetyCenterManagerWrapper, never()).sendSafetyCenterUpdate(any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendSafetyData_onBootCompleted_sendsBiometricAndLockscreenData() {
|
||||
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true);
|
||||
Intent intent = new Intent().setAction(Intent.ACTION_BOOT_COMPLETED);
|
||||
|
||||
// TODO(b/215517420): Update this test when BiometricSafetySource is implemented to test
|
||||
// that biometrics data is also sent.
|
||||
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
|
||||
ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
|
||||
verify(mSafetyCenterManagerWrapper, times(1))
|
||||
.sendSafetyCenterUpdate(any(), captor.capture());
|
||||
SafetySourceData safetySourceData = captor.getValue();
|
||||
|
||||
assertThat(safetySourceData.getId()).isEqualTo(LockScreenSafetySource.SAFETY_SOURCE_ID);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user