/**
  * Reads the historical data if necessary which is it has changed, there is a history file, and
  * there is not persist in progress.
  *
  * @return Whether reading was performed.
  */
 private boolean readHistoricalDataIfNeeded() {
   if (mCanReadHistoricalData
       && mHistoricalRecordsChanged
       && !TextUtils.isEmpty(mHistoryFileName)) {
     mCanReadHistoricalData = false;
     mReadShareHistoryCalled = true;
     readHistoricalDataImpl();
     return true;
   }
   return false;
 }