private void CheckServerNotifications(Context pContext, string sClan, string sName) { XElement pResponse = null; //try //{ string sPrevClan = Master.GetActiveClan(); string sPrevUser = Master.GetActiveUserName(); Master.SetActiveClan(sClan); Master.SetActiveUserName(sName); string sResponse = WebCommunications.SendPostRequest(Master.GetBaseURL() + Master.GetServerURL() + "GetUnseenNotifications", Master.BuildCommonBody(), true); pResponse = Master.ReadResponse(sResponse); Master.SetActiveClan(sPrevClan); Master.SetActiveUserName(sPrevUser); //} //catch (Exception e) { return; } if (pResponse.Element("Data") != null && pResponse.Element("Data").Element("Notifications").Value != "") { List <XElement> pNotifications = pResponse.Element("Data").Element("Notifications").Elements("Notification").ToList(); foreach (XElement pNotification in pNotifications) { string sContent = pNotification.Value; string sGameID = pNotification.Attribute("GameID").Value; string sGameName = pNotification.Attribute("GameName").Value; Notification.Builder pBuilder = new Notification.Builder(pContext); pBuilder.SetContentTitle(sClan + " - " + sGameName); pBuilder.SetContentText(sContent); pBuilder.SetSmallIcon(Resource.Drawable.Icon); pBuilder.SetVibrate(new long[] { 200, 50, 200, 50 }); pBuilder.SetVisibility(NotificationVisibility.Public); pBuilder.SetPriority((int)NotificationPriority.Default); Intent pIntent = null; if (sGameID.Contains("Zendo")) { pIntent = new Intent(pContext, typeof(ZendoActivity)); } pIntent.SetAction(sGameID); pIntent.PutExtra("GameName", sGameName); pBuilder.SetContentIntent(PendingIntent.GetActivity(pContext, 0, pIntent, 0)); pBuilder.SetStyle(new Notification.BigTextStyle().BigText(sContent)); Notification pNotif = pBuilder.Build(); NotificationManager pManager = (NotificationManager)pContext.GetSystemService(Context.NotificationService); pManager.Notify((int)Java.Lang.JavaSystem.CurrentTimeMillis(), pNotif); // using time to make different ID every time, so doesn't replace old notification //pManager.Notify(DateTime.Now.Millisecond, pNotif); // using time to make different ID every time, so doesn't replace old notification } } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); _hidden.InitializeWeb(); _RunTempCommands(); // TODO: REMOVE if (!this.CheckVersion()) { return; } // make sure that all the necessary files exist if (!File.Exists(Master.GetBaseDir() + "_clans.dat")) { File.Create(Master.GetBaseDir() + "_clans.dat").Dispose(); } if (!File.Exists(Master.GetBaseDir() + "_settings.dat")) { File.WriteAllText(Master.GetBaseDir() + "_settings.dat", "notifications=on"); } if (!File.Exists(Master.GetBaseDir() + "_key.dat")) { //Intent pIntent = new Intent(this, (new KeyActivity().Class)); Intent pIntent = new Intent(this, typeof(RegisterOrLogInActivity)); StartActivity(pIntent); } else { Master.FillKeyEmail(); } // TODO: save temp currently active clan so persistent between app open times, and load it here if (File.Exists(Master.GetBaseDir() + "_active.dat")) { string[] aLines = File.ReadAllLines(Master.GetBaseDir() + "_active.dat"); Master.SetActiveClan(aLines[0]); Master.SetActiveUserName(aLines[1]); } // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); base.CreateDrawer(); if (Master.GetActiveClan() != "") { this.Title = Master.GetActiveClan() + " - " + Master.GetActiveUserName(); this.BuildHomeDashboard(); } //StartService(new Intent(this, typeof(NotificationsService))); }
private void RefreshClanList() { m_lClanNames = File.ReadAllLines(Master.GetBaseDir() + "_clans.dat").ToList(); m_lClanParts = new List <string>(); m_lUserParts = new List <string>(); // clan name|user name //for (int i = 0; i < aClansList.Length; i++) { aClansList[i] = aClansList[i].Substring(0, aClansList[i].IndexOf("|")); } for (int i = 0; i < m_lClanNames.Count; i++) { m_lClanParts.Add(m_lClanNames[i].Substring(0, m_lClanNames[i].IndexOf("|"))); m_lUserParts.Add(m_lClanNames[i].Substring(m_lClanNames[i].IndexOf("|") + 1)); m_lClanNames[i] = m_lClanNames[i].Replace("|", " - "); } ListView pClansList = FindViewById <ListView>(Resource.Id.clansList); pClansList.Adapter = new DrawerItemCustomAdapter(this, Resource.Layout.ListViewItemRow, m_lClanNames.ToArray()); pClansList.ItemClick += (object sender, Android.Widget.AdapterView.ItemClickEventArgs e) => { int iChoice = e.Position; Master.SetActiveClan(m_lClanParts[iChoice]); Master.SetActiveUserName(m_lUserParts[iChoice]); // store this in the _active file, so as to persist between app openings and closings List <string> lLines = new List <string>(); lLines.Add(m_lClanParts[iChoice]); lLines.Add(m_lUserParts[iChoice]); File.WriteAllLines(Master.GetBaseDir() + "_active.dat", lLines.ToArray()); Intent pIntent = new Intent(this, (new MainActivity()).Class); this.Finish(); StartActivity(pIntent); }; }