@Override
  protected void onCreate(Bundle savedInstanceState) {
    if (hasSmartBar()) {
      getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
    }

    super.onCreate(savedInstanceState);
    setContentView(R.layout.direct_message_conversation);

    // Argument
    mUser = getIntent().getParcelableExtra("user");
    getActionBar().setTitle(mUser.getName());

    // Inject
    ButterKnife.inject(this);

    // View
    mSwipeRefresh.setOnRefreshListener(this);
    mSwipeRefresh.setDownHasPriority();
    mSwipeRefresh.setColorScheme(
        R.color.ptr_green, R.color.ptr_orange, R.color.ptr_red, R.color.ptr_blue);

    mList.setStackFromBottom(true);
    mAdapter = new DirectMessageAdapter(this, mMsgList, mUser.id);
    mList.setAdapter(mAdapter);

    // Emoticon Picker
    mEmoticons = new EmoticonFragment();
    mEmoticons.setEmoticonListener(
        new EmoticonFragment.EmoticonListener() {
          @Override
          public void onEmoticonSelected(String name) {
            if (!mRefreshing) {
              mText.getText().append(name);
            }
          }
        });
    getFragmentManager()
        .beginTransaction()
        .replace(R.id.direct_message_emoticons, mEmoticons)
        .commit();

    new Refresher().execute(true);
  }
 @Override
 public void onRefresh() {
   if (!mRefreshing) {
     new Refresher().execute(mSwipeRefresh.isDown());
   }
 }