Git Product home page Git Product logo

android's Introduction

Build Status

Cyclestreets Android App

What is it?

CycleStreets is a UK-wide cycle journey planner system, which lets you plan routes from A to B to C by bike. It is designed by cyclists, for cyclists, and caters to the needs of both confident and less confident cyclists.

  • Point-to-point tap-to-route cycle routing
  • Point-to-point cycle routing by address or postcode
  • Route display on map, switch route type quickly
  • LiveRide sat-nav voice navigation
  • Save your routes to use again
  • Upload photos of cycling-related problems and good practice
  • See photos near your current location
  • Save your preferred cycling speed, map type etc
  • Downloadable off-line maps available

The latest version

Contribute!

Code contributions are welcome!

You should fork the repo as described here: https://help.github.com/en/github/getting-started-with-github/fork-a-repo

See the Issues list for bug reports: https://github.com/cyclestreets/android/issues

Before adding new features, please create an issue, or contact us: https://www.cyclestreets.org/contacts/

License

CycleStreets Android App Copyright 2010-2024 CycleStreets Ltd.

This program is free software: you can redistribute it 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.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/

Contacts

Android App written by Jez Higgins and Oliver Lockwood, with contributions from Christopher Fraser, Jonathan Gray, Theodore Hong, Farid Kurbanov, kyegupov, Shaun McDonald, Hilary Newmark, Simon Nuttall, John Singleton, Colin Watson.

CycleStreets contacts details: https://www.cyclestreets.org/contacts/

android's People

Contributors

auyer avatar aybuke avatar cjwatson avatar dan424gg avatar dave9011 avatar faridk avatar hilaryn avatar jezhiggins avatar knightcube avatar kyegupov avatar lauralaureus avatar looseend avatar mikylucky avatar mvl22 avatar naitim avatar oliverlockwood avatar rodrigo-brito avatar si-the-pie avatar stodar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android's Issues

Make the dismount-required sections be dashed line rather than solid

Make the walking sections be dashed line rather than solid whenever the line is drawn (i.e. main route page and itinerary).

NB The quietest route strategy currently tends to give rather more walking than it should. This is an area being addressed in the API side, but is complex and so is taking time to address.

Missing X marks the spot

During uploading photos on an htc Wildfire I'm not getting the red X that marks the photo's location, neither from the geo-tagging, nor when I tap to set location.

Merge 1.5 changes

Only 1.5+ specific API we currently use is the EXIF extraction stuff. We should be able to do a bit of runtime checking and dynamic loading see if it's available or not.

CycleStreets account credentials need own screen

To login or create new account.

Right now you can enter your details in the settings screen, but it's not really very nice. Really need a proper screen of its own to solicit and validate details.

Reengineer to Fragments

Right now each tab runs its own activity. This works ok, but also has a number of drawbacks. Reworking to use the new Fragments API would be nicer all around.

Implement the crosshair mode to replace current marker-setting mode

http://m.cyclestreets.net/journey/
uses a new crosshair mode which makes it easier to set the map location on a mobile device.

Key points are:

Each click sets a waypoint. At present m.cyclestreets.net has only two, but each point set should just create another marker.

After the second click there needs to be a choice of two buttons: Set another marker or Click to route. Not sure what the best UI mode is.

Retain the current back button, which just does an undo by one step.

GPX upload facility

Several people have requested the ability to add a GPX file. Although there are other apps for this, it would be a nice addition for the sake of completeness.

Sign-in with spaces

There is no spaces in the user name field and I can't login. Using android firefox.

This is when following the upload form to upload a photo to the photomap.

Via email: On Thu, February 16, 2012 10:17 pm, Shaun McDonald

Waypoints

We now have waypoints in the API, so would be good to add this to the app.

Suggest that:

Two taps (as now):
1 - start point, green
2 - finish point, red

then if a third tap is added:
1 - start point, green
2 - waypoint, orange
3 - finish point, red

then if a fourth tap is added

1 - start point, green
2 - waypoint, orange
3 - waypoint, orange
4 - finish point, red

etc.

Using the undo button moves back in this sequence.

Presumably something similar for the text interface.

Lock screen navigation mode

To prevent accidentally coming out of the app and losing your navigation position whilst moving, it would be good if there was something similar to the Google Navigation app whereby the app is shown in the lock screen, with the navigation updating as you move along.

Plan a route - can't remove waypoint

If by accident you've pressed 'Add waypoint' there does not seem to be a way to remove it.

The route planner doesn't seem to ignore blank waypoint entries.

Also, when the error box says 'No location found' it does not indicate which location / waypoint it could not find.

Save journeys to My Journeys in API when signed in

Currently the signin on the app only applies to the Photomap. Instead it should also appear as a standalone screen under 'More', so that when signed in, the journeys get associated with that username when going to the main site.

This would need some minor additions to the API to enable the username/password to be supplied, which infers a POST operation to the HTTPS side.

API 'Latest news' message dialog system

