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 com.integreight.onesheeld.R;
import com.integreight.onesheeld.shields.ShieldFragmentParent;
import com.integreight.onesheeld.shields.controller.PhoneShield;
import com.integreight.onesheeld.shields.controller.PhoneShield.PhoneEventHandler;
import com.integreight.onesheeld.utils.customviews.OneSheeldTextView;
public class PhoneFragment extends ShieldFragmentParent<PhoneFragment> {
LinearLayout callsLogContainer;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.phone_shield_fragment_layout, container,
false);
}
@Override
public void doOnStart() {
((PhoneShield) getApplication().getRunningShields().get(
getControllerTag())).setPhoneEventHandler(phoneEventHandler);
}
@Override
public void doOnViewCreated(View v, @Nullable Bundle savedInstanceState) {
callsLogContainer = (LinearLayout) v.findViewById(R.id.callsCont);
}
private PhoneEventHandler phoneEventHandler = new PhoneEventHandler() {
@Override
public void isRinging(boolean isRinging) {
// TODO Auto-generated method stub
}
@Override
public void OnCall(final String phone_number) {
uiHandler.post(new Runnable() {
@Override
public void run() {
if (canChangeUI()) {
OneSheeldTextView call = (OneSheeldTextView) activity
.getLayoutInflater().inflate(
R.layout.outgoing_call_item,
callsLogContainer, false);
call.setText(activity.getString(R.string.phone_call_to)+" "+ phone_number);
callsLogContainer.addView(call);
}
}
});
}
@Override
public void onReceiveACall(final String phoneNumber) {
if (canChangeUI()) {
uiHandler.post(new Runnable() {
@Override
public void run() {
OneSheeldTextView call = (OneSheeldTextView) activity
.getLayoutInflater().inflate(
R.layout.incoming_call_item,
callsLogContainer, false);
call.setText(activity.getString(R.string.phone_call_from)+" " + phoneNumber);
callsLogContainer.addView(call);
}
});
}
}
};
private void initializeFirmata() {
if (getApplication().getRunningShields().get(getControllerTag()) == null) {
getApplication().getRunningShields().put(getControllerTag(),
new PhoneShield(activity, getControllerTag()));
((PhoneShield) getApplication().getRunningShields().get(
getControllerTag()))
.setPhoneEventHandler(phoneEventHandler);
}
}
@Override
public void doOnServiceConnected() {
initializeFirmata();
}
}