package mil.nga.giat.asam;
import mil.nga.giat.asam.util.AsamConstants;
import mil.nga.giat.asam.util.SyncTime;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
public class PreferencesDialogFragment extends DialogFragment {
public interface OnPreferencesDialogDismissedListener {
public void onPreferencesDialogDismissed(boolean hideDisclaimer);
}
public static PreferencesDialogFragment newInstance() {
PreferencesDialogFragment dialogFragment = new PreferencesDialogFragment();
return dialogFragment;
}
private OnPreferencesDialogDismissedListener mOnPreferencesDialogDismissedListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NORMAL, 0);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater().inflate(R.layout.preferences, null);
TextView syncTimeUI = (TextView)view.findViewById(R.id.preferences_last_sync_time_ui);
syncTimeUI.setText(SyncTime.getLastSyncTimeAsText(getActivity()));
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
CheckBox disclaimerCheckBoxUI = (CheckBox)view.findViewById(R.id.preferences_hide_disclaimer_checkbox_ui);
disclaimerCheckBoxUI.setChecked(preferences.getBoolean(AsamConstants.HIDE_DISCLAIMER_KEY, false));
view.setMinimumWidth((int)(300 * getResources().getDisplayMetrics().density));
view.setMinimumHeight((int)(200 * getResources().getDisplayMetrics().density));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setIcon(R.drawable.ic_launcher_pirate);
builder.setTitle(getString(R.string.preferences_title_text));
builder.setView(view);
builder.setPositiveButton(getString(R.string.preferences_dialog_close_button_text), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
// no-op
}
});
return builder.create();
}
@Override
public void onDismiss(DialogInterface dialog) {
boolean hideDisclaimer = ((CheckBox)getDialog().findViewById(R.id.preferences_hide_disclaimer_checkbox_ui)).isChecked();
mOnPreferencesDialogDismissedListener.onPreferencesDialogDismissed(hideDisclaimer);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mOnPreferencesDialogDismissedListener = (OnPreferencesDialogDismissedListener)activity;
}
catch (ClassCastException caught) {
throw new ClassCastException(activity.toString() + " must implement OnPreferencesDialogDismissedListener");
}
}
}