Ограничение параметров диалога выбора даты Android из Unity для перехода к текущей дате - PullRequest
1 голос
/ 07 июля 2019

Мне нужны параметры диалога выбора даты, чтобы разрешить только начиная с текущей даты, я не вижу в документах Unity возможность установить параметры

void Start() {        
    if (PlayerPrefs.GetString("StartingDateTime") != null) {
        if (PlayerPrefs.GetString("GoalDateTime") != null) {
            startingDate = Convert.ToDateTime(PlayerPrefs.GetString("StartingDateTime"));
            goalDate = Convert.ToDateTime(PlayerPrefs.GetString("GoalDateTime"));
            startingDateLoadedText.text = startingDate.ToString();
            goalDateLoadedText.text = goalDate.ToString();
            totalWeeksInt = PlayerPrefs.GetInt("TotalWeeks");
            SetWeeksToGoalDate();
            SetCurrentWeek();
        }
    }
}

void Update() {

    if (SelectedDate.newDate) {
        if (newSelectedStartingDate) {
            startingDate = SelectedDate.date;
            startingDateText.text = SelectedDate.date.ToString("d/M/yyyy");
            PlayerPrefs.SetString("StartingDateTime", SelectedDate.date.ToString());
            newSelectedStartingDate = false;
        } else if (newSelectedGoalDate) {
            goalDate = SelectedDate.date;
            goalDateText.text = SelectedDate.date.ToString("d/M/yyyy");
            PlayerPrefs.SetString("GoalDateTime", SelectedDate.date.ToString());
            newSelectedGoalDate = false;
        }
        SelectedDate.newDate = false;
    }
}

void PickDate()
{
    new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
}

public void SelectStartingDate() {
    activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
    activity.Call("runOnUiThread", new AndroidJavaRunnable(PickDate));
    newSelectedStartingDate = true;        
}

public void SelectGoalDate()
{
    activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
    activity.Call("runOnUiThread", new AndroidJavaRunnable(PickDate));
    newSelectedGoalDate = true;        
}

public void SetWeeksToGoalDate() {        
    if (startingDate != null && goalDate != null) {
        TimeSpan goalDateWeeks = goalDate - startingDate;
        int weeks = goalDateWeeks.Days / 7;
        PlayerPrefs.SetInt("TotalWeeks", weeks);
        totalWeeksInt = weeks;
        weightLossPeriodText.text = weeks.ToString();
    }
}

Я хотел бы получить несколько ссылок о том, где устанавливать параметры с помощью кода Unity, или если мне нужно настроить плагин с помощью плагина Android и повторно импортировать в приложение.

...