public ConversationViewController(MainActivity ma, LayerClient client)
        {
            //Cache off LayerClient
            layerClient = client;

            //When conversations/messages change, capture them
            layerClient.RegisterEventListener(this);

            //List of users that are typing which is used with ILayerTypingIndicatorListener
            typingUsers = new List <string>();

            //Change the layout
            ma.SetContentView(Resource.Layout.activity_main);

            //Cache off gui objects
            sendButton         = ma.FindViewById <Button>(Resource.Id.send);
            topBar             = ma.FindViewById <LinearLayout>(Resource.Id.topbar);
            userInput          = ma.FindViewById <EditText>(Resource.Id.input);
            conversationScroll = ma.FindViewById <ScrollView>(Resource.Id.scrollView);
            conversationView   = ma.FindViewById <LinearLayout>(Resource.Id.conversation);
            typingIndicator    = ma.FindViewById <TextView>(Resource.Id.typingIndicator);

            //Capture user input
            sendButton.SetOnClickListener(this);
            topBar.SetOnClickListener(this);
            userInput.Text = _GetInitialMessage();
            userInput.AddTextChangedListener(this);

            //If there is an active conversation between the Device, Simulator, and Dashboard (web
            // client), cache it
            activeConversation = _GetConversation();

            //If there is an active conversation, draw it
            _DrawConversation();

            if (activeConversation != null)
            {
                _GetTopBarMetaData();
            }
        }