diff options
Diffstat (limited to 'com/android/settingslib/TwoTargetPreference.java')
-rw-r--r-- | com/android/settingslib/TwoTargetPreference.java | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/com/android/settingslib/TwoTargetPreference.java b/com/android/settingslib/TwoTargetPreference.java index 8b39f60a..02b68d8c 100644 --- a/com/android/settingslib/TwoTargetPreference.java +++ b/com/android/settingslib/TwoTargetPreference.java @@ -16,6 +16,7 @@ package com.android.settingslib; +import android.annotation.IntDef; import android.content.Context; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceViewHolder; @@ -24,10 +25,24 @@ import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + public class TwoTargetPreference extends Preference { - private boolean mUseSmallIcon; + @IntDef({ICON_SIZE_DEFAULT, ICON_SIZE_MEDIUM, ICON_SIZE_SMALL}) + @Retention(RetentionPolicy.SOURCE) + public @interface IconSize { + } + + public static final int ICON_SIZE_DEFAULT = 0; + public static final int ICON_SIZE_MEDIUM = 1; + public static final int ICON_SIZE_SMALL = 2; + + @IconSize + private int mIconSize; private int mSmallIconSize; + private int mMediumIconSize; public TwoTargetPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { @@ -54,22 +69,30 @@ public class TwoTargetPreference extends Preference { setLayoutResource(R.layout.preference_two_target); mSmallIconSize = context.getResources().getDimensionPixelSize( R.dimen.two_target_pref_small_icon_size); + mMediumIconSize = context.getResources().getDimensionPixelSize( + R.dimen.two_target_pref_medium_icon_size); final int secondTargetResId = getSecondTargetResId(); if (secondTargetResId != 0) { setWidgetLayoutResource(secondTargetResId); } } - public void setUseSmallIcon(boolean useSmallIcon) { - mUseSmallIcon = useSmallIcon; + public void setIconSize(@IconSize int iconSize) { + mIconSize = iconSize; } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); - if (mUseSmallIcon) { - ImageView icon = holder.itemView.findViewById(android.R.id.icon); - icon.setLayoutParams(new LinearLayout.LayoutParams(mSmallIconSize, mSmallIconSize)); + final ImageView icon = holder.itemView.findViewById(android.R.id.icon); + switch (mIconSize) { + case ICON_SIZE_SMALL: + icon.setLayoutParams(new LinearLayout.LayoutParams(mSmallIconSize, mSmallIconSize)); + break; + case ICON_SIZE_MEDIUM: + icon.setLayoutParams( + new LinearLayout.LayoutParams(mMediumIconSize, mMediumIconSize)); + break; } final View divider = holder.findViewById(R.id.two_target_divider); final View widgetFrame = holder.findViewById(android.R.id.widget_frame); |