package com.integreight.onesheeld.shields.fragments;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.integreight.onesheeld.R;
import com.integreight.onesheeld.shields.ShieldFragmentParent;
import com.integreight.onesheeld.shields.controller.SmsShield;
import com.integreight.onesheeld.shields.controller.SmsShield.SmsEventHandler;
import com.integreight.onesheeld.utils.customviews.OneSheeldTextView;
public class SmsFragment extends ShieldFragmentParent<SmsFragment> {
LinearLayout smsTextContainer;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.sms_shield_fragment_layout, container,
false);
}
@Override
public void doOnStart() {
((SmsShield) getApplication().getRunningShields().get(
getControllerTag())).setSmsEventHandler(smsEventHandler);
}
@Override
public void doOnViewCreated(View v, @Nullable Bundle savedInstanceState) {
smsTextContainer = (LinearLayout) v
.findViewById(R.id.sms_shield_text_container);
}
private SmsEventHandler smsEventHandler = new SmsEventHandler() {
@Override
public void onSmsSent(final String smsNumber, final String smsText) {
// TODO Auto-generated method stub
uiHandler.removeCallbacksAndMessages(null);
uiHandler.post(new Runnable() {
@Override
public void run() {
if (canChangeUI()) {
OneSheeldTextView tv = (OneSheeldTextView) activity
.getLayoutInflater().inflate(
R.layout.sent_sms_details_row,
smsTextContainer, false);
tv.setText(activity.getString(R.string.sms_sms_to)+" " + smsNumber + " (" + smsText + ")");
smsTextContainer.addView(tv);
Toast.makeText(activity, R.string.sms_sms_sent, Toast.LENGTH_LONG)
.show();
}
}
});
}
@Override
public void onSmsFail(String error) {
// TODO Auto-generated method stub
if (canChangeUI()) {
Toast.makeText(activity, error, Toast.LENGTH_LONG).show();
}
}
};
private void initializeFirmata() {
if ((getApplication().getRunningShields().get(getControllerTag())) == null)
getApplication().getRunningShields().put(getControllerTag(),
new SmsShield(activity, getControllerTag()));
((SmsShield) getApplication().getRunningShields().get(
getControllerTag())).setSmsEventHandler(smsEventHandler);
}
@Override
public void doOnServiceConnected() {
initializeFirmata();
}
}