class MapboxOfflineDownloaderService extends Service implements OfflineRegionObserver, OnDownloadMapListener {

    @Override
    public void mapboxTileCountLimitExceeded(long limit) {
        String finalMessage = String.format(getString(R.string.error_mapbox_tile_count_limit), limit, currentMapDownloadName);
        Log.e(TAG, finalMessage);
        sendBroadcast(SERVICE_ACTION_RESULT.FAILED, currentMapDownloadName, SERVICE_ACTION.DOWNLOAD_MAP, finalMessage);

        // Show download error notification
        LAST_DOWNLOAD_ERROR_NOTIFICATION_ID++;
        CriticalDownloadErrorNotification criticalDownloadErrorNotification = new CriticalDownloadErrorNotification(this);
        criticalDownloadErrorNotification.displayNotification(String.format(getString(R.string.error_occurred_download_map), currentMapDownloadName)
                , String.format(getString(R.string.mapbox_tile_count_limit_of_exceeded), limit), LAST_DOWNLOAD_ERROR_NOTIFICATION_ID);

        // No other download can be performed and we should exit the service
        cleanupAndExit();
    }

    public  MapboxOfflineDownloaderService();

}