c:geo


Source link: https://github.com/cgeo/cgeo

c:geo is an open source, full-featured, always ready-to-go client for geocaching.com (unofficial) and offers basic support for other geocaching platforms. It does not require a web browser or exports - just download and start right away.

You want to contribute?

Perfect! Please tell us in the issue tracker before hacking on your great new feature. It would be bad if you have implemented something great, but we can't include it because it doesn't fit the remaining architecture and code. You might also want to chat with the developers on channel #cgeo on the freenode IRC network.

Project status



Get the source

Fork the project source code, make changes to your clone and create a pull request afterwards.

Branches

  • master is for development of new features. Nightly builds are created from this branch.
  • release is for all bug fixes of already existing features. So if a bug is reported in released version, it should be fixed on this branch (and merged to master afterwards).

A more complex bugfix can be first tested against the master branch and integrated in the nightly builds, while kept compatible with the release branch for a later integration. Such a procedure is described in the wiki.

Setting up an IDE

Make sure to use Java 8 for your IDE and build process. Some of the involved tools require it, even though the source code is Java 7 only.

Eclipse

We removed the support for development in Eclipse, once we switched to a gradle based build. The cause for this is that Google dropped the ADT for eclipse support ( https://android-developers.blogspot.de/2016/11/support-ended-for-eclipse-android.html).

Still, there are developers in the project that uses both eclipse and Android Studio (or IntelliJ IDEA). They use eclipse for writing code/testing and Android Studio (or IntelliJ IDEA) for building.

Here are instructions on how to setup the eclipse environment and clone the repositories as part of that setup.

  • Install the Eclipse installer for your OS from http://eclipse.org/downloads/. Do not choose any of the pre-made distributions like "Eclipse IDE for Java developers".
  • Start the installer, switch to advanced mode. On the first page of the wizard choose "Eclipse IDE for Java developers" and use "Next".
  • On the second wizard page use the "Plus" icon (you will have to search for it for a while), select the github catalog, and add the URI https://github.com/cgeo/cgeo/raw/master/main/project/eclipse%20installation/cgeo.setup. Now select the newly create tree node "cgeo" and use next.
  • On the third wizard page add your github user name and password. Adapt the "root installation folder", the folder cgeo will be created in there and everything will be downloaded and copied to the cgeo folder. That means that if you have a projects directory where you store many projects, it is a good candidate for root installation folder. The cgeo folder will ultimately consist of two folders, eclipse (that contains a whole eclipse installation) and git (that contains some git repository clones). Use Next and Finish to start the download of necessary Eclipse plugins and the cloning of the repositories.
  • In eclipse, the project will be uncompilable until you have copied the files keys.xml from main/templates to main/res/values (you need to do this because eclipse fails to create the file automatically from private.properties as Android Studio do). You have to change all values starting with @ and ending with @ (inclusive) with respective keys. If a key is missing, remove the respective value (together with the leading and trailing @).

Android Studio (or IntelliJ IDEA)

  • Install Android Studio from https://developer.android.com/sdk/index.html
  • On first start, choose to clone a project from version control, and choose github afterwards. Supply your credentials.
  • Android Studio should detect that gradle is used for building cgeo. If it complains that this is not a gradle project, then close the project. Choose "Import project" and select the build.gradle or settings.gradle in the root directory of the git repository.

Build

Prerequisites

  • Android SDK (latest version) including Google APIs V23, Google repository and Android support repository.
  • If you use Microsoft Windows, Google USB Driver to install the application on the smartphone.
  • You need to provide several API keys for compiling the app. See next section for details.

API keys

Copy main/templates/keys.xml to main/res/values/. Then edit main/res/values/keys.xml and insert several keys (see comments in the file). Most important is the Google Maps API v1 key. You can leave it empty, but then Google Maps doesn't work. Google doesn't hand out new keys for Google Maps v1, you have to use an existing one.

Request your personal API key for the various OpenCaching sites we support. If you leave these blank, then those networks will remain disabled.

Building with gradle

Run gradlew from the root directory of the git repository. That will install the necessary build framework and display how to build cgeo. gradlew assembleBasicDebug might be a good start.

Debugging

In Eclipse, create a Debug Configuration by selecting the cgeo application (inside the cgeo) folder and press F11. Then choose to run as Android Application.

Testing

The Test classes can be found in the project test. Test classes should be located in the same package as the class under test. Every class can be "Run As" (or "Debug As") an Android JUnit Test from Eclipse. To run all tests use the same "Run As" menu item from the context menu of the test project.

For tests to run successfully you need to configure c:geo on the emulator that runs the test with a valid geocaching.com account. In order for all tests to be successfull the account needs to be a premium member.

Tests may also be launched from command line. Use gradlew assembleBasicDebug from the root directory of the git repository.

License

c:geo is distributed under Apache License, Version 2.0.

Contact

Resources

LeafPic is an ad-free, open-source and material-designed android gallery alternative.

Android Networking is a powerful library for doing any type of networking in Android applications which is made on top of OkHttp Networking Layer.

Easy FireBase Cloud Notification.

Simple random data generator for Android.

Easy to detect android emulator.

Implementation of the multiple back stacks. Using this library allows implementation of persistent bottom navigation like in Instagram.

Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes