docs: @Override
      public boolean remove(final ITileSource pTileSourceInfo, final long pMapTileIndex) {
          final SQLiteDatabase db = getDb();
          if (db == null || !db.isOpen()) {
              Log.d(IMapView.LOGTAG, "Unable to delete cached tile from " + pTileSourceInfo.name() + " " + MapTileIndex.toString(pMapTileIndex) + ", database not available.");
              Counters.fileCacheSaveErrors++;
              return false;
          }
          try {
              final long index = getIndex(pMapTileIndex);
              db.delete(DatabaseFileArchive.TABLE, primaryKey, getPrimaryKeyParameters(index, pTileSourceInfo));
              return true;
          } catch (Exception ex) {
              //note, although we check for db null state at the beginning of this method, it's possible for the
              //db to be closed during the execution of this method
              Log.e(IMapView.LOGTAG, "Unable to delete cached tile from " + pTileSourceInfo.name() + " " + MapTileIndex.toString(pMapTileIndex) + " db is " + (db == null ? "null" : "not null"), ex);
              Counters.fileCacheSaveErrors++;
              catchException(ex);
          }
          return false;
      }