|
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 |
}
|