예제 #1
0
 public void Initialize(bool startUpdatesManager = true)
 {
     if (this._isInitialized)
     {
         return;
     }
     CacheManager.EnsureCacheFolderExists();
     if (CacheManager.TryDeserialize((IBinarySerializable)this._globalState, this._appGlobalStateKey, CacheManager.DataType.StateData))
     {
         AutorizationData autorizationData = new AutorizationData();
         autorizationData.access_token = this._globalState.AccessToken ?? "";
         autorizationData.secret       = this._globalState.Secret ?? "";
         autorizationData.user_id      = this._globalState.LoggedInUserId;
         int num = startUpdatesManager ? 1 : 0;
         VKRequestsDispatcher.SetAuthorizationData(autorizationData, num != 0);
     }
     this._eventsTracker = StatsEventsTracker.Instance;
     this._eventsTracker.PendingEvents = EventsConverter.ConvertToPendingEvents(this.GlobalState.PendingStatisticsEvents);
     this._isInitialized = true;
 }
예제 #2
0
        public static void PlayCurrentTrack(BackgroundAudioPlayer player, Action <bool> resultCallback = null, bool justPlay = false)
        {
            bool flag = false;

            try
            {
                player.Volume = 1.0;
                AudioTrack track = player.Track;
                if (track != null)
                {
                    try
                    {
                        player.Play();
                    }
                    catch (Exception ex)
                    {
                        if (resultCallback == null)
                        {
                            return;
                        }
                        resultCallback(false);
                        return;
                    }
                    if (justPlay)
                    {
                        resultCallback(true);
                        return;
                    }
                }
                if (track != null && track.Source != null)
                {
                    //track.Source;
                    AudioTrackHelper.EnsureAppGlobalStateInitialized();
                    if (track.Source.OriginalString.StartsWith("http") && track.GetTagOwnerId() == AppGlobalStateManager.Current.LoggedInUserId && AppGlobalStateManager.Current.GlobalState.IsMusicCachingEnabled)
                    {
                        PlayedFilesInfo playedFilesInfo = new PlayedFilesInfo();
                        playedFilesInfo.Restore();
                        Uri    source = track.Source;
                        string tag    = track.Tag;
                        playedFilesInfo.Add(source, tag);
                    }
                    Playlist playlist = PlaylistManager.LoadTracksFromIsolatedStorage(true);
                    AccountService.Instance.StatsTrackEvents(StatsEventsTracker.ConvertToAppEvents((IEnumerable <object>) new List <AudioPlayEvent>()
                    {
                        new AudioPlayEvent()
                        {
                            OwnerAndAudioId = track.Tag,
                            Source          = playlist.Metadata.ActionSource
                        }
                    }), (Action <BackendResult <VKClient.Common.Backend.DataObjects.ResponseWithId, ResultCode> >)(result => {}));
                    if (resultCallback == null)
                    {
                        return;
                    }
                    flag = true;
                    resultCallback(true);
                }
                else
                {
                    if (resultCallback == null)
                    {
                        return;
                    }
                    flag = true;
                    resultCallback(true);
                }
            }
            catch (Exception ex)
            {
                Logger.Instance.Error("Failed to start playing. ", ex);
                if (flag || resultCallback == null)
                {
                    return;
                }
                resultCallback(false);
            }
        }