public override void OnReceive(Context context, Intent intent) { try { if (intent.Action == DownloadManager.ActionDownloadComplete) { if (ActivityContext == null) { return; } DownloadManager downloadManagerExcuter = (DownloadManager)ActivityContext.GetSystemService(Context.DownloadService); long downloadId = intent.GetLongExtra(DownloadManager.ExtraDownloadId, -1); DownloadManager.Query query = new DownloadManager.Query(); query.SetFilterById(downloadId); ICursor c = downloadManagerExcuter.InvokeQuery(query); var sqlEntity = new SqLiteDatabase(); if (c.MoveToFirst()) { int columnIndex = c.GetColumnIndex(DownloadManager.ColumnStatus); if (c.GetInt(columnIndex) == (int)DownloadStatus.Successful) { string downloadedPath = c.GetString(c.GetColumnIndex(DownloadManager.ColumnLocalUri)); ActivityManager.RunningAppProcessInfo appProcessInfo = new ActivityManager.RunningAppProcessInfo(); ActivityManager.GetMyMemoryState(appProcessInfo); if (appProcessInfo.Importance == Importance.Foreground || appProcessInfo.Importance == Importance.Background) { sqlEntity.Update_WatchOfflineVideos(Video.VideoId, downloadedPath); if (TypeActivity == "Main") { TabbedMainActivity.GetInstance()?.VideoActionsController.DownloadIcon.SetImageResource(Resource.Drawable.ic_checked_red); TabbedMainActivity.GetInstance().VideoActionsController.DownloadIcon.Tag = "Downloaded"; TabbedMainActivity.GetInstance()?.LibrarySynchronizer.AddToWatchOffline(Video); } else if (TypeActivity == "GlobalPlayer") { GlobalPlayerActivity.GetInstance()?.VideoActionsController.DownloadIcon.SetImageResource(Resource.Drawable.ic_checked_red); GlobalPlayerActivity.GetInstance().VideoActionsController.DownloadIcon.Tag = "Downloaded"; GlobalPlayerActivity.GetInstance()?.LibrarySynchronizer.AddToWatchOffline(Video); } else { if (ActivityContext is FullScreenVideoActivity fullScreen) { fullScreen.VideoActionsController.DownloadIcon.SetImageResource(Resource.Drawable.ic_checked_red); fullScreen.VideoActionsController.DownloadIcon.Tag = "Downloaded"; //fullScreen tabbedMain.LibrarySynchronizer.OfflineVideoList.Add(Video); } } } else { sqlEntity.Connect(); sqlEntity.Update_WatchOfflineVideos(Video.VideoId, downloadedPath); sqlEntity.Close(); } } } } } catch (Exception exception) { Console.WriteLine(exception); } }