It would be useful to be able to send occasional messages to users, e.g. that CycleStreets needs votes for a funding award, etc.

Needs API provisioning but that should not be hard.

On screen route needs to be clear

Current red colour is similar to red on map tiles. Suggest purple (as used by Google on iPhone) or whatever is standard on Android (if indeed there is such a standard :))

Add waypoint - no focus shift

The "Add waypoint" button does not automatically move the cursor focus to the text box, in the "Plan a route" dialog.

Full sat-nav mode

This is the master ticket for the addition of a full sat-nav mode rather than a journey planner app.

Already being requested by users, quite naturally.

Implementation steps:

  • Set user geolocation to be at a fixed point, and move the map position (would be useful mode anyway)
  • Add satnav mode switching (so old mode is still available)
  • Add maths to rotate tiles in opposite angle to device angle (or use Vector display - library vendor contacted about this)
  • Add fogging to prevent infinite distance
  • Add way to detect which part of the route user is on (maths)
  • Issue turn alert
  • Add replan mode if user goes far off route

Key issues are:

  • Retain itinerary mode?
  • Show 'Turn left' rather than individual route sections
  • Is the iPhone GPS fast enough to recognise the user's location?
  • How to deal with "Take the fourth sideroad on the left"

Directory of nearby places

CycleStreets has a places API which will be expanded to include things like restaurants, cycle parking, cafés, cinemas, tourist destinations, and really any kind of place that will be useful to cyclists. It will be done as a set of categories, with click-through to a category revealing the nearest locations of things in that category.

The app should implement this directory, with clicking on an entry pre-filling the destination point.

Uploading a photo taken in portrait

When you take a photo in portrait, and upload it using the android app, it will not be rotated correctly, and I have to log in to the web site and rotate it there.

Samsung Galaxy S2.

Share photo produces null - <caption>

After uploading http://www.cyclestreets.net/location/37453/ I tried to share via twitter. The caption appeared in the twitter app as:

null - Handing out these #ReachRide leaflets feels like being on #theapprentice

so I did not tweet that.

Having gotten home I've tried again, uploading http://www.cyclestreets.net/location/37456/ and that has worked fine producing this tweet: https://twitter.com/#!/simon_nuttall/status/198471580949549056

The only difference between the two situations is that when I was outside I was on mobile, whereas at home I'm on wifi.

Photo upload - default Full Size

The default upload setting is "Full size on Wifi".

This often results in lo-res photos appearing at e.g:
http://www.cyclestreets.net/location/35976/

I'd like to suggest changing the default to "Full Size" on whatever connection type, which should result in better quality images coming through.

If the user discovers this is too slow they can always change it back.

I am asking for this because I often clear out my old data when installing a new version of the Android app.

Placefinder: Add 'recent' searches tab

Recent searches should be saved by default into a third tab, with the standard apple swipe-to-delete UI enabled to allow their deletion.

"Recent" should simply dumps in the results and underlying lat/long, with most recent at the top. If the user then starts typing at the top, it should revert to either Local or National, whichever was last used of the two.

Photo upload: display location if known

I mostly take geo-located photos with the Android device - but the upload process asks me to set the location without displaying the location its already got for the photo.

I can press the upload button without setting the location - and CycleStreets picks up the geo-location.

But it would be more re-assuring if the app showed the location before I did the upload - and it would give me the opportunity to tweak it. I guess this should also use the cross-hair style for setting the postiion.

List of supported countries

An API call will be available shortly giving a list of the countries that the CycleStreets API will route in.

It would be good to list these in the About/Settings area.

Map tile caching

Map tile caching along line of plan: should start pre-caching (downloading) when no other downloading.

Need to check with tile provider acceptable use policy before doing this.

Should be a setting to enable/disable this, to save bandwidth.

Routes should appear in /journeys/mine/

On the HTML site journeys planned while signed-in are associated with the user and so can automatically appear in listings such as /journeys/mine/

The HTML site uses PHP's session cookie to co-ordinate this. I don't know how it works on the Android App, but you must already do it for photo-uploading so probably not that hard?

Retrieve a journey by number

Basically would be a box within 'My Saved Journeys' that expects a number and strategy type (balanced being default, and the other three shown); when entered, the journey is then retrieved via the API:

http://www.cyclestreets.net/api/#switchRoutes

When obtained, it is saved and then just becomes like any other route saved, i.e. retrievable/deletable.

Web connection state not re-checked

Today I had a problem in that when I tried to upload a photo it initially wouldn't get to the select/take photo screen claiming that there was no network connection. At the first few seconds that may have been true, however the icons on the photo map were then loading. I had to force quit the cyclestreets app, and try a few more times before it would let me select a photo to upload.

Samsung Galaxy S2.

Duplicate photo uploads

I'm finding that when I upload a photo, it'll often be uploaded twice, rather than just once. I think it may be more likely to happen when I'm using mobile data, and the phone thinks there is an error on the upload, so tries again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.