package askanimus.arbeitszeiterfassung2.widget;


import static android.app.PendingIntent.getActivity;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceManager;

import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;

import askanimus.arbeitszeiterfassung2.R;
import askanimus.arbeitszeiterfassung2.Uhrzeit;
import askanimus.arbeitszeiterfassung2.arbeitsplatz.Arbeitsplatz;
import askanimus.arbeitszeiterfassung2.setup.ASettings;
import askanimus.arbeitszeiterfassung2.setup.ISettings;
import askanimus.betterpickers.radialtimepicker.RadialTimePickerDialogFragment;

public class WidgetSetStartzeit
        extends AppCompatActivity
        implements ISettings,
        RadialTimePickerDialogFragment.OnTimeSetListener{
    private int mWidgetId;
    private Uhrzeit mVon;

    @Override
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /*setTheme(
                PreferenceManager
                        .getDefaultSharedPreferences(getApplicationContext())
                        .getBoolean(ASettings.KEY_THEMA_DUNKEL, false) ?
                        android.R.style.Theme_Material_Dialog :
                        android.R.style.Theme_Material_Light_Dialog
        );*/

    }

    @Override
    protected void onResume() {
        super.onResume();
        // Einstellungen laden, wenn noch nicht geschehen
        ASettings.init(this, this::resume);
    }

    private void resume() {
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        mVon = new Uhrzeit();
        if (extras != null) {
            mWidgetId = extras.getInt(
                    Widget.KEY_WIDGET_ID,
                    AppWidgetManager.INVALID_APPWIDGET_ID
            );
            mVon.set(extras.getInt(
                    Widget.KEY_VON,
                    mVon.getAlsMinuten()
            ));
            //setContentView(R.layout.widget_set_start);
        }

        // Wurde die App ohne eine gültig Appwidget ID aufgerufen?
        // die Activity beenden
        if (mWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
            finish();
        } else {
            //setContentView(R.layout.widget_schichtauswahl);


            // den betreffenden Arbeitsplatz suchen
            Arbeitsplatz mJob = ASettings.getArbeitsplatz(intent.getLongExtra(ISettings.KEY_JOBID, 0));

            if (mJob == null) {
                finish();
            } else {
                // öffnen der Zeitauswahl
                RadialTimePickerDialogFragment vonPickerDialog =
                        new RadialTimePickerDialogFragment()
                                .setTitleText(getString(R.string.widget_neue_startzeit_titel))
                                .setOnTimeSetListener(this)
                                .setOnDismissListener(dialoginterface -> finish())
                                .setStartTime(
                                        mVon.getStunden(),
                                        mVon.getMinuten());
                if (ASettings.isThemaDunkel)
                    vonPickerDialog.setThemeDark();
                else
                    vonPickerDialog.setThemeLight();
                vonPickerDialog.show(getSupportFragmentManager(), Widget.KEY_VON);
            }
        }
    }


    @Override
    public void onTimeSet(RadialTimePickerDialogFragment dialog, int hourOfDay, int minute) {
        mVon.set(hourOfDay, minute);
        // die neue Startzeit ans Widget senden
        Intent eintragenIntent = new Intent();
        eintragenIntent.setClass(getApplicationContext(), Widget.class);
        eintragenIntent.setAction(Widget.CLOSE_ZEITAUSWAHL);
        eintragenIntent.putExtra(Widget.KEY_WIDGET_ID, mWidgetId);
        eintragenIntent.putExtra(Widget.KEY_VON, mVon.getAlsMinuten());
        sendBroadcast(eintragenIntent);
        finish();
    }
}
