/** * Copyright (c) 2013, Redsolution LTD. All rights reserved. * * This file is part of Xabber project; you can redistribute it and/or * modify it under the terms of the GNU General Public License, Version 3. * * Xabber is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License, * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.xabber.android.ui.activity; import android.preference.DialogPreference; import android.preference.Preference; import android.preference.PreferenceGroup; /** * Update preference's title and summary based on multiline title. * * @author alexander.ivanov */ public final class PreferenceSummaryHelperActivity { private PreferenceSummaryHelperActivity() { } public static void updateSummary(PreferenceGroup group) { for (int index = 0; index < group.getPreferenceCount(); index++) { Preference preference = group.getPreference(index); if (preference instanceof PreferenceGroup) { updateSummary((PreferenceGroup) preference); } String titleAndSummary = preference.getTitle().toString(); if (!isTitleAndSummary(titleAndSummary)) { continue; } preference.setTitle(getPreferenceTitle(titleAndSummary)); if (preference instanceof DialogPreference) { ((DialogPreference) preference).setDialogTitle(preference.getTitle()); } preference.setSummary(getPreferenceSummary(titleAndSummary)); } } private static boolean isTitleAndSummary(String titleAndSummary) { return titleAndSummary.contains("\n"); } public static String getPreferenceTitle(String titleAndSummary) { int delimiter = titleAndSummary.indexOf("\n"); if (delimiter == -1) { return titleAndSummary; } return titleAndSummary.substring(0, delimiter); } private static String getPreferenceSummary(String titleAndSummary) { int delimiter = titleAndSummary.indexOf("\n"); if (delimiter == -1) { return ""; } return titleAndSummary.substring(delimiter + 1, titleAndSummary.length()); } }