use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class SettingsPreferenceFragmentTest method removePreference_nested_shouldRemove.
@Test
public void removePreference_nested_shouldRemove() {
final String key = "test_key";
final PreferenceScreen mScreen = spy(new PreferenceScreen(mContext, null));
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
final PreferenceCategory nestedCategory = new ProgressCategory(mContext);
final Preference preference = new Preference(mContext);
preference.setKey(key);
preference.setPersistent(false);
mScreen.addPreference(nestedCategory);
nestedCategory.addPreference(preference);
assertThat(mFragment.removePreference(mScreen, key)).isTrue();
assertThat(nestedCategory.getPreferenceCount()).isEqualTo(0);
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class AppNotificationSettings method populateChannelList.
private void populateChannelList() {
if (!mChannelGroups.isEmpty()) {
// If there's anything in mChannelGroups, we've called populateChannelList twice.
// Clear out existing channels and log.
Log.w(TAG, "Notification channel group posted twice to settings - old size " + mChannelGroups.size() + ", new size " + mChannelGroupList.size());
for (Preference p : mChannelGroups) {
getPreferenceScreen().removePreference(p);
}
}
if (mChannelGroupList.isEmpty()) {
PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
groupCategory.setTitle(R.string.notification_channels);
groupCategory.setKey(KEY_GENERAL_CATEGORY);
getPreferenceScreen().addPreference(groupCategory);
mChannelGroups.add(groupCategory);
Preference empty = new Preference(getPrefContext());
empty.setTitle(R.string.no_channels);
empty.setEnabled(false);
groupCategory.addPreference(empty);
} else {
for (NotificationChannelGroup group : mChannelGroupList) {
PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
if (group.getId() == null) {
groupCategory.setTitle(mChannelGroupList.size() > 1 ? R.string.notification_channels_other : R.string.notification_channels);
groupCategory.setKey(KEY_GENERAL_CATEGORY);
} else {
groupCategory.setTitle(group.getName());
groupCategory.setKey(group.getId());
}
groupCategory.setOrderingAsAdded(true);
getPreferenceScreen().addPreference(groupCategory);
mChannelGroups.add(groupCategory);
final List<NotificationChannel> channels = group.getChannels();
Collections.sort(channels, mChannelComparator);
int N = channels.size();
for (int i = 0; i < N; i++) {
final NotificationChannel channel = channels.get(i);
populateSingleChannelPrefs(groupCategory, channel);
}
}
int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid);
if (deletedChannelCount > 0 && getPreferenceScreen().findPreference(KEY_DELETED) == null) {
mDeletedChannels = new FooterPreference(getPrefContext());
mDeletedChannels.setSelectable(false);
mDeletedChannels.setTitle(getResources().getQuantityString(R.plurals.deleted_channels, deletedChannelCount, deletedChannelCount));
mDeletedChannels.setEnabled(false);
mDeletedChannels.setKey(KEY_DELETED);
mDeletedChannels.setOrder(ORDER_LAST);
getPreferenceScreen().addPreference(mDeletedChannels);
}
}
updateDependents(mAppRow.banned);
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class AppNotificationSettings method updateDependents.
protected void updateDependents(boolean banned) {
for (PreferenceCategory category : mChannelGroups) {
setVisible(category, !banned);
}
if (mDeletedChannels != null) {
setVisible(mDeletedChannels, !banned);
}
setVisible(mBlockedDesc, banned);
setVisible(mBadge, !banned);
if (mShowLegacyChannelConfig) {
setVisible(mImportanceToggle, !banned);
setVisible(mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) || (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) && mDndVisualEffectsSuppressed));
setVisible(mVisibilityOverride, !banned && checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) && isLockScreenSecure());
}
if (mAppLink != null) {
setVisible(mAppLink, !banned);
}
if (mAppRow.systemApp && !mAppRow.banned) {
setVisible(mBlockBar, false);
}
}
use of android.support.v7.preference.PreferenceCategory in project android_packages_apps_Settings by DirtyUnicorns.
the class ZenModeSettings method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.zen_mode_settings);
final PreferenceScreen root = getPreferenceScreen();
mAutomaticRules = (PreferenceCategory) root.findPreference(KEY_AUTOMATIC_RULES);
mPrioritySettings = root.findPreference(KEY_PRIORITY_SETTINGS);
mVisualSettings = root.findPreference(KEY_VISUAL_SETTINGS);
mPolicy = NotificationManager.from(mContext).getNotificationPolicy();
mSummaryBuilder = new SummaryBuilder(getContext());
mPm = mContext.getPackageManager();
mServiceListing = new ZenServiceListing(mContext, CONFIG);
mServiceListing.reloadApprovedServices();
}
use of android.support.v7.preference.PreferenceCategory in project vlc-android by GeoffreyMetais.
the class PreferencesExtensions method createCheckboxes.
private void createCheckboxes() {
PackageManager pm = getActivity().getApplicationContext().getPackageManager();
for (int i = 0; i < mExtensions.size(); ++i) {
ExtensionListing extension = mExtensions.get(i);
ClickableSwitchPreference switchPreference = new ClickableSwitchPreference(preferenceScreen.getContext());
switchPreference.setTitle(extension.title());
switchPreference.setSummary(extension.description());
final String key = ExtensionsManager.EXTENSION_PREFIX + "_" + extension.componentName().getPackageName();
switchPreference.setKey(key);
int iconRes = extension.menuIcon();
Drawable extensionIcon = null;
if (iconRes != 0) {
try {
Resources res = pm.getResourcesForApplication(extension.componentName().getPackageName());
extensionIcon = res.getDrawable(extension.menuIcon());
} catch (PackageManager.NameNotFoundException e) {
}
}
if (extensionIcon != null)
switchPreference.setIcon(extensionIcon);
else
try {
switchPreference.setIcon(pm.getApplicationIcon(mExtensions.get(i).componentName().getPackageName()));
} catch (PackageManager.NameNotFoundException e) {
switchPreference.setIcon(R.drawable.icon);
}
final boolean checked = mSettings.getBoolean(key, false);
switchPreference.setChecked(checked);
preferenceScreen.addPreference(switchPreference);
switchPreference.setOnSwitchClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (((SwitchCompat) view).isChecked())
mSettings.edit().putBoolean(key, true).apply();
else
for (Map.Entry<String, ?> entry : mSettings.getAll().entrySet()) if (entry.getKey().startsWith(ExtensionsManager.EXTENSION_PREFIX + "_"))
mSettings.edit().putBoolean(entry.getKey(), false).apply();
}
});
count++;
}
if (count == 0) {
PreferenceCategory emptyCategory = new PreferenceCategory(preferenceScreen.getContext());
emptyCategory.setTitle(R.string.extensions_empty);
preferenceScreen.addPreference(emptyCategory);
}
}
Aggregations