[Ovmsdev] Android App beta

Michael Balzer dexter at expeedo.de
Sat Oct 8 21:37:03 HKT 2022


New test build:

  * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk
  * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk


This includes major extensions & code rewrites, I think I'll bump the 
version to 4.0 when releasing this to Google Play.

Main goal & outcome of this effort: command bookmarks.

The App now offers stored commands (see notifications tab). Stored 
commands can be pinned to the launcher and selected from third party 
Apps like KWGT as shortcuts to execute on triggers / actions.

So this enabled custom widgets to include buttons triggering car commands.

Commands are given using the user syntax, i.e. don't need the MP 
function prefix. You can still call an MP function by using the user 
syntax, i.e. "#…".

Command responses are shown as a dialog with a timeoout of 5 seconds 
unless you hold it by touching or begin scrolling a long response. If 
the App is paused it will be resumed and switch to the notifications 
page (which keeps a record of all commands & responses). If the App 
isn't running, only the response dialog is shown on the launcher.

All this of course needs the service to be enabled & allow commands to 
be sent.

Command responses are also broadcasted now, so KWGT et al can receive 
them -- but they will currently need to know the command sent previously 
and copy command responses if they need to keep them, I don't know if 
KWGT can do that (Automagic can). KWGT seems to only have a simple 
variable storage model.

I think about extending the ApiService to keep a command queue so the 
broadcast can at least carry the command, the response is supposedly 
produced for. Unfortunately the MP API cannot guarantee this, as it 
doesn't currently return a copy of the original command or a command ID 
reference with the response, so this would at best be a guess. Not sure 
if users actually need this.


Note: I haven't pushed the code changes to github yet, I'd first like to 
get some test feedback. I've tested this on Android 6, 7, 11 & 13, but 
not on any degoogled Androids.

Regards,
Michael


