package edu.whs.spin2018.baoapp.views.menues;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

//import edu.whs.spin2018.baoapp.endpoint.BaoEndpoint;
import edu.whs.spin2018.baoapp.service.BaoService;
import edu.whs.spin2018.baoapp.service.Konstanten;
import edu.whs.spin2018.baoapp.service.SocketEvents;
import edu.whs.spin2018.baoapp.utilities.SharedPrefUtils;
import edu.whs.spin2018.baoapp.utilities.ViewUtils;

/**
 * Diese Klasse repräsentiert die Einstellungen der App
 * Hier kann man z.B. den Namen ändern.
 */
public class EinstellungenActivity extends AppCompatActivity {

    private EditText et_name;
    private String benutzername;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(edu.whs.spin2018.baoapp.R.layout.activity_einstellungen);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        /**
         * Viewvariablen
         */
        TextView tv_einstellungen_heading = findViewById(edu.whs.spin2018.baoapp.R.id.einstellungen_heading);
        et_name = findViewById(edu.whs.spin2018.baoapp.R.id.einstellungen_et_benutzername);
        Button speichern = findViewById(edu.whs.spin2018.baoapp.R.id.einstellungen_btn_speichern);

        ViewUtils.setzeSchatten(tv_einstellungen_heading);

        benutzername = SharedPrefUtils.gibBenutzername(this);
        if (!benutzername.isEmpty()) {
            et_name.setHint(benutzername);
        }

        //Wenn neuer Name gespeichert ist, ändere diesen in den SharedPreferences und dem Server
        speichern.setOnClickListener(view -> {
            String neuerName = et_name.getText().toString();
            if (!neuerName.equals(benutzername) && !neuerName.isEmpty()) {
                SharedPrefUtils.setzeBenutzernamen(getBaseContext(), neuerName);

                //reconnect
                Intent baoService = new Intent(EinstellungenActivity.this, BaoService.class);
                baoService.putExtra(Konstanten.EXTRA_BENUTZERNAME, neuerName);
                baoService.putExtra(Konstanten.EXTRA_UUID,
                        SharedPrefUtils.gibUUID(getApplicationContext()));
                stopService(baoService);
                startService(baoService);
                Toast.makeText(EinstellungenActivity.this, edu.whs.spin2018.baoapp.R.string.daten_gespeichert,
                        Toast.LENGTH_SHORT).show();
            } else if (neuerName.isEmpty()) {
                et_name.setError(getString(edu.whs.spin2018.baoapp.R.string.error_keine_aenderungen));
            }
            finish();
        });


    }
}
