From d485c6b13da28af363630b9dab60207f901bb10f Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 3 Aug 2015 17:46:30 -0700 Subject: [PATCH] Explain properly when apps can open multiple hosts' links The app link settings "Open by default" detail view was showing only one host under label "Supported links," improperly implying that the app would only open that host's links. The summary now matches the 'App links' view's, explaining "Open $HOST and related URLs" for apps with more than one. Tapping on the item has always shown the full list of hosts advertised by the app, and this remains unchanged. Bug 22769535 Change-Id: I2be409df64639eb0f2b43a06e3195796c3a3df8b --- .../applications/AppDomainsPreference.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/applications/AppDomainsPreference.java b/src/com/android/settings/applications/AppDomainsPreference.java index 7e29a20fa44..5d6bdb0c449 100644 --- a/src/com/android/settings/applications/AppDomainsPreference.java +++ b/src/com/android/settings/applications/AppDomainsPreference.java @@ -20,11 +20,12 @@ import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; -import com.android.settings.accessibility.ListDialogPreference; +import com.android.settings.accessibility.ListDialogPreference; import com.android.settings.R; public class AppDomainsPreference extends ListDialogPreference { + private int mNumEntries; public AppDomainsPreference(Context context, AttributeSet attrs) { super(context, attrs); @@ -33,6 +34,27 @@ public class AppDomainsPreference extends ListDialogPreference { setListItemLayoutResource(R.layout.app_domains_item); } + @Override + public void setTitles(CharSequence[] titles) { + mNumEntries = (titles != null) ? titles.length : 0; + super.setTitles(titles); + } + + @Override + public CharSequence getSummary() { + final Context context = getContext(); + if (mNumEntries == 0) { + return context.getString(R.string.domain_urls_summary_none); + } + + // The superclass summary is the text of the first entry in the list + final CharSequence summary = super.getSummary(); + final int whichVersion = (mNumEntries == 1) + ? R.string.domain_urls_summary_one + : R.string.domain_urls_summary_some; + return context.getString(whichVersion, summary); + } + @Override protected void onBindListItem(View view, int index) { final CharSequence title = getTitleAt(index);