Merge "Prevent crashes on null intent in Slice Builder" into pi-dev am: 69fce6df71
am: 46dd838e8d
Change-Id: I2048cd12599e9d2ad115f2e6b1a6371feb2e72ae
This commit is contained in:
committed by
android-build-merger
commit
d284fe11aa
@@ -30,13 +30,16 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.provider.SettingsSlicesContract;
|
import android.provider.SettingsSlicesContract;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SubSettings;
|
import com.android.settings.SubSettings;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.SliderPreferenceController;
|
import com.android.settings.core.SliderPreferenceController;
|
||||||
@@ -75,6 +78,7 @@ public class SliceBuilderUtils {
|
|||||||
* {@param sliceData} is an inline controller.
|
* {@param sliceData} is an inline controller.
|
||||||
*/
|
*/
|
||||||
public static Slice buildSlice(Context context, SliceData sliceData) {
|
public static Slice buildSlice(Context context, SliceData sliceData) {
|
||||||
|
Log.d(TAG, "Creating slice for: " + sliceData.getPreferenceController());
|
||||||
final BasePreferenceController controller = getPreferenceController(context, sliceData);
|
final BasePreferenceController controller = getPreferenceController(context, sliceData);
|
||||||
final Pair<Integer, Object> sliceNamePair =
|
final Pair<Integer, Object> sliceNamePair =
|
||||||
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceData.getKey());
|
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceData.getKey());
|
||||||
@@ -177,8 +181,7 @@ public class SliceBuilderUtils {
|
|||||||
* @return {@link PendingIntent} to the Settings home page.
|
* @return {@link PendingIntent} to the Settings home page.
|
||||||
*/
|
*/
|
||||||
public static PendingIntent getSettingsIntent(Context context) {
|
public static PendingIntent getSettingsIntent(Context context) {
|
||||||
final PackageManager manager = context.getPackageManager();
|
final Intent intent = new Intent(Settings.ACTION_SETTINGS);
|
||||||
final Intent intent = manager.getLaunchIntentForPackage(context.getPackageName());
|
|
||||||
return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
|
return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.doReturn;
|
|||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
|
import android.app.PendingIntent;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -405,6 +406,16 @@ public class SliceBuilderUtilsTest {
|
|||||||
assertThat(intentData).isEqualTo(expectedUri);
|
assertThat(intentData).isEqualTo(expectedUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSettingsIntent_createsIntentToSettings() {
|
||||||
|
final Intent intent = new Intent(Settings.ACTION_SETTINGS);
|
||||||
|
final PendingIntent expectedIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
|
||||||
|
|
||||||
|
final PendingIntent settingsIntent = SliceBuilderUtils.getSettingsIntent(mContext);
|
||||||
|
|
||||||
|
assertThat(expectedIntent).isEqualTo(settingsIntent);
|
||||||
|
}
|
||||||
|
|
||||||
private SliceData getDummyData() {
|
private SliceData getDummyData() {
|
||||||
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH);
|
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user