Skip to content
Snippets Groups Projects
AdvancedSettings.java 7.57 KiB
Newer Older
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;
 * Created by Peter De Jonckheere 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);