taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

AndroidManifest.xml (6361B)


      1 <?xml version="1.0" encoding="utf-8"?><!--
      2   ~ This file is part of GNU Taler
      3   ~ (C) 2020 Taler Systems S.A.
      4   ~
      5   ~ GNU Taler is free software; you can redistribute it and/or modify it under the
      6   ~ terms of the GNU General Public License as published by the Free Software
      7   ~ Foundation; either version 3, or (at your option) any later version.
      8   ~
      9   ~ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
     10   ~ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11   ~ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12   ~
     13   ~ You should have received a copy of the GNU General Public License along with
     14   ~ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15   -->
     16 
     17 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     18     xmlns:tools="http://schemas.android.com/tools">
     19 
     20     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     21     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
     22     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     23     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     24     <uses-permission
     25         android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     26         android:maxSdkVersion="28" />
     27     <uses-permission android:name="android.permission.CAMERA" />
     28     <uses-permission android:name="android.permission.NFC" />
     29 
     30     <uses-feature
     31         android:name="android.hardware.camera"
     32         android:required="false" />
     33 
     34     <uses-feature
     35         android:name="android.hardware.telephony"
     36         android:required="false" />
     37     <uses-feature
     38         android:name="android.hardware.nfc.hce"
     39         android:required="false" />
     40 
     41     <application
     42         android:name=".WalletApp"
     43         android:allowBackup="true"
     44         android:fullBackupContent="@xml/backup_descriptor"
     45         android:icon="@mipmap/ic_launcher"
     46         android:label="@string/app_name"
     47         android:networkSecurityConfig="@xml/network_security_config"
     48         android:roundIcon="@mipmap/ic_launcher_round"
     49         android:supportsRtl="true"
     50         android:theme="@style/AppTheme"
     51         android:enableOnBackInvokedCallback="true"
     52         android:usesCleartextTraffic="true"
     53         tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
     54 
     55         <property
     56             android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
     57             android:value="true" />
     58 
     59         <activity
     60             android:name=".main.MainActivity"
     61             android:exported="true"
     62             android:launchMode="singleTask"
     63             android:theme="@style/AppTheme.NoActionBar"
     64             android:windowSoftInputMode="adjustResize"
     65             android:configChanges="keyboardHidden|orientation|screenSize|uiMode">
     66             <intent-filter>
     67                 <action android:name="android.intent.action.MAIN" />
     68                 <category android:name="android.intent.category.LAUNCHER" />
     69             </intent-filter>
     70             <intent-filter>
     71                 <action android:name="android.intent.action.VIEW" />
     72 
     73                 <category android:name="android.intent.category.DEFAULT" />
     74                 <category android:name="android.intent.category.BROWSABLE" />
     75 
     76                 <data android:scheme="taler" />
     77                 <data
     78                     android:scheme="TALER"
     79                     tools:ignore="AppLinkUrlError" />
     80                 <data android:scheme="ext+taler" />
     81                 <data
     82                     android:scheme="EXT+TALER"
     83                     tools:ignore="AppLinkUrlError" />
     84                 <data android:scheme="payto" />
     85             </intent-filter>
     86             <intent-filter>
     87                 <action android:name="android.intent.action.SEND" />
     88                 <category android:name="android.intent.category.DEFAULT" />
     89                 <data android:mimeType="text/plain" />
     90             </intent-filter>
     91         </activity>
     92 
     93         <!--
     94             Dedicated NFC entry point. Keeping it as an alias leaves the
     95             launcher activity above free to change independently.
     96             If the app targets SDK 37 again, this alias must additionally be
     97             protected by android.permission.DISPATCH_NFC_MESSAGE.
     98         -->
     99         <activity-alias
    100             android:name=".main.NfcEntryActivity"
    101             android:targetActivity=".main.MainActivity"
    102             android:exported="true"
    103             android:permission="android.permission.DISPATCH_NFC_MESSAGE">
    104             <intent-filter>
    105                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    106 
    107                 <category android:name="android.intent.category.DEFAULT" />
    108 
    109                 <data android:scheme="taler" />
    110                 <data
    111                     android:scheme="TALER"
    112                     tools:ignore="AppLinkUrlError" />
    113                 <data android:scheme="ext+taler" />
    114                 <data
    115                     android:scheme="EXT+TALER"
    116                     tools:ignore="AppLinkUrlError" />
    117                 <data android:scheme="payto" />
    118             </intent-filter>
    119         </activity-alias>
    120 
    121         <service
    122             android:name="net.taler.lib.android.TalerNfcService"
    123             android:exported="true"
    124             android:permission="android.permission.BIND_NFC_SERVICE"
    125             tools:ignore="MissingClass">
    126             <intent-filter>
    127                 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
    128             </intent-filter>
    129 
    130             <meta-data
    131                 android:name="android.nfc.cardemulation.host_apdu_service"
    132                 android:resource="@xml/apduservice" />
    133         </service>
    134 
    135         <provider
    136             android:name="androidx.core.content.FileProvider"
    137             android:authorities="${applicationId}.fileprovider"
    138             android:exported="false"
    139             android:grantUriPermissions="true">
    140             <meta-data
    141                 android:name="android.support.FILE_PROVIDER_PATHS"
    142                 android:resource="@xml/file_paths" />
    143         </provider>
    144     </application>
    145 
    146     <queries>
    147         <intent>
    148             <data
    149                 android:host="iban"
    150                 android:scheme="payto" />
    151             <action android:name="android.intent.action.VIEW" />
    152         </intent>
    153     </queries>
    154 
    155 </manifest>