/// <summary> /// Constructor /// </summary> /// <param name="MainActivity"></param> public ChatClient(MainActivity MainActivity) : base() { // save reference to UI ui = MainActivity; // check if necessary SDCARD stuff exists if (VerifySDCard()) { // load versions from xml ReadVersionsFromFile(); // create data adapters for model layer ChatAdapter = new ChatMessageAdapter(DataController.ChatMessages, ui); OnlinePlayersAdapter = new OnlinePlayersAdapter(DataController.OnlinePlayers, ui); // hook up some event handlers DataController.RoomInformation.PropertyChanged += RoomInformation_PropertyChanged; DataController.AvatarCondition.ListChanged += AvatarCondition_ListChanged; // workaround for monodroid because there is no proper access to mainthread: // spawn a thread that forces mainthread to process a tick thread = new Thread(ThreadProc); thread.Start(); } else { ui.ShowSDCARDError(); } }