public void LaunchBookshelf()
 {
     _counter += 1;
     if (_counter > 1)
     {
         AppUpdateStatus updateStatus = DBService.GetDB().GetAppUpdateStatus();
         if (updateStatus != null && (updateStatus.ShowAppUpdateAlert || updateStatus.UpdateMandatory))
         {
             Intent updateActivity = new Intent(this, typeof(ForcedEventsActivity));
             updateActivity.PutExtra(Const.MANDATORY_FLAG, updateStatus.UpdateMandatory);
             updateActivity.PutExtra(Const.FORCED_EVENT, ForcedEventTypes.APP_UPDATE_EVENT.ToString());
             StartActivity(updateActivity);
         }
         else
         {
             //Condtion for Firstruncheck
             if (_isfirstrun == true)
             {
                 StartActivity(typeof(OnBoard));
             }
             else
             {
                 StartActivity(typeof(BookshelfActivity));
             }
         }
     }
 }
        private async Task UnsafeCheckForUpdate(CancellationToken cancellationToken)
        {
            _earlyAccess = _requestedEarlyAccess;
            _status      = AppUpdateStatus.Checking;

            HandleSuccess(_update.CachedLatest(_earlyAccess), cancellationToken);
            HandleSuccess(await _update.Latest(_earlyAccess), cancellationToken);

            if (_update.Available)
            {
                HandleSuccess(await _update.Validated(), cancellationToken);

                if (!_update.Ready)
                {
                    _status = AppUpdateStatus.Downloading;
                    OnStateChanged();

                    HandleSuccess(await _update.Downloaded(), cancellationToken);
                    HandleSuccess(await _update.Validated(), cancellationToken);

                    if (!_update.Ready)
                    {
                        _status = AppUpdateStatus.DownloadFailed;
                        OnStateChanged();

                        return;
                    }
                }
            }

            _status = _update.Ready ? AppUpdateStatus.Ready : AppUpdateStatus.None;
            OnStateChanged();
        }
Beispiel #3
0
 internal AppUpdateState(IBaseAppUpdateState update, AppUpdateStatus status)
 {
     ReleaseHistory = update.ReleaseHistory();
     Available      = update.Available;
     Ready          = update.Ready;
     Status         = status;
 }
Beispiel #4
0
 internal AppUpdateState(IBaseAppUpdateState update, AppUpdateStatus status)
 {
     ReleaseHistory = update.ReleaseHistory();
     Available      = update.Available;
     Ready          = update.Ready;
     Status         = status;
     FilePath       = update.FilePath ?? string.Empty;
     FileArguments  = update.FileArguments ?? string.Empty;
 }
        private void HandleFailure()
        {
            switch (_status)
            {
            case AppUpdateStatus.Checking:
                _status = AppUpdateStatus.CheckFailed;
                break;

            case AppUpdateStatus.Downloading:
                _status = AppUpdateStatus.DownloadFailed;
                break;

            default:
                _status = AppUpdateStatus.None;
                break;
            }
            OnStateChanged();
        }
        /// <summary>
        /// Updates the current AppUpdateRequest according to fields received from the latest AppUpdateState.
        /// </summary>
        /// <param name="status">The latest <see cref="AppUpdateStatus"/> received.</param>
        /// <param name="bytesDownloaded">The number of bytes downloaded so far.</param>
        /// <param name="totalBytesToDownload">The total bytes to download.</param>
        public void UpdateState(AppUpdateStatus status, long bytesDownloaded, long totalBytesToDownload)
        {
            Status = status;
            // Due to b/160606605 totalBytesToDownload can be 0 both before and after the download.
            if (totalBytesToDownload == 0L)
            {
                bool finishedDownloading = status == AppUpdateStatus.Downloaded;
                DownloadProgress = finishedDownloading ? 1f : 0f;
            }
            else
            {
                BytesDownloaded      = (ulong)bytesDownloaded;
                TotalBytesToDownload = (ulong)totalBytesToDownload;
                DownloadProgress     = bytesDownloaded / (float)totalBytesToDownload;
            }

            if (Status == AppUpdateStatus.Downloaded)
            {
                OnUpdateDownloaded();
            }
        }
Beispiel #7
0
 private AppUpdateStatusContract Map(AppUpdateStatus status)
 {
     return((AppUpdateStatusContract)status);
 }
Beispiel #8
0
 public static bool InProgress(this AppUpdateStatus status)
 {
     return(status == AppUpdateStatus.Checking ||
            status == AppUpdateStatus.Downloading);
 }
        private void OnStateChanged(AppUpdateStatus status)
        {
            var eventArgs = new AppUpdateState(_update, status);

            StateChanged?.Invoke(this, eventArgs);
        }
 private void HandleCancellation()
 {
     _status = AppUpdateStatus.None;
     OnStateChanged();
 }