package org.witness.informacam.ui.screens;
import java.util.Locale;
import org.witness.informacam.InformaCam;
import org.witness.informacam.R;
import org.witness.informacam.models.utils.ILanguageMap;
import org.witness.informacam.ui.WizardActivity;
import org.witness.informacam.utils.Constants.Codes;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
public class WizardStepZero extends Fragment implements OnClickListener {
View rootView;
Activity a;
RadioGroup languageChoices;
ILanguageMap languageMap;
Button commit;
int choice = 0;
String langKey;
Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater li, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(li, container, savedInstanceState);
rootView = li.inflate(R.layout.fragment_wizard_step_zero, null);
languageChoices = (RadioGroup) rootView.findViewById(R.id.wizard_language_choices);
languageMap = (ILanguageMap) getArguments().getSerializable(Codes.Extras.SET_LOCALES);
for(String l : languageMap.getLabels()) {
RadioButton rb = new RadioButton(a);
rb.setText(l);
rb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int l=0; l<languageChoices.getChildCount(); l++) {
if(v.equals(languageChoices.getChildAt(l))) {
choice = l;
break;
}
}
}
});
languageChoices.addView(rb);
}
InformaCam.getInstance().languageMap = languageMap;
langKey = getArguments().getString(Codes.Extras.LOCALE_PREF_KEY);
commit = (Button) rootView.findViewById(R.id.wizard_commit);
commit.setOnClickListener(this);
return rootView;
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
this.a = a;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onClick(View v) {
if(v == commit) {
SharedPreferences.Editor sp = PreferenceManager.getDefaultSharedPreferences(a).edit();
sp.putString(langKey, String.valueOf(choice)).commit();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// set config
Configuration configuration = new Configuration();
configuration.locale = new Locale(languageMap.getCode(choice));
a.getBaseContext().getResources().updateConfiguration(configuration, a.getBaseContext().getResources().getDisplayMetrics());
((WizardActivity) a).onConfigurationChanged(configuration);
}
}, 250);
}
}
}