
The Fragments and an Activity which tie all of the swap views together has begun. The first bit of implementation is to get the current wifi network displayed, which worked out alright. This commit contains a lot of theme related stuff, particularly involving taking assets from carries mockups and making them suitable to use as drawables. The process for doing this is a story for another day, but I'll document it and put it on the wiki in the future. carrie showed me a script that a mate of hers used on another project, and I've adapted it a little to make it work nicely here (note - it isn't in this commit). The button is blue, and always shown with associated text in the ActionBar. This required a custom drawable which was set as the background in the styles.xml.
375 lines
15 KiB
XML
375 lines
15 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="org.fdroid.fdroid"
|
|
android:installLocation="auto"
|
|
android:versionCode="760"
|
|
android:versionName="0.76" >
|
|
|
|
<uses-sdk
|
|
android:minSdkVersion="7"
|
|
android:targetSdkVersion="19" />
|
|
|
|
<supports-screens
|
|
android:anyDensity="true"
|
|
android:largeScreens="true"
|
|
android:normalScreens="true"
|
|
android:resizeable="true"
|
|
android:smallScreens="true"
|
|
android:xlargeScreens="true" />
|
|
|
|
<uses-feature
|
|
android:name="android.hardware.wifi"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.hardware.touchscreen"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.hardware.nfc"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.hardware.bluetooth"
|
|
android:required="false" />
|
|
|
|
<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" />
|
|
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.NFC" />
|
|
|
|
<!-- These permissions are only granted when F-Droid is installed as a system-app! -->
|
|
<uses-permission android:name="android.permission.INSTALL_PACKAGES"
|
|
tools:ignore="ProtectedPermissions"/>
|
|
<uses-permission android:name="android.permission.DELETE_PACKAGES"
|
|
tools:ignore="ProtectedPermissions"/>
|
|
|
|
<!-- Indicate that F-Droid may request root access (introduced by Koush's Superuser app) -->
|
|
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
|
|
|
|
<application
|
|
android:name="FDroidApp"
|
|
android:icon="@drawable/ic_launcher"
|
|
android:label="@string/app_name"
|
|
android:description="@string/app_description"
|
|
android:allowBackup="true"
|
|
android:theme="@style/AppThemeDark"
|
|
android:supportsRtl="true"
|
|
tools:replace="theme, icon, label"
|
|
>
|
|
|
|
<provider
|
|
android:authorities="org.fdroid.fdroid.data.AppProvider"
|
|
android:name="org.fdroid.fdroid.data.AppProvider"
|
|
android:exported="false"/>
|
|
|
|
<provider
|
|
android:authorities="org.fdroid.fdroid.data.RepoProvider"
|
|
android:name="org.fdroid.fdroid.data.RepoProvider"
|
|
android:exported="false"/>
|
|
|
|
<provider
|
|
android:authorities="org.fdroid.fdroid.data.ApkProvider"
|
|
android:name="org.fdroid.fdroid.data.ApkProvider"
|
|
android:exported="false"/>
|
|
|
|
<provider
|
|
android:authorities="org.fdroid.fdroid.data.InstalledAppProvider"
|
|
android:name="org.fdroid.fdroid.data.InstalledAppProvider"
|
|
android:exported="false"/>
|
|
|
|
<activity
|
|
android:name=".FDroid"
|
|
android:launchMode="singleTop"
|
|
android:configChanges="keyboardHidden|orientation|screenSize" >
|
|
|
|
<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="http" />
|
|
<data android:scheme="https" />
|
|
<data android:host="f-droid.org" />
|
|
<data android:host="www.f-droid.org" />
|
|
<data android:pathPrefix="/repository/browse" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.app.default_searchable"
|
|
android:value=".SearchResults" />
|
|
</activity>
|
|
<!--
|
|
The title for ManageReposActivity is "F-Droid" here, but "Repositories"
|
|
when viewing the Activity itself in the app.
|
|
-->
|
|
<activity
|
|
android:name=".views.ManageReposActivity"
|
|
android:label="@string/app_name"
|
|
android:launchMode="singleTask"
|
|
android:parentActivityName=".FDroid" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:scheme="http" />
|
|
<data android:scheme="https" />
|
|
<data android:host="*" />
|
|
<!--
|
|
The pattern matcher here is poorly implemented, in particular the * is
|
|
non-greedy, so you have to do stupid tricks to match patterns that have
|
|
repeat characters in them. http://stackoverflow.com/a/8599921/306864
|
|
-->
|
|
<data android:path="/fdroid/repo" />
|
|
<data android:pathPattern="/fdroid/repo/*" />
|
|
<data android:pathPattern="/.*/fdroid/repo" />
|
|
<data android:pathPattern="/.*/fdroid/repo/*" />
|
|
<data android:pathPattern="/.*/.*/fdroid/repo" />
|
|
<data android:pathPattern="/.*/.*/fdroid/repo/*" />
|
|
<data android:pathPattern="/.*/.*/.*/fdroid/repo" />
|
|
<data android:pathPattern="/.*/.*/.*/fdroid/repo/*" />
|
|
<data android:path="/fdroid/archive" />
|
|
<data android:pathPattern="/fdroid/archive/*" />
|
|
<data android:pathPattern="/.*/fdroid/archive" />
|
|
<data android:pathPattern="/.*/fdroid/archive/*" />
|
|
<data android:pathPattern="/.*/.*/fdroid/archive" />
|
|
<data android:pathPattern="/.*/.*/fdroid/archive/*" />
|
|
<data android:pathPattern="/.*/.*/.*/fdroid/archive" />
|
|
<data android:pathPattern="/.*/.*/.*/fdroid/archive/*" />
|
|
<!--
|
|
Some QR Code scanners don't respect custom schemes like fdroidrepo://,
|
|
so this is a workaround, since the local repo URL is all uppercase in
|
|
the QR Code for sending the local repo to another device.
|
|
-->
|
|
<data android:path="/FDROID/REPO" />
|
|
<data android:path="/.*/FDROID/REPO" />
|
|
<data android:path="/.*/.*/FDROID/REPO" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<!--
|
|
Android's scheme matcher is case-sensitive, so include
|
|
ALL CAPS versions to support ALL CAPS URLs in QR Codes.
|
|
QR Codes have a special ALL CAPS mode that uses a reduced
|
|
character set, making for more compact QR Codes.
|
|
-->
|
|
<data android:scheme="fdroidrepo" />
|
|
<data android:scheme="FDROIDREPO" />
|
|
<data android:scheme="fdroidrepos" />
|
|
<data android:scheme="FDROIDREPOS" />
|
|
</intent-filter>
|
|
<!-- Handle NFC tags detected from outside our application -->
|
|
<intent-filter>
|
|
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<!--
|
|
URIs that come in via NFC have scheme/host normalized to all lower case
|
|
https://developer.android.com/reference/android/nfc/NfcAdapter.html#ACTION_NDEF_DISCOVERED
|
|
-->
|
|
<data android:scheme="fdroidrepo" />
|
|
<data android:scheme="fdroidrepos" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="application/vnd.org.fdroid.fdroid.repo" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:name=".NfcNotEnabledActivity"
|
|
android:noHistory="true" />
|
|
<activity android:name=".views.QrWizardDownloadActivity" />
|
|
<activity android:name=".views.QrWizardWifiNetworkActivity" />
|
|
<activity
|
|
android:name=".views.LocalRepoActivity"
|
|
android:configChanges="orientation|keyboardHidden|screenSize"
|
|
android:label="@string/local_repo"
|
|
android:launchMode="singleTop"
|
|
android:parentActivityName=".FDroid"
|
|
android:screenOrientation="portrait" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
</activity>
|
|
<activity
|
|
android:name=".views.SelectLocalAppsActivity"
|
|
android:label="@string/setup_repo"
|
|
android:parentActivityName=".views.LocalRepoActivity" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".views.LocalRepoActivity" />
|
|
</activity>
|
|
<activity
|
|
android:name=".views.RepoDetailsActivity"
|
|
android:label="@string/menu_manage"
|
|
android:parentActivityName=".views.ManageReposActivity"
|
|
android:windowSoftInputMode="stateHidden">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".ManageRepo" />
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".AppDetails"
|
|
android:label="@string/app_details"
|
|
android:exported="true"
|
|
android:parentActivityName=".FDroid" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
|
|
<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="fdroid.app" />
|
|
</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="market" android:host="details" />
|
|
</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="http" />
|
|
<data android:scheme="https" />
|
|
<data android:host="f-droid.org" />
|
|
<data android:host="www.f-droid.org" />
|
|
<data android:pathPrefix="/app/" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity
|
|
android:label="@string/menu_preferences"
|
|
android:name=".PreferencesActivity"
|
|
android:parentActivityName=".FDroid" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
</activity>
|
|
<activity
|
|
android:label="@string/menu_swap"
|
|
android:name=".views.swap.SwapActivity"
|
|
android:parentActivityName=".FDroid"
|
|
android:theme="@style/SwapTheme.Wizard">
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
</activity>
|
|
<activity
|
|
android:name=".SearchResults"
|
|
android:label="@string/search_results"
|
|
android:exported="true"
|
|
android:launchMode="singleTop"
|
|
android:parentActivityName=".FDroid" >
|
|
<meta-data
|
|
android:name="android.support.PARENT_ACTIVITY"
|
|
android:value=".FDroid" />
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEARCH" />
|
|
</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="fdroid.search" />
|
|
</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="market" android:host="search" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.app.searchable"
|
|
android:resource="@xml/searchable" />
|
|
</activity>
|
|
|
|
<!--Used for SSL TOFU, supported by extern/MemorizingTrustManager lib -->
|
|
<activity
|
|
android:name="de.duenndns.ssl.MemorizingActivity"
|
|
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
|
|
|
<receiver android:name=".StartupReceiver" >
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
|
|
<category android:name="android.intent.category.HOME" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".PackageAddedReceiver" >
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PACKAGE_ADDED" />
|
|
|
|
<data android:scheme="package" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".PackageUpgradedReceiver" >
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
|
|
|
<data android:scheme="package" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".PackageRemovedReceiver" >
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
|
|
|
<data android:scheme="package" />
|
|
</intent-filter>
|
|
</receiver>
|
|
<receiver android:name=".WifiStateChangeReceiver" >
|
|
<intent-filter>
|
|
<action android:name="android.net.wifi.STATE_CHANGE" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<service android:name=".UpdateService" />
|
|
<service android:name=".net.WifiStateChangeService" />
|
|
<service android:name=".localrepo.LocalRepoService" />
|
|
</application>
|
|
|
|
</manifest>
|