package de.tu.darmstadt.seemoo.ansian.gui.fragments;
import android.content.res.Configuration;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import de.tu.darmstadt.seemoo.ansian.MainActivity;
import de.tu.darmstadt.seemoo.ansian.R;
import de.tu.darmstadt.seemoo.ansian.control.StateHandler;
import de.tu.darmstadt.seemoo.ansian.gui.tabs.MyTabFragment;
import de.tu.darmstadt.seemoo.ansian.gui.views.morse.MorseSendingView;
import de.tu.darmstadt.seemoo.ansian.gui.views.morse.MorseStatusView;
import de.tu.darmstadt.seemoo.ansian.model.demodulation.Demodulation.DemoType;
import de.tu.darmstadt.seemoo.ansian.model.preferences.Preferences;
/**
* Fragment for the Morse view
*
*/
public class MorseFragment extends MyTabFragment {
private MorseStatusView morseStatusView;
private MorseSendingView morseSendingView;
public MorseFragment(MainActivity activity) {
super("Morse", activity);
}
// Inflate the view for the fragment based on layout XML
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.morse_fragment, container, false);
return v;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LayoutInflater inflater = LayoutInflater.from(getActivity());
populateViewForOrientation(inflater, (ViewGroup) getView());
init();
update();
}
private void populateViewForOrientation(LayoutInflater inflater, ViewGroup viewGroup) {
viewGroup.removeAllViewsInLayout();
inflater.inflate(R.layout.morse_fragment, viewGroup);
}
private void update() {
morseStatusView.update();
morseSendingView.update();
}
@Override
public void onResume() {
super.onResume();
init();
update();
}
@Override
public void onStart() {
super.onStart();
// show/hide morse ticker if desired
if (!Preferences.MORSE_PREFERENCE.isUbiquitousTicker()
|| StateHandler.getActiveDemodulationMode() != DemoType.MORSE) {
getView().findViewById(R.id.morseReceiveView).setVisibility(View.VISIBLE);
} else {
getView().findViewById(R.id.morseReceiveView).setVisibility(View.GONE);
}
}
private void init() {
morseStatusView = (MorseStatusView) getView().findViewById(R.id.morseStatusView);
morseSendingView = (MorseSendingView) getView().findViewById(R.id.morseSendingView);
getView().setBackgroundColor(Color.BLACK);
}
}