package com.dsht.kerneltweaker; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.net.Uri; import android.preference.Preference; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class InfoPreference extends Preference implements OnClickListener { TextView title; TextView summary; Button mButton1; Button mButton2; Button mButton3; ImageView image; Context mContext; AttributeSet mAttrs; String b1text; String b2text; String b3text; String b1link, b2link, b3link; Drawable imageResource; View mView1; View mView2; public InfoPreference(Context context) { super(context); this.mContext = context; setLayoutResource(R.layout.info_preference); } public InfoPreference(Context context, AttributeSet attrs) { super(context, attrs); this.mAttrs = attrs; this.mContext = context; setLayoutResource(R.layout.info_preference); init(attrs); } public InfoPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); this.mAttrs = attrs; this.mContext = context; setLayoutResource(R.layout.info_preference); init(attrs); } @Override protected void onBindView(View view) { super.onBindView(view); title = (TextView) view.findViewById(android.R.id.title); summary = (TextView) view.findViewById(android.R.id.summary); mButton1=(Button)view.findViewById(R.id.button1); mButton2=(Button)view.findViewById(R.id.button2); mButton3=(Button)view.findViewById(R.id.button3); image=(ImageView)view.findViewById(R.id.image); mView1=(View)view.findViewById(R.id.view1); mView2=(View)view.findViewById(R.id.view2); title.setTypeface(Typeface.create("sans-serif-condensed", Typeface.NORMAL)); summary.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL)); mButton1.setTypeface(Typeface.create("sans-serif-condensed", Typeface.NORMAL)); mButton2.setTypeface(Typeface.create("sans-serif-condensed", Typeface.NORMAL)); mButton3.setTypeface(Typeface.create("sans-serif-condensed", Typeface.NORMAL)); mButton1.setText(b1text); mButton2.setText(b2text); mButton3.setText(b3text); image.setImageDrawable(imageResource); mButton1.setOnClickListener(this); mButton2.setOnClickListener(this); mButton3.setOnClickListener(this); if(b1link == null) { mButton1.setVisibility(View.GONE); mView1.setVisibility(View.GONE); } if(b2link == null) { mButton2.setVisibility(View.GONE); mView2.setVisibility(View.GONE); } if(b3link == null) { mButton3.setVisibility(View.GONE); mView2.setVisibility(View.GONE); } } @Override public void onClick(View arg0) { // TODO Auto-generated method stub String link = null; switch(arg0.getId()) { case R.id.button1: link = b1link; break; case R.id.button2: link = b2link; break; case R.id.button3: link = b3link; break; } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link)); mContext.startActivity(intent); } private void init(AttributeSet attrs) { if (attrs != null) { final TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.InfoPreference); b1text = a.getString(R.styleable.InfoPreference_button1_text); b2text = a.getString(R.styleable.InfoPreference_button2_text); b3text = a.getString(R.styleable.InfoPreference_button3_text); b1link = a.getString(R.styleable.InfoPreference_button1_link); b2link = a.getString(R.styleable.InfoPreference_button2_link); b3link = a.getString(R.styleable.InfoPreference_button3_link); imageResource = a.getDrawable(R.styleable.InfoPreference_image); a.recycle(); } } }