private StatusIconAdapter getStatusAdapter() {
    try {
      mStatusItems.clear();
      int[] supportedStatus = mConn.getSupportedPresenceStatus();
      for (int i = 0; i < supportedStatus.length; i++) {
        int s = PresenceUtils.convertStatus(supportedStatus[i]);
        if (s == Imps.Presence.OFFLINE) {
          s = Imps.Presence.INVISIBLE;
        }
        ImApp app = ImApp.getApplication((Activity) mContext);
        BrandingResources brandingRes = app.getBrandingResource(mProviderId);
        Drawable icon = brandingRes.getDrawable(PresenceUtils.getStatusIconId(s));
        String text = brandingRes.getString(PresenceUtils.getStatusStringRes(s));
        mStatusItems.add(new StatusItem(supportedStatus[i], icon, text));
      }
    } catch (RemoteException e) {
      mHandler.showServiceErrorAlert();
    }

    return new StatusIconAdapter(mContext, mStatusItems);
  }