/**
* Copyright (c) 2013, Redsolution LTD. All rights reserved.
*
* This file is part of Xabber project; you can redistribute it and/or
* modify it under the terms of the GNU General Public License, Version 3.
*
* Xabber is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License,
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package com.xabber.android.ui.widget;
import android.content.Context;
import android.preference.EditTextPreference;
import android.util.AttributeSet;
import android.widget.Toast;
import com.xabber.android.R;
/**
* Preference to validate xmpp priority input and to show related hint.
*
* @author alexander.ivanov
*/
public class PriorityPreference extends EditTextPreference {
private final Context context;
public PriorityPreference(Context context) {
super(context);
this.context = context;
}
public PriorityPreference(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
public PriorityPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = context;
}
@Override
protected boolean callChangeListener(Object newValue) {
try {
int value = Integer.parseInt((String) newValue);
if (value < -128 || value > 127)
throw new NumberFormatException();
} catch (NumberFormatException e) {
Toast.makeText(context,
context.getString(R.string.account_invalid_priority),
Toast.LENGTH_LONG).show();
return false;
}
return super.callChangeListener(newValue);
}
@Override
public void setText(String text) {
super.setText(text);
String summary = text;
try {
if (Integer.parseInt(text) < 0)
summary = context.getString(R.string.negative_priotiry_summary,
text);
} catch (NumberFormatException e) {
}
setSummary(summary);
}
}