Peter Serwylo 6d1801c0fd Merge branch 'feature/swap-ui-implementation' into 'master'
Initial "swap" UI implementation

This is a major rejigging of the "Local Repo" user interface, to make it easier for lay people to use F-Droid to swap their apps with their peers. I wont mention too much here, because the individual commits have more detailed information. However, it is worth  noting that major things that probably deserve testing are:
 * Going through the proccess of creating a swap
 * Scanning the QR code from another users F-Droid "swap" screen
 * Scanning the QR code from their barcode scanner
 * Entering the URL shown below the QR code into the browser and following the steps
 * Installing an app from the "Swap" success screen
 * Using NFC to add swap (I couldn't test this as only have 1 NFC device in the house)

I've actually had trouble installing from the swap screen after upgrading to Android 4.3.1 (CM) on my Nexus 4. However that issue seems to be present on the current stable "Local Repo" implementation too, so will stop banging my head against the desk in the interest of getting this initial swap implementation out.

Subsequent work will go towards refining edge cases. I'm cataloging these in my fork of fdroidclient on github. The type of things which I still need to work on include :
 * i18n all of the strings
 * Enabling NFC
 * Dealing with WIFI disconnects
 * Support WIFI AP
 * Adding back the "search" functionality in the "create swap" screen
 * ... and no doubt others will arise ...

A major feature which is missing is Bluetooth, but some earlier work has been done on that which will make it less of a burden to implement. As this is getting reviewed for merging, I will start working through these other issues.

See merge request !28
2014-10-22 12:45:00 +00:00
2014-08-05 15:09:55 +02:00
2010-10-19 23:24:04 +01:00
2014-06-05 10:32:57 +02:00
2014-10-03 22:31:01 +02:00
2014-10-09 00:43:53 +02:00
2013-04-12 14:45:48 +01:00
2014-10-03 22:31:01 +02:00

F-Droid Client

Client for F-Droid, the Free Software repository system for Android.

Building from source

The only required tools are the Android SDK and Apache Ant.

Once you have checked out the version you wish to build, run:

git submodule update --init
./ant-prepare.sh # This runs 'android update' on the libs and the main project
ant clean release

The project itself supports Gradle, but some of the libraries it uses don't. Hence it is currently not possible to build F-Droid with Gradle in a clean way without manual interaction.

Direct download

You can download the application directly from our site or browse it in the repo.

Contributing

You are welcome to submit Merge Requests via the Gitorious web interface. You can also follow our Issue tracker and our Forums.

Translating

The res/values-* dirs are kept up to date automatically via MediaWiki's Translate Extension. See our translation page if you would like to contribute.

Running the test suite

FDroid client includes a embedded Android Test Project for running tests. It is in the test/ subfolder. To run the tests from the command line, do:

git submodule update --init
./ant-prepare.sh # This runs 'android update' on the libs and the main project
ant clean emma debug install test

You can also run the tests in Eclipse. Here's how:

  1. Choose File -> Import -> Android -> Existing Android Code Into Workspace for the fdroidclient/ directory.
  2. Choose File -> Import -> Android -> Existing Android Code Into Workspace for the fdroidclient/test/ directory
  3. If fdroid-test has errors, right-click on it, select Properties, the Java Build Path, then click on the Projects tab.
  4. Click on the Add... button and select fdroidclient/
  5. Right-click on the fdroid-test project, then Run As... -> Android JUnit Test

Troubleshooting

When building F-Droid, the following error may occur:

Invalid file: extern/UniversalImageLoader/library/build.xml

Check the output of the ./ant-prepare.sh command. This error is often accompanied by the following message:

Error: The project either has no target set or the target is invalid. Please provide a --target to the 'android update' command.

The most likely cause of this is that your installed Android SDK is missing the target version specified by one of the dependencies. For example, at the time of writing this, UniversalImageLoader uses the "android-16" target API, however the default install of the Android SDK will usually only install the latest version ("android-20" as of writing). So you will have to install missings "android-xx" targets via the SDK manager. To get a list of already installed SDK targets, run:

$ android list targets

To get a list of targets used by fdroidclient libs, run:

$ for i in $(grep "android update lib-project" ant-prepare.sh | cut -f5 -d' '); do
grep ^target $i/project.properties | cut -f2 -d'=';
done | sort | uniq | paste -s -d',' -

to install missing or all needed targets, for example "android-16" and "android-7" run:

$ android update sdk -u -t "android-16,android-7"

NOTE: While it may be tempting to add "--target=android-19" to the ant-prepare.sh script, it is not the correct solution. Although it may work, it can cause strange bugs at runtime.

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.

Description
No description provided
Readme GPL-3.0 46 MiB
Languages
Java 98.5%
Shell 0.6%
Python 0.6%
AIDL 0.2%
HTML 0.1%