use of org.cyanogenmod.cmparts.profiles.actions.item.DisabledItem in project android_packages_apps_CMParts by LineageOS.
the class SetupActionsFragment method rebuildItemList.
private void rebuildItemList() {
mItems.clear();
// general prefs
mItems.add(new Header(getString(R.string.profile_name_title)));
mItems.add(new ProfileNameItem(mProfile));
if (!mNewProfileMode) {
// triggers
mItems.add(new Header(getString(R.string.profile_triggers_header)));
mItems.add(generateTriggerItem(TriggerItem.WIFI));
if (DeviceUtils.deviceSupportsBluetooth()) {
mItems.add(generateTriggerItem(TriggerItem.BLUETOOTH));
}
if (DeviceUtils.deviceSupportsNfc(getActivity())) {
mItems.add(generateTriggerItem(TriggerItem.NFC));
}
}
// connection overrides
mItems.add(new Header(getString(R.string.wireless_networks_settings_title)));
if (DeviceUtils.deviceSupportsBluetooth()) {
mItems.add(new ConnectionOverrideItem(PROFILE_CONNECTION_BLUETOOTH, mProfile.getSettingsForConnection(PROFILE_CONNECTION_BLUETOOTH)));
}
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_GPS));
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_WIFI));
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_SYNC));
if (DeviceUtils.deviceSupportsMobileData(getActivity())) {
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_MOBILEDATA));
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_WIFIAP));
final List<SubscriptionInfo> subs = SubscriptionManager.from(getContext()).getActiveSubscriptionInfoList();
if (subs != null) {
for (SubscriptionInfo sub : subs) {
mItems.add(generatePreferredNetworkOverrideItem(sub.getSubscriptionId()));
}
} else {
if (TelephonyManager.from(getContext()).getPhoneCount() == 1) {
mItems.add(generatePreferredNetworkOverrideItem(SubscriptionManager.INVALID_SUBSCRIPTION_ID));
}
}
}
// }
if (DeviceUtils.deviceSupportsNfc(getActivity())) {
mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_NFC));
}
// add volume streams
mItems.add(new Header(getString(R.string.profile_volumeoverrides_title)));
mItems.add(generateVolumeStreamItem(AudioManager.STREAM_ALARM));
mItems.add(generateVolumeStreamItem(AudioManager.STREAM_MUSIC));
mItems.add(generateVolumeStreamItem(AudioManager.STREAM_RING));
mItems.add(generateVolumeStreamItem(AudioManager.STREAM_NOTIFICATION));
// system settings
mItems.add(new Header(getString(R.string.profile_system_settings_title)));
mItems.add(new RingModeItem(mProfile.getRingMode()));
mItems.add(new AirplaneModeItem(mProfile.getAirplaneMode()));
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (!dpm.requireSecureKeyguard()) {
mItems.add(new LockModeItem(mProfile));
} else {
mItems.add(new DisabledItem(R.string.profile_lockmode_title, R.string.profile_lockmode_policy_disabled_summary));
}
mItems.add(new BrightnessItem(mProfile.getBrightness()));
final Activity activity = getActivity();
if (DeviceUtils.isDozeAvailable(activity)) {
mItems.add(new DozeModeItem(mProfile));
}
if (getResources().getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed)) {
mItems.add(new NotificationLightModeItem(mProfile));
}
// app groups
mItems.add(new Header(getString(R.string.profile_app_group_category_title)));
int groupsAdded = 0;
ProfileGroup[] profileGroups = mProfile.getProfileGroups();
if (profileGroups != null && profileGroups.length > 1) {
// it will always have "other"
for (ProfileGroup profileGroup : profileGroups) {
// and don't' show the wildcard group
if (mProfileManager.getNotificationGroup(profileGroup.getUuid()) != null && !mProfile.getDefaultGroup().getUuid().equals(profileGroup.getUuid())) {
mItems.add(new AppGroupItem(mProfile, profileGroup, mProfileManager.getNotificationGroup(profileGroup.getUuid())));
groupsAdded++;
}
}
if (groupsAdded > 0) {
// add "Other" at the end
mItems.add(new AppGroupItem(mProfile, mProfile.getDefaultGroup(), mProfileManager.getNotificationGroup(mProfile.getDefaultGroup().getUuid())));
}
}
if (mProfileManager.getNotificationGroups().length > 0) {
// if there are notification groups available, allow them to be configured
mItems.add(new AppGroupItem());
} else if (groupsAdded == 0) {
// no notification groups available at all, nothing to add/remove
mItems.remove(mItems.get(mItems.size() - 1));
}
mAdapter.notifyDataSetChanged();
}
Aggregations