jklmnn / parkendd Goto Github PK
View Code? Open in Web Editor NEWAndroid App for parking spots in Dresden.
Home Page: http://parkendd.de
License: GNU General Public License v3.0
Android App for parking spots in Dresden.
Home Page: http://parkendd.de
License: GNU General Public License v3.0
Vernünftiges Handling von selbstsignierten SSL-Zertifikaten.
Ich habe beispielhaft für die Centrum-Galerie für das Jahr 2015 eine Vorhersage der Belegung (in %) mit Machine Learning entwickelt. Das könnte man als Experimental-Feature in die App einbauen.
Ich stelle mir so eine Art Slider vor, wenn man auf die Centrum-Galerie geht, wo man
|======+30min=======in 1h=========in 2h=========in 3h==..
und auch
am 18.08.2015 um 15Uhr
über ein Date-Picker Tool in Android eingeben kann und dann die Belegung von der App zurück bekommt. Dazu müsste im einfachsten Fall eine .CSV geparsed werden und der korrekte Wert daraus entnommen und angezeigt.
Option zum Zurücksetzen der Einstellungen.
Optional auch zum einsetzen der letzten funktionierenden Konfiguration.
Falls der Server für Dresden mal "wandert" oder ein neuer aufgesetzt werden muss, wünsche ich mir einen Eintrag in den Optionen der App anpassen zu können um nicht eine neue Version der App zu benötigen.
Environment Info:
APK: android:versionCode="32" android:versionName="1.2.7"
AndroidOS: Version = “6.0.1”
Description information:
We find that mobile apps are prone to crashes due to a network issue, mainly because successful network API calls return unexpected or no data.
And we found that when this app's network returned data is null or some fields are null (JSON format), or is empty, the app has crashed.
How do we test the APP?
We use the fuzzing method to simulate the network response data. For example, when the app receives network API response data from server or network, we will replace it with 404, null and random data.
#A very simple example:
normal data :Value=”hello” -----fuzzing-----> simulated data :Value=null or network request fails(404、503) or Value=”heee”(random data) or Value=""(empty) , etc.
crash information:
Crash One:crashActivity=de.jkliemann.parkendd.MainActivity
java.lang.NumberFormatException: Invalid int: "null"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:410)
at java.lang.Integer.parseInt(Integer.java:367)
at java.lang.Integer.parseInt(Integer.java:334)
at de.jkliemann.parkendd.Parser.meta(Parser.java:41)
at de.jkliemann.parkendd.MainActivity.onLoaderFinished(MainActivity.java:132)
at de.jkliemann.parkendd.Loader.onPostExecute(Loader.java:112)
at de.jkliemann.parkendd.Loader.onPostExecute(Loader.java:22)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Crash Two:crashActivity=de.jkliemann.parkendd.ForecastActivity
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.jkliemann.parkendd/de.jkliemann.parkendd.ForecastActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2443)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2503)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
at de.jkliemann.parkendd.ForecastActivity.loadDate(ForecastActivity.java:103)
at de.jkliemann.parkendd.ForecastActivity.onCreate(ForecastActivity.java:86)
at android.app.Activity.performCreate(Activity.java:6279)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2396)
... 9 more
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
at de.jkliemann.parkendd.ForecastActivity.loadDate(ForecastActivity.java:103)
at de.jkliemann.parkendd.ForecastActivity.onCreate(ForecastActivity.java:86)
at android.app.Activity.performCreate(Activity.java:6279)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2503)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Crash Three:crashActivity=de.jkliemann.parkendd.MainActivity
java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
at java.util.Calendar.setTime(Calendar.java:1197)
at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:527)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:829)
at java.text.DateFormat.format(DateFormat.java:314)
at de.jkliemann.parkendd.MainActivity.onLoaderFinished(MainActivity.java:150)
at de.jkliemann.parkendd.Loader.onPostExecute(Loader.java:112)
at de.jkliemann.parkendd.Loader.onPostExecute(Loader.java:22)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Finally:
The cause of the program crash may be that the network response data is not handled properly in the code. Such as, developers probably ignore the fact that data is null.
Although this kind of collapse is relatively rare, it is also worthy of attention.
If you have confirmed or fixed this problem, please give me a reply, thank you!
Get location not only on app start but also on refresh.
See #45
As we want to keep the users privacy, it is required to keep the data as small as possible.
What we might want to know:
What definitely shall not be gathered:
Distances to cities are not updated on location change.
Im Moment sind die Projekte von ParkenDD über "ganz GitHub" verstreut. Ich denke, es wäre einfacher, wenn jemand eine Organisation auf GitHub gründet und alle Projekte dort erreichbar sind.
Ich glaube, das wären dann alle Projekte(?):
Der Output ist noch nicht nach Entfernung sortiert.
Die reine Triangulierung mit Koordinaten wäre schon eine gute Hilfe.
Berechnung des Fahrweges halte ich mal für etwas übertrieben.
The app crashes when a user (or bot ;) ) clicks the "display map" button before the list of cities is loaded.
Englische Übersetzung der Oberfläche, evtl. automatische Sprachauswahl nach Systemsprache.
App crashed on search string "Dresden Zentrum".
Ein Hinweis von einem Arbeitskollegen, der der App schon mal probiert, dass die Stellplätze alphabetisch organiert gelistet sein sollten, um den gesuchten Platz schnell zu finden.
Parkplätze mit Geodaten anstatt von Namen suchen.
Die App interessiert sicherlich auch viele Tschechen, die nach Dresden shoppen kommen
Habe dieser Tage mal einen Reality-Check in der Stadt gemacht: Die freien Parkplätze, die z.B. an der Anzeigetafel auf dem Dr.-Külz-Ring (auf Google StreetView ist da noch keine) angezeigt werden, stimmen nicht überein mit denen, die in der App gerade angezeigt wurden. Waren so +/- 20 Parkplätze Unterschied.
Das ist aber kein Fehler unsererseits, sondern die Tafeln in der Stadt werden nicht konsistent von der gleichen Datenquelle gespeist. Wenn man z.B. um die Ecke herum fährt und zur Centrum-Galerie abbiegt in die Reitbahnstr., dann steht dort wieder eine Tafel und diese Zahlen stimmten exakt mit den Zahlen in der App überein.
Falls also Beschwerden von jemandem kommen sollten: Da können wir nix für! :-)
In order for F-Droid to detect updates, you need to tag your releases. The last version on F-Droid is 0.8.1 which is also your last Git tag.
Could you please tag the latest stable version?
See #45
Actual Behavior
The app crashes when the forecast button is pressed immediately the app is lunched
How to produce the bug
TEST TOOLS
PS The app was lunched through f-droid..
it's the same when it is lunched through the device....
Recording of the bug is showned below......
I even recorded a video to prove the bug....
Show an extra notification/warning if the received data is older than 15min/1day.... Just the date in the toast might not get noticed enough.
On my Oneplus 6 (Android 9), the map view doesn't work. It seems to show my location and the parking spots around with status, but no map. There's only a grid of grey squares. Tried different cities, all wit the same issue.
Hello @jklmnn am an app tester and have little idea on developing. I appreciate your idea about the ParkenDD App and would love to make a contribution to it via making a copywrite for your Readme and make a pull request for you to merge. Kindly inform me, if it's OK by you. Thanks
In the forecast view the showed date doesn't change if the forecast date itself has Bern changed.
Die Daten, die seitens eines Servers benötigt werden wären gut zu wissen um ggf. weitere Server - auch an anderen Orten (sobald man mehrere einstellen kann) zu nutzen.
Eventuell auch beim Namen dahingehend darauf achten, dass die Lokalisierung dem "Marketing" nicht im Wege steht.
Zu neuer API kompatibel machen.
You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
See #45
The app needs to be translated and existing translations need to be completed.
Translating is also possible on Poeditor.
Die Meldung, dass kein Standortzugriff erteilt wurde, erscheint beim Sortieren nach Standort immer.
Im Moment deutet der Name daraufhin, dass in der App nur Parkplätze für Dresden angezeigt werden können.
Falls irgendwann andere Städte unterstützt werden sollten, würde ein universellerer Name vielleicht besser sein.
draw tableheads with descriptions of the showed values or an anther kind of explanation to get easy into the functionality
See #45
See #45
Fix missing translations at least with ignorig them.
See https://f-droid.org/wiki/page/de.jkliemann.parkendd/lastbuild_22
Hinzufügen einer Sortierung nach freien Parkplätzen.
Absolut oder relativ?
please enable that more infos are viewable by change to a smaller font
Der Kontakt zum Server-Betreiber könnte wichtig werden, es wäre schön wenn hierzu nicht groß gesucht werden müsste, sondern Feedback direkt aus der App möglich würde.
Add support for active support.
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.