public void initialize(
      ControllableActivity activity, ActivityController callback, ActionBar actionBar) {
    mActionBar = actionBar;
    mController = callback;
    mActivity = activity;
    initializeTitleViews();

    mFolderObserver =
        new FolderObserver() {
          @Override
          public void onChanged(Folder newFolder) {
            onFolderUpdated(newFolder);
          }
        };
    // Return values are purposely discarded. Initialization happens quite early, and we don't
    // have a valid folder, or a valid list of accounts.
    mFolderObserver.initialize(mController);
    updateAccount(mAccountObserver.initialize(activity.getAccountController()));
  }
 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
   super.onActivityCreated(savedInstanceState);
   final Activity activity = getActivity();
   if (!(activity instanceof ControllableActivity)) {
     LogUtils.wtf(
         LOG_TAG,
         "ConversationViewFragment expects only a ControllableActivity to"
             + "create it. Cannot proceed.");
   }
   if (activity == null || activity.isFinishing()) {
     // Activity is finishing, just bail.
     return;
   }
   mActivity = (ControllableActivity) activity;
   mContext = activity.getApplicationContext();
   mWebViewClient.setActivity(activity);
   mAccount = mAccountObserver.initialize(mActivity.getAccountController());
   mWebViewClient.setAccount(mAccount);
 }