The Draw Engine code is responsible for creating the Secret Santa draws from a list of participants and the other participants that they are restricted from giving to. It’s not Android dependent and there’s a whole range of possible algorithms that could be used to generate the result.
The idea behind the refactoring was to make the Draw Engine more modular, rather than just being another package in the app. This would then make code more reusable and simplify the process of iteracting with the open source world; the new module can simply be employed directly as a Git submodule.
I’ve also added tests that allow collaborators to verify new engine implementations as they are created.
Finally, I’ve moved to using a Maven based build system, due to the better integration with Jenkins and Sonar which I have employed to track code coverage in the Draw Engine and the application itself. The Android archetypes available will make the release process much simpler too.
Anyway, take a look at the repo. I’m still getting a handle on some of the technologies, so feedback is appreciated.