Blame client/Android/Studio/freeRDPCore/src/main/java/com/freerdp/freerdpcore/utils/ButtonPreference.java

Packit Service fa4841
/*
Packit Service fa4841
   Custom preference item showing a button on the right side
Packit Service fa4841
Packit Service fa4841
   Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit Service fa4841
Packit Service fa4841
   This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
Packit Service fa4841
   If a copy of the MPL was not distributed with this file, You can obtain one at
Packit Service fa4841
   http://mozilla.org/MPL/2.0/.
Packit Service fa4841
*/
Packit Service fa4841
Packit Service fa4841
package com.freerdp.freerdpcore.utils;
Packit Service fa4841
Packit Service fa4841
import android.content.Context;
Packit Service fa4841
import android.preference.Preference;
Packit Service fa4841
import android.util.AttributeSet;
Packit Service fa4841
import android.view.View;
Packit Service fa4841
import android.view.View.OnClickListener;
Packit Service fa4841
import android.view.ViewGroup;
Packit Service fa4841
import android.widget.Button;
Packit Service fa4841
import android.widget.LinearLayout;
Packit Service fa4841
Packit Service fa4841
import com.freerdp.freerdpcore.R;
Packit Service fa4841
Packit Service fa4841
public class ButtonPreference extends Preference
Packit Service fa4841
{
Packit Service fa4841
Packit Service fa4841
	private OnClickListener buttonOnClickListener;
Packit Service fa4841
	private String buttonText;
Packit Service fa4841
	private Button button;
Packit Service fa4841
Packit Service fa4841
	public ButtonPreference(Context context)
Packit Service fa4841
	{
Packit Service fa4841
		super(context);
Packit Service fa4841
		init();
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public ButtonPreference(Context context, AttributeSet attrs)
Packit Service fa4841
	{
Packit Service fa4841
		super(context, attrs);
Packit Service fa4841
		init();
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public ButtonPreference(Context context, AttributeSet attrs, int defStyle)
Packit Service fa4841
	{
Packit Service fa4841
		super(context, attrs, defStyle);
Packit Service fa4841
		init();
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void init()
Packit Service fa4841
	{
Packit Service fa4841
		setLayoutResource(R.layout.button_preference);
Packit Service fa4841
		button = null;
Packit Service fa4841
		buttonText = null;
Packit Service fa4841
		buttonOnClickListener = null;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	@Override public View getView(View convertView, ViewGroup parent)
Packit Service fa4841
	{
Packit Service fa4841
		View v = super.getView(convertView, parent);
Packit Service fa4841
		button = (Button)v.findViewById(R.id.preference_button);
Packit Service fa4841
		if (buttonText != null)
Packit Service fa4841
			button.setText(buttonText);
Packit Service fa4841
		if (buttonOnClickListener != null)
Packit Service fa4841
			button.setOnClickListener(buttonOnClickListener);
Packit Service fa4841
Packit Service fa4841
		// additional init for ICS - make widget frame visible
Packit Service fa4841
		// refer to
Packit Service fa4841
		// http://stackoverflow.com/questions/8762984/custom-preference-broken-in-honeycomb-ics
Packit Service fa4841
		LinearLayout widgetFrameView = ((LinearLayout)v.findViewById(android.R.id.widget_frame));
Packit Service fa4841
		widgetFrameView.setVisibility(View.VISIBLE);
Packit Service fa4841
Packit Service fa4841
		return v;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public void setButtonText(int resId)
Packit Service fa4841
	{
Packit Service fa4841
		buttonText = getContext().getResources().getString(resId);
Packit Service fa4841
		if (button != null)
Packit Service fa4841
			button.setText(buttonText);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public void setButtonText(String text)
Packit Service fa4841
	{
Packit Service fa4841
		buttonText = text;
Packit Service fa4841
		if (button != null)
Packit Service fa4841
			button.setText(text);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public void setButtonOnClickListener(OnClickListener listener)
Packit Service fa4841
	{
Packit Service fa4841
		if (button != null)
Packit Service fa4841
			button.setOnClickListener(listener);
Packit Service fa4841
		else
Packit Service fa4841
			buttonOnClickListener = listener;
Packit Service fa4841
	}
Packit Service fa4841
}