@Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // initialize the inflater
    mInflater = inflater;

    mRootView = inflater.inflate(R.layout.manage_applications_apps, null);
    mLoadingContainer = mRootView.findViewById(R.id.loading_container);
    mLoadingContainer.setVisibility(View.VISIBLE);
    mListContainer = mRootView.findViewById(R.id.list_container);
    if (mListContainer != null) {
      // Create adapter and list view here
      View emptyView = mListContainer.findViewById(com.android.internal.R.id.empty);
      ListView lv = (ListView) mListContainer.findViewById(android.R.id.list);
      if (emptyView != null) {
        lv.setEmptyView(emptyView);
      }
      lv.setOnItemClickListener(this);
      lv.setSaveEnabled(true);
      lv.setItemsCanFocus(true);
      lv.setTextFilterEnabled(true);
      lv.setFastScrollEnabled(true);
      mListView = lv;
      mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter);
      if (savedInstanceState != null) {
        mApplications.mHasReceivedLoadEntries =
            savedInstanceState.getBoolean(EXTRA_HAS_ENTRIES, false);
      }
      mListView.setAdapter(mApplications);
      mListView.setRecyclerListener(mApplications);

      Utils.prepareCustomPreferencesList(container, mRootView, mListView, false);
    }

    // We have to do this now because PreferenceFrameLayout looks at it
    // only when the view is added.
    if (container instanceof PreferenceFrameLayout) {
      ((PreferenceFrameLayout.LayoutParams) mRootView.getLayoutParams()).removeBorders = true;
    }

    createHeader();

    mResetAppsHelper.onRestoreInstanceState(savedInstanceState);

    return mRootView;
  }