package apps.makarov.com.whereismycurrency.view.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.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.Arrays;
import java.util.List;
import javax.inject.Inject;
import apps.makarov.com.whereismycurrency.R;
import apps.makarov.com.whereismycurrency.modules.ResultModule;
import apps.makarov.com.whereismycurrency.presenters.CurrencyPairResultPresenter;
import apps.makarov.com.whereismycurrency.presenters.ResultPresenter;
import apps.makarov.com.whereismycurrency.view.base.BaseFragment;
import apps.makarov.com.whereismycurrency.view.iviews.ResultView;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* Created by makarov on 01/07/15.
*/
public class ResultFragment extends BaseFragment implements ResultView {
public static final String RESULT_KEY_EXTRA = "result";
@Inject
ResultPresenter mResultPresenter;
@Bind(R.id.diff_operation)
TextView diffValueField;
@Bind(R.id.exit_operation_btn)
Button exitOperaionBtn;
@Bind(R.id.remove_operation_btn)
Button removeOperaionBtn;
@Bind(R.id.container)
LinearLayout framesContainer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View hotView = LayoutInflater.from(getActivity()).inflate(R.layout.result_fragment, container, false);
ButterKnife.bind(this, hotView);
String key = getResultKeyExtra(getArguments());
mResultPresenter.setUniqueOperation(key);
exitOperaionBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mResultPresenter.addResultInHistory();
}
});
removeOperaionBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mResultPresenter.removeResult();
}
});
return hotView;
}
@Override
public void setDiffValue(String diff) {
diffValueField.setText(diff);
}
@Override
public void setResultColor(int colorRes) {
diffValueField.setTextColor(getResources().getColor(colorRes));
}
@Override
public void setVisibileHistoryBtn(boolean isShown) {
exitOperaionBtn.setVisibility(isShown ? View.VISIBLE : View.GONE);
}
@Override
public void onAddedResultToHistory() {
exitOperaionBtn.setVisibility(View.GONE);
}
@Override
public void onRemovedResult() {
getFragmentManager().popBackStack();
}
@Override
public void addOpenOperationResult(CurrencyPairResultPresenter presenter) {
View openRate = new CurrencyPairResultViewImpl(getContext(), presenter);
framesContainer.addView(openRate, 0);
}
@Override
public void addExitOperationResult(CurrencyPairResultPresenter presenter) {
View exitRate = new CurrencyPairResultViewImpl(getContext(), presenter);
framesContainer.addView(exitRate, 1);
}
@Override
public void onResume() {
super.onResume();
mResultPresenter.onResume();
}
@Override
public void onPause() {
super.onPause();
mResultPresenter.onPause();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onDestroy() {
super.onDestroy();
mResultPresenter.onDestroy();
}
@Override
protected List<Object> getModules() {
return Arrays.<Object>asList(
new ResultModule(this)
);
}
private String getResultKeyExtra(Bundle savedInstanceState){
if(savedInstanceState==null)
return null;
if(!savedInstanceState.containsKey(RESULT_KEY_EXTRA))
return null;
return savedInstanceState.getString(RESULT_KEY_EXTRA);
}
}