private void flattenPreferenceGroup(List<Preference> preferences, PreferenceGroup group) {
    group.sortPreferences();

    final int groupSize = group.getPreferenceCount();
    for (int i = 0; i < groupSize; i++) {
      final Preference preference = group.getPreference(i);

      preferences.add(preference);

      addPreferenceClassName(preference);

      if (preference instanceof PreferenceGroup) {
        final PreferenceGroup preferenceAsGroup = (PreferenceGroup) preference;
        if (preferenceAsGroup.isOnSameScreenAsChildren()) {
          flattenPreferenceGroup(preferences, preferenceAsGroup);
        }
      }

      preference.setOnPreferenceChangeInternalListener(this);
    }
  }