Am 26.09.22 um 17:26 schrieb Chris van der Meijden:
> For an includable example it would be nice if we could send the 
> vehicle image from the OVMS app to KWGT.
>
> You can assign "Activities" to the "Touch" event on an image. Would be 
> cool if that works, so we can start the remote climate control similar 
> to how I do that with my OVMS-Fireplace app:
>
> https://github.com/devmarxx/OVMS-Fireplace
>
>
> Am Montag, dem 26.09.2022 um 13:56 +0200 schrieb Michael Balzer:
>> Nice, please go ahead if you want to create an includable example 
>> widget :-)
>>
>> I've found out you can also use progress bars to display values, 
>> enable formula input on the "step" & set the formular to e.g. 
>> $br(ovms, car_soc)$.
>>
>> Works, although I need to convert all car model values to strings for 
>> KWGT. Btw, I also need to unroll the TPMS arrays, they are split into 
>> a "_cnt" & "_<n>" variables. I need to add an info on this to the wiki.
>>
>> I haven't found out how to send a broadcast from KWGT yet, is that 
>> possible? That would enable creating command shortcuts & buttons as 
>> with Automagic.
>>
>> Regards,
>> Michael
>>
>>
>>
>> Am 26.09.22 um 12:13 schrieb Chris van der Meijden:
>> Correction:
>>
>> $br(ovms, sel_vehicle_label)$
>>
>> Am Montag, dem 26.09.2022 um 12:05 +0200 schrieb Chris van der Meijden:
>>
>>> I like the new KWGT Widget feature:
>>>
>>>
>>> Above is the Tesla Widget of our Model 3, beneath that my OVMS KWGT 
>>> widget of our VW e-UP.
>>>
>>> I had to allow "Passing data to other apps". The syntax for getting 
>>> the intent variables to text in KWGT is i.e.
>>>
>>> $br(ovms, car_sel_vehicle_label)$
>>>
>>> Other variables can be found here:
>>> https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-Intent-data
>>>
>>> The image is local on the filesystem of the phone and does not come 
>>> by intent.
>>>
>>>
>>> Am Sonntag, dem 25.09.2022 um 16:23 +0200 schrieb Michael Balzer:
>>> No, icon can only be 0 from the else branch, in that case it shall 
>>> fall back to the default image.
>>>
>>> But I've meanwhile found (I think) your maps/track crash, commit is 
>>> already in the hub. The checkbox handler didn't check if the map 
>>> object is initialized.
>>>
>>> https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicleApp/src/main/java/com/openvehicles/OVMS/ui/FragMap.java#L319
>>>
>>> Regards,
>>> Michael
>>>
>>>
>>> Am 25.09.22 um 15:46 schrieb Chris van der Meijden:
>>> Just guessing, but does
>>>
>>> int icon;
>>>
>>> in MyGcmListenerService.java 
>>> <https://github.com/devmarxx/Open-Vehicle-Android/commit/3c13100a6a25257fe694be3050a1b76ca2b6fb44#diff-c13198cb33bb355f600c37f8889cedcb72346835dbb7e357c031c57aba424487> at 
>>> line 132
>>>
>>> not need to be initialized like
>>>
>>> int icon = 0;
>>>
>>> now you use
>>>
>>> .setSmallIcon((icon!= 0) ? icon: R.drawable.map_car_default)
>>>
>>> at line 150 now?
>>>
>>> As the images and the Google stuff are related to that integer it 
>>> made me thinking ...
>>>
>>>
>>> Am Sonntag, dem 25.09.2022 um 11:52 +0200 schrieb Michael Balzer:
>>>
>>>
>>>> Chris,
>>>>
>>>> that's not a crash log, that's just a warning.
>>>>
>>>> On that warning: the App requests 
>>>> android.permission.ACCESS_FINE_LOCATION by it's manifest. Maybe 
>>>> with LineageOS you need to manually give it that permission?
>>>>
>>>> A crash log has class "E" (error) and includes an exception and a 
>>>> backtrace, for an example see: 
>>>> https://issuetracker.google.com/issues/201308676#comment4
>>>>
>>>> On the crash: maybe it's because you don't have the Google 
>>>> components, not sure if FragMap can handle that.
>>>>
>>>> The forum post relates to /e/OS … maybe I need some emulator images 
>>>> running alternative Androids now…
>>>>
>>>> Regards,
>>>> Michael
>>>>
>>>>
>>>> Am 25.09.22 um 11:40 schrieb Chris van der Meijden:
>>>> Hey Michael,
>>>>
>>>> this is from logcat when I change "Track vehicle" and the app crashes:
>>>>
>>>> 09-25 11:16:01.410 1710 1839 W BroadcastQueue: Permission Denial: 
>>>> receiving Intent { act=android.intent.action.SERVICE_STATE 
>>>> flg=0x1000010 (has extras) } to ProcessRecord{8dcdd54 
>>>> 2053:com.android.systemui/u0a148} (pid=2053, uid=10148) requires 
>>>> android.permission.ACCESS_FINE_LOCATION due to sender android (uid 
>>>> 1001)
>>>>
>>>> I saw now, that this crash also happens in the production app.
>>>>
>>>> The widget is running well. I will keep the app running for while 
>>>> and will see if it stays stable.
>>>>
>>>> Regards
>>>>
>>>> Chris
>>>>
>>>> Am Samstag, dem 24.09.2022 um 23:02 +0200 schrieb Michael Balzer:
>>>>
>>>>
>>>>
>>>>> Chris,
>>>>>
>>>>> thanks for testing. A crash log would help on any crashes you see. 
>>>>> Btw, I don't bump the revision until the actual release build.
>>>>>
>>>>> Crashes related to the car image don't occur immediately, it 
>>>>> sometimes takes hours of use before it happens. When it does, 
>>>>> clearing the App cache fixes the crash for another random period.
>>>>>
>>>>> Speed optimization was one goal. What about the widget?
>>>>>
>>>>> Thanks,
>>>>> Michael
>>>>>
>>>>>
>>>>> Am 24.09.22 um 22:43 schrieb Chris van der Meijden:
>>>>> Hey Michael,
>>>>>
>>>>> I just installed the "release" Version on LineageOS 19.1 (Android 
>>>>> 12) without Google components.
>>>>>
>>>>> The vehicle setup was without any troubles. I could select the 
>>>>> yellow VW e-UP image without crashing.
>>>>>
>>>>> The App version is set wrong under "Vehicle info" (3.19.1, 
>>>>> 2021122401).
>>>>>
>>>>> Everything seems to be faster than before.
>>>>>
>>>>> When I change the checkbox on "Track vehicle" under "Position" the 
>>>>> App crashes. But after a new start of the app the value of the 
>>>>> checkbox has changed.
>>>>>
>>>>> Perhaps this first impression is of some help.
>>>>>
>>>>> Regards
>>>>>
>>>>> Chris
>>>>>
>>>>> Am Samstag, dem 24.09.2022 um 20:10 +0200 schrieb Michael Balzer:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Everyone,
>>>>>>
>>>>>> I'm currently working on the next Android release including 
>>>>>> KustomWidget support and a native app widget based on the old 
>>>>>> Automagic gauge widget.
>>>>>>
>>>>>> Automagic has been dead for some time now, and it keeps crashing 
>>>>>> on Androids >= 7.
>>>>>>
>>>>>> My changes so far are in the hub, APK builds are available here:
>>>>>>
>>>>>>   * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk
>>>>>>   * debug build for extended logging:
>>>>>>     https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-debug.apk
>>>>>>
>>>>>>
>>>>>> There's an issue with the App related to Android >= 10 though, 
>>>>>> which I haven't found yet. It's been reported in the forum:
>>>>>>
>>>>>>   * https://www.openvehicles.com/node/3410
>>>>>>
>>>>>> I could use some help with that, I've got no idea other than 
>>>>>> blaming Android.
>>>>>>
>>>>>> I've seen the effect in my emulator tests, and it seems to occur 
>>>>>> more frequently with non-roadster images.
>>>>>>
>>>>>> Regards,
>>>>>> Michael
>>>>>>
>>>>>> _______________________________________________
>>>>>> OvmsDev mailing list
>>>>>> OvmsDev at lists.openvehicles.com
>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> OvmsDev mailing list
>>>>> OvmsDev at lists.openvehicles.com
>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>>>
>>>>> _______________________________________________
>>>>> OvmsDev mailing list
>>>>> OvmsDev at lists.openvehicles.com
>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>>
>>>>
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.openvehicles.com
>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>>
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.openvehicles.com
>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev

-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221008/3f8ede56/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kustomwidget-eup.png
Type: image/png
Size: 151962 bytes
Desc: not available
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221008/3f8ede56/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 203 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221008/3f8ede56/attachment-0001.sig>


More information about the OvmsDev mailing list