navit
navit copied to clipboard
Update:Android:GUI/Internal: Show contextual GUI menu when receiving geo intent
In my previous PR #812, the default action when receiving a geo intent (for example by scanning a geo QR code), is to start navigating to the provided location. This PR aims to give the user more control over which action is started when navit receives a geo intent. For this (and only implemented when using the internal GUI), I bring up the contextual submenu for a geo position in the internal GUI, and let the user select what to do with this position (add bookmark, set as waypoint, destination, search for nearby POIs), in the same way as when the geo pos is entered manually in the internal GUI.
This is only for Android, and if this feature is not implemented in the active GUI plugin (only implemented in internal GUI for now), the behaviour will revert back to set destination to the GPS coords.
This is the implementation of what I was proposing in a comment on my previous PR (https://github.com/navit-gps/navit/pull/812#issuecomment-535811698)
Hello All,
I have an issue with this current implementation.
OSD items still display on top of internal menu.
I have the feeling that this could be fixed by running NavitGraphics.overlay_disable(1)
, but I don't know how to get a reference to the top NavitGraphics object from within Java_org_navitproject_navit_NavitCallbackHandler_callbackMessageChannel
in android.c
If anyone has an idea?
I think I found a solution about access to overlay_disable()
by directly using exported methods from graphics plugins.
I still have a crash when directly initiating a geo intent when Navit is not started yet... probably because access to Internal GUI is done at a too early stage...
Unfortunately, circle CI build for Android fails due to an external issue:
2020-04-20 06:01:51 (58.9 MB/s) - ‘keystore.gpg’ saved [2256/2256]
aes-256-cbc: Option -k needs a value
aes-256-cbc: Use -help for summary.
Exited with code exit status 1
Getting there. OSD icons are not displayed anymore and internal GUI submenu for the specific geo coord is now activated properly. However, the internal GUI menu is only fully displayed correctly if the any internal GUI menu has been already been displayed at least once in the past. If this is the first internal GUI menu displayed since navit was started, then widgets are only rendered when clicking on them (they are not displayed by default).
I fixed the display of the internal menu by stealing menu bringup sequence from gui_internal_cmd_log()
.
Now, remains one issue: Navit crashes when it is starts from scratch, directly by receiving the geo intent. It seems internal menu functions are invoked, while the display is not yet setup completely.
@lains still WIP?
Most of the work is done, menu is displayed when navit is already running. But there is an issue when scanning a QR code while navit is not yet running. In that case, the navit app is started directly from the intent received and I'm then getting a crash. Maybe a race condition. If someone with a better understanding (about the Android+Internal GUI startup sequence) can help... @jandegr , I think you refactored a lot of code around this, can you help?
Retested today, here is the crash I'm getting when navit is not yet started when the geo intent is fired:
06-05 08:03:26.787 20477 20477 D Navit : onCreate
06-05 08:03:26.818 20477 20477 D Navit : lang=fr
06-05 08:03:26.818 20477 20477 D Navit : Country1 FR
06-05 08:03:26.818 20477 20477 D Navit : Country2 FR
06-05 08:03:26.818 20477 20477 D Navit : Language fr
06-05 08:03:26.821 20477 20477 I Navit : NavitDataDir = /data/user/0/org.navitproject.navit/files
06-05 08:03:26.821 20477 20477 I Navit : mapFilenamePath = /storage/emulated/0/Android/data/org.navitproject.navit/files/
06-05 08:03:26.823 20477 20477 D Navit : -> pixels x=540 pixels y=960
06-05 08:03:26.823 20477 20477 D Navit : -> dpi=239
06-05 08:03:26.823 20477 20477 D Navit : -> density=1.5
06-05 08:03:26.823 20477 20477 D Navit : -> scaledDensity=1.5
06-05 08:03:26.828 20477 20477 D Navit : Res Name fr, result /data/user/0/org.navitproject.navit/files/locale/fr/LC_MESSAGES/navit.mo
06-05 08:03:26.834 20477 20477 D Navit : Res ID 2131034138
06-05 08:03:26.836 20477 20477 I Navit : Device density detected: hdpi
06-05 08:03:27.484 20477 20477 D Navit : Processing config file 'navit.xml' from assets
06-05 08:03:27.484 20477 20477 D Navit : Asset Name config/hdpi/navit.xml, output /data/user/0/org.navitproject.navit/files/share/navit.xml
06-05 08:03:27.486 20477 20477 D Navit : Processing config file 'navit_layout_bike.xml' from assets
06-05 08:03:27.486 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_bike.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_bike.xml
06-05 08:03:27.488 20477 20477 D Navit : Processing config file 'navit_layout_car.xml' from assets
06-05 08:03:27.488 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_car.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car.xml
06-05 08:03:27.490 20477 20477 D Navit : Processing config file 'navit_layout_car_android.xml' from assets
06-05 08:03:27.490 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_car_android.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_android.xml
06-05 08:03:27.492 20477 20477 D Navit : Processing config file 'navit_layout_car_dark.xml' from assets
06-05 08:03:27.492 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_car_dark.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_dark.xml
06-05 08:03:27.494 20477 20477 D Navit : Processing config file 'navit_layout_car_simple.xml' from assets
06-05 08:03:27.494 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_car_simple.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_simple.xml
06-05 08:03:27.496 20477 20477 D Navit : Processing config file 'navit_layout_th.xml' from assets
06-05 08:03:27.496 20477 20477 D Navit : Asset Name config/hdpi/navit_layout_th.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_th.xml
06-05 08:03:27.499 20477 20477 D Navit : android.os.Build.VERSION.SDK_INT=23
06-05 08:03:27.512 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:27.512 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:27.512 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:27.513 20477 20477 E navit : error:navit:struct attr *attr_new_from_text(const char *, const char *):Incorrect value 'false' for attribute 'keyboard'; expected a number. Defaulting to 0.
06-05 08:03:27.513 20477 20477 E navit :
06-05 08:03:27.513 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.513 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3e980:
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.513 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):navit (0xb4c6c280) has no attribute vehicle
06-05 08:03:27.513 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'vehicle' from 'navit'
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3ea20:
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): vehicle.position_valid
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.513 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.513 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3eac0:
06-05 08:03:27.513 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.514 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.514 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3eb60:
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status==-1 || navigation.nav_status==1 || navigation.nav_status==2
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.514 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.514 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3ec00:
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.514 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.514 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3eca0:
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.514 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):cannot retrieve attributes from navigation (0x0), func=0xb3e586e4
06-05 08:03:27.514 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'nav_status' from 'navigation'
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3ed40:
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.514 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):navit (0xb4c6c280) has no attribute vehicle
06-05 08:03:27.514 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'vehicle' from 'navit'
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3ede0:
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): vehicle.position_valid
06-05 08:03:27.514 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.515 20477 20477 W navit : warning:navit:int command_object_get_attr(struct context *, struct attr *, enum attr_type, struct attr *):navit (0xb4c6c280) has no attribute follow
06-05 08:03:27.515 20477 20477 W navit : warning:navit:void command_get_attr(struct context *, struct result *):could not retrieve 'follow' from 'navit'
06-05 08:03:27.515 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4d3efc0:
06-05 08:03:27.515 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): follow>1
06-05 08:03:27.515 20477 20477 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
06-05 08:03:27.530 20477 20477 D NavitVehicle: Providers [passive, gps, network]
06-05 08:03:27.532 20477 20477 D NavitVehicle: Precise Provider gps
06-05 08:03:27.533 20477 20477 D NavitVehicle: Fast Provider gps
06-05 08:03:27.566 20477 20477 D NavitSpeech2: Create
06-05 08:03:27.567 20477 20477 D NavitSpeech2: ACTION_CHECK_TTS_DATA available
06-05 08:03:27.568 581 1767 I ActivityManager: START u0 {act=android.speech.tts.engine.CHECK_TTS_DATA cmp=com.google.android.tts/.settings.CheckVoiceData} from uid 10178 on display 0
06-05 08:03:27.887 581 1767 I WindowManager: Screenshot max retries 4 of Token{e4443f4 ActivityRecord{b1b71c7 u0 org.navitproject.navit/.Navit t368}} appWin=Window{58ed2bf u0 Starting org.navitproject.navit} drawState=1
06-05 08:03:27.919 581 2966 W art : Long monitor contention event with owner method=int com.android.server.am.ActivityStackSupervisor.startActivityMayWait(android.app.IApplicationThread, int, java.lang.String, android.content.Intent, java.lang.String, android.service.voice.IVoiceInteractionSession, com.android.internal.app.IVoiceInteractor, android.os.IBinder, java.lang.String, int, int, android.app.ProfilerInfo, android.app.IActivityManager$WaitResult, android.content.res.Configuration, android.os.Bundle, boolean, int, android.app.IActivityContainer, com.android.server.am.TaskRecord) from ActivityStackSupervisor.java:953 waiters=0 for 331ms
06-05 08:03:27.921 581 615 W art : Long monitor contention event with owner method=int com.android.server.am.ActivityStackSupervisor.startActivityMayWait(android.app.IApplicationThread, int, java.lang.String, android.content.Intent, java.lang.String, android.service.voice.IVoiceInteractionSession, com.android.internal.app.IVoiceInteractor, android.os.IBinder, java.lang.String, int, int, android.app.ProfilerInfo, android.app.IActivityManager$WaitResult, android.content.res.Configuration, android.os.Bundle, boolean, int, android.app.IActivityContainer, com.android.server.am.TaskRecord) from ActivityStackSupervisor.java:953 waiters=1 for 341ms
06-05 08:03:28.077 20477 20477 E navit : error:navit:int xml_parse_file(char *, void *, void (*)(xml_context *, const char *, const char **, const char **, void *, GError **), void (*)(xml_context *, const char *, void *, GError **), void (*)(xml_context *, const char *, gsize, void *, GError **)):could not open XML file
06-05 08:03:28.077 20477 20477 E navit : error:navit:struct traffic_message **traffic_get_messages_from_xml_file(struct traffic *, char *):could not retrieve stored traffic messages
06-05 08:03:28.078 20477 20477 D Navit : onCreate intent Intent { act=android.intent.action.VIEW dat=geo:48.858434,2.294481 flg=0x10000000 cmp=org.navitproject.navit/.Navit }
06-05 08:03:28.078 20477 20477 D Navit : Using intent Intent { act=android.intent.action.VIEW dat=geo:48.858434,2.294481 flg=0x10000000 cmp=org.navitproject.navit/.Navit }
06-05 08:03:28.079 20477 20477 D Navit : target found (b): 48.858434,2.294481
06-05 08:03:28.080 20477 20477 D Navit : onStart
06-05 08:03:28.081 20477 20477 D Navit : onResume
06-05 08:03:28.088 20477 20499 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
06-05 08:03:28.199 20477 20477 V Navit : Handle Event
06-05 08:03:28.200 20477 20477 V Navit : Handle Event
06-05 08:03:28.200 20477 20477 V Navit : Handle Event
06-05 08:03:28.200 20477 20477 V Navit : Handle Event
06-05 08:03:28.202 20477 20477 V Navit : Handle Event
06-05 08:03:28.202 20477 20477 V Navit : Handle Event
06-05 08:03:28.202 20477 20477 V Navit : Handle Event
06-05 08:03:28.202 20477 20477 V Navit : Handle Event
06-05 08:03:28.204 20477 20477 D Navit : onPause
06-05 08:03:28.224 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: false
06-05 08:03:28.224 20477 20477 V NavitGraphics: workaround gui internal
06-05 08:03:28.239 20477 20477 E navit : error:gui_internal:void gui_internal_box_pack(struct gui_priv *, struct widget *):Warning width and height of a widget are 0
06-05 08:03:28.259 581 851 I WindowManager: Screen frozen for +1s678ms due to Window{58ed2bf u0 Starting org.navitproject.navit}
06-05 08:03:28.271 20477 20477 E navit : error:gui_internal:void gui_internal_box_pack(struct gui_priv *, struct widget *):Warning width and height of a widget are 0
06-05 08:03:28.271 20477 20477 E navit : error:gui_internal:void gui_internal_box_pack(struct gui_priv *, struct widget *):Warning width and height of a widget are 0
06-05 08:03:28.274 20477 20477 D NavitGraphics: onApplyWindowInsets
06-05 08:03:28.275 20477 20477 V NavitGraphics: Padding -1a- left=0 top=36 right=0 bottom=0
06-05 08:03:28.286 20477 20499 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
06-05 08:03:28.303 20477 20477 D NavitGraphics: onSizeChanged pixels x=540 pixels y=960
06-05 08:03:28.303 20477 20477 D NavitGraphics: handleResize w=540 h=960
06-05 08:03:28.327 20477 20499 I OpenGLRenderer: Initialized EGL, version 1.4
06-05 08:03:28.327 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe400: item->gr is NULL
06-05 08:03:28.332 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe400: item->gr is NULL
06-05 08:03:28.337 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.337 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.337 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.338 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.339 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe340: item->gr is NULL
06-05 08:03:28.339 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.339 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.339 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.339 20477 20477 V NavitGraphics: overlay_disable: 0, Parent: true
06-05 08:03:28.339 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe280: item->gr is NULL
06-05 08:03:28.342 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe280: item->gr is NULL
06-05 08:03:28.343 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.343 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.343 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.344 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.344 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe1c0: item->gr is NULL
06-05 08:03:28.346 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe1c0: item->gr is NULL
06-05 08:03:28.353 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.353 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.353 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.353 20477 20477 V NavitGraphics: overlay_disable: 0, Parent: true
06-05 08:03:28.354 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe100: item->gr is NULL
06-05 08:03:28.357 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe100: item->gr is NULL
06-05 08:03:28.358 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.358 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.358 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.359 20477 20477 V NavitGraphics: overlay_disable: 0, Parent: true
06-05 08:03:28.359 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe040: item->gr is NULL
06-05 08:03:28.361 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfe040: item->gr is NULL
06-05 08:03:28.362 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.362 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.362 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.362 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.362 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdf80: item->gr is NULL
06-05 08:03:28.368 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdf80: item->gr is NULL
06-05 08:03:28.370 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.370 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.370 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.370 20477 20477 V NavitGraphics: overlay_disable: 0, Parent: true
06-05 08:03:28.370 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdec0: item->gr is NULL
06-05 08:03:28.371 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.371 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.371 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.371 20477 20477 V NavitGraphics: overlay_disable: 0, Parent: true
06-05 08:03:28.373 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfde00: item->gr is NULL
06-05 08:03:28.374 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.374 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.374 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.374 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.376 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdd40: item->gr is NULL
06-05 08:03:28.376 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.376 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.376 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.376 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.377 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdc80: item->gr is NULL
06-05 08:03:28.377 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.377 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.377 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.377 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.378 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdbc0: item->gr is NULL
06-05 08:03:28.378 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.378 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.378 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.378 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.379 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfdb00: item->gr is NULL
06-05 08:03:28.379 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.379 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.379 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.379 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.385 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfda40: item->gr is NULL
06-05 08:03:28.386 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.386 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.386 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.386 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.387 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfd980: item->gr is NULL
06-05 08:03:28.387 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.388 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.388 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.388 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
06-05 08:03:28.389 20477 20477 W navit : warning:navit:void osd_std_calculate_sizes(struct osd_item *, int, int):cannot get padding for item=0xb4cfd8c0: item->gr is NULL
06-05 08:03:28.389 20477 20477 V NavitGraphics: set Buttononcallback
06-05 08:03:28.389 20477 20477 V NavitGraphics: set Motioncallback
06-05 08:03:28.389 20477 20477 V NavitGraphics: set Keypresscallback
06-05 08:03:28.389 20477 20477 V NavitGraphics: overlay_disable: 1, Parent: true
--------- beginning of crash
06-05 08:03:28.395 20477 20477 F libc : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 20477 (itproject.navit)
06-05 08:03:28.399 211 211 I DEBUG : property debug.db.uid not set; NOT waiting for gdb.
06-05 08:03:28.401 211 211 I DEBUG : HINT: adb shell setprop debug.db.uid 100000
06-05 08:03:28.401 211 211 I DEBUG : HINT: adb forward tcp:5039 tcp:5039
06-05 08:03:28.453 211 211 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-05 08:03:28.453 211 211 F DEBUG : CM Version: '13.0-20161221-SNAPSHOT-ZNH5YAO3Y6-serranoltexx'
06-05 08:03:28.453 211 211 F DEBUG : Build fingerprint: 'samsung/serranoltexx/serranolte:4.4.2/KOT49H/I9195XXUCNE6:user/release-keys'
06-05 08:03:28.453 211 211 F DEBUG : Revision: '0'
06-05 08:03:28.453 211 211 F DEBUG : ABI: 'arm'
06-05 08:03:28.455 211 211 F DEBUG : pid: 20477, tid: 20477, name: itproject.navit >>> org.navitproject.navit <<<
06-05 08:03:28.455 211 211 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
06-05 08:03:28.473 211 211 F DEBUG : r0 b4d3e8e0 r1 00000076 r2 00000001 r3 0000008a
06-05 08:03:28.474 211 211 F DEBUG : r4 b3deb909 r5 00000000 r6 00000000 r7 be9f7050
06-05 08:03:28.474 211 211 F DEBUG : r8 be9f7028 r9 a26e9898 sl b6d0cec0 fp 12c34420
06-05 08:03:28.474 211 211 F DEBUG : ip 00000000 sp be9f7018 lr 00010000 pc b3dbb9be cpsr 60030030
06-05 08:03:28.481 211 211 F DEBUG :
06-05 08:03:28.481 211 211 F DEBUG : backtrace:
06-05 08:03:28.481 211 211 F DEBUG : #00 pc 0002d9be /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (graphics_draw_text+53)
06-05 08:03:28.481 211 211 F DEBUG : #01 pc 00072e77 /data/app/org.navitproject.navit-1/lib/arm/libnavit.so
06-05 08:03:28.482 211 211 F DEBUG : #02 pc 000723df /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (gui_internal_widget_render+162)
06-05 08:03:28.482 211 211 F DEBUG : #03 pc 000723df /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (gui_internal_widget_render+162)
06-05 08:03:28.483 211 211 F DEBUG : #04 pc 000723df /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (gui_internal_widget_render+162)
06-05 08:03:28.483 211 211 F DEBUG : #05 pc 000723df /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (gui_internal_widget_render+162)
06-05 08:03:28.483 211 211 F DEBUG : #06 pc 000250bb /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (callback_call+450)
06-05 08:03:28.483 211 211 F DEBUG : #07 pc 00025227 /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (callback_list_call_attr+62)
06-05 08:03:28.483 211 211 F DEBUG : #08 pc 0002528b /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (callback_list_call_attr_args+78)
06-05 08:03:28.483 211 211 F DEBUG : #09 pc 0005e841 /data/app/org.navitproject.navit-1/lib/arm/libnavit.so
06-05 08:03:28.483 211 211 F DEBUG : #10 pc 000250bb /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (callback_call+450)
06-05 08:03:28.484 211 211 F DEBUG : #11 pc 000251bf /data/app/org.navitproject.navit-1/lib/arm/libnavit.so (callback_call_args+78)
06-05 08:03:28.484 211 211 F DEBUG : #12 pc 002b8f3d /data/app/org.navitproject.navit-1/oat/arm/base.odex (offset 0x1e3000)
06-05 08:03:29.258 211 211 F DEBUG :
06-05 08:03:29.258 211 211 F DEBUG : Tombstone written to: /data/tombstones/tombstone_06
06-05 08:03:29.258 211 211 E DEBUG : AM write failed: Broken pipe
06-05 08:03:29.272 581 630 I BootReceiver: Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
06-05 08:03:29.275 581 596 D GraphicsStats: Buffer count: 7
06-05 08:03:29.275 581 1766 I WindowState: WIN DEATH: Window{84c3545 u0 org.navitproject.navit/org.navitproject.navit.Navit}
06-05 08:03:29.286 581 596 D GpsStatusListenerHelper: Remote Listener died: android.location.IGpsStatusListener$Stub$Proxy@bb8cc54
06-05 08:03:29.301 220 220 I Zygote : Process 20477 exited due to signal (11)
06-05 08:03:29.320 581 597 I ActivityManager: Process org.navitproject.navit (pid 20477) has died
06-05 08:03:29.320 581 597 D ActivityManager: cleanUpApplicationRecord -- 20477
06-05 08:03:29.321 581 597 W ActivityManager: Force removing ActivityRecord{b1b71c7 u0 org.navitproject.navit/.Navit t368}: app died, no saved state
06-05 08:03:29.349 581 597 I ActivityManager: Config changes=480 {1.0 208mcc15mnc fr_FR ldltr sw360dp w640dp h336dp 240dpi nrml long land finger -keyb/v/h -nav/h s.19 themeResource=null}
Using ~/ANDROID_NDK_HOME/ndk-stack --sym ./navit/android/build/intermediates/cmake/debug/obj/armeabi-v7a
on this crashdump, I get:
********** Crash dump: **********
Build fingerprint: 'samsung/serranoltexx/serranolte:4.4.2/KOT49H/I9195XXUCNE6:user/release-keys'
#00 0x0002d9be libnavit.so (graphics_draw_text+53)
debug_vprintf
navit/debug.c:396:50
#01 0x00072e77 libnavit.so
seg_data_equals
navit/traffic.c:425:10
#02 0x000723df libnavit.so (gui_internal_widget_render+162)
traffic_get_item_speed
navit/traffic.c:2766:9
#03 0x000723df libnavit.so (gui_internal_widget_render+162)
traffic_get_item_speed
navit/traffic.c:2766:9
#04 0x000723df libnavit.so (gui_internal_widget_render+162)
traffic_get_item_speed
navit/traffic.c:2766:9
#05 0x000723df libnavit.so (gui_internal_widget_render+162)
traffic_get_item_speed
navit/traffic.c:2766:9
#06 0x000250bb libnavit.so (callback_call+450)
cache_equal20
navit/cache.c:76:12
#07 0x00025227 libnavit.so (callback_list_call_attr+62)
cache_flush
navit/cache.c:239:31
#08 0x0002528b libnavit.so (callback_list_call_attr_args+78)
cache_remove_from_list
navit/cache.c:127:26
#09 0x0005e841 libnavit.so
rm_rect_destroy
navit/route.c:3846:9
#10 0x000250bb libnavit.so (callback_call+450)
cache_equal20
navit/cache.c:76:12
#11 0x000251bf libnavit.so (callback_call_args+78)
cache_entry_destroy
navit/cache.c:185:5
#12 0x002b8f3d /data/app/org.navitproject.navit-1/oat/arm/base.odex (offset 0x1e3000)
Crash dump is completed
Hi I have one extra significant crashdump line
(Java_org_navitproject_navit_NavitGraphics_sizeChangedCallback+343)
So apparently it does not survive the initial resize.
I tested it with Navit already running before firing the intent and then it returned to mapview instead of handling the resize in gui internal as other gui screens do when rotating the device (causes a resize too).
It might be usefull to debug this does not handle resize properly
issue first, and who knows the solution for the issue from cold start comes a bit closer
I gave it a try yesterday.
On my device, I only have an issue when the geo:
intent fires while navit is not running yet.
When navit is already started, then the internal GUI displays properly and the feature works properly (for me).
I confirm (while digging a bit more the crash occuring when the intent fires while navit is not running) that there is a race condition between internal GUI startup and the intent processing in android.c
, because if I delay the intent processing by, say, 250ms, then everything runs fine (no crash anymore).
I will submit these changes and line-up this code with trunk for others to test.
I don't like adding fixed time delays to get code working, so there must be something better to do here.
In order not to get the crash, it looks like the internal GUI contextual menu must only be invoked after NavitGraphics: handleResize
has run.
And in order for the contextual menu to display properly (instead of having the map view displayed while already be inside the menu), the internal GUI contextual menu must only be invoked after Navit : onResume
Could someone give a try to this new version for Android and check that it is running better, without crash, whether navit is already started or not when the intent is fired? If it works well, I will have a look at suppressing the fixed delay and rely on a better sequencing on the internal GUI startup.
Hi, I got my build environment back up. I will start testing again to sort out the race condition at startup.
I'm having issues with navit crashing at startup, just as soon as I accept access to GPS and SD card. But it looks like I'm getting the same behaviour even when building from trunk, not only when including the code from this PR... Anyone having the same issue (SDK android-sdk-6858069, NDK android-ndk-r21d, device is running )?
02-05 19:50:23.763 595 4205 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.navitproject.navit/.Navit (has extras)} from uid 10037 on display 0
02-05 19:50:23.826 595 830 I ActivityManager: Start proc 8538:org.navitproject.navit/u0a213 for activity org.navitproject.navit/.Navit
02-05 19:50:23.970 8538 8538 D Navit : onCreate
02-05 19:50:23.991 8538 8538 D Navit : ask for permission(s)
02-05 19:50:24.006 8538 8538 D Navit : lang=fr
02-05 19:50:24.006 8538 8538 D Navit : Country1 FR
02-05 19:50:24.006 8538 8538 D Navit : Country2 FR
02-05 19:50:24.006 8538 8538 D Navit : Language fr
02-05 19:50:24.045 595 4109 D VoldConnector: SND -> {28 volume mkdirs /storage/emulated/0/Android/data/org.navitproject.navit/files/}
02-05 19:50:24.047 8538 8538 I Navit : NavitDataDir = /data/user/0/org.navitproject.navit/files
02-05 19:50:24.047 8538 8538 I Navit : mapFilenamePath = /storage/emulated/0/Android/data/org.navitproject.navit/files/
02-05 19:50:24.048 8538 8538 D Navit : -> pixels x=540 pixels y=960
02-05 19:50:24.048 8538 8538 D Navit : -> dpi=239
02-05 19:50:24.048 8538 8538 D Navit : -> density=1.5
02-05 19:50:24.048 8538 8538 D Navit : -> scaledDensity=1.5
02-05 19:50:24.049 8538 8538 D Navit : Res Name fr, result /data/user/0/org.navitproject.navit/files/locale/fr/LC_MESSAGES/navit.mo
02-05 19:50:24.049 8538 8538 D Navit : Res ID 2131099674
02-05 19:50:24.050 8538 8538 D Navit : Extracting resource
02-05 19:50:24.059 8538 8538 I Navit : Device density detected: hdpi
02-05 19:50:24.116 8538 8538 D Navit : Processing config file 'navit.xml' from assets
02-05 19:50:24.116 8538 8538 D Navit : Asset Name config/hdpi/navit.xml, output /data/user/0/org.navitproject.navit/files/share/navit.xml
02-05 19:50:24.116 8538 8538 D Navit : Extracting asset 'config/hdpi/navit.xml'
02-05 19:50:24.121 8538 8538 D Navit : Processing config file 'navit_layout_bike.xml' from assets
02-05 19:50:24.121 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_bike.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_bike.xml
02-05 19:50:24.121 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_bike.xml'
02-05 19:50:24.124 8538 8538 D Navit : Processing config file 'navit_layout_car.xml' from assets
02-05 19:50:24.124 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_car.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car.xml
02-05 19:50:24.124 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_car.xml'
02-05 19:50:24.129 8538 8538 D Navit : Processing config file 'navit_layout_car_android.xml' from assets
02-05 19:50:24.129 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_car_android.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_android.xml
02-05 19:50:24.129 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_car_android.xml'
02-05 19:50:24.132 8538 8538 D Navit : Processing config file 'navit_layout_car_dark.xml' from assets
02-05 19:50:24.132 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_car_dark.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_dark.xml
02-05 19:50:24.133 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_car_dark.xml'
02-05 19:50:24.140 8538 8538 D Navit : Processing config file 'navit_layout_car_simple.xml' from assets
02-05 19:50:24.140 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_car_simple.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_car_simple.xml
02-05 19:50:24.140 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_car_simple.xml'
02-05 19:50:24.141 8538 8538 D Navit : Processing config file 'navit_layout_th.xml' from assets
02-05 19:50:24.141 8538 8538 D Navit : Asset Name config/hdpi/navit_layout_th.xml, output /data/user/0/org.navitproject.navit/files/share/navit_layout_th.xml
02-05 19:50:24.141 8538 8538 D Navit : Extracting asset 'config/hdpi/navit_layout_th.xml'
02-05 19:50:24.143 8538 8538 D Navit : android.os.Build.VERSION.SDK_INT=23
02-05 19:50:24.154 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.154 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.154 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.154 8538 8538 E navit : error:navit:struct attr *attr_new_from_text(const char *, const char *):Incorrect value 'false' for attribute 'keyboard'; expected a number. Defaulting to 0.
02-05 19:50:24.154 8538 8538 E navit :
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfe8e0:
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfe980:
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): vehicle.position_valid
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfea20:
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfeac0:
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status==-1 || navigation.nav_status==1 || navigation.nav_status==2
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfeb60:
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
02-05 19:50:24.155 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfec00:
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfeca0:
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): navigation.nav_status>=3
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfed40:
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): vehicle.position_valid
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *):could not resolve object in cs=0xb4cfef20:
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): follow>1
02-05 19:50:24.156 8538 8538 E navit : error:navit:int command_register_callbacks(struct command_saved *): ^
02-05 19:50:24.165 8538 8538 D NavitSpeech2: Create
02-05 19:50:24.166 8538 8538 D NavitSpeech2: ACTION_CHECK_TTS_DATA available
02-05 19:50:24.368 8538 8538 E navit : error:navit:int xml_parse_file(char *, void *, void (*)(xml_context *, const char *, const char **, const char **, void *, GError **), void (*)(xml_context *, const char *, void *, GError **), void (*)(xml_context *, const char *, gsize, void *, GError **)):could not open XML file
02-05 19:50:24.368 8538 8538 E navit : error:navit:struct traffic_message **traffic_get_messages_from_xml_file(struct traffic *, char *):could not retrieve stored traffic messages
02-05 19:50:24.501 595 628 W ActivityManager: Activity pause timeout for ActivityRecord{eb12a5a u0 org.navitproject.navit/.Navit t590}
02-05 19:50:24.527 8538 8538 D Navit : onCreate intent Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.navitproject.navit/.Navit bnds=[42,162][132,252] (has extras) }
02-05 19:50:24.528 8538 8538 D Navit : onStart
02-05 19:50:24.529 8538 8538 D Navit : onResume
02-05 19:50:24.550 8538 8538 D Navit : onPause
02-05 19:50:24.551 8538 8538 V Navit : Handle Event
02-05 19:50:24.552 8538 8538 V Navit : Handle Event
02-05 19:50:24.552 8538 8538 V Navit : Handle Event
02-05 19:50:24.552 8538 8538 V Navit : Handle Event
02-05 19:50:24.553 8538 8538 V Navit : Handle Event
02-05 19:50:24.554 8538 8538 V Navit : Handle Event
02-05 19:50:24.554 8538 8538 V Navit : Handle Event
02-05 19:50:24.554 8538 8538 V Navit : Handle Event
02-05 19:50:24.612 8538 8538 D NavitGraphics: onApplyWindowInsets
02-05 19:50:24.613 8538 8538 V NavitGraphics: Padding -1a- left=0 top=36 right=0 bottom=0
02-05 19:50:24.680 8538 8538 D NavitGraphics: onSizeChanged pixels x=540 pixels y=960
02-05 19:50:24.681 8538 8538 D NavitGraphics: handleResize w=540 h=960
02-05 19:50:24.686 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.686 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.686 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.687 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.688 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.688 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.688 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.688 8538 8538 V NavitGraphics: overlay_disable: 0, Parent: true
02-05 19:50:24.690 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.691 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.691 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.691 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.694 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.694 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.694 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.694 8538 8538 V NavitGraphics: overlay_disable: 0, Parent: true
02-05 19:50:24.697 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.697 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.697 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.697 8538 8538 V NavitGraphics: overlay_disable: 0, Parent: true
02-05 19:50:24.700 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.700 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.700 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.700 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.705 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.705 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.705 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.705 8538 8538 V NavitGraphics: overlay_disable: 0, Parent: true
02-05 19:50:24.707 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.707 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.707 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.707 8538 8538 V NavitGraphics: overlay_disable: 0, Parent: true
02-05 19:50:24.710 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.710 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.710 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.710 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.712 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.712 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.712 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.712 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.713 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.713 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.713 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.713 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.715 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.715 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.715 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.715 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.716 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.716 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.716 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.716 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.722 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.722 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.722 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.722 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.723 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.723 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.723 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.723 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.725 8538 8538 V NavitGraphics: set Buttononcallback
02-05 19:50:24.725 8538 8538 V NavitGraphics: set Motioncallback
02-05 19:50:24.725 8538 8538 V NavitGraphics: set Keypresscallback
02-05 19:50:24.725 8538 8538 V NavitGraphics: overlay_disable: 1, Parent: true
02-05 19:50:24.877 8538 8538 D NavitSpeech2: onActivityResult 1 1
02-05 19:50:24.998 8538 8538 D Navit : onResume
02-05 19:50:25.133 8538 8538 D NavitSpeech2: Status 0
02-05 19:50:25.160 8538 8538 V Navit : Handle Event
02-05 19:50:25.368 8538 8538 V Navit : Handle Event
02-05 19:50:25.689 8538 8538 V Navit : Handle Event
02-05 19:50:26.175 8538 8538 V Navit : Handle Event
02-05 19:50:26.406 8538 8538 V Navit : Handle Event
02-05 19:50:26.446 8538 8538 D Navit : onDestroy
02-05 19:50:26.495 595 1340 I WindowState: WIN DEATH: Window{aa489f3 u0 org.navitproject.navit/org.navitproject.navit.Navit}
02-05 19:50:26.502 595 712 W InputDispatcher: channel 'e1ad929 org.navitproject.navit/org.navitproject.navit.Navit (server)' ~ Consumer closed input channel or an error occurred. events=0x9
02-05 19:50:26.502 595 712 E InputDispatcher: channel 'e1ad929 org.navitproject.navit/org.navitproject.navit.Navit (server)' ~ Channel is unrecoverably broken and will be disposed!
02-05 19:50:26.502 595 712 W InputDispatcher: channel '71bc47 org.navitproject.navit/org.navitproject.navit.Navit (server)' ~ Consumer closed input channel or an error occurred. events=0x9
02-05 19:50:26.502 595 712 E InputDispatcher: channel '71bc47 org.navitproject.navit/org.navitproject.navit.Navit (server)' ~ Channel is unrecoverably broken and will be disposed!
02-05 19:50:26.508 595 1354 I WindowState: WIN DEATH: Window{e1ad929 u0 org.navitproject.navit/org.navitproject.navit.Navit}
02-05 19:50:26.508 595 1354 W InputDispatcher: Attempted to unregister already unregistered input channel 'e1ad929 org.navitproject.navit/org.navitproject.navit.Navit (server)'
02-05 19:50:26.513 595 4765 I WindowState: WIN DEATH: Window{71bc47 u0 org.navitproject.navit/org.navitproject.navit.Navit}
02-05 19:50:26.513 595 4765 W InputDispatcher: Attempted to unregister already unregistered input channel '71bc47 org.navitproject.navit/org.navitproject.navit.Navit (server)'
02-05 19:50:26.532 595 3946 I ActivityManager: Process org.navitproject.navit (pid 8538) has died
02-05 19:50:26.533 595 3946 W ActivityManager: Force removing ActivityRecord{eb12a5a u0 org.navitproject.navit/.Navit t590}: app died, no saved state
Indeed, I can get rid of this startup crash if I rebase this PR on https://github.com/navit-gps/navit/pull/987/commits/6b48a55a12339c6fe27ec4b0607bfe1e93b830ac, and then selectively cherry-picking the following commits:
- https://github.com/navit-gps/navit/pull/987/commits/14f90898e254fdf4c6c623779ec8a1fec5b9152a
- https://github.com/navit-gps/navit/pull/987/commits/0b61705e3f398039ee16d81908f1c9ba7a81c30c
- https://github.com/navit-gps/navit/pull/987/commits/93f73aa56b33204976f722f877e3f6011cb5c0a9
Hello all. I'm resurrecting this feature (available for android only) that I have just rebased on the current trunk.
If anyone wants to test this, here is what to to: Flash a geo QR code using a compatible Android app. For testing purposes, you can create a geo QR code here. Just use "Contents" type="Geo location" and enter the coordinates. If using the internal GUI, Navit should now display a contextual menu for the location you just scanned (before this code, Navit was starting navigation directly to the coordinates without prompting anything to the user). This allows to see on a map, to add to bookmarks, etc.
What needs to be tested:
- QR code scanning works while navit is started and while navit is not started.
- QR code scanning also works while navit is in a specific menu, is navigating etc.
Hi All, it looks like the feature in this PR is behaving as expected. Scanning a geo QR code while navigation is running, or when the navit application is not launched both work. Codefactor is complaining, but files are unrelated to changes introduced in this PR.
Anyone interested in testing?