77 lines
2.0 KiB
C#
77 lines
2.0 KiB
C#
using System;
|
|
using BITKit.UX;
|
|
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace BITKit.Apps
|
|
{
|
|
public class UXApplicationService : MonoBehaviour
|
|
{
|
|
[SerializeField, SerializeReference, SubclassSelector]
|
|
private IApplicationService applicationService;
|
|
[SerializeField] private UXGroup uxGroup;
|
|
[SerializeField] private UXButton downloadButton;
|
|
[SerializeField] private UXButton cancelDownloadButton;
|
|
[SerializeField] private UXButton installButton;
|
|
[SerializeField] private UXLabel latestVersionSetter;
|
|
[SerializeField] private UXBar downloadBar;
|
|
|
|
private void Awake()
|
|
{
|
|
applicationService.OnLatestVersionCheck += OnLatestVersionCheck;
|
|
applicationService.OnDownloadLatest+= OnDownloadLatest;
|
|
applicationService.OnDownloadProgress += OnDownloadProgress;
|
|
applicationService.OnDownloadComplete += OnDownloadComplete;
|
|
|
|
downloadButton.onClick.AddListener(ConfirmDownload);
|
|
cancelDownloadButton.onClick.AddListener(OnCancelDownload);
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
applicationService.OnLatestVersionCheck -= OnLatestVersionCheck;
|
|
applicationService.OnDownloadLatest-= OnDownloadLatest;
|
|
applicationService.OnDownloadProgress -= OnDownloadProgress;
|
|
applicationService.OnDownloadComplete -= OnDownloadComplete;
|
|
}
|
|
|
|
private void OnDownloadLatest(string obj)
|
|
{
|
|
uxGroup.Entry("download-container");
|
|
}
|
|
|
|
private void ConfirmDownload()
|
|
{
|
|
//applicationService.DownloadLatestVersionAsync().Forget();
|
|
Application.OpenURL(applicationService.DownloadLatestUrl);
|
|
}
|
|
|
|
private void OnDownloadComplete(string obj)
|
|
{
|
|
uxGroup.Entry("complete-container");
|
|
}
|
|
|
|
private void OnDownloadProgress(float obj)
|
|
{
|
|
downloadBar.Set(obj);
|
|
}
|
|
|
|
private void OnLatestVersionCheck(string obj)
|
|
{
|
|
if (Application.version != obj)
|
|
{
|
|
latestVersionSetter.Set(obj);
|
|
uxGroup.Entry("entryDownload-container");
|
|
}
|
|
else
|
|
{
|
|
uxGroup.Enabled = false;
|
|
}
|
|
}
|
|
private void OnCancelDownload()
|
|
{
|
|
uxGroup.Enabled = false;
|
|
}
|
|
}
|
|
}
|