package org.iilab.pb.fragment;
import org.iilab.pb.R;
import org.iilab.pb.common.MessageLimitWatcher;
import android.app.Activity;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.InputFilter;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import static java.lang.String.valueOf;
public class MessageTextFragment extends Fragment {
private TextView charactersLeftView;
private TextView messageHeaderView;
private EditText messageEditText;
private MessageLimitWatcher messageLimitWatcher;
private int maxCharacters;
private String messageHeader;
private Button bAction;
@Override
public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) {
super.onInflate(activity, attrs, savedInstanceState);
TypedArray typedArray = activity.obtainStyledAttributes(attrs, R.styleable.MessageFragmentArguments);
maxCharacters = typedArray.getInt(R.styleable.MessageFragmentArguments_max_characters, -1);
messageHeader = typedArray.getString(R.styleable.MessageFragmentArguments_message_header);
typedArray.recycle();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.message_fragment, container, false);
charactersLeftView = (TextView) view.findViewById(R.id.characters_left_view);
messageHeaderView = (TextView) view.findViewById(R.id.message_fragment_header);
messageEditText = (EditText) view.findViewById(R.id.message_edit_text);
messageEditText.requestFocus();
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
public void setActionButtonStateListener(Button bAction){
this.bAction = bAction;
String prefix = getString(R.string.characters_left);
messageLimitWatcher = new MessageLimitWatcher(charactersLeftView, prefix, maxCharacters, bAction);
messageEditText.addTextChangedListener(messageLimitWatcher);
InputFilter[] filters = {new InputFilter.LengthFilter(maxCharacters)};
messageEditText.setFilters(filters);
messageEditText.setSelection(messageEditText.getText().length());
charactersLeftView.setText(prefix + valueOf(maxCharacters - messageEditText.getText().length()));
messageHeaderView.setText(messageHeader);
}
public String getMessage() {
return messageEditText.getText().toString();
}
public void setMessage(String message) {
if (message != null) {
messageEditText.setText(message);
}
}
}