Search in sources :

Example 1 with ProfileGroup

use of cyanogenmod.app.ProfileGroup in project android_packages_apps_CMParts by LineageOS.

the class SetupActionsFragment method requestActiveAppGroupsDialog.

private void requestActiveAppGroupsDialog() {
    final NotificationGroup[] notificationGroups = mProfileManager.getNotificationGroups();
    CharSequence[] items = new CharSequence[notificationGroups.length];
    boolean[] checked = new boolean[notificationGroups.length];
    for (int i = 0; i < notificationGroups.length; i++) {
        items[i] = notificationGroups[i].getName();
        checked[i] = mProfile.getProfileGroup(notificationGroups[i].getUuid()) != null;
    }
    DialogInterface.OnMultiChoiceClickListener listener = new DialogInterface.OnMultiChoiceClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            if (isChecked) {
                mProfile.addProfileGroup(new ProfileGroup(notificationGroups[which].getUuid(), false));
            } else {
                mProfile.removeProfileGroup(notificationGroups[which].getUuid());
            }
            updateProfile();
            rebuildItemList();
        }
    };
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()).setMultiChoiceItems(items, checked, listener).setTitle(R.string.profile_appgroups_title).setPositiveButton(android.R.string.ok, null);
    builder.show();
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) NotificationGroup(android.app.NotificationGroup) ProfileGroup(cyanogenmod.app.ProfileGroup)

Example 2 with ProfileGroup

use of cyanogenmod.app.ProfileGroup 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();
}
Also used : DevicePolicyManager(android.app.admin.DevicePolicyManager) AppGroupItem(org.cyanogenmod.cmparts.profiles.actions.item.AppGroupItem) AirplaneModeItem(org.cyanogenmod.cmparts.profiles.actions.item.AirplaneModeItem) ProfileNameItem(org.cyanogenmod.cmparts.profiles.actions.item.ProfileNameItem) ConnectionOverrideItem(org.cyanogenmod.cmparts.profiles.actions.item.ConnectionOverrideItem) PartsActivity(org.cyanogenmod.cmparts.PartsActivity) Activity(android.app.Activity) SubscriptionInfo(android.telephony.SubscriptionInfo) LockModeItem(org.cyanogenmod.cmparts.profiles.actions.item.LockModeItem) BrightnessItem(org.cyanogenmod.cmparts.profiles.actions.item.BrightnessItem) DozeModeItem(org.cyanogenmod.cmparts.profiles.actions.item.DozeModeItem) Header(org.cyanogenmod.cmparts.profiles.actions.item.Header) DisabledItem(org.cyanogenmod.cmparts.profiles.actions.item.DisabledItem) NotificationLightModeItem(org.cyanogenmod.cmparts.profiles.actions.item.NotificationLightModeItem) RingModeItem(org.cyanogenmod.cmparts.profiles.actions.item.RingModeItem) ProfileGroup(cyanogenmod.app.ProfileGroup)

Aggregations

ProfileGroup (cyanogenmod.app.ProfileGroup)2 Activity (android.app.Activity)1 AlertDialog (android.app.AlertDialog)1 NotificationGroup (android.app.NotificationGroup)1 DevicePolicyManager (android.app.admin.DevicePolicyManager)1 DialogInterface (android.content.DialogInterface)1 SubscriptionInfo (android.telephony.SubscriptionInfo)1 PartsActivity (org.cyanogenmod.cmparts.PartsActivity)1 AirplaneModeItem (org.cyanogenmod.cmparts.profiles.actions.item.AirplaneModeItem)1 AppGroupItem (org.cyanogenmod.cmparts.profiles.actions.item.AppGroupItem)1 BrightnessItem (org.cyanogenmod.cmparts.profiles.actions.item.BrightnessItem)1 ConnectionOverrideItem (org.cyanogenmod.cmparts.profiles.actions.item.ConnectionOverrideItem)1 DisabledItem (org.cyanogenmod.cmparts.profiles.actions.item.DisabledItem)1 DozeModeItem (org.cyanogenmod.cmparts.profiles.actions.item.DozeModeItem)1 Header (org.cyanogenmod.cmparts.profiles.actions.item.Header)1 LockModeItem (org.cyanogenmod.cmparts.profiles.actions.item.LockModeItem)1 NotificationLightModeItem (org.cyanogenmod.cmparts.profiles.actions.item.NotificationLightModeItem)1 ProfileNameItem (org.cyanogenmod.cmparts.profiles.actions.item.ProfileNameItem)1 RingModeItem (org.cyanogenmod.cmparts.profiles.actions.item.RingModeItem)1