4f4205230f
No more trampolining, and stuff. It's pretty much straight copy-paste from the service, with some changes related to cancellation handling. Manual updates will also runs with workman job so auto update work scheduling need some adjustments too. Bumped version code to re-enqueue auto update job with the new spec. Co-authored-by: arkon <arkon@users.noreply.github.com> (cherry picked from commit ef9dacde79b1803ec117aae4ea948194b6394605) # Conflicts: # app/build.gradle.kts # app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
399 lines
15 KiB
XML
Executable File
399 lines
15 KiB
XML
Executable File
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools">
|
|
|
|
<!-- Internet -->
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
|
|
<!-- Storage -->
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
|
|
<!-- For background jobs -->
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
|
|
<!-- For managing extensions -->
|
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
|
<uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" />
|
|
<!-- To view extension packages in API 30+ -->
|
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
|
|
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
|
<uses-permission android:name="android.permission.READ_APP_SPECIFIC_LOCALES" />
|
|
|
|
<!-- Remove permission from Firebase dependency -->
|
|
<uses-permission android:name="com.google.android.gms.permission.AD_ID"
|
|
tools:node="remove" />
|
|
|
|
<application
|
|
android:name=".App"
|
|
android:allowBackup="false"
|
|
android:hardwareAccelerated="true"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/app_name"
|
|
android:largeHeap="true"
|
|
android:localeConfig="@xml/locales_config"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:theme="@style/Theme.Tachiyomi"
|
|
android:supportsRtl="true"
|
|
android:networkSecurityConfig="@xml/network_security_config">
|
|
|
|
<!-- enable profiling by macrobenchmark -->
|
|
<profileable
|
|
android:shell="true"
|
|
tools:targetApi="q" />
|
|
|
|
<activity
|
|
android:name=".ui.main.MainActivity"
|
|
android:launchMode="singleTop"
|
|
android:theme="@style/Theme.Tachiyomi.SplashScreen"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<!--suppress AndroidDomInspection -->
|
|
<meta-data
|
|
android:name="android.app.shortcuts"
|
|
android:resource="@xml/shortcuts" />
|
|
</activity>
|
|
|
|
<activity
|
|
android:process=":error_handler"
|
|
android:name=".crash.CrashActivity"
|
|
android:exported="false" />
|
|
|
|
<activity
|
|
android:name=".ui.main.DeepLinkActivity"
|
|
android:launchMode="singleTask"
|
|
android:theme="@android:style/Theme.NoDisplay"
|
|
android:label="@string/action_global_search"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEARCH" />
|
|
<action android:name="com.google.android.gms.actions.SEARCH_ACTION" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="eu.kanade.tachiyomi.SEARCH" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="text/plain" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.app.searchable"
|
|
android:resource="@xml/searchable" />
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".ui.reader.ReaderActivity"
|
|
android:launchMode="singleTask"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="com.samsung.android.support.REMOTE_ACTION" />
|
|
</intent-filter>
|
|
|
|
<meta-data android:name="com.samsung.android.support.REMOTE_ACTION"
|
|
android:resource="@xml/s_pen_actions"/>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".ui.security.UnlockActivity"
|
|
android:theme="@style/Theme.Tachiyomi"
|
|
android:exported="false" />
|
|
|
|
<activity
|
|
android:name=".ui.webview.WebViewActivity"
|
|
android:configChanges="uiMode|orientation|screenSize"
|
|
android:exported="false" />
|
|
|
|
<activity
|
|
android:name=".extension.util.ExtensionInstallActivity"
|
|
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
|
android:exported="false" />
|
|
|
|
<activity
|
|
android:name=".ui.setting.track.AnilistLoginActivity"
|
|
android:label="Anilist"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data
|
|
android:host="anilist-auth"
|
|
android:scheme="tachiyomi" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".ui.setting.track.MyAnimeListLoginActivity"
|
|
android:label="MyAnimeList"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data
|
|
android:host="myanimelist-auth"
|
|
android:scheme="tachiyomi" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".ui.setting.track.ShikimoriLoginActivity"
|
|
android:label="Shikimori"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data
|
|
android:host="shikimori-auth"
|
|
android:scheme="tachiyomi" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".ui.setting.track.BangumiLoginActivity"
|
|
android:label="Bangumi"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data
|
|
android:host="bangumi-auth"
|
|
android:scheme="tachiyomi" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name="exh.ui.login.EhLoginActivity"
|
|
android:label="EHentaiLogin"
|
|
android:exported="false"/>
|
|
|
|
<receiver
|
|
android:name=".data.notification.NotificationReceiver"
|
|
android:exported="false" />
|
|
|
|
<receiver
|
|
android:name="tachiyomi.presentation.widget.UpdatesGridGlanceReceiver"
|
|
android:enabled="@bool/glance_appwidget_available"
|
|
android:exported="false"
|
|
android:label="@string/label_recent_updates">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/updates_grid_glance_widget_info" />
|
|
</receiver>
|
|
|
|
<service
|
|
android:name=".data.download.DownloadService"
|
|
android:exported="false" />
|
|
|
|
<service
|
|
android:name=".data.updater.AppUpdateService"
|
|
android:exported="false" />
|
|
|
|
<service
|
|
android:name=".data.backup.BackupRestoreService"
|
|
android:exported="false" />
|
|
|
|
<service android:name=".extension.util.ExtensionInstallService"
|
|
android:exported="false" />
|
|
|
|
<service
|
|
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
|
|
android:enabled="false"
|
|
android:exported="false">
|
|
<meta-data
|
|
android:name="autoStoreLocales"
|
|
android:value="true" />
|
|
</service>
|
|
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.provider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/provider_paths" />
|
|
</provider>
|
|
|
|
<provider
|
|
android:name="rikka.shizuku.ShizukuProvider"
|
|
android:authorities="${applicationId}.shizuku"
|
|
android:multiprocess="false"
|
|
android:enabled="true"
|
|
android:exported="true"
|
|
android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" />
|
|
|
|
<meta-data
|
|
android:name="android.webkit.WebView.EnableSafeBrowsing"
|
|
android:value="false" />
|
|
<meta-data
|
|
android:name="android.webkit.WebView.MetricsOptOut"
|
|
android:value="true" />
|
|
|
|
<!-- Disable advertising ID collection for Firebase -->
|
|
<meta-data
|
|
android:name="google_analytics_adid_collection_enabled"
|
|
android:value="false" />
|
|
|
|
<!-- EH -->
|
|
<activity
|
|
android:name="exh.ui.intercept.InterceptActivity"
|
|
android:label="@string/app_name"
|
|
android:theme="@style/Theme.Tachiyomi"
|
|
android:exported="true">
|
|
<!-- E-Hentai -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="e-hentai.org" />
|
|
<data android:host="www.e-hentai.org" />
|
|
<data android:host="g.e-hentai.org" />
|
|
|
|
<data android:pathPattern="/g/..*" />
|
|
</intent-filter>
|
|
<!-- ExHentai -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="exhentai.org" />
|
|
<data android:host="www.exhentai.org" />
|
|
|
|
<data android:pathPattern="/g/..*" />
|
|
</intent-filter>
|
|
<!-- NHentai -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="nhentai.net" />
|
|
<data android:host="www.nhentai.net" />
|
|
|
|
<data android:pathPattern="/g/..*" />
|
|
</intent-filter>
|
|
<!-- Tsumino -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="tsumino.com" />
|
|
<data android:host="www.tsumino.com" />
|
|
|
|
<data android:pathPattern="/Read/View/..*" />
|
|
<data android:pathPattern="/Book/Info/..*" />
|
|
</intent-filter>
|
|
<!-- Pururin -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="pururin.io" />
|
|
|
|
<data android:pathPattern="/gallery/..*" />
|
|
</intent-filter>
|
|
<!-- HBrowse -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
<data android:scheme="http" />
|
|
|
|
<data android:host="hbrowse.com" />
|
|
<data android:host="www.hbrowse.com" />
|
|
|
|
<!--<data android:pathPattern="/gallery/..*" />-->
|
|
</intent-filter>
|
|
<!-- Mangadex -->
|
|
<intent-filter android:autoVerify="true">
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data android:scheme="https" />
|
|
|
|
<data android:host="mangadex.org" />
|
|
<data android:host="mangadex.cc" />
|
|
<data android:host="www.mangadex.org" />
|
|
<data android:host="www.mangadex.cc" />
|
|
|
|
<data android:pathPattern="/manga/..*" />
|
|
<data android:pathPattern="/title/..*" />
|
|
<data android:pathPattern="/chapter/..*" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name="exh.md.MangaDexLoginActivity"
|
|
android:label="MangaDexLogin"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
|
|
<data
|
|
android:host="mangadex-auth"
|
|
android:scheme="tachiyomisy" />
|
|
</intent-filter>
|
|
</activity>
|
|
</application>
|
|
|
|
</manifest>
|