package com.notificationFramework.sedentary.frontEnd; import android.app.TimePickerDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.Spinner; import android.widget.TimePicker; import android.widget.Toast; import java.io.File; /** * Created by pharmacy on 16/02/2018. */ public class AdvancedSettings extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.advanced_settings); setUpButtons(); retrieveSettings(); } @Override protected void onStop(){ super.onStop(); saveSharedPreferenceData(); } private void retrieveSettings(){ SharedPreferences shared = this.getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE); ((Spinner)findViewById(R.id.PeriodSpinner)).setSelection(shared.getInt(getString(R.string.led_period_pos), 0)); ((Spinner)findViewById(R.id.ColourSpinner)).setSelection(shared.getInt(getString(R.string.led_colour_pos), 0)); ((Spinner)findViewById(R.id.AccelSpinner)).setSelection(shared.getInt(getString(R.string.accel_sensitivity_pos), 0)); } private void setUpButtons(){ ImageButton back = (ImageButton)findViewById(R.id.back); back.bringToFront(); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { saveSharedPreferenceData(); Intent intent = new Intent(view.getContext(), Settings.class); displaySavedToast(view); startActivity(intent); } }); Button upload = findViewById(R.id.upload); upload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { File file = SaveFile.zipFiles(view.getContext()); Intent sendIntent = new Intent(Intent.ACTION_SEND); if(file.exists() && (file != null)){ /* sendIntent.setType("notificationapp/zip"); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file.getAbsolutePath())); sendIntent.putExtra(Intent.EXTRA_SUBJECT,"Sharing File..."); sendIntent.putExtra(Intent.EXTRA_TEXT, "Sharing File...");*/ startActivity(Intent.createChooser(sendIntent, "Share File")); } } }); Button survey = findViewById(R.id.survey); survey.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent webIntent = new Intent(Intent.ACTION_VIEW); webIntent.setData(Uri.parse(getString(R.string.survey_link))); startActivity(webIntent); } }); Button startTime = findViewById(R.id.startTime); startTime.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { final SharedPreferences shared = view.getContext().getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE); int hour = shared.getInt(getString(R.string.dnd_shour), 23); int minute = shared.getInt(getString(R.string.dnd_smin), 0); TimePickerDialog dialog = new TimePickerDialog(view.getContext(), new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int selHour, int selMin) { SharedPreferences.Editor editor = shared.edit(); editor.putInt(getString(R.string.dnd_shour), selHour); editor.putInt(getString(R.string.dnd_smin), selMin); editor.commit(); } }, hour, minute, true); dialog.setTitle(getString(R.string.dnd_stitle)); dialog.show(); } }); Button endTime = findViewById(R.id.endTime); endTime.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { final SharedPreferences shared = view.getContext().getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE); int hour = shared.getInt(getString(R.string.dnd_ehour), 9); int minute = shared.getInt(getString(R.string.dnd_emin), 0); TimePickerDialog dialog = new TimePickerDialog(view.getContext(), new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int selHour, int selMin) { SharedPreferences.Editor editor = shared.edit(); editor.putInt(getString(R.string.dnd_ehour), selHour); editor.putInt(getString(R.string.dnd_emin), selMin); editor.commit(); } }, hour, minute, true); dialog.setTitle(getString(R.string.dnd_etitle)); dialog.show(); } }); populateSpinner((Spinner)findViewById(R.id.PeriodSpinner), R.array.LED_periods); populateSpinner((Spinner)findViewById(R.id.ColourSpinner), R.array.LED_colours); populateSpinner((Spinner)findViewById(R.id.AccelSpinner), R.array.accel_sensitivities); } private void populateSpinner(Spinner spinner, int arrayID){ ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, arrayID, android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); } private void displaySavedToast(View view){ Toast saved = Toast.makeText(view.getContext(), R.string.settings_saved,Toast.LENGTH_SHORT); saved.show(); } private void saveSharedPreferenceData(){ SharedPreferences sharedPref = this.getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE); int spinnerPPos = ((Spinner)findViewById(R.id.PeriodSpinner)).getSelectedItemPosition(); int notifyGap = Integer.parseInt(((Spinner)findViewById(R.id.PeriodSpinner)).getSelectedItem().toString()); int spinnerCPos = ((Spinner)findViewById(R.id.ColourSpinner)).getSelectedItemPosition(); String colour = ((Spinner)findViewById(R.id.ColourSpinner)).getSelectedItem().toString(); int spinnerAPos = ((Spinner)findViewById(R.id.AccelSpinner)).getSelectedItemPosition(); String sensitivity = ((Spinner)findViewById(R.id.AccelSpinner)).getSelectedItem().toString(); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.led_period_pos), spinnerPPos); editor.putInt(getString(R.string.led_period), notifyGap); editor.putInt(getString(R.string.led_colour_pos), spinnerCPos); editor.putString(getString(R.string.led_colour), colour); editor.putInt(getString(R.string.accel_sensitivity_pos), spinnerAPos); editor.putString(getString(R.string.accel_sensitivity), sensitivity); editor.commit(); } }