DroidPlanner/droidplanner — pull request #1009 by ne0fhyk (2014-08-24 18:58:55+00:00)
Title: MavLink Connection restructuring

Rearchitecturing of the mavlink connection class structure:
* The bulk of the class structure was moved to `Core` to allow reuse of logic in a platform agnostic way.
* Introduced a `Logger` interface that allows logging in a platform agnostic way. Each platform must implement a provides its own `Logger` implementation (i.e: `org.droidplanner.android.utils.AndroidLogger` is the logger implementation for the Android platform).
* Previous code had multiple concurrency issues. The new architecture fixes those issues:
* Each connection task gets its own thread. One thread for `Connecting & Receiving`, one thread for `Sending messages`, and one thread for `Logging`. The threads communicates with each other, and the main thread using elements of the [`java.util.concurrent'](https://developer.android.com/reference/java/util/concurrent/package-summary.html) library.
* Along throughput improvement, the new thread structure should fix the `saveToLog` bug.