package com.luciofm.droidcon.ifican.fragment;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextSwitcher;
import android.widget.TextView;
import com.luciofm.droidcon.ifican.R;
import com.luciofm.droidcon.ifican.util.IOUtils;
import com.luciofm.droidcon.ifican.util.Utils;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
/**
* A simple {@link android.app.Fragment} subclass.
*
*/
public class TouchFeedbackCodeFragment extends BaseFragment {
@InjectView(R.id.container2)
View container;
@InjectView(R.id.text1)
TextView text1;
@InjectView(R.id.text2)
TextView text2;
@InjectView(R.id.text3)
TextView text3;
@InjectView(R.id.text4)
TextView text4;
@InjectView(R.id.textSwitcher)
TextSwitcher textSwitcher;
Spanned code1;
Spanned code2;
private int currentStep;
public TouchFeedbackCodeFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = super.onCreateView(inflater, container, savedInstanceState);
ButterKnife.inject(this, v);
code1 = Html.fromHtml(IOUtils.readFile(getActivity(), "source/touch_anim.xml.html"));
code2 = Html.fromHtml(IOUtils.readFile(getActivity(), "source/ripple_press.xml.html"));
textSwitcher.setInAnimation(getActivity(), android.R.anim.slide_in_left);
textSwitcher.setOutAnimation(getActivity(), android.R.anim.slide_out_right);
currentStep = 1;
return v;
}
@Override
public void onNextPressed() {
switch (++currentStep) {
case 2:
text1.animate().scaleX(0.7f).scaleY(0.7f);
container.setVisibility(View.VISIBLE);
break;
case 3:
Utils.dispatchTouch(text2, 300);
break;
case 4:
Utils.dispatchTouch(text3, 300);
break;
case 5:
Utils.dispatchTouch(text4, 300);
break;
case 6:
Utils.dispatchTouch(text4, 900);
break;
case 7:
container.setVisibility(View.GONE);
textSwitcher.setVisibility(View.VISIBLE);
textSwitcher.setText(code1);
break;
case 8:
textSwitcher.setText(code2);
break;
default:
super.onNextPressed();
}
}
@Override
public void onPrevPressed() {
if (--currentStep > 1) {
if (currentStep == 7) {
textSwitcher.setText(code1);
return;
} else if (currentStep == 6) {
textSwitcher.setVisibility(View.GONE);
container.setVisibility(View.VISIBLE);
}
currentStep = 2;
return;
}
super.onPrevPressed();
}
@OnClick(R.id.container)
public void onClick() {
onNextPressed();
}
@OnClick({R.id.text2, R.id.text3, R.id.text4})
public void onTextClick() {
}
@Override
public int getLayout() {
return R.layout.fragment_touch_feedback_code;
}
@Override
public String getMessage() {
return null;
}
}