code: public static ActivityChooserModel get(Context context, String historyFileName) {
          synchronized (sRegistryLock) {
              ActivityChooserModel dataModel = sDataModelRegistry.get(historyFileName);
              if (dataModel == null) {
                  dataModel = new ActivityChooserModel(context, historyFileName);
                  sDataModelRegistry.put(historyFileName, dataModel);
              }
              return dataModel;
          }
      }
docs: Gets the data model backed by the contents of the provided file with historical data.
  Note that only one data model is backed by a given file, thus multiple calls with
  the same file name will return the same model instance. If no such instance is present
  it is created.
  <p>
  <strong>Note:</strong> To use the default historical data file clients should explicitly
  pass as file name {@link #DEFAULT_HISTORY_FILE_NAME}. If no persistence of the choice
  history is desired clients should pass <code>null</code> for the file name. In such
  case a new model is returned for each invocation.
  </p>
  
  <p>
  <strong>Always use difference historical data files for semantically different actions.
  For example, sharing is different from importing.</strong>
  </p>
  
  @param context Context for loading resources.
  @param historyFileName File name with choice history, <code>null</code>
  if the model should not be backed by a file. In this case the activities
  will be ordered only by data from the current session.
  
  @return The model.