package dbfields;

import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.widget.EditText;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeTM extends com.google.android.material.textfield.TextInputEditText implements fieldDB
{
	private String m_Value = null;

	public DateTimeTM(Context context)
	{
		super(context);
	}
	public DateTimeTM(Context context, AttributeSet attrs)
	{
		super(context,attrs);
	}
	
	public String getValue(){
		return m_Value;
	}

	//Передаётся в секундах с 1970 года по гринвичу но отображается в локальном времени 1579154400 отображается 16.01.2020 12:00 (в Алмате)
	public void setValue(String val)
	{
		m_Value = val;
		if(val!=null && !val.equals(""))
		{
			Date date = new Date(Long.parseLong(m_Value)*1000);
			
	        SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
	        //format.setTimeZone(TimeZone.getTimeZone("UTC"));

            String str = format.format(date);
	        setText(str);
		}else
		{
			setText("");
		}
	}

	// Класс для сохранения изменений сделаных пользователем при повороте экрана
	public static class SavedStateTDTM extends BaseSavedState
	{
		String value = ""; //Не может быть null почемуто вылетает!

		SavedStateTDTM(Parcelable superState)
		{
			super(superState);
		}

		@Override
		public void writeToParcel(Parcel out, int flags)
		{
			super.writeToParcel(out, flags);
			out.writeString(value);
		}

		public static final Creator<SavedStateTDTM>	CREATOR	= new Creator<SavedStateTDTM>()
																	{
																		public SavedStateTDTM createFromParcel(Parcel in)
																		{
																			return new SavedStateTDTM(in);
																		}

																		public SavedStateTDTM[] newArray(int size)
																		{
																			return new SavedStateTDTM[size];
																		}
																	};

		private SavedStateTDTM(Parcel in)
		{
			super(in);
			value = in.readString();
		}

	}

	@Override
	public Parcelable onSaveInstanceState()
	{
		SavedStateTDTM st = new SavedStateTDTM(super.onSaveInstanceState());
		st.value = getValue();
		if(st.value==null) st.value="";
		return st;
	}

	@Override
	public void onRestoreInstanceState(Parcelable state)
	{
		if (state == null || !(state instanceof SavedStateTDTM))
		{
			super.onRestoreInstanceState(state);
			return;
		}

		SavedStateTDTM ss = (SavedStateTDTM) state;
		super.onRestoreInstanceState(ss.getSuperState());
		setValue(ss.value);
	};
	
}
