Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java

Issue 850813002: Upstream Site Settings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@location_settings_singleton
Patch Set: use findbugs annotations; fix test Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java
new file mode 100644
index 0000000000000000000000000000000000000000..3394df1561352d3869ad7df2009d69f23f5656e6
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java
@@ -0,0 +1,78 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.preferences;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.preference.PreferenceGroup;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.StyleSpan;
+import android.text.style.TypefaceSpan;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+
+import org.chromium.chrome.R;
+
+import java.util.Locale;
+
+/**
+ * A preference category that accepts clicks for toggling on/off.
+ */
+public class ExpandablePreferenceGroup extends PreferenceGroup {
+ private Drawable mDrawable = null;
+ private ImageView mImageView = null;
+
+ public ExpandablePreferenceGroup(Context context, AttributeSet attrs) {
+ super(context, attrs, android.R.attr.preferenceStyle);
+ setWidgetLayoutResource(R.layout.site_list_expandable_header);
+ }
+
+ /**
+ * Set the title for the preference group.
+ * @param resourceId The resource id of the text to use.
+ * @param count The number of entries the preference group contains.
+ */
+ public void setGroupTitle(int resourceId, int count) {
+ SpannableStringBuilder spannable =
+ new SpannableStringBuilder(getContext().getResources().getString(resourceId));
+ String prefCount = String.format(Locale.getDefault(), " - %d", count);
+ spannable.append(prefCount);
+
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ spannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),
+ 0,
+ spannable.length() - prefCount.length(),
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ } else {
+ spannable.setSpan(new TypefaceSpan("sans-serif-medium"),
+ 0,
+ spannable.length() - prefCount.length(),
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+
+ int gray = getContext().getResources().getColor(R.color.expandable_group_dark_gray);
+ spannable.setSpan(new ForegroundColorSpan(gray),
+ spannable.length() - prefCount.length(),
+ spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ setTitle(spannable);
+ }
+
+ @Override
+ public void setIcon(int resourceId) {
+ mDrawable = getContext().getResources().getDrawable(resourceId);
+ if (mImageView != null) mImageView.setImageDrawable(mDrawable);
+ }
+
+ @Override
+ protected void onBindView(View view) {
+ super.onBindView(view);
+ mImageView = (ImageView) view.findViewById(R.id.expando);
+ if (mDrawable != null) mImageView.setImageDrawable(mDrawable);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698