mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-12 04:59:27 +01:00
dcf2629854
The refactored DiscoveryActivityV2 does not freeze anymore, even under maximum scanning intensity on older phones, and seems to not have introduced any regressions.
836 lines
44 KiB
XML
836 lines
44 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
package="nodomain.freeyourgadget.gadgetbridge">
|
|
|
|
<!--
|
|
Comment in for testing Pebble Emulator
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
-->
|
|
<!-- Used for Bluetooth access -->
|
|
<!-- Request legacy Bluetooth permissions on older devices. -->
|
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
|
android:maxSdkVersion="30"/>
|
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
|
android:maxSdkVersion="30"/>
|
|
<!-- Needed to looks for Bluetooth devices. -->
|
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
|
<!-- Needed to communicate with already-paired Bluetooth devices. -->
|
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
|
|
<!-- Since Android 10 -->
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
|
|
|
<uses-permission android:name="android.permission.READ_CALL_LOG" />
|
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
|
|
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
|
<uses-permission android:name="android.permission.CALL_PHONE" />
|
|
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
|
|
<uses-permission android:name="android.permission.RECEIVE_SMS" />
|
|
<uses-permission android:name="android.permission.SEND_SMS" />
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
|
|
<!-- Schedule exact alarms (eg. for DST changes) -->
|
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
|
|
|
<!-- Read loyalty cards from Catima -->
|
|
<uses-permission android:name="me.hackerchick.catima.READ_CARDS"/>
|
|
<uses-permission android:name="me.hackerchick.catima.debug.READ_CARDS"/>
|
|
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
|
|
android:maxSdkVersion="32" />
|
|
<uses-permission android:name="android.permission.READ_CALENDAR" />
|
|
<uses-permission
|
|
android:name="android.permission.MEDIA_CONTENT_CONTROL"
|
|
tools:ignore="ProtectedPermissions" />
|
|
|
|
<!--
|
|
Allow Gadgetbridge to run Termux commands. Permission must be granted manually through the
|
|
permissions page in Android settings.
|
|
More information: https://github.com/termux/termux-app/wiki/RUN_COMMAND-Intent
|
|
-->
|
|
<uses-permission android:name="com.termux.permission.RUN_COMMAND"/>
|
|
|
|
<!-- Used for background service -->
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND" />
|
|
|
|
<!-- Used for reverse find device -->
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
|
|
<!-- Used for weather provider access -->
|
|
<uses-permission android:name="cyanogenmod.permission.ACCESS_WEATHER_MANAGER" />
|
|
<uses-permission android:name="cyanogenmod.permission.READ_WEATHER" />
|
|
<uses-permission android:name="lineageos.permission.ACCESS_WEATHER_MANAGER" />
|
|
<uses-permission android:name="lineageos.permission.READ_WEATHER" />
|
|
<uses-permission android:name="org.omnirom.omnijaws.READ_WEATHER" />
|
|
|
|
<!-- Used for starting activities from the background with intents -->
|
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
|
|
|
<!--
|
|
SDK 30 & Android 11 - Used for getting app name from notifications, and for starting
|
|
services from other packages via intents, when targeting Android API level 30 or later
|
|
on devices running Android 11 or later.
|
|
https://developer.android.com/training/package-visibility
|
|
https://support.google.com/googleplay/android-developer/answer/10158779?hl=en#zippy=%2Cpermitted-uses-of-the-query-all-packages-permission%2Cexceptions
|
|
-->
|
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
|
|
tools:ignore="QueryAllPackagesPermission" />
|
|
|
|
<!-- Needed to show notification with targetSdkVersion 33 with Android 13 -->
|
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
|
|
|
<uses-feature
|
|
android:name="android.hardware.bluetooth"
|
|
android:required="true" />
|
|
<uses-feature
|
|
android:name="android.hardware.bluetooth_le"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.hardware.telephony"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.software.companion_device_setup"
|
|
android:required="false" />
|
|
|
|
<application
|
|
android:name=".GBApplication"
|
|
android:allowBackup="false"
|
|
android:fullBackupContent="false"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/app_name"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:theme="@style/GadgetbridgeTheme"
|
|
tools:replace="android:label">
|
|
<activity
|
|
android:name=".activities.ControlCenterv2"
|
|
android:label="@string/title_activity_controlcenter"
|
|
android:theme="@style/SplashTheme"
|
|
android:launchMode="singleTop"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".activities.SettingsActivity"
|
|
android:label="@string/title_activity_settings"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.AboutUserPreferencesActivity"
|
|
android:label="@string/activity_prefs_about_you"
|
|
android:parentActivityName=".activities.AboutUserPreferencesActivity" />
|
|
<activity
|
|
android:name=".activities.charts.ChartsPreferencesActivity"
|
|
android:label="@string/activity_prefs_charts"
|
|
android:parentActivityName=".activities.charts.ChartsPreferencesActivity" />
|
|
<activity
|
|
android:name=".activities.discovery.DiscoveryPairingPreferenceActivity"
|
|
android:label="@string/activity_prefs_discovery_pairing"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".devices.miband.MiBandPreferencesActivity"
|
|
android:label="@string/preferences_miband_1_2_settings"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".activities.loyaltycards.LoyaltyCardsSettingsActivity"
|
|
android:label="@string/loyalty_cards"
|
|
android:parentActivityName=".activities.devicesettings.DeviceSettingsActivity" />
|
|
<activity
|
|
android:name=".devices.pebble.PebbleSettingsActivity"
|
|
android:label="@string/pref_title_pebble_settings"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".devices.hplus.HPlusSettingsActivity"
|
|
android:label="@string/preferences_hplus_settings"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".devices.zetime.ZeTimePreferenceActivity"
|
|
android:label="@string/zetime_title_settings"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".activities.ActivitySummariesActivity"
|
|
android:label="@string/activity_summaries"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.appmanager.AppManagerActivity"
|
|
android:label="@string/title_activity_appmanager"
|
|
android:launchMode="singleTop"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.AppBlacklistActivity"
|
|
android:label="@string/title_activity_notification_management"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".activities.CalBlacklistActivity"
|
|
android:label="@string/title_activity_calblacklist"
|
|
android:parentActivityName=".activities.SettingsActivity" />
|
|
<activity
|
|
android:name=".devices.vesc.VescControlActivity"
|
|
android:label="@string/devicetype_vesc"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.FwAppInstallerActivity"
|
|
android:label="@string/title_activity_fw_app_insaller"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="*/*" />
|
|
<!-- needed for aosp-derived ROMs? -->
|
|
|
|
<data android:host="*" />
|
|
<data android:scheme="file" />
|
|
|
|
<!-- as seen on openkeychain repo: https://github.com/open-keychain/open-keychain/blob/master/OpenKeychain/src/main/AndroidManifest.xml -->
|
|
|
|
<data android:pathPattern="/.*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<!-- no mimeType filter, needed for CM-derived ROMs? -->
|
|
|
|
<data android:host="*" />
|
|
<data android:scheme="file" />
|
|
|
|
<!-- as seen on openkeychain repo: https://github.com/open-keychain/open-keychain/blob/master/OpenKeychain/src/main/AndroidManifest.xml -->
|
|
|
|
<data android:pathPattern="/.*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.fw" />
|
|
<data android:pathPattern="/.*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft.en" />
|
|
<data android:pathPattern="/.*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.ft" />
|
|
<data android:pathPattern="/.*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.res" />
|
|
<data android:pathPattern="/.*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gps" />
|
|
<data android:pathPattern="/.*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbw" />
|
|
<data android:pathPattern="/.*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbz" />
|
|
<data android:pathPattern="/.*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
|
</intent-filter>
|
|
|
|
<!-- to receive the firmwares from the download content provider -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="application/octet-stream" />
|
|
</intent-filter>
|
|
|
|
<!-- to receive firmwares from the download content provider if recognized as zip -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="application/zip" />
|
|
<data android:mimeType="application/x-zip-compressed" />
|
|
</intent-filter>
|
|
|
|
<!-- to receive files from the "share" intent -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="*/*" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:exported="false"
|
|
android:name=".activities.app_specific_notifications.AppSpecificNotificationSettingsActivity"
|
|
android:label="@string/prefs_wena3_notification_per_app_settings_title"
|
|
android:parentActivityName=".activities.devicesettings.DeviceSettingsActivity">
|
|
<intent-filter>
|
|
<action android:name=".SonyWena3PerAppNotificationSettingsActivity" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:exported="false"
|
|
android:name=".activities.app_specific_notifications.AppSpecificNotificationSettingsDetailActivity"
|
|
android:label="@string/prefs_wena3_notification_per_app_settings_title"
|
|
android:parentActivityName=".activities.app_specific_notifications.AppSpecificNotificationSettingsActivity"
|
|
/>
|
|
|
|
<service
|
|
android:name=".externalevents.NotificationListener"
|
|
android:label="@string/app_name"
|
|
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.service.notification.NotificationListenerService" />
|
|
</intent-filter>
|
|
</service>
|
|
<service android:name=".service.NotificationCollectorMonitorService" />
|
|
<service android:name=".service.DeviceCommunicationService" />
|
|
<service
|
|
android:name=".devices.pinetime.PineTimeDFUService"
|
|
android:label="PineTime Nordic DFU service" />
|
|
|
|
<receiver
|
|
android:name=".externalevents.GenericWeatherReceiver"
|
|
android:enabled="true"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="nodomain.freeyourgadget.gadgetbridge.ACTION_GENERIC_WEATHER" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<receiver
|
|
android:name=".externalevents.WeatherNotificationReceiver"
|
|
android:enabled="true"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="ru.gelin.android.weather.notification.ACTION_WEATHER_UPDATE_2" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<activity android:name=".externalevents.WeatherNotificationConfig"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="ru.gelin.android.weather.notification.ACTION_WEATHER_SKIN_PREFERENCES" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<receiver
|
|
android:name=".externalevents.AutoStartReceiver"
|
|
android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<receiver
|
|
android:name=".externalevents.BluetoothStateChangeReceiver"
|
|
android:exported="true"
|
|
android:permission="android.permission.BLUETOOTH,android.permission.BLUETOOTH_ADMIN">
|
|
<intent-filter>
|
|
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
|
|
<action android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
|
|
|
|
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
|
|
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
|
|
<action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<receiver
|
|
android:name=".service.receivers.GBMusicControlReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="nodomain.freeyourgadget.gadgetbridge.musiccontrol" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver
|
|
android:name=".service.receivers.GBCallControlReceiver"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="nodomain.freeyourgadget.gadgetbridge.callcontrol" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver
|
|
android:name=".database.PeriodicExporter"
|
|
android:enabled="true"
|
|
android:exported="false" />
|
|
<!--
|
|
forcing the DebugActivity to portrait mode avoids crashes with the progress
|
|
dialog when changing orientation
|
|
-->
|
|
<activity
|
|
android:name=".activities.DebugActivity"
|
|
android:label="@string/title_activity_debug"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.AboutActivity"
|
|
android:label="@string/about_activity_title"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.OpenFwAppInstallerActivity"
|
|
android:label="@string/open_fw_installer_info_text_title"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.BatteryInfoActivity"
|
|
android:label="@string/battery_detail_activity_title"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
|
|
<activity
|
|
android:name=".activities.ActivitySummaryDetail"
|
|
android:label="@string/activity_summary_detail"
|
|
android:parentActivityName=".activities.ActivitySummariesActivity"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.ActivitySummariesFilter"
|
|
android:label="@string/activity_filter_filter_title"
|
|
android:parentActivityName=".activities.ActivitySummariesActivity"
|
|
android:excludeFromRecents="true"/>
|
|
|
|
<activity
|
|
android:name=".activities.DataManagementActivity"
|
|
android:label="@string/title_activity_db_management"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.NotificationManagementActivity"
|
|
android:label="@string/title_activity_notification_management"
|
|
android:parentActivityName=".activities.ControlCenterv2"
|
|
android:windowSoftInputMode="stateHidden" />
|
|
<activity
|
|
android:name=".activities.discovery.DiscoveryActivityV2"
|
|
android:label="@string/title_activity_discovery"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.AndroidPairingActivity"
|
|
android:label="@string/title_activity_android_pairing" />
|
|
<activity
|
|
android:name=".devices.banglejs.AppsManagementActivity"
|
|
android:label="@string/title_activity_appmanager"
|
|
android:launchMode="singleTop"
|
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|layoutDirection|uiMode"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".devices.miband.MiBandPairingActivity"
|
|
android:label="@string/title_activity_mi_band_pairing" />
|
|
<activity
|
|
android:name=".devices.pebble.PebblePairingActivity"
|
|
android:label="@string/title_activity_pebble_pairing" />
|
|
<activity
|
|
android:name=".devices.watch9.Watch9PairingActivity"
|
|
android:label="@string/title_activity_watch9_pairing" />
|
|
<activity
|
|
android:name=".devices.watch9.Watch9CalibrationActivity"
|
|
android:label="@string/title_activity_watch9_calibration" />
|
|
<activity
|
|
android:name=".devices.lenovo.LenovoWatchPairingActivity"
|
|
android:label="@string/title_activity_watch9_pairing" />
|
|
<activity
|
|
android:name=".devices.lenovo.LenovoWatchCalibrationActivity"
|
|
android:label="@string/title_activity_LenovoWatch_calibration" />
|
|
<activity
|
|
android:name=".activities.charts.ActivityChartsActivity"
|
|
android:label="@string/title_activity_charts"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.ConfigureAlarms"
|
|
android:label="@string/title_activity_set_alarm"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.ConfigureReminders"
|
|
android:label="@string/title_activity_set_reminders"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.ConfigureContacts"
|
|
android:label="@string/title_activity_set_contacts"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.ConfigureWorldClocks"
|
|
android:label="@string/pref_world_clocks_title"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.devicesettings.DeviceSettingsActivity"
|
|
android:label="@string/title_activity_device_specific_settings"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.AlarmDetails"
|
|
android:label="@string/title_activity_alarm_details"
|
|
android:parentActivityName=".activities.ConfigureAlarms"
|
|
android:screenOrientation="portrait" />
|
|
<activity
|
|
android:name=".activities.ReminderDetails"
|
|
android:label="@string/title_activity_reminder_details"
|
|
android:parentActivityName=".activities.ConfigureReminders"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name=".activities.ContactDetails"
|
|
android:label="@string/title_activity_contact_details"
|
|
android:parentActivityName=".activities.ConfigureReminders"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name=".activities.WorldClockDetails"
|
|
android:label="@string/title_activity_world_clock_details"
|
|
android:parentActivityName=".activities.ConfigureWorldClocks"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="adjustResize" />
|
|
<activity
|
|
android:name=".activities.VibrationActivity"
|
|
android:label="@string/title_activity_vibration"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".activities.NotificationFilterActivity"
|
|
android:label="@string/title_activity_notification_filter"
|
|
android:parentActivityName=".activities.AppBlacklistActivity"
|
|
android:windowSoftInputMode="stateHidden|adjustPan" />
|
|
<activity
|
|
android:name=".activities.FindPhoneActivity"
|
|
android:label="Find Phone" />
|
|
|
|
<provider
|
|
android:name=".contentprovider.PebbleContentProvider"
|
|
android:authorities="@string/pebble_content_provider"
|
|
android:exported="true" />
|
|
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.screenshot_provider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/shared_paths" />
|
|
</provider>
|
|
|
|
<receiver
|
|
android:name=".SleepAlarmWidget"
|
|
android:label="@string/appwidget_sleep_alarm_widget_label"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
|
<action android:name="nodomain.freeyourgadget.gadgetbridge.SLEEP_ALARM_WIDGET_CLICK" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/sleep_alarm_widget_info" />
|
|
</receiver>
|
|
<receiver
|
|
android:name=".Widget"
|
|
android:label="@string/widget_listing_label"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
|
<action android:name="android.appwidget.action.APPWIDGET_DELETED" />
|
|
<action android:name="android.appwidget.action.APPWIDGET_DISABLED" />
|
|
<action android:name="nodomain.freeyourgadget.gadgetbridge.WidgetClick" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/widget_info" />
|
|
</receiver>
|
|
|
|
<activity
|
|
android:name=".activities.WidgetAlarmsActivity"
|
|
android:excludeFromRecents="true"
|
|
android:launchMode="singleInstance"
|
|
android:theme="@style/Theme.AppCompat.Light.Dialog" />
|
|
|
|
<activity android:name=".activities.WidgetConfigurationActivity"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name=".activities.SleepAlarmWidgetConfigurationActivity"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activities.ExternalPebbleJSActivity"
|
|
android:allowTaskReparenting="true"
|
|
android:clearTaskOnLaunch="true"
|
|
android:label="@string/app_configure"
|
|
android:launchMode="singleTask"
|
|
android:parentActivityName=".activities.appmanager.AppManagerActivity"
|
|
android:exported="true">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value="nodomain.freeyourgadget.gadgetbridge.activities.ControlCenterv2" />
|
|
|
|
<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="gadgetbridge" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".devices.qhybrid.ConfigActivity"
|
|
android:label="@string/qhybrid_title_watchface"
|
|
android:exported="true"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity
|
|
android:name=".devices.qhybrid.QHybridAppChoserActivity"
|
|
android:label="@string/qhybrid_title_apps"
|
|
android:exported="true"
|
|
android:parentActivityName=".devices.qhybrid.ConfigActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.HRConfigActivity"
|
|
android:label="@string/qhybrid_title_watchface"
|
|
android:exported="true"
|
|
android:parentActivityName=".activities.ControlCenterv2" />
|
|
<activity android:name=".devices.qhybrid.WidgetSettingsActivity"
|
|
android:label="@string/add_widget"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.ImageEditActivity"
|
|
android:label="@string/qhybrid_title_background_image"
|
|
android:exported="true"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.FileManagementActivity"
|
|
android:label="@string/qhybrid_title_file_management"
|
|
android:exported="true"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity"/>
|
|
<activity
|
|
android:name=".devices.qhybrid.AppsManagementActivity"
|
|
android:label="@string/qhybrid_title_apps_management"
|
|
android:exported="true"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.CalibrationActivity"
|
|
android:label="@string/qhybrid_title_calibration"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity" />
|
|
<activity
|
|
android:name=".devices.withingssteelhr.WithingsCalibrationActivity"
|
|
android:label="@string/qhybrid_title_calibration"
|
|
android:parentActivityName=".devices.withingssteelhr.WithingsCalibrationActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.CommuteActionsActivity"
|
|
android:label="@string/qhybrid_pref_title_actions"
|
|
android:parentActivityName=".devices.qhybrid.HRConfigActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.HybridHRWatchfaceDesignerActivity"
|
|
android:label="@string/qhybrid_title_watchface_designer"
|
|
android:screenOrientation="portrait"
|
|
android:launchMode="singleTop"
|
|
android:parentActivityName=".activities.appmanager.AppManagerActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.HybridHRWatchfaceSettingsActivity"
|
|
android:label="@string/watchface_dialog_title_settings"
|
|
android:parentActivityName=".devices.qhybrid.HybridHRWatchfaceDesignerActivity" />
|
|
<activity
|
|
android:name=".devices.qhybrid.HybridHRWatchfaceWidgetActivity"
|
|
android:label="@string/watchface_dialog_title_widget"
|
|
android:parentActivityName=".devices.qhybrid.HybridHRWatchfaceDesignerActivity" />
|
|
|
|
<activity
|
|
android:name=".devices.um25.Activity.DataActivity"
|
|
android:exported="true" />
|
|
|
|
<activity
|
|
android:name=".devices.supercars.ControlActivity"
|
|
android:exported="true" />
|
|
|
|
<activity
|
|
android:name=".devices.binary_sensor.activity.DataActivity"
|
|
android:exported="true" />
|
|
|
|
<activity
|
|
android:name=".activities.GpxReceiverActivity"
|
|
android:label="@string/gpx_receiver_activity_title"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateHidden"
|
|
android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="*/*" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activities.TextReceiverActivity"
|
|
android:excludeFromRecents="true"
|
|
android:label="@string/text_receiver_activity_title"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="text/plain" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activities.WakeActivity"
|
|
android:label="WakeActivity">
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".externalevents.opentracks.OpenTracksController"
|
|
android:label="OpenTracks controller and intent receiver"
|
|
android:exported="true"/>
|
|
</application>
|
|
|
|
</manifest>
|