migueldgoncalves / viajar_android_app Goto Github PK
View Code? Open in Web Editor NEWTravel around the Iberian Peninsula by car, boat, train, plane, subway, and more, in your Android device
Travel around the Iberian Peninsula by car, boat, train, plane, subway, and more, in your Android device
Python v2.10.0
Android v1.8.0
Python v2.6.14
Android v1.13.1
Android v1.13.0
Python v2.6.14
Android v1.13.1
Translate the comments "1000 locais" to "1000 locations".
Keep the original Portuguese messages intact, instead add the English translations in a new comment
Reason to discard: Too much effort for little added value. Almost 300 commit messages to translate. Original Portuguese messages will continue to appear in the commit list. Google Translate does a good job in translating the commit messages.
Translate the comments "1000 locais" to "1000 locations".
Keep the original Portuguese messages intact, instead add the English translations in a new comment
Reason to discard: Too much effort for little added value. More than 50 commit messages to translate. Original Portuguese messages will continue to appear in the commit list. Google Translate does a good job in translating the commit messages.
Android v1.9.0
Haversine formula - Allows to calculate distances between coordinates, with an error rate of until 0.5% (0.5 km for distances of 100 km).
Based on distances, angules can be obtained, and from them the cardinal points
Will involve removing the cardinal point column from the connection table of the DB.
Reason to discard: I like having the cardinal points in the connection table.
The Haversine formula would eventually be used in Python v2.5.0 to create connections automatically using the automatic information generator.
Visual aid to the user - Compass will be turned to the correct cardinal point
Cardinal point should be obtained automatically to allow to point at the exact angle.
https://stackoverflow.com/questions/8981845/android-rotate-image-in-imageview-by-an-angle
-Will space for button texts become too narrow? - Verified to not occur.
Android v1.17.0
Android v1.10.0
Android v1.14.3
Originally discarded as many locations already will have the name of the co-oficial language in the region (ex: Arenys de Mar in Barcelona).
Now included as part of #57.
Update 7NOV2022:
For the most important settlements with multiple local languages, OSM already provides the respective names in those languages in the name string. For example, Alicante is shown as "Alacant / Alicante", with the name both in Valencian and in Spanish. This applies as well to municipalities, provinces and even natural parks.
This applies as well to the information obtained with the automatic information generator, making it easier to add names in multiple local languages to the DB.
For example, the brief info for a location in the municipality of Elche would appear as "Elx / Elche, Alacant / Alicante Province, Spain".
In the Spanish regions with a co-oficial language, for example in Catalonia, some major locations have both names printed in the road signs. This is being replicated as well in the destinations in this project DB.
As the way it looks printed in the terminal or in the app looks good, it was decided that this is now the mechanism to show names in multiple local languages in this project.
A final note regarding minor languages of the Iberian Peninsula, for example Aragonese and Mirandese: even if OSM does not provide a settlement name featuring the names in both the national and the local language(s), there is always the possibility to add them manually for the major settlements of the language, for example Jaca and Sabiñánigo for Aragonese and Miranda do Douro for Mirandese. OSM also provides names in local and non-local languages in separate name fields, allowing the possibility of creating a new auxiliary script if needed.
No changes in Android or in Python code are needed as the changes are applied directly to the DB content.
Please note that this card applies only to multiple local languages, regardless of the app language.
Known as cable car in EN-GB.
For simplicity, gondola lifts will be included in this category as well. Funiculars, on the other hand, will be a separate category.
It is present in the Parque das Nações in Lisbon, in Casa de Campo in Madrid, and in Gibraltar, for example.
-Color will be default reddish-brown used in railways?
Reason to discard: Replaced with #144
Android v1.14.9
The current automatic generator of information is based on reading .pbf files from OSM containing the complete map data, taking a few minutes to process a freeway or railway.
By replacing this file reading with accessing local servers running in Docker containers already containing the OSM data, a freeway or railway can be processed in seconds, instead.
This requires setting up such Docker containers, which can take more than 1 hour if done for the first time.
Python v2.9.0
Python v2.6.0
Python v2.5.0
Requires implementing storage and presentation of the journey statistics
As Huelva city was covered and tens of locations were created inside the city, the ideia came to cover in more detail Faro, Loulé (major cities in Algarve) and Beja (capital of the Baixo Alentejo)
-Include other cities, such as Portimão and Sines?
This would provide user with a 2nd way to navigate the map, this time while having the destinations permanently appearing in the screen.
Could be desirable when travelling in freeways, railways or other major roads where the destinations and the way name are more important than the name of the surrounding locations.
Reason to discard: Not worth the effort for the Android app. Maybe to implement in a future webapp?
Trams are present in the center of Seville, in Parla (near Madrid) and in Lisbon, for example.
--Color will be default reddish-brown used in railways, unless local tramway has specific color?
Android v1.12.2
Lately, OSM has been raising 429 Too Many Requests status codes early when trying to process freeways.
The tool should be rebuilt into reading instead local .pbf files from OSM containing the same information.
Fetching altitude info will continue to be done online, from Google, as OSM does not have this information.
Python v2.4.0
-Expand map until it includes 10 locations more, up to a certain zoom limit?
-Include just the surronding locations of the current location?
-Selectable zoom in the settings?
Reason to discard: Not worth the effort, good enough as is
Options are: Around, Region, Iberian Peninsula
Android v1.12.0
Python v2.8.0
Python v2.6.15
This will eliminate the need to manually find and place each new line into the right position inside the .csv files.
For connections and destinations, it will also eliminate the need to order the two locations of a connection/destination manually.
Indirectly, this tool also makes it easier to change location names, as sorting is now done automatically.
Python v2.3.0
Requires creating the global map tab
Reason to discard: Incompatible with Android v1.10.0. Asides, I believe that showing all locations in the map is enough as a feature
At the moment, the Settings button will do nothing.
Android v1.14.6
After the screen to enter the journey mode, place an intermediate screen to select starting location.
Possible locations: Guerreiros do Rio + Sines + Gibraltar + Portuguese district capitals + Spanish province capitals (as close as possible to the city centers, when not covered)
Add the possibility to select a random location as well
Reason to discard: Initial location is easy to setup using Android Studio before deploying the Android app
Android v1.14.5
Android v1.14.0
Android v1.12.0
Reason to discard: I believe that it will be a lot of effort to compile this info for little added value. Fare zones are not present (at least for Iberian Peninsula) in OSM, therefore automatic fetching is not an option.
At the moment, the DB is fully recreated from the .csv files when entering the Travel activity. This takes 30 s to complete and deeply affects the user experience, as the activity will only load after the DB is recreated.
Instead, a special dev mode is to be created, where the DB is recreated only once from the .csv files, and the resulting SQL file placed in the app assets to be accessed later.
Android v1.7.0
Completed in Android v1.15.4
Reason to discard: The current image is good enough
Implemented as a new Python script, accessible from the 6th option of the Python app main menu.
Python v2.7.0
Requires implementing a toolbar with a Settings option - In order to control when a integration with the car mode is desired and when only the travel mode is desired
Android v1.15.0
Useful to create regions and subregions in the Android project.
Implemented as a 7th option in the Python app main menu.
Python v2.11.0
Python v2.5.8
Android v1.12.2
The button that will actually move forward will instead appear at the moment as a tiny button at the right with a >.
-Is this still useful after implementing the other proposed map improvements? Moving to a new location would now require 2 touches instead of 1, and this would be a problem if trying to move fast in freeways or railways.
-The only time it could be useful would be if the user wants to know which marker in the map corresponds to a certain destination button.
Reason to discard: Forcing user to click 2 buttons instead of 1 to move would unacceptably slow down movement in the map.
Idea to highlight marker and button was updated and copied into new item, #91.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.viajar.viajar, PID: 6704
java.lang.NullPointerException: Attempt to invoke virtual method 'double com.viajar.viajar.LocationInfo.getLatitude()' on a null object reference
at com.viajar.viajar.TravelActivity$GPSPageFragment.createMapMarkers(TravelActivity.java:459)
at com.viajar.viajar.TravelActivity$GPSPageFragment.onMapReady(TravelActivity.java:415)
at com.google.android.gms.maps.zzaf.zzb(com.google.android.gms:play-services-maps@@18.0.0:1)
at com.google.android.gms.maps.internal.zzaq.zza(com.google.android.gms:play-services-maps@@18.0.0:5)
at com.google.android.gms.internal.maps.zzb.onTransact(com.google.android.gms:play-services-maps@@18.0.0:3)
at android.os.Binder.transact(Binder.java:949)
at atq.bm(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:2)
at com.google.maps.api.android.lib6.impl.bk.run(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:2)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
Android v1.8.0
The max number of attempts went from 81 to 9, reducing the time the Python app spends retrying calculating a distance if it cannot find the distance.
This allows, for example, to skip a distance and leave it as 0.0 after 30 seconds, instead of spending 5 minutes trying to calculate it.
Python v2.10.0
Android v1.11.0
Helicopter is available to travel between Algeciras and Ceuta, for example
-Red line color, as for plane connections?
Reason to discard: Replaced with #144
This class is Google code that is being overriden in order to allow more than 5 options in the Bottom Navigation Vew, which is required for displaying the different means of transport.
Android v1.14.9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.