protected void startLoading() {
    Log.i(TAG, "startLoading");
    if (mAdapter == null) {
      // The method was called before the fragment was started
      Log.i(TAG, "[statLoading] mAdapter is null");
      return;
    }

    configureAdapter();
    int partitionCount = mAdapter.getPartitionCount();
    for (int i = 0; i < partitionCount; i++) {
      Partition partition = mAdapter.getPartition(i);
      if (partition instanceof DirectoryPartition) {
        DirectoryPartition directoryPartition = (DirectoryPartition) partition;
        if (directoryPartition.getStatus() == DirectoryPartition.STATUS_NOT_LOADED) {
          if (directoryPartition.isPriorityDirectory() || !mLoadPriorityDirectoriesOnly) {
            startLoadingDirectoryPartition(i);
          }
        }
      } else {
        getLoaderManager().initLoader(i, null, this);
      }
    }

    // Next time this method is called, we should start loading non-priority directories
    mLoadPriorityDirectoriesOnly = false;
  }
 private void startLoadingDirectoryPartition(int partitionIndex) {
   DirectoryPartition partition = (DirectoryPartition) mAdapter.getPartition(partitionIndex);
   partition.setStatus(DirectoryPartition.STATUS_LOADING);
   long directoryId = partition.getDirectoryId();
   if (mForceLoad) {
     if (directoryId == Directory.DEFAULT) {
       loadDirectoryPartition(partitionIndex, partition);
     } else {
       loadDirectoryPartitionDelayed(partitionIndex, partition);
     }
   } else {
     Bundle args = new Bundle();
     args.putLong(DIRECTORY_ID_ARG_KEY, directoryId);
     getLoaderManager().initLoader(partitionIndex, args, this);
   }
 }
 /** Loads the directory partition. */
 protected void loadDirectoryPartition(int partitionIndex, DirectoryPartition partition) {
   Bundle args = new Bundle();
   args.putLong(DIRECTORY_ID_ARG_KEY, partition.getDirectoryId());
   getLoaderManager().restartLoader(partitionIndex, args, this);
 }