OSDN Git Service

Explain properly when apps can open multiple hosts' links
authorChristopher Tate <ctate@google.com>
Tue, 4 Aug 2015 00:46:30 +0000 (17:46 -0700)
committerChristopher Tate <ctate@google.com>
Tue, 4 Aug 2015 00:46:30 +0000 (17:46 -0700)
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

src/com/android/settings/applications/AppDomainsPreference.java

index 7e29a20..5d6bdb0 100644 (file)
@@ -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);
@@ -34,6 +35,27 @@ public class AppDomainsPreference extends ListDialogPreference {
     }
 
     @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);
         if (title != null) {