
The benefits of this are as follows: No longer need to worry about how many types of `Peer`s exist. There is a single publicly accessible `PeerFinder` which aggregates the results of both the Bluetooth and Bonjour peer finders. In the future if another is added, the consumer of the peer finder (i.e. `StartSwapView`) doesn't need to be aware of this. Neither does the `SwapService` or `SwapActivity` or any other code. Never ask "Are we searching" but instead receive push notifications from the peer finder when it stops searching. Don't worry about receiving the same peer multiple times, it will automatically get filtered out. Less concern about doing things in `AsyncTasks` (and knowing what to do in an `AsyncTask`). The RXJava + RXAndroid libraries deal with this by allowing the client consuming the `PeerFinder` to specify which thread to perform the background task on, and also that the found `Peer`s should be emitted on the UI thread. In the future, can play with caching the results of a particular sequence of found peers. However right now using the `Observable.cache()` method means we can no longer unsubscribe from the peer finders and thus they run longer than they need to when we move on from the initial swap screen.
F-Droid Client
Client for F-Droid, the Free Software repository system for Android.
Building with Gradle
You will need the Android SDK and Gradle 2.9:
cd F-Droid
gradle assembleRelease
Direct download
You can download the application directly from our site or browse it in the repo.
Contributing
See our Contributing doc for information on how to report issues, translate the app into your language or help with development.
IRC
We are on #fdroid
and #fdroid-dev
on Freenode. We hold weekly dev meetings
on #fdroid-dev
on Tuesdays at 20h UTC, which usually last half an hour.
FAQ
- Why does F-Droid require "Unknown Sources" to install apps by default?
Because a regular Android app cannot act as a package manager on its own. To do so, it would require system privileges (see below), similar to what Google Play does.
- Can I avoid enabling "Unknown Sources" by installing F-Droid as a privileged system app?
This used to be the case, but no longer is. Now the Privileged Extension is the one that should be placed in the system. It can be bundled with a ROM or installed via a zip, or alternatively F-Droid can install it as a system app using root.
License
This program is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute 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.
Some icons are made by Picol, Icomoon or Dave Gandy from Flaticon or by Google and are licensed by Creative Commons BY 3.0.
Other icons are from the Material Design Icon set released under an Attribution 4.0 International license.