package com.ese2013.mensaunibe.settings;
import java.util.ArrayList;
import com.ese2013.mensaunibe.R;
import com.ese2013.mensaunibe.mensa.MensaActivity;
import com.ese2013.mensaunibe.model.utils.SystemLanguage;
import android.support.v4.app.Fragment;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.Toast;
/**
* @author group7
* @author Andreas Hohler
*/
public class SettingsFragment extends Fragment implements OnItemSelectedListener {
private static final String TAG = SettingsFragment.class.getName();
private View view;
private final ArrayList<LanguageItem> data = new ArrayList<LanguageItem>();
private boolean spinnerAdapterInit = false;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
this.view = inflater.inflate(R.layout.activity_settings, container, false);
return this.view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
updateAdapter();
}
private void updateAdapter() {
data.add( new LanguageItem("de", getString(R.string.language_german)) );
data.add( new LanguageItem("en", getString(R.string.language_english)) );
Spinner sp = (Spinner) view.findViewById(R.id.language_spinner);
sp.setAdapter(new LanguageSpinnerAdapter(getActivity(), data));
String saved = SystemLanguage.getLanguage();
for(LanguageItem l : data) {
if(l.getLangCode().equals(saved)) {
sp.setSelection( data.indexOf(l) );
break;
}
}
sp.setOnItemSelectedListener(this);
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d(TAG,"SettingsFragment created");
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onStop() {
super.onStop();
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(!spinnerAdapterInit) {
spinnerAdapterInit = true;
} else {
LanguageItem item = data.get(position);
SystemLanguage.context = getActivity();
SystemLanguage.changeLanguage(item.getLangCode());
Toast.makeText(getActivity(), getString(R.string.language_changed_to)+" "+item.toString(), Toast.LENGTH_LONG).show();
/*Intent intent = getActivity().getIntent();
getActivity().finish();
startActivity(intent);*/
// TODO delete or change it
ProgressDialog.show(getActivity(), getString(R.string.language), getString(R.string.changing_language), true);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
restartApp();
}
}, 2000);
}
}
private void restartApp() {
System.exit(0);
getActivity().startActivity(new Intent(getActivity().getApplicationContext(), MensaActivity.class));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}