package org.adaptlab.chpir.android.survey; import org.adaptlab.chpir.android.activerecordcloudsync.ActiveRecordCloudSync; import org.adaptlab.chpir.android.activerecordcloudsync.PollService; import org.adaptlab.chpir.android.survey.Models.AdminSettings; import org.adaptlab.chpir.android.survey.Tasks.ApkUpdateTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; public class AdminFragment extends Fragment { private EditText mDeviceIdentifierEditText; private EditText mDeviceLabelEditText; private EditText mSyncIntervalEditText; private EditText mApiDomainNameEditText; private EditText mApiVersionEditText; private EditText mProjectIdEditText; private EditText mApiKeyEditText; private EditText mCustomLocaleEditText; private TextView mLastUpdateTextView; private CheckBox mShowSurveysCheckBox; private CheckBox mShowSkipCheckBox; private CheckBox mShowNACheckBox; private CheckBox mShowRFCheckBox; private CheckBox mShowDKCheckBox; private CheckBox mRequirePasswordCheckBox; private CheckBox mRecordSurveyLocationCheckBox; private TextView mVersionCodeTextView; private Button mSaveButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_admin_settings, parent, false); mDeviceIdentifierEditText = (EditText) v .findViewById(R.id.device_identifier_edit_text); mDeviceIdentifierEditText.setText(getAdminSettingsInstanceDeviceId()); mDeviceLabelEditText = (EditText) v.findViewById(R.id.device_label_edit_text); mDeviceLabelEditText.setText(AdminSettings.getInstance().getDeviceLabel()); mSyncIntervalEditText = (EditText) v .findViewById(R.id.sync_interval_edit_text); mSyncIntervalEditText.setText(getAdminSettingsInstanceSyncInterval()); mApiDomainNameEditText = (EditText) v.findViewById(R.id.api_endpoint_text); mApiDomainNameEditText.setText(getAdminSettingsInstanceApiDomainName()); mApiVersionEditText = (EditText) v.findViewById(R.id.api_version_text); mApiVersionEditText.setText(getAdminSettingsInstanceApiVersion()); mProjectIdEditText = (EditText) v.findViewById(R.id.project_id_text); mProjectIdEditText.setText(getAdminSettingsInstanceProjectId()); mApiKeyEditText = (EditText) v.findViewById(R.id.api_key_text); mApiKeyEditText.setText(getAdminSettingsInstanceApiKey()); mCustomLocaleEditText = (EditText) v.findViewById(R.id.custom_locale_edit_text); mCustomLocaleEditText.setText(getAdminSettingsInstanceCustomLocaleCode()); mShowSurveysCheckBox = (CheckBox) v.findViewById(R.id.show_surveys_checkbox); mShowSurveysCheckBox.setChecked(AdminSettings.getInstance().getShowSurveys()); mShowSkipCheckBox = (CheckBox) v.findViewById(R.id.show_skip_checkbox); mShowSkipCheckBox.setChecked(AdminSettings.getInstance().getShowSkip()); mShowNACheckBox = (CheckBox) v.findViewById(R.id.show_na_checkbox); mShowNACheckBox.setChecked(AdminSettings.getInstance().getShowNA()); mShowRFCheckBox = (CheckBox) v.findViewById(R.id.show_rf_checkbox); mShowRFCheckBox.setChecked(AdminSettings.getInstance().getShowRF()); mShowDKCheckBox = (CheckBox) v.findViewById(R.id.show_dk_checkbox); mShowDKCheckBox.setChecked(AdminSettings.getInstance().getShowDK()); mRequirePasswordCheckBox = (CheckBox) v.findViewById(R.id.require_password); mRequirePasswordCheckBox.setChecked(AdminSettings.getInstance().getRequirePassword()); mRecordSurveyLocationCheckBox = (CheckBox) v.findViewById(R.id.record_survey_location_checkbox); mRecordSurveyLocationCheckBox.setChecked(AdminSettings.getInstance().getRecordSurveyLocation()); mLastUpdateTextView = (TextView) v.findViewById(R.id.last_update_label); mLastUpdateTextView.setText(mLastUpdateTextView.getText().toString() + getLastUpdateTime()); mVersionCodeTextView = (TextView) v.findViewById(R.id.version_code_label); mVersionCodeTextView.setText(getString(R.string.version_code) + AppUtil.getVersionCode(getActivity())); mSaveButton = (Button) v.findViewById(R.id.save_admin_settings_button); mSaveButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { AdminSettings.getInstance().setDeviceIdentifier(mDeviceIdentifierEditText.getText().toString()); AdminSettings.getInstance().setDeviceLabel(mDeviceLabelEditText.getText().toString()); AdminSettings.getInstance().setSyncInterval(Integer.parseInt(mSyncIntervalEditText.getText().toString())); AdminSettings.getInstance().setApiDomainName(mApiDomainNameEditText.getText().toString()); AdminSettings.getInstance().setApiVersion(mApiVersionEditText.getText().toString()); AdminSettings.getInstance().setProjectId(mProjectIdEditText.getText().toString()); AdminSettings.getInstance().setApiKey(mApiKeyEditText.getText().toString()); // If this code is set, it will override the language selection on the device // for all instrument translations. AdminSettings.getInstance().setCustomLocaleCode(mCustomLocaleEditText.getText().toString()); PollService.setPollInterval(AdminSettings.getInstance().getSyncInterval()); ActiveRecordCloudSync.setAccessToken(getAdminSettingsInstanceApiKey()); ActiveRecordCloudSync.setEndPoint(getAdminSettingsInstanceApiUrl()); AppUtil.appInit(getActivity()); AdminSettings.getInstance().setShowSurveys(mShowSurveysCheckBox.isChecked()); AdminSettings.getInstance().setShowSkip(mShowSkipCheckBox.isChecked()); AdminSettings.getInstance().setShowNA(mShowNACheckBox.isChecked()); AdminSettings.getInstance().setShowRF(mShowRFCheckBox.isChecked()); AdminSettings.getInstance().setShowDK(mShowDKCheckBox.isChecked()); AdminSettings.getInstance().setRequirePassword(mRequirePasswordCheckBox.isChecked()); AdminSettings.getInstance().setRecordSurveyLocation(mRecordSurveyLocationCheckBox.isChecked()); getActivity().finish(); } }); return v; } public String getLastUpdateTime() { return (PollService.getLastUpdate()) + ""; } public String getAdminSettingsInstanceCustomLocaleCode() { return AdminSettings.getInstance().getCustomLocaleCode(); } public String getAdminSettingsInstanceApiDomainName() { return AdminSettings.getInstance().getApiDomainName(); } public String getAdminSettingsInstanceApiUrl() { // Append forward slash to domain name if does not exist String domainName = AdminSettings.getInstance().getApiDomainName(); char lastChar = domainName.charAt(domainName.length() - 1); if (lastChar != '/') domainName = domainName + "/"; return domainName + "api/" + AdminSettings.getInstance().getApiVersion() + "/" + "projects/" + AdminSettings.getInstance().getProjectId() + "/"; } public String getAdminSettingsInstanceSyncInterval() { return String.valueOf(AdminSettings.getInstance().getSyncIntervalInMinutes()); } public String getAdminSettingsInstanceDeviceId() { return AdminSettings.getInstance().getDeviceIdentifier(); } public String getAdminSettingsInstanceApiVersion() { return AdminSettings.getInstance().getApiVersion(); } public String getAdminSettingsInstanceProjectId() { return AdminSettings.getInstance().getProjectId(); } public String getAdminSettingsInstanceApiKey() { return AdminSettings.getInstance().getApiKey(); } }