package edu.whs.spin2018.baoapp.utilities;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Hilfsklasse um auf die SharedPrefernces zuzugreifen und die zu bearbeiten.
 */
public final class SharedPrefUtils {

    private static final String SHARED_PREF_KEY_BENUTZERNAME = "benutzername";
    private static final String SHARED_PREF_STANDARDWERT = null;
    private static final String SHARED_PREF_KEY_BENUTZERINFO = "benutzerInfo";
    private static final String SHARED_PREF_KEY_UUID = "UUID";

    private SharedPrefUtils() {

    }

    /**
     * Gibt den Benutzernamen, der in den SharedPreferences gespeichert ist.
     *
     * @param context - context um auf die SharedPreferences zuzugreifen
     * @return Benutzername, der in den SharedPreferences gespeichert ist
     */
    public static String gibBenutzername(Context context) {
        return context.getSharedPreferences(SHARED_PREF_KEY_BENUTZERINFO, Context.MODE_PRIVATE)
                .getString(SHARED_PREF_KEY_BENUTZERNAME, SHARED_PREF_STANDARDWERT);
    }

    /**
     * Gibt die UUID, die in den SharedPreferences gepeichert ist.
     *
     * @param context - context um auf die SharedPreferences zuzugreifen
     * @return UUID, die in den SharedPreferences gespeichert ist
     */
    public static String gibUUID(Context context) {
        return context.getSharedPreferences(SHARED_PREF_KEY_BENUTZERINFO, Context.MODE_PRIVATE)
                .getString(SHARED_PREF_KEY_UUID, SHARED_PREF_STANDARDWERT);
    }

    /**
     * Speichert einen neuen Benutzernamen in den SharedPreferences
     *
     * @param context - context um auf die SharedPreferences zuzugreifen
     * @param name    - neuer Benutzername, der in den SharedPreferences gespeichert werden soll
     */
    public static void setzeBenutzernamen(Context context, String name) {
        SharedPreferences.Editor editor = context
                .getSharedPreferences(SHARED_PREF_KEY_BENUTZERINFO, Context.MODE_PRIVATE).edit();

        editor.putString(SHARED_PREF_KEY_BENUTZERNAME, name);
        editor.apply();
    }

    /**
     * Speichert eine neue UUID in den SharedPreferences
     *
     * @param context - context um auf die SharedPreferences zuzugreifen
     */
    public static void setzteUUID(Context context) {
        String UUID = java.util.UUID.randomUUID().toString();
        SharedPreferences.Editor editor = context
                .getSharedPreferences(SHARED_PREF_KEY_BENUTZERINFO, Context.MODE_PRIVATE).edit();

        editor.putString(SHARED_PREF_KEY_UUID, UUID);
        editor.apply();
    }

}
