Compare commits
No commits in common. "master" and "v0.98-alpha4" have entirely different histories.
master
...
v0.98-alph
1
.gitattributes
vendored
@ -1 +0,0 @@
|
|||||||
*.gpg binary
|
|
11
.gitignore
vendored
@ -17,6 +17,12 @@ build.xml
|
|||||||
.gradle/
|
.gradle/
|
||||||
build/
|
build/
|
||||||
|
|
||||||
|
# Gradle wrapper
|
||||||
|
gradlew
|
||||||
|
gradlew.bat
|
||||||
|
gradle-wrapper.jar
|
||||||
|
gradle-wrapper.properties
|
||||||
|
|
||||||
# Local configuration file (sdk path, etc)
|
# Local configuration file (sdk path, etc)
|
||||||
local.properties
|
local.properties
|
||||||
|
|
||||||
@ -42,8 +48,3 @@ extern/*/*/libs/
|
|||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
junit-report.xml
|
junit-report.xml
|
||||||
|
|
||||||
# Screen dumps from Android Studio/DDMS
|
|
||||||
captures/
|
|
||||||
|
|
||||||
/fdroid/
|
|
||||||
|
179
.gitlab-ci.yml
@ -1,142 +1,41 @@
|
|||||||
stages:
|
before_script:
|
||||||
- test
|
- apt-get -q update -y
|
||||||
- deploy
|
- echo " == Installing packages required by this CI script"
|
||||||
|
- apt-get -q install -y wget tar unzip
|
||||||
|
- echo " == Installing OpenJDK 7"
|
||||||
|
- apt-get -q install -y openjdk-7-jdk
|
||||||
|
- echo " == Installing packages required by the 32-bit SDK"
|
||||||
|
- apt-get -q install -y lib32stdc++6 lib32z1
|
||||||
|
- echo " == Installing the Android SDK"
|
||||||
|
- wget -q -O android-sdk.tgz https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
|
||||||
|
- tar -x -z -f android-sdk.tgz
|
||||||
|
- mv android-sdk-linux android-sdk
|
||||||
|
- export ANDROID_HOME=$PWD/android-sdk
|
||||||
|
- export PATH="$ANDROID_HOME/tools:$PATH"
|
||||||
|
- echo " == Installing Android SDK components"
|
||||||
|
- echo y | android -s update sdk --no-ui -a -t platform-tools,tools,build-tools-23.0.2,android-22,extra-android-m2repository
|
||||||
|
- export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
||||||
|
- export PATH="$ANDROID_HOME/build-tools/23.0.2:$PATH"
|
||||||
|
- echo " == Installing Android emulator images"
|
||||||
|
- echo y | android -s update sdk --no-ui -a -t android-10
|
||||||
|
- echo " == Installing Gradle"
|
||||||
|
- wget -q -O gradle.zip https://services.gradle.org/distributions/gradle-2.8-bin.zip
|
||||||
|
- unzip -q gradle.zip
|
||||||
|
- export PATH="$PWD/gradle-2.8/bin:$PATH"
|
||||||
|
|
||||||
.base:
|
test:
|
||||||
image: registry.gitlab.com/fdroid/ci-images-client:latest
|
|
||||||
before_script:
|
|
||||||
- export GRADLE_USER_HOME=$PWD/.gradle
|
|
||||||
- export ANDROID_COMPILE_SDK=`sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' app/build.gradle`
|
|
||||||
- alias sdkmanager="sdkmanager --no_https"
|
|
||||||
- echo y | sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" > /dev/null
|
|
||||||
# limit RAM usage for all gradle runs
|
|
||||||
- export maxmem=$(expr $(sed -n 's,^MemAvailable:[^0-9]*\([0-9][0-9]*\)[^0-9]*$,\1,p' /proc/meminfo) / 1024 / 2 / 1024 \* 1024)
|
|
||||||
- printf "\norg.gradle.jvmargs=-Xmx${maxmem}m -XX:MaxPermSize=${maxmem}m\norg.gradle.daemon=false\norg.gradle.parallel=false\n" >> gradle.properties
|
|
||||||
after_script:
|
|
||||||
# this file changes every time but should not be cached
|
|
||||||
- rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock
|
|
||||||
- rm -fr $GRADLE_USER_HOME/caches/*/plugin-resolution/
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- .gradle/wrapper
|
|
||||||
- .gradle/caches
|
|
||||||
|
|
||||||
.test-template: &test-template
|
|
||||||
extends: .base
|
|
||||||
stage: test
|
|
||||||
artifacts:
|
|
||||||
name: "${CI_PROJECT_PATH}_${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
|
|
||||||
paths:
|
|
||||||
- kernel.log
|
|
||||||
- logcat.txt
|
|
||||||
- app/core*
|
|
||||||
- app/*.log
|
|
||||||
- app/build/reports
|
|
||||||
- app/build/outputs/*ml
|
|
||||||
- app/build/outputs/apk
|
|
||||||
expire_in: 1 week
|
|
||||||
when: on_failure
|
|
||||||
after_script:
|
|
||||||
- echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
|
|
||||||
|
|
||||||
# Run the most important first. Then we can decide whether to ignore
|
|
||||||
# the style tests if the rest of the more meaningful tests pass.
|
|
||||||
test_lint_pmd_checkstyle:
|
|
||||||
<<: *test-template
|
|
||||||
script:
|
script:
|
||||||
- export EXITVALUE=0
|
- echo " == Running build"
|
||||||
- function set_error() { export EXITVALUE=1; printf "\x1b[31mERROR `history|tail -2|head -1|cut -b 6-500`\x1b[0m\n"; }
|
- gradle build
|
||||||
- ./gradlew assemble
|
- echo " == Running checkstyle"
|
||||||
# always report on lint errors to the build log
|
- gradle checkstyle
|
||||||
- sed -i -e 's,textReport .*,textReport true,' app/build.gradle
|
- echo " == Creating Android 2.3.7 emulator"
|
||||||
- ./gradlew testFullDebugUnitTest || set_error
|
- echo no | android create avd --force -n fcl-test -t android-10 -b armeabi
|
||||||
- ./gradlew lint || set_error
|
- echo " == Starting Android 2.3.7 emulator"
|
||||||
- ./gradlew pmd || set_error
|
- emulator -force-32bit -avd fcl-test -no-skin -no-audio -no-window &
|
||||||
- ./gradlew checkstyle || set_error
|
- ./tools/wait-for-emulator
|
||||||
- ./tools/check-format-strings.py || set_error
|
- adb shell input keyevent 82
|
||||||
- ./tools/check-fastlane-whitespace.py || set_error
|
- echo " == Running Android tests on the 2.3.7 emulator"
|
||||||
- ./tools/remove-unused-and-blank-translations.py || set_error
|
- ADB_INSTALL_TIMEOUT=8 gradle connectedCheck || { adb logcat -d '*:W'; exit 1; }
|
||||||
- echo "These are unused or blank translations that should be removed:"
|
- echo " == Stopping Android 2.3.7 emulator"
|
||||||
- git --no-pager diff --ignore-all-space --name-only --exit-code app/src/*/res/values*/strings.xml || set_error
|
- kill $!
|
||||||
- exit $EXITVALUE
|
|
||||||
|
|
||||||
errorprone:
|
|
||||||
extends: .base
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -t stretch-backports openjdk-11-jdk-headless
|
|
||||||
- update-java-alternatives --set java-1.11.0-openjdk-amd64
|
|
||||||
- export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
|
|
||||||
- cat config/errorprone.gradle >> app/build.gradle
|
|
||||||
- ./gradlew -Dorg.gradle.dependency.verification=lenient assembleDebug
|
|
||||||
|
|
||||||
# Run the tests in the emulator. Each step is broken out to run on
|
|
||||||
# its own since the CI runner can have limited RAM, and the emulator
|
|
||||||
# can take a while to start.
|
|
||||||
#
|
|
||||||
# once these prove stable, the task should be switched to
|
|
||||||
# connectedCheck to test all the build flavors
|
|
||||||
.connected-template: &connected-template
|
|
||||||
extends: .base
|
|
||||||
script:
|
|
||||||
- ./gradlew assembleFullDebug
|
|
||||||
- export AVD_SDK=`echo $CI_JOB_NAME | awk '{print $2}'`
|
|
||||||
- export AVD_TAG=`echo $CI_JOB_NAME | awk '{print $3}'`
|
|
||||||
- export AVD_ARCH=`echo $CI_JOB_NAME | awk '{print $4}'`
|
|
||||||
- export AVD_PACKAGE="system-images;android-${AVD_SDK};${AVD_TAG};${AVD_ARCH}"
|
|
||||||
- echo $AVD_PACKAGE
|
|
||||||
|
|
||||||
- alias sdkmanager
|
|
||||||
- ls -l ~/.android
|
|
||||||
|
|
||||||
- adb start-server
|
|
||||||
- start-emulator
|
|
||||||
- wait-for-emulator
|
|
||||||
- adb devices
|
|
||||||
- adb shell input keyevent 82 &
|
|
||||||
- ./gradlew installFullDebug
|
|
||||||
- adb shell am start -n org.fdroid.fdroid.debug/org.fdroid.fdroid.views.main.MainActivity
|
|
||||||
- if [ $AVD_SDK -lt 25 ] || ! emulator -accel-check; then
|
|
||||||
export FLAG=-Pandroid.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.LargeTest;
|
|
||||||
fi
|
|
||||||
- ./gradlew connectedFullDebugAndroidTest $FLAG
|
|
||||||
|
|
||||||
no-accel 22 default x86:
|
|
||||||
<<: *test-template
|
|
||||||
<<: *connected-template
|
|
||||||
|
|
||||||
.kvm-template: &kvm-template
|
|
||||||
tags:
|
|
||||||
- fdroid
|
|
||||||
- kvm
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $RUN_KVM_JOBS
|
|
||||||
<<: *test-template
|
|
||||||
<<: *connected-template
|
|
||||||
|
|
||||||
kvm 29 microg x86_64:
|
|
||||||
<<: *kvm-template
|
|
||||||
|
|
||||||
deploy_nightly:
|
|
||||||
extends: .base
|
|
||||||
stage: deploy
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
script:
|
|
||||||
- test -z "$DEBUG_KEYSTORE" && exit 0
|
|
||||||
- sed -i
|
|
||||||
's,<string name="app_name">.*</string>,<string name="app_name">F-Nightly</string>,'
|
|
||||||
app/src/main/res/values*/strings.xml
|
|
||||||
# add this nightly repo as a enabled repo
|
|
||||||
- sed -i -e '/<\/string-array>/d' -e '/<\/resources>/d' app/src/main/res/values/default_repos.xml
|
|
||||||
- echo "<item>${CI_PROJECT_PATH}-nightly</item>" >> app/src/main/res/values/default_repos.xml
|
|
||||||
- echo "<item>${CI_PROJECT_URL}-nightly/raw/master/fdroid/repo</item>" >> app/src/main/res/values/default_repos.xml
|
|
||||||
- cat config/nightly-repo/repo.xml >> app/src/main/res/values/default_repos.xml
|
|
||||||
- export DB=`sed -n 's,.*DB_VERSION *= *\([0-9][0-9]*\).*,\1,p' app/src/main/java/org/fdroid/fdroid/data/DBHelper.java`
|
|
||||||
- export versionCode=`printf '%d%05d' $DB $(date '+%s'| cut -b4-8)`
|
|
||||||
- sed -i "s,^\(\s*versionCode\) *[0-9].*,\1 $versionCode," app/build.gradle
|
|
||||||
# build the APKs!
|
|
||||||
- ./gradlew assembleDebug
|
|
||||||
- fdroid nightly -v
|
|
||||||
|
3
.weblate
@ -1,3 +0,0 @@
|
|||||||
[weblate]
|
|
||||||
url = https://hosted.weblate.org/api/
|
|
||||||
translation = f-droid/f-droid
|
|
10
Android.mk
@ -7,15 +7,15 @@ LOCAL_MODULE_TAGS := optional
|
|||||||
LOCAL_PACKAGE_NAME := F-Droid
|
LOCAL_PACKAGE_NAME := F-Droid
|
||||||
|
|
||||||
fdroid_root := $(LOCAL_PATH)
|
fdroid_root := $(LOCAL_PATH)
|
||||||
fdroid_dir := app
|
fdroid_dir := F-Droid
|
||||||
fdroid_out := $(PWD)/$(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates
|
fdroid_out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates
|
||||||
fdroid_build := $(fdroid_root)/$(fdroid_dir)/build
|
fdroid_build := $(fdroid_root)/$(fdroid_dir)/build
|
||||||
fdroid_apk := build/outputs/apk/full/release/$(fdroid_dir)-full-release-unsigned.apk
|
fdroid_apk := build/outputs/apk/F-Droid-release-unsigned.apk
|
||||||
|
|
||||||
$(fdroid_root)/$(fdroid_dir)/$(fdroid_apk):
|
$(fdroid_root)/$(fdroid_dir)/$(fdroid_apk):
|
||||||
rm -Rf $(fdroid_build)
|
rm -Rf $(fdroid_build)
|
||||||
mkdir -p $(fdroid_out)
|
mkdir -p $(fdroid_out)
|
||||||
ln -sf $(fdroid_out) $(fdroid_build)
|
ln -s $(fdroid_out) $(fdroid_build)
|
||||||
cd $(fdroid_root)/$(fdroid_dir) && gradle assembleRelease
|
cd $(fdroid_root)/$(fdroid_dir) && gradle assembleRelease
|
||||||
|
|
||||||
LOCAL_CERTIFICATE := platform
|
LOCAL_CERTIFICATE := platform
|
||||||
@ -23,4 +23,4 @@ LOCAL_SRC_FILES := $(fdroid_dir)/$(fdroid_apk)
|
|||||||
LOCAL_MODULE_CLASS := APPS
|
LOCAL_MODULE_CLASS := APPS
|
||||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||||
|
|
||||||
include $(BUILD_PREBUILT)
|
include $(BUILD_PREBUILT)
|
746
CHANGELOG.md
@ -1,670 +1,4 @@
|
|||||||
### 1.13-alpha1 (2021-06-02)
|
### 0.98 (upcoming release)
|
||||||
|
|
||||||
* Stop repeated updates of Trichrome Library
|
|
||||||
|
|
||||||
* More changes to follow Material Design (@proletarius101)
|
|
||||||
|
|
||||||
* Improve OpenCollective badge (@ConnyDuck)
|
|
||||||
|
|
||||||
### 1.13-alpha0 (2021-04-22)
|
|
||||||
|
|
||||||
* Theme support tied to built-in Android themes (@proletarius101)
|
|
||||||
|
|
||||||
* New top banner notifications: "No Internet" and "No Data or WiFi enabled"
|
|
||||||
|
|
||||||
* Improved handling of USB-OTG and SD Card repos and mirrors
|
|
||||||
|
|
||||||
### 1.12.1 (2021-04-12)
|
|
||||||
|
|
||||||
* Fix trove4j verification error
|
|
||||||
|
|
||||||
### 1.12 (2021-04-06)
|
|
||||||
|
|
||||||
* Sync translations
|
|
||||||
|
|
||||||
### 1.12-alpha3 (2021-03-10)
|
|
||||||
|
|
||||||
* Opt-in F-Droid Metrics
|
|
||||||
|
|
||||||
### 1.12-alpha2 (2021-03-03)
|
|
||||||
|
|
||||||
* Overhaul clean up of cached files
|
|
||||||
|
|
||||||
* Support updating "shared library packages" like Trichrome (@uldiniad)
|
|
||||||
|
|
||||||
### 1.12-alpha1 (2021-02-25)
|
|
||||||
|
|
||||||
* Add extra sanitation to search terms to prevent vulnerabilities.
|
|
||||||
|
|
||||||
* Fix Nearby Swap's close button (@proletarius101)
|
|
||||||
|
|
||||||
* Bump to compileSdkVersion 29 to support Java8
|
|
||||||
|
|
||||||
* Set up WorkManager on demand to avoid slowing down starts
|
|
||||||
|
|
||||||
* Prefer system keys when APKs are signed by them (@glennmen)
|
|
||||||
|
|
||||||
### 1.12-alpha0 (2021-02-08)
|
|
||||||
|
|
||||||
* App description localization now fully respects lists of languages in Android
|
|
||||||
Language Settings
|
|
||||||
|
|
||||||
* Latest Tab lists results based on the Language Settings
|
|
||||||
|
|
||||||
* Latest Tab now shows results ordered newest first (@TheLastProject @IzzySoft)
|
|
||||||
|
|
||||||
* Theme support modernized and tied to the built-in Android themes (@proletarius101)
|
|
||||||
|
|
||||||
* Search results greatly improved (@Tvax @gcbrown76)
|
|
||||||
|
|
||||||
* Let Android efficiently schedule background cache cleanup operations (@Isira-Seneviratne)
|
|
||||||
|
|
||||||
* Overhaul repo URL parsing for reliable repo adding (@projectgus)
|
|
||||||
|
|
||||||
### 1.11 (2020-12-29)
|
|
||||||
|
|
||||||
* Improved linkifying of URLs in app descriptions
|
|
||||||
|
|
||||||
* Improved handling of SDCards and USG-OTG in Nearby
|
|
||||||
|
|
||||||
* Modernized code and switched PNGs to vectors (thanks @isira-seneviratne!)
|
|
||||||
|
|
||||||
* Recognize longer repo URLs to support GitCDN/RawGit/etc mirrors
|
|
||||||
|
|
||||||
### 1.10 (2020-10-20)
|
|
||||||
|
|
||||||
* Improved language selection with multiple locales
|
|
||||||
(thanks @spacecowboy and @bubu!)
|
|
||||||
|
|
||||||
### 1.10-alpha1 (2020-09-29)
|
|
||||||
|
|
||||||
* use notification channels for fine-grained control (@Isira-Seneviratne)
|
|
||||||
|
|
||||||
### 1.10-alpha0 (2020-07-20)
|
|
||||||
|
|
||||||
* Latest Tab will show better results on non-English devices
|
|
||||||
|
|
||||||
* updates to core libraries (Jackson, androidx, gradle, etc)
|
|
||||||
|
|
||||||
* use Gradle's new dependency verification
|
|
||||||
|
|
||||||
* polish whitelabeling support
|
|
||||||
|
|
||||||
### 1.9 (2020-06-25)
|
|
||||||
|
|
||||||
* Removed "Android App Link" support since it cannot work with
|
|
||||||
F-Droid, and it was triggering DNS leaks.
|
|
||||||
|
|
||||||
* Archive Repos are now lower priority than the Repo (higher on the
|
|
||||||
Manage Repos screen), fixing issues where it looked for icons,
|
|
||||||
screenshots and other information in the Archive rather than the
|
|
||||||
Repo itself.
|
|
||||||
|
|
||||||
* Fixed hopefully all occurrences where F-Droid client couldn't show an icon.
|
|
||||||
The remaining cases of missing icons are now caused either by
|
|
||||||
icons not included in upstream repo or by temporary network failures.
|
|
||||||
(After updating this requires one additional repo update to take effect.)
|
|
||||||
|
|
||||||
* Fixed a problem where repository updates would never trigger
|
|
||||||
when either "Over Data" or "Over Wifi" were disabled.
|
|
||||||
|
|
||||||
* Support OpenCollective donation option and highlight
|
|
||||||
free software donation platforms
|
|
||||||
|
|
||||||
* Fix for when the app update button wasn't showing up or working
|
|
||||||
in some cases (thanks @di72nn)
|
|
||||||
|
|
||||||
* Stop cropping feature header image (thanks @ByteHamster!)
|
|
||||||
|
|
||||||
* Make navigation bar match dark mode (thanks @MatthieuB!)
|
|
||||||
|
|
||||||
* Cleaned out obsolete code (thanks @Isira-Seneviratne!)
|
|
||||||
|
|
||||||
### 1.8-alpha2 (2020-02-04)
|
|
||||||
|
|
||||||
* stop showing Unknown Sources with Privileged Extension on Android 10 #1833
|
|
||||||
|
|
||||||
* add standard ripple effect to links on app details activity
|
|
||||||
|
|
||||||
* fix displaying default icon for apps without icons
|
|
||||||
|
|
||||||
### 1.8-alpha1 (2020-01-10)
|
|
||||||
|
|
||||||
* handle Android 10 permission config to stop Unknown Sources prompts
|
|
||||||
|
|
||||||
* keyboard opens when search is cleared
|
|
||||||
|
|
||||||
* translation sync with Android strings
|
|
||||||
|
|
||||||
* force common repo domains to HTTPS (GitLab, GitHub, Amazon)
|
|
||||||
|
|
||||||
### 1.8-alpha0 (2019-11-20)
|
|
||||||
|
|
||||||
* fix seekbar preference on recent Android versions (thanks @dkanada)
|
|
||||||
|
|
||||||
* handle API 29 split-permissions: fine location now implies coarse location
|
|
||||||
|
|
||||||
* define backup rules to avoid saving the swap repo
|
|
||||||
|
|
||||||
### 1.7.1 (2019-07-31)
|
|
||||||
|
|
||||||
* fix crashes from ACRA report emails
|
|
||||||
|
|
||||||
### 1.7 (2019-07-06)
|
|
||||||
|
|
||||||
* fix crash in Panic Settings
|
|
||||||
|
|
||||||
* catch random crashes related to WifiApControl
|
|
||||||
|
|
||||||
### 1.7-alpha2 (2019-06-18)
|
|
||||||
|
|
||||||
* USB OTG flash drives can be used as nearby repos and mirrors
|
|
||||||
|
|
||||||
### 1.7-alpha1 (2019-06-14)
|
|
||||||
|
|
||||||
* overhauled nearby swap using the device's hotspot AP
|
|
||||||
|
|
||||||
* add new panic responses: app uninstalls and reset repos to default
|
|
||||||
|
|
||||||
* fix proxy support on first start
|
|
||||||
|
|
||||||
### 1.7-alpha0 (2019-05-20)
|
|
||||||
|
|
||||||
* major refactor of "Nearby" UI code, to prepare for rewriting guts
|
|
||||||
|
|
||||||
* show "undo" after swiping away items from the Updates tab (thanks @Hocuri!)
|
|
||||||
|
|
||||||
* fix ETag handling when connecting to nginx mirrors #1737
|
|
||||||
|
|
||||||
* fix issues with "Latest" display caused by mishandling time zones #1757
|
|
||||||
|
|
||||||
* ignore all unimportant crashes in background services
|
|
||||||
|
|
||||||
* do not use Privileged Extension if it was disabled in Settings
|
|
||||||
|
|
||||||
### 1.6.2 (2019-05-20)
|
|
||||||
|
|
||||||
* fixed issue where cached indexes were wrongly redownloaded (#1737),
|
|
||||||
thanks to @amiraliakbari for tracking it down!
|
|
||||||
|
|
||||||
* fixed wrong string for the translated title of the Updates Tab (#1785)
|
|
||||||
|
|
||||||
* fixed crashes on very low memory when starting
|
|
||||||
|
|
||||||
### 1.6.1 (2019-05-10)
|
|
||||||
|
|
||||||
* Updated translations
|
|
||||||
|
|
||||||
* fixed button size issues #1678
|
|
||||||
|
|
||||||
* stopped random background crashes
|
|
||||||
|
|
||||||
### 1.6 (2019-04-10)
|
|
||||||
|
|
||||||
* update F-Droid after all other updates (#1556)
|
|
||||||
|
|
||||||
* Improve adding repos from the clipboard (e.g. Firefox Klar)
|
|
||||||
|
|
||||||
* swap usability improvements
|
|
||||||
|
|
||||||
* many crash fixes in swap and background services
|
|
||||||
|
|
||||||
### 1.6-alpha2 (2019-03-28)
|
|
||||||
|
|
||||||
* Latest Tab now highlights apps that provide descriptions,
|
|
||||||
translations, screenshots
|
|
||||||
|
|
||||||
* Auto-download from mirrors, to speed up downloads and reduce load on
|
|
||||||
f-droid.org
|
|
||||||
|
|
||||||
* More efficient download caching (per-repo; across different
|
|
||||||
webservers #1708)
|
|
||||||
|
|
||||||
* Fix problems canceling downloads (#1727, #1736, #1742)
|
|
||||||
|
|
||||||
* Fix downloading OBB files from repos (#1403)
|
|
||||||
|
|
||||||
### 1.6-alpha1 (2019-02-20)
|
|
||||||
|
|
||||||
* add switches in RepoDetails to disable any or all mirrors (#1696)
|
|
||||||
|
|
||||||
* choose random mirror for each package/APK download
|
|
||||||
|
|
||||||
* make all APK downloads be cached per-repo, not per-mirror
|
|
||||||
|
|
||||||
* handle Apache and Nginx ETags when checking if index is current (#1708)
|
|
||||||
|
|
||||||
### 1.6-alpha0 (2019-02-15)
|
|
||||||
|
|
||||||
* handle implied READ_EXTERNAL_STORAGE permissions, which trigger a
|
|
||||||
permissions prompt on installs with Privileged Extension (#1702)
|
|
||||||
|
|
||||||
* sanitize index data to reduce the threats from the server
|
|
||||||
|
|
||||||
* set Read Timeout to trigger mirror use when reads are slow
|
|
||||||
|
|
||||||
* fix missing icons for those who do not use WiFi (#1592)
|
|
||||||
|
|
||||||
* use separate titles for Updates pref and Updates tab, so that they
|
|
||||||
can be better translated
|
|
||||||
|
|
||||||
* UI fixes from @ConnyDuck (#1636, #1618)
|
|
||||||
|
|
||||||
### 1.5.1 (2019-01-07)
|
|
||||||
|
|
||||||
* Removed incomplete translations that were accidentally added in 1.5
|
|
||||||
|
|
||||||
* Fix screenshot background on dark themes (#1618)
|
|
||||||
|
|
||||||
### 1.5 (2018-12-26)
|
|
||||||
|
|
||||||
* Nearby swap bug fixes and improvements
|
|
||||||
|
|
||||||
* update language and translations about Nearby and swap
|
|
||||||
|
|
||||||
* Fix displaying of icons for self-built apps (#1108)
|
|
||||||
|
|
||||||
### 1.5-alpha2 (2018-12-21)
|
|
||||||
|
|
||||||
* support swapping via SD Cards
|
|
||||||
|
|
||||||
* display versionCode in expanded Versions list entries in Expert Mode
|
|
||||||
|
|
||||||
### 1.5-alpha1 (2018-12-12)
|
|
||||||
|
|
||||||
* UX and language cleanup of App Details
|
|
||||||
|
|
||||||
### 1.5-alpha0 (2018-10-19)
|
|
||||||
|
|
||||||
* add repos via additional_repos.xml from ROM, OEM, Vendor.
|
|
||||||
|
|
||||||
### 1.4 (2018-09-12)
|
|
||||||
|
|
||||||
* polish up new "Versions" list and other UI fixes
|
|
||||||
|
|
||||||
### 1.4-alpha1 (2018-08-30)
|
|
||||||
|
|
||||||
* huge overhaul of the "Versions" list in the App Details screen, and
|
|
||||||
many other UI improvements, thanks to new contributor @wsdfhjxc
|
|
||||||
|
|
||||||
* fixes to allow keyboard/d-pad navigation in more places, thanks to
|
|
||||||
new contributor @doeffinger
|
|
||||||
|
|
||||||
### 1.4-alpha0 (2018-08-17)
|
|
||||||
|
|
||||||
* show "Open" button when media is installed and viewable
|
|
||||||
|
|
||||||
* retry index downloads from mirrors
|
|
||||||
|
|
||||||
* add Share button to "Installed Apps" to export CSV list
|
|
||||||
|
|
||||||
* add clickable list of APKs to the swap HTML index page
|
|
||||||
|
|
||||||
### 1.3.1 (2018-08-07)
|
|
||||||
|
|
||||||
* big overhaul of core nearby/swap plumbing
|
|
||||||
|
|
||||||
* TLSv1.3 support, when the device supports it
|
|
||||||
|
|
||||||
### 1.3 (2018-07-31)
|
|
||||||
|
|
||||||
* large overhaul to make status updates more reliable
|
|
||||||
|
|
||||||
* fixed many bugs around the wrong button showing
|
|
||||||
|
|
||||||
### 1.3-alpha5 (2018-07-21)
|
|
||||||
|
|
||||||
* overhaul install button logic to avoid false presses
|
|
||||||
|
|
||||||
* improved first time run experience
|
|
||||||
|
|
||||||
* export install/uninstall history
|
|
||||||
|
|
||||||
* more whitelabeling improvements
|
|
||||||
|
|
||||||
### 1.3-alpha4 (2018-07-13)
|
|
||||||
|
|
||||||
* fix Data/WiFi preferences to properly schedule Updats
|
|
||||||
|
|
||||||
* fix Install/Uninstall events for clearer feedback
|
|
||||||
|
|
||||||
* track pending installs properly, stop fake repeating updates
|
|
||||||
|
|
||||||
* add support for Repo Push Requests when using Index V1
|
|
||||||
|
|
||||||
* support NoSourceSince anti-feature
|
|
||||||
|
|
||||||
* share menu item for repos
|
|
||||||
|
|
||||||
* fix a few crasher bugs
|
|
||||||
|
|
||||||
### 1.3-alpha3 (2018-06-27)
|
|
||||||
|
|
||||||
* fix bug that disabled Privileged Extension
|
|
||||||
|
|
||||||
* prevent crash loop after rapid install/uninstall cycling
|
|
||||||
|
|
||||||
* add expert option to send debug version/UUID on each HTTP download
|
|
||||||
|
|
||||||
* allow user to disable ACRA entirely with a preference
|
|
||||||
|
|
||||||
* basic Install History viewer, available only when logging is enabled
|
|
||||||
|
|
||||||
### 1.3-alpha2 (2018-06-25)
|
|
||||||
|
|
||||||
* Settings improvements
|
|
||||||
|
|
||||||
* new Expert Setting for disabling all notifications
|
|
||||||
|
|
||||||
* huge improvements for custom "whitelabel" F-Droid versions
|
|
||||||
|
|
||||||
### 1.3-alpha1 (2018-06-15)
|
|
||||||
|
|
||||||
* improved Settings for controlling data usage
|
|
||||||
|
|
||||||
* support push install/uninstall requests in index-v1
|
|
||||||
|
|
||||||
### 1.3-alpha0 (2018-04-25)
|
|
||||||
|
|
||||||
* more battery conscious background operation on Android 5.0 and newer
|
|
||||||
|
|
||||||
* make Anti-Features list in App Details clickable
|
|
||||||
|
|
||||||
* new Settings for controlling data usage
|
|
||||||
|
|
||||||
* switch Settings to Material style
|
|
||||||
|
|
||||||
* bumped minimum supported version to Android 4.0 (14)
|
|
||||||
|
|
||||||
### 1.2.2 (2018-04-23)
|
|
||||||
|
|
||||||
* fix crasher bug on devices running on Android 4.2 or older #1424
|
|
||||||
|
|
||||||
### 1.2.1 (2018-04-18)
|
|
||||||
|
|
||||||
* improved automatic mirror selection
|
|
||||||
|
|
||||||
* more swap/nearby bug fixes and improvements
|
|
||||||
|
|
||||||
### 1.2 (2018-04-13)
|
|
||||||
|
|
||||||
* lots of swap/nearby bug fixes and improvements
|
|
||||||
|
|
||||||
* fix one cause of reoccuring update notifications (#1271)
|
|
||||||
|
|
||||||
* make F-Droid recognize fdroid nightly URLs from GitLab
|
|
||||||
|
|
||||||
### 1.2-alpha1 (2018-04-06)
|
|
||||||
|
|
||||||
* fix Privileged Extension install with apps with uses-permision-sdk-23
|
|
||||||
|
|
||||||
* automatically trim or delete cache when storage space is low
|
|
||||||
|
|
||||||
* improved performance on low memory devices
|
|
||||||
|
|
||||||
* make all downloads respect "Only on Wi-Fi" preference
|
|
||||||
|
|
||||||
### 1.2-alpha0 (2018-03-30)
|
|
||||||
|
|
||||||
* add custom mirrors to any repo by clicking links, scanning QR codes, etc.
|
|
||||||
|
|
||||||
* reduce memory usage when device is running low
|
|
||||||
|
|
||||||
### 1.1 (2018-03-21)
|
|
||||||
|
|
||||||
* fix some problems with items Updates reappearing
|
|
||||||
|
|
||||||
* fix failback install method when permissions aren't in sync #1310
|
|
||||||
|
|
||||||
### 1.1-alpha4 (2018-03-09)
|
|
||||||
|
|
||||||
* fix the most popular ACRA crash reports
|
|
||||||
|
|
||||||
* UI layout improvements
|
|
||||||
|
|
||||||
* warn users when scanning QR with camera without autofocus
|
|
||||||
|
|
||||||
### 1.1-alpha3 (2018-02-13)
|
|
||||||
|
|
||||||
* add sort button to Search view: alpha or most recent
|
|
||||||
|
|
||||||
* fix bugs: #1305 #1306 #1325
|
|
||||||
|
|
||||||
* add more detail to ACRA crash reports
|
|
||||||
|
|
||||||
### 1.1-alpha2 (2018-02-06)
|
|
||||||
|
|
||||||
* reload index after system locale change or OS upgrade
|
|
||||||
|
|
||||||
* add "panic responder" support
|
|
||||||
|
|
||||||
### 1.1-alpha1 (2018-01-26)
|
|
||||||
|
|
||||||
* provision new repos via a provisioning file
|
|
||||||
|
|
||||||
* "Android App Links" handling aka "Digital Asset Links"
|
|
||||||
|
|
||||||
* new privacy prefs: disable screenshots; exit on panic
|
|
||||||
|
|
||||||
### 1.1-alpha0 (2017-11-09)
|
|
||||||
|
|
||||||
* automatically choose between official repo mirrors
|
|
||||||
|
|
||||||
* fullscreen, swipeable app screenshot navigation
|
|
||||||
|
|
||||||
* new preference to prevent screenshots/recents
|
|
||||||
|
|
||||||
* fix crasher bug #1203
|
|
||||||
|
|
||||||
### 1.0.1 (2017-10-23)
|
|
||||||
|
|
||||||
* fixed index update failure on Android 5.0 (#1014)
|
|
||||||
|
|
||||||
### 1.0 (2017-10-10)
|
|
||||||
|
|
||||||
* Completely overhauled workflow for updating apps
|
|
||||||
|
|
||||||
* Fully translatable app summaries and descriptions
|
|
||||||
|
|
||||||
* "What's New" section to show changes in current release
|
|
||||||
|
|
||||||
* Screenshots and feature graphics
|
|
||||||
|
|
||||||
* Support installing media, OTA, ZIP, etc. files
|
|
||||||
|
|
||||||
* Improved protection against tracking (HTTP ETag, TLS, etc.)
|
|
||||||
|
|
||||||
* Fully background updates with Privileged Extension
|
|
||||||
|
|
||||||
* Highlight donations to app developers
|
|
||||||
|
|
||||||
* Much faster index updates
|
|
||||||
|
|
||||||
### 1.0-alpha5 (2017-10-04)
|
|
||||||
|
|
||||||
* Fix bug that prevented translations from showing up on Android >= 7.0 (#987)
|
|
||||||
|
|
||||||
* Fix DB upgrade crash from 1.0-alpha3 --> 1.0-alpha4 (#1181)
|
|
||||||
|
|
||||||
### 1.0-alpha4 (2017-09-27)
|
|
||||||
|
|
||||||
* Added swipe gestures to the Updates tab
|
|
||||||
|
|
||||||
* Display warnings with actions in Updates tab for KnownVulns
|
|
||||||
|
|
||||||
* Translation updates
|
|
||||||
|
|
||||||
* Dark UI fixes
|
|
||||||
|
|
||||||
### 1.0-alpha3 (2017-09-12)
|
|
||||||
|
|
||||||
* Big UI performance improvements, especially with archive enabled
|
|
||||||
|
|
||||||
* Fixed crasher bugs
|
|
||||||
|
|
||||||
### 1.0-alpha2 (2017-09-04)
|
|
||||||
|
|
||||||
* Prevent HTTP ETag from being used as a tracking cookie
|
|
||||||
|
|
||||||
* Improved screenshots layout
|
|
||||||
|
|
||||||
* Properly clean up temp and cached files
|
|
||||||
|
|
||||||
* Dark mode fixes
|
|
||||||
|
|
||||||
### 1.0-alpha1 (2017-07-18)
|
|
||||||
|
|
||||||
* Fix bug removing apps from repos (#568)
|
|
||||||
|
|
||||||
* Much faster index updates
|
|
||||||
|
|
||||||
### 1.0-alpha0 (2017-07-08)
|
|
||||||
|
|
||||||
* Support installing media, OTA, ZIP, etc. files
|
|
||||||
|
|
||||||
* Fully support APKs signed by multiple signing keys
|
|
||||||
|
|
||||||
* Tibetan translation
|
|
||||||
|
|
||||||
* Remove related apps and categories after disabling repo
|
|
||||||
|
|
||||||
### 0.104 (2017-06-16)
|
|
||||||
|
|
||||||
* Support apps with APKs signed by more than one key
|
|
||||||
|
|
||||||
* Fix F-Droid update notifications that never go away
|
|
||||||
|
|
||||||
### 0.103.2 (2017-05-31)
|
|
||||||
|
|
||||||
* Fix problematic updates and notifications (#1013)
|
|
||||||
|
|
||||||
* Language and stability updates
|
|
||||||
|
|
||||||
### 0.103.1 (2017-05-12)
|
|
||||||
|
|
||||||
* Various stability fixes
|
|
||||||
|
|
||||||
* Bits of text no longer randomly switch to English
|
|
||||||
|
|
||||||
* Fix send F-Droid via Bluetooth on Android 7.x
|
|
||||||
|
|
||||||
### 0.103 (2017-05-02)
|
|
||||||
|
|
||||||
* Complete overhaul of the user experience
|
|
||||||
|
|
||||||
* Complete support for localization, including app descriptions
|
|
||||||
|
|
||||||
* Support for screenshots, graphics, and "What's New" texts
|
|
||||||
|
|
||||||
* Stable support for F-Droid Privileged Extension
|
|
||||||
|
|
||||||
### 0.102.3 (2017-04-01)
|
|
||||||
|
|
||||||
* Fix issue with installing from the wrong repo (#909)
|
|
||||||
|
|
||||||
* Allow F-Droid to update Privileged Extension (#911)
|
|
||||||
|
|
||||||
* Ignore errors that are likely due to filesystem corruption (#855)
|
|
||||||
|
|
||||||
* Improve installs/uninstalls with Privileged Extension on 7.x
|
|
||||||
|
|
||||||
### 0.102.2 (2017-03-14)
|
|
||||||
|
|
||||||
* Fix installing with Privileged Extension on 7.x
|
|
||||||
|
|
||||||
* Detect app updates via sytem OTA updates (#819)
|
|
||||||
|
|
||||||
### 0.102.1 (2017-02-24)
|
|
||||||
|
|
||||||
* Detect installed/uninstalled state more reliably (#854)
|
|
||||||
|
|
||||||
* Ensure dark theme gets applied everywhere (#750)
|
|
||||||
|
|
||||||
### 0.102 (2016-11-28)
|
|
||||||
|
|
||||||
* Optionally keep install history
|
|
||||||
|
|
||||||
* Optionally let repositories request installs and uninstalls of apps
|
|
||||||
|
|
||||||
* Support for APK extension files (OBB)
|
|
||||||
|
|
||||||
* Enable TLS v1.2 for HTTPS on all devices that support it (again)
|
|
||||||
|
|
||||||
* Better support for multiple repositories providing the same app
|
|
||||||
|
|
||||||
### 0.101 (2016-09-28)
|
|
||||||
|
|
||||||
* Support for Android 2.2 is dropped, 2.3.3 or later is now required
|
|
||||||
|
|
||||||
* Fixed APK Cache bugs, requiring the cache time be reset to one day
|
|
||||||
|
|
||||||
* Use Privileged Extension by default if installed
|
|
||||||
|
|
||||||
* Optionally grey out apps that require Anti-Features
|
|
||||||
|
|
||||||
* Translation updates
|
|
||||||
|
|
||||||
### 0.100.1 (2016-06-21)
|
|
||||||
|
|
||||||
* Fix background crash after installing or updating apps
|
|
||||||
|
|
||||||
* Fix crash if an app has a short description
|
|
||||||
|
|
||||||
* Fix background crash in the Wi-Fi state change swap service
|
|
||||||
|
|
||||||
* Fix crash if there is a problem listing the cached files to delete
|
|
||||||
|
|
||||||
### 0.100 (2016-06-07)
|
|
||||||
|
|
||||||
* Ability to download apps in the background
|
|
||||||
|
|
||||||
* Significant performance improvements when updating repositories
|
|
||||||
|
|
||||||
* Add setting to enable automatic downloading of updates
|
|
||||||
|
|
||||||
* Apks can now be kept on disk for various amounts of time
|
|
||||||
|
|
||||||
* Show what repository each apk comes from
|
|
||||||
|
|
||||||
* Better support for Android 6.0
|
|
||||||
|
|
||||||
* Translation updates
|
|
||||||
|
|
||||||
### 0.99.2 (2016-04-01)
|
|
||||||
|
|
||||||
* Stability fixes for app swap
|
|
||||||
|
|
||||||
### 0.99.1 (2016-03-22)
|
|
||||||
|
|
||||||
* Re-enable SNI support on Guardian Project repo
|
|
||||||
|
|
||||||
### 0.99 (2016-02-29)
|
|
||||||
|
|
||||||
* Add simple "Use Tor" setting
|
|
||||||
|
|
||||||
* Enable TLS v1.2 for HTTPS on all devices that support it
|
|
||||||
|
|
||||||
* Fix a series of Swap crashes, including a background crash
|
|
||||||
|
|
||||||
* Fix most Android lint errors and some warnings
|
|
||||||
|
|
||||||
* Translation updates
|
|
||||||
|
|
||||||
### 0.98.1 (2016-02-14)
|
|
||||||
|
|
||||||
* Fix crash when entering only a space into the search dialog
|
|
||||||
|
|
||||||
* Fix crash when entering slashes into the search dialog
|
|
||||||
|
|
||||||
* Fix potential fragment crash when installing/removing a package
|
|
||||||
|
|
||||||
* Fix crash when adding malformed URIs as repos
|
|
||||||
|
|
||||||
* Fix Android.mk build when the output dir. is a relative path
|
|
||||||
|
|
||||||
### 0.98 (2016-02-01)
|
|
||||||
|
|
||||||
* Add opt-in crash reporting via ACRA
|
|
||||||
|
|
||||||
* Add support for HTTP basic authentication of repos
|
* Add support for HTTP basic authentication of repos
|
||||||
|
|
||||||
@ -674,8 +8,6 @@
|
|||||||
|
|
||||||
* Add English to the list of languages to use in the settings
|
* Add English to the list of languages to use in the settings
|
||||||
|
|
||||||
* Fix "database is locked" seemingly random crash
|
|
||||||
|
|
||||||
* Cache installed app information in the database
|
* Cache installed app information in the database
|
||||||
|
|
||||||
* Add counter to the installed tab
|
* Add counter to the installed tab
|
||||||
@ -684,8 +16,6 @@
|
|||||||
|
|
||||||
* Translation updates
|
* Translation updates
|
||||||
|
|
||||||
* Display license and author information in app details where appropriate
|
|
||||||
|
|
||||||
### 0.97 (2015-11-07)
|
### 0.97 (2015-11-07)
|
||||||
|
|
||||||
* Add option to prompt for unstable updates globally
|
* Add option to prompt for unstable updates globally
|
||||||
@ -724,7 +54,7 @@
|
|||||||
|
|
||||||
* Move the repo index update to a notification
|
* Move the repo index update to a notification
|
||||||
|
|
||||||
* Handle APK downloads without a dialog
|
* Handle apk downloads without a dialog
|
||||||
|
|
||||||
* Don't let users try to uninstall system apps that haven't been updated
|
* Don't let users try to uninstall system apps that haven't been updated
|
||||||
|
|
||||||
@ -767,14 +97,14 @@
|
|||||||
and now easy to set up with root privileges
|
and now easy to set up with root privileges
|
||||||
|
|
||||||
* Speed up and simplify repo update process by streaming the data out of the
|
* Speed up and simplify repo update process by streaming the data out of the
|
||||||
JAR file directly
|
jar file directly
|
||||||
|
|
||||||
* Can now manually add swap repo via "Repositories" screen
|
* Can now manually add swap repo via "Repositories" screen
|
||||||
|
|
||||||
* Using NFC during swap now initiates a proper swap, rather than redirecting to
|
* Using NFC during swap now initiates a proper swap, rather than redirecting to
|
||||||
the "Repositories" screen
|
the "Repositories" screen
|
||||||
|
|
||||||
* Drop Ant support to greatly simplify the build process and its maintenance
|
* Drop ant support to greatly simplify the build process and its maintenance
|
||||||
|
|
||||||
### 0.92 (2015-06-08)
|
### 0.92 (2015-06-08)
|
||||||
|
|
||||||
@ -782,7 +112,7 @@
|
|||||||
|
|
||||||
* Update Universal-Image-Loader to 1.9.4
|
* Update Universal-Image-Loader to 1.9.4
|
||||||
|
|
||||||
* Make APK downloads progress be measured in kilobytes instead of bytes
|
* Make Apk downloads progress be measured in kilobytes instead of bytes
|
||||||
|
|
||||||
* Add missing Sardinian language to the preferences
|
* Add missing Sardinian language to the preferences
|
||||||
|
|
||||||
@ -795,9 +125,9 @@
|
|||||||
since it's not needed to use our own external app directory
|
since it's not needed to use our own external app directory
|
||||||
|
|
||||||
* Fix a crash occuring if the user triggered a repo update that got rid of
|
* Fix a crash occuring if the user triggered a repo update that got rid of
|
||||||
more than 450 APKs at once
|
more than 450 apks at once
|
||||||
|
|
||||||
* Properly cache APK files on the SD card if configured this way
|
* Properly cache apk files on the SD card if configured this way
|
||||||
|
|
||||||
* Drop support for unsigned repos in favour of signed ones and TOFU support
|
* Drop support for unsigned repos in favour of signed ones and TOFU support
|
||||||
|
|
||||||
@ -811,7 +141,7 @@
|
|||||||
|
|
||||||
* Don't crash if links on descriptions cannot be handled by any application
|
* Don't crash if links on descriptions cannot be handled by any application
|
||||||
|
|
||||||
* Support building as part of a ROM via an Android.mk using Gradle
|
* Support building as part of a ROM via an Android.mk using gradle
|
||||||
|
|
||||||
### 0.88 (2015-04-28)
|
### 0.88 (2015-04-28)
|
||||||
|
|
||||||
@ -821,7 +151,7 @@
|
|||||||
* User interface language can now be changed from inside the F-Droid
|
* User interface language can now be changed from inside the F-Droid
|
||||||
preferences without changing the system language (locale)
|
preferences without changing the system language (locale)
|
||||||
|
|
||||||
* Fix an issue where XML files could pile up in the data directory
|
* Fix an issue where xml files could pile up in the data directory
|
||||||
|
|
||||||
* Improve app and search link handling while also adding supporting for Amazon
|
* Improve app and search link handling while also adding supporting for Amazon
|
||||||
and Google Play links
|
and Google Play links
|
||||||
@ -831,12 +161,12 @@
|
|||||||
|
|
||||||
* Show a message to the user when there are no apps to display.
|
* Show a message to the user when there are no apps to display.
|
||||||
|
|
||||||
* Swapping is now two-way. Connecting to a swap on one device will
|
* Swapping is now two way. Connecting to a swap on one device will
|
||||||
initiate a swap on the other device
|
initiate a swap on the other device.
|
||||||
|
|
||||||
* Small UI fixes to avoid overlapping text and improve app version ellipsizing
|
* Small UI fixes to avoid overlapping text and improve app version ellipsizing
|
||||||
|
|
||||||
* Split up search terms when querying the app database—"fire fox" now
|
* Split up search terms when querying the app database - "fire fox" now
|
||||||
matches FireFox
|
matches FireFox
|
||||||
|
|
||||||
* Ignore trailing paces in search terms introduced by some input methods
|
* Ignore trailing paces in search terms introduced by some input methods
|
||||||
@ -853,7 +183,7 @@
|
|||||||
|
|
||||||
* Fix issue that caused the installed state label to sometimes not be updated
|
* Fix issue that caused the installed state label to sometimes not be updated
|
||||||
|
|
||||||
* Support for future devices with more than two CPU architectures
|
* Support for future devices with more than two cpu architectures
|
||||||
|
|
||||||
* Show when packages are installed but not via F-Droid (mismatching signature)
|
* Show when packages are installed but not via F-Droid (mismatching signature)
|
||||||
|
|
||||||
@ -882,7 +212,7 @@
|
|||||||
|
|
||||||
* Update Universal-Image-Loader and the Support libraries
|
* Update Universal-Image-Loader and the Support libraries
|
||||||
|
|
||||||
* Switch the directory structure to better suit building with Gradle
|
* Switch the directory structure to better suit building with gradle
|
||||||
|
|
||||||
* Translation updates
|
* Translation updates
|
||||||
|
|
||||||
@ -904,14 +234,14 @@
|
|||||||
* HTTP Proxy support in Preferences
|
* HTTP Proxy support in Preferences
|
||||||
|
|
||||||
* Directly send installed apps to other devices via Bluetooth and Android Beam
|
* Directly send installed apps to other devices via Bluetooth and Android Beam
|
||||||
(NFC+Bluetooth), also compatible with Samsung/HTC S Beam
|
(NFC+Bluetooth), also compatible with Samsung/HTC S-Beam
|
||||||
|
|
||||||
* Initial support for root and system installers, allowing the client to
|
* Initial support for root and system installers, allowing the client to
|
||||||
install APKs directly on its own
|
install apks directly on its own
|
||||||
|
|
||||||
* Increased performance when updating from repository with many apps
|
* Increased performance when updating from repository with many apps
|
||||||
|
|
||||||
* Switch to AppCompat from the Support library
|
* Switch to Appcompat from the Support library
|
||||||
|
|
||||||
* Fix some crashes
|
* Fix some crashes
|
||||||
|
|
||||||
@ -950,7 +280,7 @@
|
|||||||
* Send F-Droid via Bluetooth to any device that supports receiving APKs via
|
* Send F-Droid via Bluetooth to any device that supports receiving APKs via
|
||||||
Bluetooth (stock Android blocks APKs, most ROMs allow them)
|
Bluetooth (stock Android blocks APKs, most ROMs allow them)
|
||||||
|
|
||||||
* NFC support: Beam repo configs from the repo detail view (Android 4.0+),
|
* NFC support: beam repo configs from the repo detail view (Android 4.0+),
|
||||||
beam the F-Droid.apk from F-Droid's main screen (Android 4.1+)
|
beam the F-Droid.apk from F-Droid's main screen (Android 4.1+)
|
||||||
|
|
||||||
* Support for repositories using self-signed HTTPS certificates through
|
* Support for repositories using self-signed HTTPS certificates through
|
||||||
@ -964,7 +294,7 @@
|
|||||||
|
|
||||||
* Major internal changes to enable F-Droid to handle repos with thousands
|
* Major internal changes to enable F-Droid to handle repos with thousands
|
||||||
of apps without slowing down too much. These internal changes will also make
|
of apps without slowing down too much. These internal changes will also make
|
||||||
new features easier to implement
|
new features easier to implement.
|
||||||
|
|
||||||
* Various fixes to layout issues introduced in 0.58
|
* Various fixes to layout issues introduced in 0.58
|
||||||
|
|
||||||
@ -978,7 +308,7 @@
|
|||||||
|
|
||||||
* Tweaked some layouts, especially the app lists and their compact layout
|
* Tweaked some layouts, especially the app lists and their compact layout
|
||||||
|
|
||||||
* App lists now show more useful version information: Current version names,
|
* App lists now show more useful version information: current version names,
|
||||||
rather than number of versions available
|
rather than number of versions available
|
||||||
|
|
||||||
* Reduce scroll lag in app lists by caching views in a ViewHolder
|
* Reduce scroll lag in app lists by caching views in a ViewHolder
|
||||||
@ -994,21 +324,21 @@
|
|||||||
can see what the checkbox preferences actually mean and what the edit and
|
can see what the checkbox preferences actually mean and what the edit and
|
||||||
list preferences are set at
|
list preferences are set at
|
||||||
|
|
||||||
* Support for Dogecoin donation method added (wow)
|
* Support for dogecoin donation method added (wow)
|
||||||
|
|
||||||
* Don't keep app icons older than 30 days in disc cache
|
* Don't keep app icons older than 30 days on disc cache
|
||||||
|
|
||||||
* Always include incompatible APKs in memory to avoid issues with apps
|
* Always include incompatible apks in memory to avoid issues with apps
|
||||||
seemingly not having any APKs available
|
seemingly not having any apks available
|
||||||
|
|
||||||
* Fixed a crash when trying to access a non-existing app
|
* Fixed a crash when trying to access a non-existing app
|
||||||
|
|
||||||
* F-Droid registers with Android to receive F-Droid URIs https://\*/fdroid/repo
|
* F-Droid registers with Android to receive F-Droid URIs https://\*/fdroid/repo
|
||||||
and fdroidrepos://
|
and fdroidrepos://
|
||||||
|
|
||||||
* Support including signing key fingerprint in repo URIs
|
* support including signing key fingerprint in repo URIs
|
||||||
|
|
||||||
* When adding new repos that include the fingerprint, check to see whether
|
* when adding new repos that include the fingerprint, check to see whether
|
||||||
that repo exists in F-Droid already, and if the fingerprints match
|
that repo exists in F-Droid already, and if the fingerprints match
|
||||||
|
|
||||||
* Other minor bug fixes
|
* Other minor bug fixes
|
||||||
@ -1019,12 +349,12 @@
|
|||||||
|
|
||||||
* Fixed problems with category selection and permission lists on Android 2.X devices.
|
* Fixed problems with category selection and permission lists on Android 2.X devices.
|
||||||
|
|
||||||
* Lots of translation updates, including new Norwegian translation
|
* Lots of translation updates, including new Norwegian translation.
|
||||||
|
|
||||||
### 0.54 (2013-11-05)
|
### 0.54 (2013-11-05)
|
||||||
|
|
||||||
* New options on the App Details screen to ignore all future updates for that
|
* New options on the App Details screen to ignore all future updates for that
|
||||||
particular app, or ignore just the current update
|
particular app, or ignore just the current update.
|
||||||
|
|
||||||
* Apps with Anti-features are no longer hidden, and the corresponding
|
* Apps with Anti-features are no longer hidden, and the corresponding
|
||||||
preferences to unhide them are removed. Instead they are clearly marked on the
|
preferences to unhide them are removed. Instead they are clearly marked on the
|
||||||
@ -1033,7 +363,7 @@
|
|||||||
* Apps with incompatible native code architecture requirements are now correctly
|
* Apps with incompatible native code architecture requirements are now correctly
|
||||||
filtered.
|
filtered.
|
||||||
|
|
||||||
* A bug that prevented update notifications from appearing has been fixed
|
* A bug that prevented update notifications from appearing has been fixed.
|
||||||
|
|
||||||
* Theming support, with Light and Dark themes.
|
* Theming support, with Light and Dark themes.
|
||||||
|
|
||||||
@ -1042,29 +372,29 @@
|
|||||||
installation.
|
installation.
|
||||||
|
|
||||||
* All app donation options have been grouped into a submenu, and Litecoin
|
* All app donation options have been grouped into a submenu, and Litecoin
|
||||||
donation support has been added
|
donation support has been added.
|
||||||
|
|
||||||
* App filter settings now take effect immediately
|
* App filter settings now take effect immediately.
|
||||||
|
|
||||||
* APK native code ABIs are now shown in expert mode
|
* Apk native code ABIs are now shown in expert mode.
|
||||||
|
|
||||||
* Search URIs for market://search and fdroid.search: are now handled
|
* Search uris for market://search and fdroid.search: are now handled.
|
||||||
|
|
||||||
* A problem with ActionBar Up navigation on some devices has been fixed
|
* A problem with ActionBar Up navigation on some devices has been fixed.
|
||||||
|
|
||||||
* Other minor bug fixes, and adjustments to spacings and layouts
|
* Other minor bug fixes, and adjustments to spacings and layouts.
|
||||||
|
|
||||||
* Lots of translation updates
|
* Lots of translation updates.
|
||||||
|
|
||||||
### 0.50 (2013-08-20)
|
### 0.50 (2013-08-20)
|
||||||
|
|
||||||
* New basic app sharing functionality
|
* New basic app sharing functionality
|
||||||
|
|
||||||
* Handle f-droid.org web repo as well as market:// app URIs
|
* Handle f-droid.org web repo as well as market:// app uris
|
||||||
|
|
||||||
* Search by just typing on main screen and search results screen
|
* Search by just typing on main screen and search results screen
|
||||||
|
|
||||||
* Flattr and bitcoin donation methods added
|
* Flattr and Bitcoin donation methods added
|
||||||
|
|
||||||
* Noticeable speedups when returning from installs and uninstalls
|
* Noticeable speedups when returning from installs and uninstalls
|
||||||
|
|
||||||
|
@ -26,16 +26,14 @@ track of modifications and fuzzy translations. Applying translations manually
|
|||||||
skips all of the fixes and checks, and overrides the fuzzy state of strings.
|
skips all of the fixes and checks, and overrides the fuzzy state of strings.
|
||||||
|
|
||||||
Note that you cannot change the English strings on Weblate. If you have any
|
Note that you cannot change the English strings on Weblate. If you have any
|
||||||
suggestions on how to improve them, open an issue or merge request like you
|
suggestions on how to improve them, open a merge request like you would if you
|
||||||
would if you were making code changes. This way the changes can be reviewed
|
were making code changes. This way the changes can be reviewed before the
|
||||||
before the source strings on Weblate are changed.
|
source strings on Weblate are changed.
|
||||||
|
|
||||||
|
|
||||||
## Code Style
|
## Code Style
|
||||||
|
|
||||||
We follow the default Android Studio code formatter (e.g. `Ctrl-Alt-L`). This
|
We follow the [Android Java style](https://source.android.com/source/code-style.html).
|
||||||
should be more or less the same as [Android Java
|
Some key points:
|
||||||
style](https://source.android.com/source/code-style.html). Some key points:
|
|
||||||
|
|
||||||
* Four space indentation
|
* Four space indentation
|
||||||
* UTF-8 source files
|
* UTF-8 source files
|
||||||
@ -47,35 +45,63 @@ style](https://source.android.com/source/code-style.html). Some key points:
|
|||||||
* Braces are always used after if, for and while
|
* Braces are always used after if, for and while
|
||||||
|
|
||||||
The current code base doesn't follow it entirely, but new code should follow
|
The current code base doesn't follow it entirely, but new code should follow
|
||||||
it. We enforce some of these, but not all, via `./gradlew checkstyle`.
|
it. We enforce some of these, but not all, via checkstyle.
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
To get all the logcat messages by F-Droid, you can run:
|
||||||
|
|
||||||
|
adb logcat | grep `adb shell ps | grep org.fdroid.fdroid | cut -c10-15`
|
||||||
|
|
||||||
|
## Building tips
|
||||||
|
|
||||||
|
* Use `gradle --daemon` if you are going to build F-Droid multiple times.
|
||||||
|
* If you get a message like `Could not find com.android.support:support-...`,
|
||||||
|
make sure that you have the latest Android support maven repository.
|
||||||
|
|
||||||
## Running the test suite
|
## Running the test suite
|
||||||
|
|
||||||
Before pushing commits to a merge request, make sure this passes:
|
|
||||||
|
|
||||||
./gradlew checkstyle pmd lint
|
|
||||||
|
|
||||||
In order to run the F-Droid test suite, you will need to have either a real device
|
In order to run the F-Droid test suite, you will need to have either a real device
|
||||||
connected via `adb`, or an emulator running. Then, execute the following from the
|
connected via `adb`, or an emulator running. Then, execute the following from the
|
||||||
command line:
|
command line:
|
||||||
|
|
||||||
./gradlew check
|
gradle connectedCheck
|
||||||
|
|
||||||
Many important tests require a device or emulator, but do not work in GitLab CI.
|
Note that the CI already runs the tests on an emulator, so you don't
|
||||||
That mean they need to be run locally, and that is usually easiest in Android
|
necessarily have to do this yourself if you open a merge request as the tests
|
||||||
Studio rather than the command line.
|
will get run.
|
||||||
|
|
||||||
For a quick way to run a specific JUnit/Robolectric test:
|
## Versioning
|
||||||
|
|
||||||
./gradlew testFullDebugUnitTest --tests *LocaleSelectionTest*
|
Each stable version follows the `X.Y` pattern. Hotfix releases - i.e. when a
|
||||||
|
stable has an important bug that needs immediate fixing - will follow the
|
||||||
|
`X.Y.Z` pattern.
|
||||||
|
|
||||||
For a quick way to run a specific emulator test:
|
Before each stable release, a number of alpha releases will be released. They
|
||||||
|
will follow the pattern `X.Y-alphaN`, where `N` is the current alpha number.
|
||||||
|
These will usually include changes and new features that have not been tested
|
||||||
|
enough for a stable release, so use at your own risk. Testers and reporters
|
||||||
|
are very welcome.
|
||||||
|
|
||||||
./gradlew connectedFullDebugAndroidTest \
|
The version codes use a number of digits per each of these keys: `XYYZNN`.
|
||||||
-Pandroid.testInstrumentationRunnerArguments.class=org.fdroid.fdroid.MainActivityExpressoTest
|
So for example, 1.3.1 would be `103150` and 0.95-alpha13 would be `95013`
|
||||||
|
(leading zeros are omitted).
|
||||||
|
|
||||||
|
Note that we use a trailing `50` for actual stable releases, so alphas are
|
||||||
|
limited to `-alpha49`.
|
||||||
|
|
||||||
## Making releases
|
This is an example of a release process for **0.95**:
|
||||||
|
|
||||||
See https://gitlab.com/fdroid/wiki/-/wikis/Internal/Release-Process#fdroidclient
|
* We are currently at stable **0.94**
|
||||||
|
* **0.95-alpha1** is released
|
||||||
|
* **0.95-alpha2** is released
|
||||||
|
* **0.95-alpha3** is released
|
||||||
|
* `stable-v0.95` is branched and frozen
|
||||||
|
* **0.95** is released
|
||||||
|
* A bug is reported on the stable release and fixed
|
||||||
|
* **0.95.1** is released with only that fix
|
||||||
|
|
||||||
|
As soon as a stable is tagged, master will move on to `-alpha0` on the next
|
||||||
|
version. This is a temporary measure - until `-alpha1` is released - so that
|
||||||
|
moving from stable to master doesn't require a downgrade. `-alpha0` versions
|
||||||
|
will not be tagged nor released.
|
||||||
|
@ -1,31 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
|
||||||
* Copyright (C) 2010-2012 Ciaran Gultnieks
|
|
||||||
* Copyright (C) 2013-2017 Peter Serwylo
|
|
||||||
* Copyright (C) 2014-2015 Daniel Martí
|
|
||||||
* Copyright (C) 2014-2018 Hans-Christoph Steiner
|
|
||||||
* Copyright (C) 2016 Dominik Schürmann
|
|
||||||
* Copyright (C) 2018 Torsten Grote
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 3
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
-->
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="org.fdroid.fdroid"
|
package="org.fdroid.fdroid"
|
||||||
android:installLocation="auto">
|
android:installLocation="auto"
|
||||||
|
android:versionCode="98004"
|
||||||
|
android:versionName="0.98-alpha4"
|
||||||
|
>
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
tools:overrideLibrary="org.thoughtcrime.ssl.pinning"
|
||||||
|
android:minSdkVersion="8"
|
||||||
|
android:targetSdkVersion="22"
|
||||||
|
/>
|
||||||
|
|
||||||
<supports-screens
|
<supports-screens
|
||||||
android:anyDensity="true"
|
android:anyDensity="true"
|
||||||
@ -33,7 +19,8 @@
|
|||||||
android:normalScreens="true"
|
android:normalScreens="true"
|
||||||
android:resizeable="true"
|
android:resizeable="true"
|
||||||
android:smallScreens="true"
|
android:smallScreens="true"
|
||||||
android:xlargeScreens="true" />
|
android:xlargeScreens="true"
|
||||||
|
/>
|
||||||
|
|
||||||
<uses-feature
|
<uses-feature
|
||||||
android:name="android.hardware.telephony"
|
android:name="android.hardware.telephony"
|
||||||
@ -41,116 +28,93 @@
|
|||||||
<uses-feature
|
<uses-feature
|
||||||
android:name="android.hardware.wifi"
|
android:name="android.hardware.wifi"
|
||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<uses-feature
|
<uses-feature
|
||||||
android:name="android.hardware.touchscreen"
|
android:name="android.hardware.touchscreen"
|
||||||
android:required="false" />
|
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.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_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_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
|
android:maxSdkVersion="18" />
|
||||||
<uses-permission android:name="android.permission.NFC" />
|
<uses-permission android:name="android.permission.NFC" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
||||||
|
<uses-permission android:name="org.fdroid.fdroid.privileged.USE_SERVICE" />
|
||||||
|
|
||||||
|
<!-- Indicate that F-Droid may request root access (introduced by Koush's Superuser app)
|
||||||
|
This permission is deprecated, but necessary for some old superuser
|
||||||
|
apps to actually grant superuser access to F-Droid. -->
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".FDroidApp"
|
android:name="FDroidApp"
|
||||||
android:allowBackup="true"
|
|
||||||
android:description="@string/app_description"
|
|
||||||
android:fullBackupContent="@xml/backup_rules"
|
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:label="BobStore"
|
android:label="@string/app_name"
|
||||||
android:networkSecurityConfig="@xml/network_security_config"
|
android:description="@string/app_description"
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:theme="@style/AppThemeLight"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.App">
|
>
|
||||||
|
|
||||||
|
<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.TempApkProvider"
|
||||||
|
android:name="org.fdroid.fdroid.data.TempApkProvider"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:authorities="org.fdroid.fdroid.data.TempAppProvider"
|
||||||
|
android:name="org.fdroid.fdroid.data.TempAppProvider"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:authorities="org.fdroid.fdroid.data.InstalledAppProvider"
|
||||||
|
android:name="org.fdroid.fdroid.data.InstalledAppProvider"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="android.app.default_searchable"
|
||||||
|
android:value=".FDroid" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".privileged.views.InstallConfirmActivity"
|
android:name=".FDroid"
|
||||||
android:configChanges="layoutDirection|locale"
|
|
||||||
android:excludeFromRecents="true"
|
|
||||||
android:label="@string/menu_install"
|
|
||||||
android:parentActivityName=".views.main.MainActivity">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.main.MainActivity" />
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".privileged.views.UninstallDialogActivity"
|
|
||||||
android:excludeFromRecents="true" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".views.ManageReposActivity"
|
|
||||||
android:configChanges="layoutDirection|locale"
|
|
||||||
android:label="@string/menu_manage"
|
|
||||||
android:launchMode="singleTask"
|
|
||||||
android:parentActivityName=".views.main.MainActivity">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.main.MainActivity" />
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".NfcNotEnabledActivity"
|
|
||||||
android:configChanges="layoutDirection|locale"
|
|
||||||
android:noHistory="true" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".views.RepoDetailsActivity"
|
|
||||||
android:configChanges="layoutDirection|locale"
|
|
||||||
android:label="@string/repo_details"
|
|
||||||
android:parentActivityName=".views.ManageReposActivity"
|
|
||||||
android:windowSoftInputMode="stateHidden">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.ManageReposActivity" />
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".views.AppDetailsActivity"
|
|
||||||
android:configChanges="layoutDirection|locale"
|
|
||||||
android:exported="true"
|
|
||||||
android:label="@string/app_details"
|
|
||||||
android:parentActivityName=".views.main.MainActivity">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.main.MainActivity" />
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".acra.CrashReportActivity"
|
|
||||||
android:excludeFromRecents="true"
|
|
||||||
android:finishOnTaskLaunch="true"
|
|
||||||
android:launchMode="singleInstance"
|
|
||||||
android:process=":error_report" />
|
|
||||||
|
|
||||||
<activity android:name=".views.ScreenShotsActivity" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".data.ObbUrlActivity"
|
|
||||||
android:theme="@android:style/Theme.NoDisplay" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".installer.DefaultInstallerActivity"
|
|
||||||
android:theme="@style/AppThemeTransparent" />
|
|
||||||
<activity
|
|
||||||
android:name=".installer.ErrorDialogActivity"
|
|
||||||
android:theme="@style/AppThemeTransparent" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".views.main.MainActivity"
|
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:windowSoftInputMode="adjustResize">
|
android:windowSoftInputMode="adjustResize"
|
||||||
|
android:configChanges="layoutDirection|locale|keyboardHidden|orientation|screenSize" >
|
||||||
|
|
||||||
|
<!-- App URLs -->
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
|
||||||
<!-- App URLs -->
|
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
@ -160,40 +124,17 @@
|
|||||||
<data android:scheme="fdroid.app" />
|
<data android:scheme="fdroid.app" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
<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" />
|
|
||||||
<data android:host="f-droid.org" />
|
|
||||||
<data android:host="www.f-droid.org" />
|
|
||||||
<data android:host="staging.f-droid.org" />
|
|
||||||
<data android:pathPrefix="/app/" />
|
|
||||||
<data android:pathPrefix="/packages/" />
|
|
||||||
<data android:pathPrefix="/repository/browse" />
|
|
||||||
<!-- support localized URLs -->
|
|
||||||
<data android:pathPattern="/.*/packages/.*" />
|
|
||||||
<data android:pathPattern="/.*/packages/.*/" />
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data android:scheme="http" />
|
<data android:scheme="http" />
|
||||||
|
<data android:scheme="https" />
|
||||||
<data android:host="f-droid.org" />
|
<data android:host="f-droid.org" />
|
||||||
<data android:host="www.f-droid.org" />
|
<data android:host="www.f-droid.org" />
|
||||||
<data android:host="staging.f-droid.org" />
|
|
||||||
<data android:pathPrefix="/app/" />
|
<data android:pathPrefix="/app/" />
|
||||||
<data android:pathPrefix="/packages/" />
|
|
||||||
<data android:pathPrefix="/repository/browse" />
|
|
||||||
<!-- support localized URLs -->
|
|
||||||
<data android:pathPattern="/.*/packages/.*" />
|
|
||||||
<data android:pathPattern="/.*/packages/.*/" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@ -202,12 +143,23 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data
|
<data android:scheme="http" />
|
||||||
android:host="details"
|
<data android:scheme="https" />
|
||||||
android:scheme="market" />
|
<data android:host="f-droid.org" />
|
||||||
|
<data android:host="www.f-droid.org" />
|
||||||
|
<data android:pathPrefix="/repository/browse" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
<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" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
@ -225,13 +177,10 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data
|
<data android:scheme="amzn" android:host="apps" android:path="/android" />
|
||||||
android:host="apps"
|
|
||||||
android:path="/android"
|
|
||||||
android:scheme="amzn" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
@ -244,7 +193,6 @@
|
|||||||
<data android:path="/gp/mas/dl/android" />
|
<data android:path="/gp/mas/dl/android" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
|
||||||
<!-- Search URLs -->
|
<!-- Search URLs -->
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@ -262,12 +210,10 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data
|
<data android:scheme="market" android:host="search" />
|
||||||
android:host="search"
|
|
||||||
android:scheme="market" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
@ -283,7 +229,39 @@
|
|||||||
<action android:name="android.intent.action.SEARCH" />
|
<action android:name="android.intent.action.SEARCH" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<intent-filter android:autoVerify="false">
|
<meta-data
|
||||||
|
android:name="android.app.searchable"
|
||||||
|
android:resource="@xml/searchable" />
|
||||||
|
|
||||||
|
<!-- 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>
|
||||||
|
|
||||||
|
<!-- Repo URLs -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This intent serves two purposes: Swapping apps between devices and adding a
|
||||||
|
repo from a website (e.g. https://guardianproject.info/fdroid/repo).
|
||||||
|
We intercept both of these situations in the FDroid activity, and then redirect
|
||||||
|
to the appropriate handler (swap handling, manage repos respectively) from there.
|
||||||
|
|
||||||
|
The reason for this is that the only differentiating factor is the presence
|
||||||
|
of a "swap=1" in the query string, and intent-filter is unable to deal with
|
||||||
|
query parameters. An alternative would be to do something like fdroidswap:// as
|
||||||
|
a scheme, but then we. Need to copy/paste all of this intent-filter stuff and
|
||||||
|
keep it up to date when it changes or a bug is found.
|
||||||
|
-->
|
||||||
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
@ -296,13 +274,13 @@
|
|||||||
character set, making for more compact QR Codes.
|
character set, making for more compact QR Codes.
|
||||||
-->
|
-->
|
||||||
<data android:scheme="http" />
|
<data android:scheme="http" />
|
||||||
<data
|
<data android:scheme="HTTP" />
|
||||||
android:scheme="HTTP"
|
|
||||||
tools:ignore="AppLinkUrlError" />
|
|
||||||
<data android:scheme="https" />
|
<data android:scheme="https" />
|
||||||
<data
|
<data android:scheme="HTTPS" />
|
||||||
android:scheme="HTTPS"
|
<data android:scheme="fdroidrepo" />
|
||||||
tools:ignore="AppLinkUrlError" />
|
<data android:scheme="FDROIDREPO" />
|
||||||
|
<data android:scheme="fdroidrepos" />
|
||||||
|
<data android:scheme="FDROIDREPOS" />
|
||||||
|
|
||||||
<data android:host="*" />
|
<data android:host="*" />
|
||||||
|
|
||||||
@ -319,12 +297,6 @@
|
|||||||
<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: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:path="/fdroid/archive" />
|
||||||
<data android:pathPattern="/fdroid/archive/*" />
|
<data android:pathPattern="/fdroid/archive/*" />
|
||||||
<data android:pathPattern="/.*/fdroid/archive" />
|
<data android:pathPattern="/.*/fdroid/archive" />
|
||||||
@ -333,8 +305,6 @@
|
|||||||
<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" />
|
|
||||||
<data android:pathPattern="/.*/.*/.*/.*/fdroid/archive/*" />
|
|
||||||
<!--
|
<!--
|
||||||
Some QR Code scanners don't respect custom schemes like fdroidrepo://,
|
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
|
so this is a workaround, since the local repo URL is all uppercase in
|
||||||
@ -345,233 +315,134 @@
|
|||||||
<data android:pathPattern="/.*/.*/FDROID/REPO" />
|
<data android:pathPattern="/.*/.*/FDROID/REPO" />
|
||||||
<data android:pathPattern="/.*/.*/.*/FDROID/REPO" />
|
<data android:pathPattern="/.*/.*/.*/FDROID/REPO" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
<!-- Repo URLs -->
|
android:name=".privileged.views.InstallConfirmActivity"
|
||||||
|
android:label="@string/menu_install"
|
||||||
<!--
|
android:parentActivityName=".FDroid"
|
||||||
This intent serves two purposes: Swapping apps between devices and adding a
|
android:configChanges="layoutDirection|locale" >
|
||||||
repo from a website (e.g. https://guardianproject.info/fdroid/repo).
|
<meta-data
|
||||||
We intercept both of these situations in the FDroid activity, and then redirect
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
to the appropriate handler (swap handling, manage repos respectively) from there.
|
android:value=".FDroid" />
|
||||||
|
</activity>
|
||||||
The reason for this is that the only differentiating factor is the presence
|
<activity
|
||||||
of a "swap=1" in the query string, and intent-filter is unable to deal with
|
android:name=".views.ManageReposActivity"
|
||||||
query parameters. An alternative would be to do something like fdroidswap:// as
|
android:label="@string/app_name"
|
||||||
a scheme, but then we need to copy/paste all of this intent-filter stuff and
|
android:launchMode="singleTask"
|
||||||
keep it up to date when it changes or a bug is found.
|
android:parentActivityName=".FDroid"
|
||||||
|
android:configChanges="layoutDirection|locale" >
|
||||||
This filter supports HTTP and HTTPS schemes. There is an additional filter for
|
<meta-data
|
||||||
fdroidrepo:// and fdroidrepos://
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
-->
|
android:value=".FDroid" />
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
|
||||||
<!--
|
<data android:mimeType="application/vnd.org.fdroid.fdroid.repo" />
|
||||||
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"
|
|
||||||
tools:ignore="AppLinkUrlError" />
|
|
||||||
<data android:scheme="fdroidrepos" />
|
|
||||||
<data
|
|
||||||
android:scheme="FDROIDREPOS"
|
|
||||||
tools:ignore="AppLinkUrlError" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name=".NfcNotEnabledActivity"
|
||||||
|
android:noHistory="true"
|
||||||
|
android:configChanges="layoutDirection|locale" />
|
||||||
|
<activity
|
||||||
|
android:name=".views.RepoDetailsActivity"
|
||||||
|
android:label="@string/repo_details"
|
||||||
|
android:parentActivityName=".views.ManageReposActivity"
|
||||||
|
android:windowSoftInputMode="stateHidden"
|
||||||
|
android:configChanges="layoutDirection|locale" >
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value=".views.ManageReposActivity" />
|
||||||
|
</activity>
|
||||||
|
|
||||||
<!--
|
<activity
|
||||||
Same as the intent filter listening for repositories via https://*/fdroid/repo, except this
|
android:name=".AppDetails"
|
||||||
looks for fdroidrepos://* and doesn't care what the path is.
|
android:label="@string/app_details"
|
||||||
-->
|
android:exported="true"
|
||||||
|
android:parentActivityName=".FDroid"
|
||||||
|
android:configChanges="layoutDirection|locale" >
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value=".FDroid" />
|
||||||
|
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:label="@string/menu_settings"
|
||||||
|
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.SwapWorkflowActivity"
|
||||||
|
android:parentActivityName=".FDroid"
|
||||||
|
android:theme="@style/SwapTheme.Wizard"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:configChanges="orientation|keyboardHidden">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
android:value=".FDroid" />
|
||||||
|
</activity>
|
||||||
|
<!-- Note: Theme.NoDisplay, this activity shows dialogs only -->
|
||||||
|
<activity
|
||||||
|
android:name=".privileged.install.InstallExtensionDialogActivity"
|
||||||
|
android:theme="@android:style/Theme.NoDisplay" />
|
||||||
|
<receiver
|
||||||
|
android:name=".privileged.install.InstallExtensionBootReceiver" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||||
|
|
||||||
<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>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
<receiver android:name=".receiver.StartupReceiver" >
|
||||||
<!-- Handle NFC tags detected from outside our application -->
|
|
||||||
|
|
||||||
<meta-data
|
|
||||||
android:name="android.app.searchable"
|
|
||||||
android:resource="@xml/searchable" />
|
|
||||||
|
|
||||||
</activity>
|
|
||||||
<activity android:name=".views.apps.AppListActivity" />
|
|
||||||
<activity
|
|
||||||
android:name=".views.installed.InstalledAppsActivity"
|
|
||||||
android:parentActivityName=".views.main.MainActivity">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.main.MainActivity" />
|
|
||||||
</activity>
|
|
||||||
<activity
|
|
||||||
android:name=".views.InstallHistoryActivity"
|
|
||||||
android:parentActivityName=".views.main.MainActivity">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value=".views.main.MainActivity" />
|
|
||||||
</activity>
|
|
||||||
<activity android:name=".AboutActivity" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".installer.FileInstallerActivity"
|
|
||||||
android:theme="@style/AppThemeTransparent" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.AppProvider"
|
|
||||||
android:authorities="${applicationId}.data.AppProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.RepoProvider"
|
|
||||||
android:authorities="${applicationId}.data.RepoProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
<!-- Note: AppThemeTransparent, this activity shows dialogs only -->
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.ApkProvider"
|
|
||||||
android:authorities="${applicationId}.data.ApkProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
<!-- Note: AppThemeTransparent, this activity shows dialogs only -->
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.TempApkProvider"
|
|
||||||
android:authorities="${applicationId}.data.TempApkProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
<!-- Note: AppThemeTransparent, this activity shows dialogs only -->
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.TempAppProvider"
|
|
||||||
android:authorities="${applicationId}.data.TempAppProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.InstalledAppProvider"
|
|
||||||
android:authorities="${applicationId}.data.InstalledAppProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.AppPrefsProvider"
|
|
||||||
android:authorities="${applicationId}.data.AppPrefsProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.PackageIdProvider"
|
|
||||||
android:authorities="${applicationId}.data.PackageIdProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.data.CategoryProvider"
|
|
||||||
android:authorities="${applicationId}.data.CategoryProvider"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="org.fdroid.fdroid.installer.ApkFileProvider"
|
|
||||||
android:authorities="${applicationId}.installer.ApkFileProvider"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/apk_file_provider" />
|
|
||||||
</provider>
|
|
||||||
<provider
|
|
||||||
android:name="androidx.core.content.FileProvider"
|
|
||||||
android:authorities="${applicationId}.installer"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/installer_file_provider" />
|
|
||||||
</provider>
|
|
||||||
<provider
|
|
||||||
android:name="androidx.work.impl.WorkManagerInitializer"
|
|
||||||
android:authorities="${applicationId}.workmanager-init"
|
|
||||||
android:exported="false"
|
|
||||||
tools:node="remove" />
|
|
||||||
|
|
||||||
<receiver android:name=".receiver.StartupReceiver">
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.HOME" />
|
<category android:name="android.intent.category.HOME" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<receiver android:name=".receiver.PackageManagerReceiver">
|
<receiver android:name=".receiver.PackageAddedReceiver" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.PACKAGE_ADDED" />
|
<action android:name="android.intent.action.PACKAGE_ADDED" />
|
||||||
<action android:name="android.intent.action.PACKAGE_CHANGED" />
|
|
||||||
|
<data android:scheme="package" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
<receiver android:name=".receiver.PackageUpgradedReceiver" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
||||||
|
|
||||||
|
<data android:scheme="package" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
<receiver android:name=".receiver.PackageRemovedReceiver" >
|
||||||
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
||||||
|
|
||||||
<data android:scheme="package" />
|
<data android:scheme="package" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<receiver
|
<receiver android:name=".receiver.WifiStateChangeReceiver" >
|
||||||
android:name=".NotificationBroadcastReceiver"
|
|
||||||
android:exported="false">
|
|
||||||
<!-- Doesn't require an intent-filter because it is explicitly invoked via Intent.setClass() -->
|
|
||||||
</receiver>
|
|
||||||
<receiver android:name=".receiver.DeviceStorageReceiver">
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.DEVICE_STORAGE_LOW" />
|
<action android:name="android.net.wifi.STATE_CHANGE" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
<receiver android:name=".receiver.DownloadManagerReceiver" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
<service
|
<service android:name=".UpdateService" />
|
||||||
android:name=".UpdateService"
|
<service android:name=".net.WifiStateChangeService" />
|
||||||
android:exported="false"
|
<service android:name=".localrepo.SwapService" />
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
<service
|
|
||||||
android:name=".UpdateJobService"
|
|
||||||
android:exported="false"
|
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
<service
|
|
||||||
android:name=".net.DownloaderService"
|
|
||||||
android:exported="false" />
|
|
||||||
<service
|
|
||||||
android:name=".installer.InstallerService"
|
|
||||||
android:exported="false"
|
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".DeleteCacheService"
|
|
||||||
android:exported="false"
|
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".net.ConnectivityMonitorService"
|
|
||||||
android:exported="false"
|
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".installer.InstallManagerService"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".installer.InstallHistoryService"
|
|
||||||
android:exported="false" />
|
|
||||||
<service
|
|
||||||
android:name=".installer.ObfInstallerService"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".data.InstalledAppProviderService"
|
|
||||||
android:exported="false"
|
|
||||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
||||||
<service
|
|
||||||
android:name=".AddRepoIntentService"
|
|
||||||
android:exported="false" />
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -71,28 +71,6 @@
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
details {
|
|
||||||
margin-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul > li {
|
|
||||||
padding: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul > li a {
|
|
||||||
font-size: xx-large;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul > li a img {
|
|
||||||
padding-right: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#download-from-web {
|
#download-from-web {
|
||||||
padding-left: 2em;
|
padding-left: 2em;
|
||||||
padding-right: 2em;
|
padding-right: 2em;
|
||||||
@ -127,12 +105,5 @@
|
|||||||
<img src="swap-tick-not-done.png" class="tick not-done" alt="Not done" />
|
<img src="swap-tick-not-done.png" class="tick not-done" alt="Not done" />
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<br/><br/><br/><br/>
|
|
||||||
<details>
|
|
||||||
<summary>Available Apps</summary>
|
|
||||||
<ul>
|
|
||||||
{{APP_LIST}}
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
BIN
F-Droid/assets/swap-icon.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
F-Droid/assets/swap-tick-done.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
F-Droid/assets/swap-tick-not-done.png
Normal file
After Width: | Height: | Size: 887 B |
228
F-Droid/build.gradle
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
apply plugin: 'com.android.application'
|
||||||
|
apply plugin: 'witness'
|
||||||
|
apply plugin: 'checkstyle'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(':privileged-api-lib')
|
||||||
|
|
||||||
|
compile 'com.android.support:support-v4:22.2.1'
|
||||||
|
compile 'com.android.support:appcompat-v7:22.2.1'
|
||||||
|
compile 'com.android.support:support-annotations:22.2.1'
|
||||||
|
|
||||||
|
compile 'org.thoughtcrime.ssl.pinning:AndroidPinning:1.0.0'
|
||||||
|
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
|
||||||
|
compile 'com.google.zxing:core:3.2.1'
|
||||||
|
compile 'eu.chainfire:libsuperuser:1.0.0.201510071325'
|
||||||
|
compile 'cc.mvdan.accesspoint:library:0.1.3'
|
||||||
|
compile 'commons-net:commons-net:3.4'
|
||||||
|
compile 'org.openhab.jmdns:jmdns:3.4.2'
|
||||||
|
|
||||||
|
androidTestCompile 'commons-io:commons-io:2.2'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasProperty('sourceDeps')) {
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
// This is here until we sort out all dependencies from mavenCentral/jcenter. Once all of
|
||||||
|
// the dependencies below have been sorted out, this can be removed.
|
||||||
|
flatDir {
|
||||||
|
dirs 'libs/binaryDeps'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile 'com.madgag.spongycastle:pkix:1.53.0.0'
|
||||||
|
compile 'com.madgag.spongycastle:prov:1.53.0.0'
|
||||||
|
compile 'com.madgag.spongycastle:core:1.53.0.0'
|
||||||
|
|
||||||
|
// Upstream doesn't have a binary on mavenCentral/jcenter yet:
|
||||||
|
// https://github.com/kolavar/android-support-v4-preferencefragment/issues/13
|
||||||
|
compile(name: 'support-v4-preferencefragment-release', ext: 'aar')
|
||||||
|
|
||||||
|
// Fork for F-Droid, including support for https. Not merged into upstream
|
||||||
|
// yet (seems to be a little unsupported as of late), so not using mavenCentral/jcenter.
|
||||||
|
compile(name: 'nanohttpd-2.1.0')
|
||||||
|
|
||||||
|
// Upstream doesn't have a binary on mavenCentral, and it is an SVN repo on
|
||||||
|
// Google Code. We include this code directly in this repo, and have made
|
||||||
|
// modifications that should be pushed to anyone who wants to maintain it.
|
||||||
|
compile(name: 'zipsigner')
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only do the libraries imported from maven repositories. Our own libraries
|
||||||
|
// (like privileged-api-lib) and the prebuilt jars already checked into the
|
||||||
|
// source code don't need to be here.
|
||||||
|
dependencyVerification {
|
||||||
|
verify = [
|
||||||
|
'com.android.support:support-v4:c62f0d025dafa86f423f48df9185b0d89496adbc5f6a9be5a7c394d84cf91423',
|
||||||
|
'com.android.support:appcompat-v7:4b5ccba8c4557ef04f99aa0a80f8aa7d50f05f926a709010a54afd5c878d3618',
|
||||||
|
'com.android.support:support-annotations:104f353b53d5dd8d64b2f77eece4b37f6b961de9732eb6b706395e91033ec70a',
|
||||||
|
'org.thoughtcrime.ssl.pinning:AndroidPinning:afa1d74e699257fa75cb109ff29bac50726ef269c6e306bdeffe8223cee06ef4',
|
||||||
|
'com.nostra13.universalimageloader:universal-image-loader:dbd5197ffec3a8317533190870a7c00ff3750dd6a31241448c6a5522d51b65b4',
|
||||||
|
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
||||||
|
'eu.chainfire:libsuperuser:a3ed4589e14f7d5ab255b3f31f7b79aaa1173a579035788f8db7c74215453a12',
|
||||||
|
'cc.mvdan.accesspoint:library:dc89a085d6bc40381078b8dd7776b12bde0dbaf8ffbcddb17ec4ebc3edecc7ba',
|
||||||
|
'commons-net:commons-net:38cf2eca826b8bcdb236fc1f2e79e0c6dd8e7e0f5c44a3b8e839a1065b2fbe2e',
|
||||||
|
'org.openhab.jmdns:jmdns:7a4b34b5606bbd2aff7fdfe629edcb0416fccd367fb59a099f210b9aba4f0bce',
|
||||||
|
'com.madgag.spongycastle:pkix:6aba9b2210907a3d46dd3dcac782bb3424185290468d102d5207ebdc9796a905',
|
||||||
|
'com.madgag.spongycastle:prov:029f26cd6b67c06ffa05702d426d472c141789001bcb15b7262ed86c868e5643',
|
||||||
|
'com.madgag.spongycastle:core:9b6b7ac856b91bcda2ede694eccd26cefb0bf0b09b89f13cda05b5da5ff68c6b',
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
logger.info "Setting up *source* dependencies for F-Droid (because you passed in the -PsourceDeps argument to gradle while building)."
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile(project(':extern:support-v4-preferencefragment')) {
|
||||||
|
exclude module: 'support-v4'
|
||||||
|
}
|
||||||
|
compile project(':extern:nanohttpd:core')
|
||||||
|
compile project(':extern:zipsigner')
|
||||||
|
}
|
||||||
|
|
||||||
|
task binaryDeps(type: Copy, dependsOn: ':F-Droid:prepareReleaseDependencies') {
|
||||||
|
|
||||||
|
enabled = project.hasProperty('sourceDeps')
|
||||||
|
description = "Copies .jar and .aar files from subproject dependencies in extern/ to F-Droid/libs. Requires the sourceDeps property to be set (\"gradle -PsourceDeps binaryDeps\")"
|
||||||
|
|
||||||
|
from('../extern/') {
|
||||||
|
include 'support-v4-preferencefragment/build/outputs/aar/support-v4-preferencefragment-release.aar'
|
||||||
|
include 'nanohttpd/core/build/libs/nanohttpd-2.1.0.jar'
|
||||||
|
include 'zipsigner/build/libs/zipsigner.jar'
|
||||||
|
}
|
||||||
|
|
||||||
|
into 'libs/binaryDeps'
|
||||||
|
includeEmptyDirs false
|
||||||
|
|
||||||
|
eachFile { FileCopyDetails details ->
|
||||||
|
// Don't copy to a sub folder such as libs/binaryDeps/Project/build/outputs/aar/project.aar, but
|
||||||
|
// rather libs/binaryDeps/project.aar.
|
||||||
|
details.path = details.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 22
|
||||||
|
buildToolsVersion '23.0.2'
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
|
java.srcDirs = ['src']
|
||||||
|
resources.srcDirs = ['src']
|
||||||
|
aidl.srcDirs = ['src']
|
||||||
|
renderscript.srcDirs = ['src']
|
||||||
|
res.srcDirs = ['res']
|
||||||
|
assets.srcDirs = ['assets']
|
||||||
|
}
|
||||||
|
|
||||||
|
androidTest.setRoot('test')
|
||||||
|
androidTest {
|
||||||
|
manifest.srcFile 'test/AndroidManifest.xml'
|
||||||
|
java.srcDirs = ['test/src']
|
||||||
|
resources.srcDirs = ['test/src']
|
||||||
|
aidl.srcDirs = ['test/src']
|
||||||
|
renderscript.srcDirs = ['test/src']
|
||||||
|
res.srcDirs = ['test/res']
|
||||||
|
assets.srcDirs = ['test/assets']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
// use proguard on debug too since we have unknowingly broken
|
||||||
|
// release builds before.
|
||||||
|
all {
|
||||||
|
minifyEnabled true
|
||||||
|
shrinkResources true
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
compileOptions.encoding = "UTF-8"
|
||||||
|
|
||||||
|
// Use Java 1.7, requires minSdk 8
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_7
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_7
|
||||||
|
}
|
||||||
|
|
||||||
|
lintOptions {
|
||||||
|
checkReleaseBuilds false
|
||||||
|
abortOnError false
|
||||||
|
|
||||||
|
htmlReport true
|
||||||
|
xmlReport false
|
||||||
|
textReport false
|
||||||
|
|
||||||
|
// Our translations are crowd-sourced
|
||||||
|
disable 'MissingTranslation'
|
||||||
|
|
||||||
|
// We have locale folders like "values-he" and "values-id" as symlinks
|
||||||
|
// since some devices ship deprecated locale codes
|
||||||
|
disable 'LocaleFolder'
|
||||||
|
|
||||||
|
// Like supportsRtl or parentActivityName. They are on purpose.
|
||||||
|
disable 'UnusedAttribute'
|
||||||
|
}
|
||||||
|
|
||||||
|
packagingOptions {
|
||||||
|
exclude 'META-INF/LICENSE'
|
||||||
|
exclude 'META-INF/LICENSE.txt'
|
||||||
|
exclude 'META-INF/NOTICE'
|
||||||
|
exclude 'META-INF/NOTICE.txt'
|
||||||
|
exclude 'META-INF/INDEX.LIST'
|
||||||
|
exclude '.readme'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
checkstyle {
|
||||||
|
toolVersion = '6.13'
|
||||||
|
}
|
||||||
|
|
||||||
|
task checkstyle(type: Checkstyle) {
|
||||||
|
configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml")
|
||||||
|
source 'src', 'test/src'
|
||||||
|
include '**/*.java'
|
||||||
|
exclude '**/gen/**'
|
||||||
|
|
||||||
|
classpath = files()
|
||||||
|
}
|
||||||
|
|
||||||
|
// This person took the example code below from another blogpost online, however
|
||||||
|
// I lost the reference to it:
|
||||||
|
// http://stackoverflow.com/questions/23297562/gradle-javadoc-and-android-documentation
|
||||||
|
android.applicationVariants.all { variant ->
|
||||||
|
|
||||||
|
task("generate${variant.name}Javadoc", type: Javadoc) {
|
||||||
|
title = "$name $version API"
|
||||||
|
description "Generates Javadoc for F-Droid."
|
||||||
|
source = variant.javaCompile.source
|
||||||
|
|
||||||
|
def sdkDir
|
||||||
|
Properties properties = new Properties()
|
||||||
|
File localProps = project.rootProject.file('local.properties')
|
||||||
|
if (localProps.exists()) {
|
||||||
|
properties.load(localProps.newDataInputStream())
|
||||||
|
sdkDir = properties.getProperty('sdk.dir')
|
||||||
|
} else {
|
||||||
|
sdkDir = System.getenv('ANDROID_HOME')
|
||||||
|
}
|
||||||
|
if (!sdkDir) {
|
||||||
|
throw new ProjectConfigurationException("Cannot find android sdk. Make sure sdk.dir is defined in local.properties or the environment variable ANDROID_HOME is set.", null)
|
||||||
|
}
|
||||||
|
|
||||||
|
ext.androidJar = "${sdkDir}/platforms/${android.compileSdkVersion}/android.jar"
|
||||||
|
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
|
||||||
|
options.links("http://docs.oracle.com/javase/7/docs/api/");
|
||||||
|
options.links("http://d.android.com/reference/");
|
||||||
|
exclude '**/BuildConfig.java'
|
||||||
|
exclude '**/R.java'
|
||||||
|
}
|
||||||
|
}
|
BIN
F-Droid/libs/binaryDeps/nanohttpd-2.1.0.jar
Normal file
BIN
F-Droid/libs/binaryDeps/zipsigner.jar
Normal file
35
F-Droid/proguard-rules.pro
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
-dontobfuscate
|
||||||
|
-dontoptimize
|
||||||
|
-keepattributes SourceFile,LineNumberTable,Exceptions
|
||||||
|
-keep class org.fdroid.fdroid.** {*;}
|
||||||
|
-dontskipnonpubliclibraryclassmembers
|
||||||
|
-dontwarn android.test.**
|
||||||
|
-dontwarn com.android.support.test.**
|
||||||
|
|
||||||
|
-dontwarn javax.naming.**
|
||||||
|
-dontnote android.support.**
|
||||||
|
-dontnote **ILicensingService
|
||||||
|
|
||||||
|
# These libraries are known to break if minification is enabled on them. They
|
||||||
|
# use reflection to instantiate classes, for example. If the keep flags are
|
||||||
|
# removed, proguard will strip classes which are required, which may result in
|
||||||
|
# crashes.
|
||||||
|
-keep class kellinwood.security.zipsigner.** {*;}
|
||||||
|
-keep class org.spongycastle.** {*;}
|
||||||
|
|
||||||
|
# This keeps class members used for SystemInstaller IPC.
|
||||||
|
# Reference: https://gitlab.com/fdroid/fdroidclient/issues/79
|
||||||
|
-keepclassmembers class * implements android.os.IInterface {
|
||||||
|
public *;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Samsung Android 4.2 bug
|
||||||
|
# https://code.google.com/p/android/issues/detail?id=78377
|
||||||
|
-keepnames class !android.support.v7.internal.view.menu.**, ** {*;}
|
||||||
|
|
||||||
|
-keep public class android.support.v7.widget.** {*;}
|
||||||
|
-keep public class android.support.v7.internal.widget.** {*;}
|
||||||
|
|
||||||
|
-keep public class * extends android.support.v4.view.ActionProvider {
|
||||||
|
public <init>(android.content.Context);
|
||||||
|
}
|
BIN
F-Droid/res/drawable-hdpi/circle.png
Normal file
After Width: | Height: | Size: 498 B |
BIN
F-Droid/res/drawable-hdpi/hotspot.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_add_circle_outline_white.png
Normal file
After Width: | Height: | Size: 947 B |
BIN
F-Droid/res/drawable-hdpi/ic_add_white.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
F-Droid/res/drawable-hdpi/ic_arrow_forward_white.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
F-Droid/res/drawable-hdpi/ic_bitcoin.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_bluetooth_white.png
Normal file
After Width: | Height: | Size: 307 B |
BIN
F-Droid/res/drawable-hdpi/ic_changelog.png
Normal file
After Width: | Height: | Size: 788 B |
BIN
F-Droid/res/drawable-hdpi/ic_check_circle_white.png
Normal file
After Width: | Height: | Size: 738 B |
BIN
F-Droid/res/drawable-hdpi/ic_clear.png
Normal file
After Width: | Height: | Size: 207 B |
BIN
F-Droid/res/drawable-hdpi/ic_close_white.png
Normal file
After Width: | Height: | Size: 634 B |
BIN
F-Droid/res/drawable-hdpi/ic_coins_s.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_delete_white.png
Normal file
After Width: | Height: | Size: 161 B |
BIN
F-Droid/res/drawable-hdpi/ic_do_not_disturb_white.png
Normal file
After Width: | Height: | Size: 476 B |
BIN
F-Droid/res/drawable-hdpi/ic_donate.png
Normal file
After Width: | Height: | Size: 974 B |
BIN
F-Droid/res/drawable-hdpi/ic_expand_less_grey600.png
Normal file
After Width: | Height: | Size: 280 B |
BIN
F-Droid/res/drawable-hdpi/ic_expand_more_grey600.png
Normal file
After Width: | Height: | Size: 291 B |
BIN
F-Droid/res/drawable-hdpi/ic_fdroid_grey.png
Normal file
After Width: | Height: | Size: 494 B |
BIN
F-Droid/res/drawable-hdpi/ic_flattr.png
Normal file
After Width: | Height: | Size: 919 B |
BIN
F-Droid/res/drawable-hdpi/ic_help_white.png
Normal file
After Width: | Height: | Size: 476 B |
BIN
F-Droid/res/drawable-hdpi/ic_issues.png
Normal file
After Width: | Height: | Size: 760 B |
BIN
F-Droid/res/drawable-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_litecoin.png
Normal file
After Width: | Height: | Size: 958 B |
BIN
F-Droid/res/drawable-hdpi/ic_lock_24dp_grey600.png
Normal file
After Width: | Height: | Size: 365 B |
BIN
F-Droid/res/drawable-hdpi/ic_network_wifi_white.png
Normal file
After Width: | Height: | Size: 786 B |
BIN
F-Droid/res/drawable-hdpi/ic_nfc_white.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
F-Droid/res/drawable-hdpi/ic_play_arrow_white.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
F-Droid/res/drawable-hdpi/ic_qr_grey.png
Normal file
After Width: | Height: | Size: 746 B |
BIN
F-Droid/res/drawable-hdpi/ic_refresh_white.png
Normal file
After Width: | Height: | Size: 387 B |
BIN
F-Droid/res/drawable-hdpi/ic_repo_app_default.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_search_white.png
Normal file
After Width: | Height: | Size: 396 B |
BIN
F-Droid/res/drawable-hdpi/ic_settings_white.png
Normal file
After Width: | Height: | Size: 460 B |
BIN
F-Droid/res/drawable-hdpi/ic_share_white.png
Normal file
After Width: | Height: | Size: 397 B |
BIN
F-Droid/res/drawable-hdpi/ic_source_code.png
Normal file
After Width: | Height: | Size: 416 B |
BIN
F-Droid/res/drawable-hdpi/ic_stat_notify.png
Normal file
After Width: | Height: | Size: 681 B |
BIN
F-Droid/res/drawable-hdpi/ic_stat_notify_updates.png
Normal file
After Width: | Height: | Size: 1003 B |
BIN
F-Droid/res/drawable-hdpi/ic_swap.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
F-Droid/res/drawable-hdpi/ic_toc_white.png
Normal file
After Width: | Height: | Size: 113 B |
BIN
F-Droid/res/drawable-hdpi/ic_website.png
Normal file
After Width: | Height: | Size: 928 B |
BIN
F-Droid/res/drawable-hdpi/nfc_touch.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
F-Droid/res/drawable-hdpi/swap_start_header.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 153 B After Width: | Height: | Size: 153 B |
BIN
F-Droid/res/drawable-hdpi/wifi.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
F-Droid/res/drawable-ldpi/circle.png
Normal file
After Width: | Height: | Size: 351 B |
BIN
F-Droid/res/drawable-ldpi/hotspot.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
F-Droid/res/drawable-ldpi/ic_fdroid_grey.png
Normal file
After Width: | Height: | Size: 356 B |
BIN
F-Droid/res/drawable-ldpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
F-Droid/res/drawable-ldpi/ic_qr_grey.png
Normal file
After Width: | Height: | Size: 360 B |
BIN
F-Droid/res/drawable-ldpi/ic_repo_app_default.png
Normal file
After Width: | Height: | Size: 890 B |
BIN
F-Droid/res/drawable-ldpi/ic_stat_notify.png
Normal file
After Width: | Height: | Size: 462 B |
BIN
F-Droid/res/drawable-ldpi/ic_stat_notify_updates.png
Normal file
After Width: | Height: | Size: 602 B |
BIN
F-Droid/res/drawable-ldpi/ic_swap.png
Normal file
After Width: | Height: | Size: 460 B |
BIN
F-Droid/res/drawable-ldpi/nfc_touch.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
F-Droid/res/drawable-ldpi/swap_start_header.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
F-Droid/res/drawable-ldpi/wifi.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
F-Droid/res/drawable-mdpi/circle.png
Normal file
After Width: | Height: | Size: 370 B |
BIN
F-Droid/res/drawable-mdpi/hotspot.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
F-Droid/res/drawable-mdpi/ic_add_circle_outline_white.png
Normal file
After Width: | Height: | Size: 650 B |
BIN
F-Droid/res/drawable-mdpi/ic_add_white.png
Normal file
After Width: | Height: | Size: 88 B |
BIN
F-Droid/res/drawable-mdpi/ic_arrow_forward_white.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
F-Droid/res/drawable-mdpi/ic_bitcoin.png
Normal file
After Width: | Height: | Size: 825 B |
BIN
F-Droid/res/drawable-mdpi/ic_bluetooth_white.png
Normal file
After Width: | Height: | Size: 213 B |
BIN
F-Droid/res/drawable-mdpi/ic_changelog.png
Normal file
After Width: | Height: | Size: 623 B |
BIN
F-Droid/res/drawable-mdpi/ic_check_circle_white.png
Normal file
After Width: | Height: | Size: 510 B |
BIN
F-Droid/res/drawable-mdpi/ic_clear.png
Normal file
After Width: | Height: | Size: 164 B |
BIN
F-Droid/res/drawable-mdpi/ic_close_white.png
Normal file
After Width: | Height: | Size: 495 B |
BIN
F-Droid/res/drawable-mdpi/ic_coins_s.png
Normal file
After Width: | Height: | Size: 741 B |
BIN
F-Droid/res/drawable-mdpi/ic_delete_white.png
Normal file
After Width: | Height: | Size: 115 B |
BIN
F-Droid/res/drawable-mdpi/ic_do_not_disturb_white.png
Normal file
After Width: | Height: | Size: 324 B |
BIN
F-Droid/res/drawable-mdpi/ic_donate.png
Normal file
After Width: | Height: | Size: 801 B |
BIN
F-Droid/res/drawable-mdpi/ic_expand_less_grey600.png
Normal file
After Width: | Height: | Size: 240 B |
BIN
F-Droid/res/drawable-mdpi/ic_expand_more_grey600.png
Normal file
After Width: | Height: | Size: 222 B |
BIN
F-Droid/res/drawable-mdpi/ic_fdroid_grey.png
Normal file
After Width: | Height: | Size: 384 B |
BIN
F-Droid/res/drawable-mdpi/ic_flattr.png
Normal file
After Width: | Height: | Size: 760 B |
BIN
F-Droid/res/drawable-mdpi/ic_help_white.png
Normal file
After Width: | Height: | Size: 304 B |
BIN
F-Droid/res/drawable-mdpi/ic_issues.png
Normal file
After Width: | Height: | Size: 621 B |
BIN
F-Droid/res/drawable-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
F-Droid/res/drawable-mdpi/ic_litecoin.png
Normal file
After Width: | Height: | Size: 727 B |
BIN
F-Droid/res/drawable-mdpi/ic_lock_24dp_grey600.png
Normal file
After Width: | Height: | Size: 225 B |
BIN
F-Droid/res/drawable-mdpi/ic_network_wifi_white.png
Normal file
After Width: | Height: | Size: 538 B |
BIN
F-Droid/res/drawable-mdpi/ic_nfc_white.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
F-Droid/res/drawable-mdpi/ic_play_arrow_white.png
Normal file
After Width: | Height: | Size: 157 B |