/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
android/src/com/mapswithme/maps/background/SystemDownloadCompletedService.java
69 строк
2 KB
Arsentiy Milchakov
[android][downloader] review fixes
30 мар 2021, 13:59
30 мар 2021, 13:59
29882b4
Код
Авторство
О чём код?
package com.mapswithme.maps.background; import android.app.DownloadManager; import android.content.Context; import android.content.Intent; import android.database.Cursor; import androidx.annotation.NonNull; import androidx.core.app.JobIntentService; import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.bookmarks.BookmarksDownloadCompletedProcessor; import com.mapswithme.maps.downloader.MapDownloadCompletedProcessor; import com.mapswithme.util.Utils; public class SystemDownloadCompletedService extends JobIntentService { private interface DownloadProcessor { boolean process(@NonNull Context context, long id, @NonNull Cursor cursor); } @Override public void onCreate() { super.onCreate(); MwmApplication app = (MwmApplication) getApplication(); if (app.arePlatformAndCoreInitialized()) return; app.initCore(); } @Override protected void onHandleWork(@NonNull Intent intent) { DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); if (manager == null) throw new IllegalStateException("Failed to get a download manager"); processIntent(manager, intent); } private void processIntent(@NonNull DownloadManager manager, @NonNull Intent intent) { Cursor cursor = null; try { final long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); DownloadManager.Query query = new DownloadManager.Query().setFilterById(id); cursor = manager.query(query); if (!cursor.moveToFirst()) return; final DownloadProcessor[] processors = { MapDownloadCompletedProcessor::process, BookmarksDownloadCompletedProcessor::process }; for (DownloadProcessor processor : processors) { if (processor.process(getApplicationContext(), id, cursor)) break; } } finally { Utils.closeSafely(cursor); } } }