コード例 #1
0
        public GoogleTalkHelper()
        {
            settings   = App.Current.Settings;
            gtalk      = App.Current.GtalkClient;
            pushHelper = App.Current.PushHelper;

            pushHelper.UriUpdated += UriUpdated;
            pushHelper.RawNotificationReceived += RawNotificationReceived;
            Connected = false;
        }
コード例 #2
0
        // Code to execute when the application is launching (eg, from Start)
        // This code will not execute when the application is reactivated
        private void Application_Launching(object sender, LaunchingEventArgs e)
        {
            Settings    = IsolatedStorageSettings.ApplicationSettings;
            PushHelper  = new PushHelper();
            GtalkClient = new GoogleTalk();

            if (!Settings.Contains("chatlog"))
            {
                Settings["chatlog"] = new Dictionary <string, List <Message> >();
            }
            if (!Settings.Contains("unread"))
            {
                Settings["unread"] = new Dictionary <string, int>();
            }
            if (!Settings.Contains("recent"))
            {
                Settings["recent"] = new ObservableCollection <Contact>();
            }

            GtalkHelper = new GoogleTalkHelper();
            Roster.Load();

            RecentContacts = Settings["recent"] as ObservableCollection <Contact>;

            PushHelper.RegisterPushNotifications();

            InitAnalytics();

            if (Settings.Contains("lastError"))
            {
                RootFrame.Dispatcher.BeginInvoke(() => {
                    var result = MessageBox.Show(
                        AppResources.CrashReport_Message,
                        AppResources.CrashReport_Title,
                        MessageBoxButton.OKCancel
                        );

                    if (result == MessageBoxResult.OK)
                    {
                        GtalkClient.CrashReport(Settings["lastError"] as string, success => Settings.Remove("lastError"), error => { });
                    }
                    else
                    {
                        Settings.Remove("lastError");
                    }
                });
            }
        }
コード例 #3
0
        // Code to execute when the application is activated (brought to foreground)
        // This code will not execute when the application is first launched
        private void Application_Activated(object sender, ActivatedEventArgs e)
        {
            if (!e.IsApplicationInstancePreserved)
            {
                if (Settings == null)
                {
                    Settings = IsolatedStorageSettings.ApplicationSettings;
                }
                if (PushHelper == null)
                {
                    PushHelper = new PushHelper();
                }
                if (GtalkClient == null)
                {
                    GtalkClient = new GoogleTalk();
                }

                if (RecentContacts == null)
                {
                    if (!Settings.Contains("recent"))
                    {
                        Settings["recent"] = RecentContacts = new ObservableCollection <Contact>();
                    }
                    RecentContacts = Settings["recent"] as ObservableCollection <Contact>;
                }

                if (!Settings.Contains("chatlog"))
                {
                    Settings["chatlog"] = new Dictionary <string, List <Message> >();
                }

                if (!Settings.Contains("unread"))
                {
                    Settings["unread"] = new Dictionary <string, int>();
                }

                if (GtalkHelper == null)
                {
                    GtalkHelper = new GoogleTalkHelper();
                }

                InitAnalytics();

                PushHelper.RegisterPushNotifications();
            }

            Roster.Load();
        }
コード例 #4
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            FlurryWP7SDK.Api.LogEvent("Chat - Chat started", true);

            App.Current.LastPage = e.Uri.OriginalString;

            gtalk       = App.Current.GtalkClient;
            gtalkHelper = App.Current.GtalkHelper;
            settings    = App.Current.Settings;

            App.Current.GtalkHelper.SetCorrectOrientation(this);

            currentContact = null;

            if (NavigationContext.QueryString.ContainsKey("from"))
            {
                to    = NavigationContext.QueryString["from"];
                email = to;

                if (email.Contains("/"))
                {
                    email = email.Substring(0, email.IndexOf('/'));
                }

                App.Current.CurrentChat = email;

                to = email;

                if (App.Current.Roster.Contains(email))
                {
                    currentContact = App.Current.Roster[email];
                }
            }

            gtalkHelper.MessageReceived += DisplayMessage;

            if (gtalkHelper.RosterLoaded && gtalk.LoggedIn && App.Current.Roster.Contains(email))
            {
                Initialize();

                if (e.NavigationMode == NavigationMode.Back)
                {
                    ShowProgressBar(AppResources.Chat_ProgressGettingMessages);
                    gtalkHelper.GetOfflineMessages(() => Dispatcher.BeginInvoke(() => HideProgressBar()));
                }
            }
            else
            {
                Initialize();
                ShowProgressBar(AppResources.Chat_ProgressGettingMessages);
                gtalkHelper.RosterUpdated += () => HideProgressBar();
                gtalkHelper.RosterUpdated += Initialize;
            }

            object savedText;

            if (State.TryGetValue("message", out savedText))
            {
                MessageText.Text = (string)savedText;
            }

            gtalkHelper.LoginIfNeeded();

            ScrollToBottom();
        }