mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-08 20:46:12 +01:00
![Eric House](/assets/img/avatar_default.png)
It's simpler this way, and I'm tired of stuff not happening because the OS chooses not to schedule e.g. an invitation send for minutes. Goal's to be running BluetoothServerSocket.accept() as much as possible when there are active BT games in play OR when the game's in the foreground. If that's happening, sent invitations and moves will be received when users expect. When there's no traffic and app isn't being brought to foreground, backoff will ensure I don't try to run accept() too often. FWIW, BTLE seems to offer a better way to do this (to have an app be responsive to incoming invitations when it hasn't run in the foreground in a while), but it requires users to accept FINE_LOCATION permission. I'm hoping I can make this work to avoid asking for that permission.
216 lines
8.2 KiB
XML
216 lines
8.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="org.eehouse.android.xw4"
|
|
>
|
|
|
|
<!-- BE SURE TO MODIFY project.properties AND the variable TARGET in
|
|
../scripts/setup_local_props.sh if targetSdkVersion changes!!!
|
|
-->
|
|
<supports-screens android:resizeable="true"
|
|
android:smallScreens="true"
|
|
android:normalScreens="true"
|
|
android:largeScreens="true"
|
|
android:xlargeScreens="true"
|
|
/>
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
|
|
<!-- Required for wifi-direct -->
|
|
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> -->
|
|
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> -->
|
|
|
|
<uses-feature android:name="android.hardware.telephony"
|
|
android:required = "false"
|
|
/>
|
|
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
<uses-permission android:name="android.permission.NFC" />
|
|
<uses-feature android:name="android.hardware.nfc.hce" android:required="false" />
|
|
|
|
<application android:icon="@drawable/icon48x48"
|
|
android:label="@string/app_name"
|
|
android:name=".XWApp"
|
|
android:theme="@style/AppTheme"
|
|
>
|
|
|
|
<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>
|
|
|
|
<activity android:name="MainActivity"
|
|
android:label="@string/app_name"
|
|
android:launchMode="singleTask"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
|
|
<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="@string/newgame_scheme"/>
|
|
</intent-filter>
|
|
|
|
<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"
|
|
android:host="@string/invite_host"
|
|
android:pathPrefix="@string/invite_prefix"
|
|
/>
|
|
<!-- Remove http once enough people have the https above -->
|
|
<data android:scheme="http"
|
|
android:host="@string/invite_host"
|
|
android:pathPrefix="@string/invite_prefix"
|
|
/>
|
|
</intent-filter>
|
|
|
|
<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:mimeType="@string/invite_mime" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name="HostActivity"
|
|
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
|
/>
|
|
|
|
<activity android:name="DictsActivity"
|
|
android:label="@string/title_dicts_list"
|
|
/>
|
|
|
|
<activity android:name="BTInviteActivity"
|
|
android:label="@string/bt_invite_title"
|
|
/>
|
|
<activity android:name="SMSInviteActivity"
|
|
android:label="@string/sms_invite_title"
|
|
android:screenOrientation="sensor"
|
|
/>
|
|
<activity android:name="RelayInviteActivity"
|
|
android:label="@string/relay_invite_title"
|
|
/>
|
|
<activity android:name="MQTTInviteActivity"
|
|
android:label="@string/mqtt_invite_title"
|
|
/>
|
|
|
|
<activity android:name="GameConfigActivity"
|
|
android:screenOrientation="sensor"
|
|
android:windowSoftInputMode="stateAlwaysHidden"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.EDIT" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name="PrefsActivity"
|
|
android:label="@string/title_prefs"
|
|
android:screenOrientation="sensor"
|
|
/>
|
|
|
|
<activity android:name="BoardActivity"
|
|
android:screenOrientation="portrait"
|
|
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
|
|
/>
|
|
|
|
<activity android:name="StudyListActivity" />
|
|
<activity android:name="KnownPlayersActivity" />
|
|
|
|
<receiver android:name="OnBootReceiver">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
|
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name="TimerReceiver"/>
|
|
<receiver android:name="NagTurnReceiver"/>
|
|
<receiver android:name="SMSResendReceiver"/>
|
|
<receiver android:name="DupeModeTimer"/>
|
|
|
|
<receiver android:name="UpdateCheckReceiver">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<!-- downloading dicts -->
|
|
<activity android:name=".DwnldActivity"
|
|
android:label="@string/app_name"
|
|
android:theme="@android:style/Theme.Dialog"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW"></action>
|
|
<category android:name="android.intent.category.DEFAULT"></category>
|
|
<category android:name="android.intent.category.BROWSABLE"></category>
|
|
<data android:scheme="file" android:host="*"
|
|
android:pathPattern=".*\\.xwd" />
|
|
<data android:scheme="https"
|
|
android:mimeType="application/x-xwordsdict"
|
|
android:host="*"
|
|
android:pathPattern=".*\\.xwd" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity android:name="DictBrowseActivity"
|
|
/>
|
|
<activity android:name="ChatActivity"
|
|
/>
|
|
<activity android:name=".loc.LocActivity"
|
|
/>
|
|
<activity android:name=".loc.LocItemEditActivity"
|
|
/>
|
|
|
|
<service android:name="RelayService"
|
|
android:exported="false"
|
|
android:permission="android.permission.BIND_JOB_SERVICE"
|
|
/>
|
|
|
|
<receiver android:name=".MountEventReceiver">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MEDIA_MOUNTED" />
|
|
<data android:scheme="file" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MEDIA_EJECT" />
|
|
<data android:scheme="file" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service android:name="FBMService">
|
|
<intent-filter>
|
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
|
</intent-filter>
|
|
</service>
|
|
|
|
<service android:name="NFCCardService" android:exported="true"
|
|
android:permission="android.permission.BIND_NFC_SERVICE">
|
|
<intent-filter>
|
|
<action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
|
|
</intent-filter>
|
|
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
|
|
android:resource="@xml/apduservice"/>
|
|
</service>
|
|
|
|
</application>
|
|
</manifest>
|