1<?xml version="1.0" encoding="utf-8"?> 2<manifest 3 package="host.exp.exponent" 4 xmlns:android="http://schemas.android.com/apk/res/android" 5 xmlns:tools="http://schemas.android.com/tools"> 6 7 <permission 8 android:name="host.exp.exponent.permission.C2D_MESSAGE" 9 android:protectionLevel="signature"/> 10 11 <uses-permission android:name="android.permission.INTERNET"/> 12 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 13 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 14 <uses-permission android:name="android.permission.WAKE_LOCK"/> 15 <uses-permission android:name="host.exp.exponent.permission.C2D_MESSAGE"/> 16 <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/> 17 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 18 <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" /> 19 <uses-permission android:name="android.permission.USE_FINGERPRINT" /> 20 <uses-permission android:name="android.permission.VIBRATE" /> 21 22 <!-- These require runtime permissions on M --> 23 <uses-permission android:name="android.permission.READ_CONTACTS"/> 24 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 25 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 26 <uses-permission android:name="android.permission.CAMERA"/> 27 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 28 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 29 30 <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 31 32 <application 33 android:name=".ExponentApplication" 34 android:allowBackup="true" 35 android:icon="@mipmap/ic_launcher" 36 android:label="@string/app_name" 37 android:largeHeap="true"> 38 39 <activity 40 android:name=".LauncherActivity" 41 android:exported="true" 42 android:launchMode="singleTask" 43 android:screenOrientation="portrait" 44 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 45 <!-- ADD SHELL SCHEME HERE --> 46 <!-- DELETE AFTER --> 47 <intent-filter> 48 <data android:scheme="exp"/> 49 <data android:scheme="exps"/> 50 51 <action android:name="android.intent.action.VIEW"/> 52 53 <category android:name="android.intent.category.DEFAULT"/> 54 <category android:name="android.intent.category.BROWSABLE"/> 55 </intent-filter> 56 57 <!-- This has to be separate from the exp[s]:// scheme filter. No idea why --> 58 <intent-filter> 59 <data 60 android:host="exp.host" 61 android:pathPrefix="/@" 62 android:scheme="http"/> 63 <data 64 android:host="exp.host" 65 android:pathPrefix="/@" 66 android:scheme="https"/> 67 <data 68 android:host="*.exp.direct" 69 android:pathPattern=".*" 70 android:scheme="http"/> 71 <data 72 android:host="*.exp.direct" 73 android:pathPattern=".*" 74 android:scheme="https"/> 75 76 <action android:name="android.intent.action.VIEW"/> 77 78 <category android:name="android.intent.category.DEFAULT"/> 79 <category android:name="android.intent.category.BROWSABLE"/> 80 </intent-filter> 81 <!-- DELETE BEFORE --> 82 83 <intent-filter> 84 <action android:name="android.intent.action.MAIN"/> 85 86 <category android:name="android.intent.category.LAUNCHER"/> 87 </intent-filter> 88 </activity> 89 90 <activity 91 android:name=".experience.ExperienceActivity" 92 android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 93 android:theme="@style/Theme.Exponent.Light" 94 android:windowSoftInputMode="adjustResize"> 95 </activity> 96 97 <activity 98 android:name=".experience.HomeActivity" 99 android:label="@string/app_name" 100 android:launchMode="singleTask" 101 android:screenOrientation="portrait" 102 android:theme="@style/Theme.Exponent.Light"> 103 </activity> 104 105 <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/> 106 <!-- ADD DEV SETTINGS HERE --> 107 <activity android:name="abi14_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 108 <activity android:name="abi13_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 109 <activity android:name="abi12_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 110 <activity android:name="abi11_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 111 <activity android:name="abi10_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 112 <activity android:name="abi9_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 113 <activity android:name="abi8_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 114 <activity android:name="abi7_0_0.com.facebook.react.devsupport.DevSettingsActivity"/> 115 116 <activity 117 android:name=".ExponentDevActivity" 118 android:exported="true" 119 android:label="@string/dev_activity_name" 120 android:screenOrientation="portrait" 121 android:theme="@style/Theme.Exponent.Dark" 122 android:windowSoftInputMode="adjustPan"> 123 </activity> 124 125 <activity 126 android:name=".oauth.OAuthWebViewActivity" 127 android:screenOrientation="portrait" 128 android:theme="@style/Theme.Exponent.Light"> 129 </activity> 130 131 <activity 132 android:name="net.openid.appauth.RedirectUriReceiverActivity" 133 tools:node="replace"> 134 <intent-filter> 135 <action android:name="android.intent.action.VIEW"/> 136 <category android:name="android.intent.category.DEFAULT"/> 137 <category android:name="android.intent.category.BROWSABLE"/> 138 <data android:scheme="host.exp.exponent" android:path="oauthredirect"/> 139 </intent-filter> 140 </activity> 141 142 <activity 143 android:name=".oauth.OAuthResultActivity"> 144 </activity> 145 146 <activity 147 android:name=".chrometabs.ChromeTabsManagerActivity"> 148 </activity> 149 150 <activity 151 android:name=".experience.ErrorActivity" 152 android:theme="@style/Theme.Exponent.Dark" 153 android:screenOrientation="portrait"> 154 </activity> 155 156 <activity 157 android:name=".experience.InfoActivity" 158 android:screenOrientation="portrait" 159 android:theme="@style/Theme.Exponent.Light"> 160 </activity> 161 162 <activity 163 android:name="com.facebook.FacebookActivity" 164 android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 165 android:label="@string/app_name" 166 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 167 168 <service 169 android:name=".ExponentIntentService" 170 android:exported="false" /> 171 172 <!-- Analytics --> 173 <receiver 174 android:name="host.exp.exponent.referrer.InstallReferrerReceiver" 175 android:exported="true"> 176 <intent-filter> 177 <action android:name="com.android.vending.INSTALL_REFERRER" /> 178 </intent-filter> 179 </receiver> 180 181 <!-- 182 This crashes: https://code.google.com/p/analytics-issues/issues/detail?id=667 183 TODO: turn it back on when it's fixed 184 <service 185 android:name="com.google.android.gms.analytics.CampaignTrackingService" 186 android:enabled="true" 187 android:exported="false" />--> 188 189 <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" 190 android:enabled="true"> 191 <intent-filter> 192 <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> 193 </intent-filter> 194 </receiver> 195 196 <service android:name="com.google.android.gms.analytics.AnalyticsService" 197 android:enabled="true" 198 android:exported="false"/> 199 200 <!-- GCM --> 201 <receiver 202 android:name="com.google.android.gms.gcm.GcmReceiver" 203 android:exported="true" 204 android:permission="com.google.android.c2dm.permission.SEND"> 205 <intent-filter> 206 <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 207 <action android:name="com.google.android.c2dm.intent.REGISTRATION"/> 208 209 <category android:name="host.exp.exponent"/> 210 </intent-filter> 211 </receiver> 212 213 <service 214 android:name=".gcm.ExponentGcmListenerService" 215 android:exported="false"> 216 <intent-filter> 217 <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 218 </intent-filter> 219 </service> 220 <service 221 android:name=".gcm.ExponentInstanceIDListenerService" 222 android:exported="false"> 223 <intent-filter> 224 <action android:name="com.google.android.gms.iid.InstanceID"/> 225 </intent-filter> 226 </service> 227 <service 228 android:name=".gcm.RegistrationIntentService" 229 android:exported="false"> 230 </service> 231 232 <!-- ImagePicker native module --> 233 <activity 234 android:name="com.theartofdev.edmodo.cropper.CropImageActivity" 235 android:theme="@style/Base.Theme.AppCompat"> 236 </activity> 237 238 239 <!-- ADD FABRIC CONFIG HERE --> 240 <!-- BEGIN FABRIC CONFIG --> 241 <meta-data 242 android:name="io.fabric.ApiKey" 243 android:value="${FABRIC_API_KEY}"/> 244 <!-- END FABRIC CONFIG --> 245 246 <!-- ADD GOOGLE MAPS CONFIG HERE --> 247 <!-- BEGIN GOOGLE MAPS CONFIG --> 248 <meta-data 249 android:name="com.google.android.geo.API_KEY" 250 android:value="${GOOGLE_MAPS_API_KEY}"/> 251 <!-- END GOOGLE MAPS CONFIG --> 252 </application> 253 254</manifest> 255