openhab / openhab-android

openHAB client for Android
https://play.google.com/store/apps/details?id=org.openhab.habdroid
Eclipse Public License 2.0
595 stars 318 forks source link

Certain JPEG files are not shown/decoded #2266

Closed tobiasisenberg closed 3 years ago

tobiasisenberg commented 3 years ago

Actual behaviour

Certain JPEG images do not seem to be shown when used in an image tag. To reproduce, use the following sitemap:

sitemap test label="Test" {
    Frame label="Test 1" {
        Image refresh=60000 url="https://www.spaceweatherlive.com/images/SDO/SDO_HMIIF_512.jpg"
    }
    Frame label="Test 2" {
        Image refresh=60000 url="https://sdo.gsfc.nasa.gov/assets/img/latest/latest_512_HMIIF.jpg"
    }
}

In this sitemap on the Android app (both release and most recent beta), only the image in frame "Test 2" is shown, the image in "Test 1" does not show. In a browser using BasicUI both images show fine.

Expected behaviour

Both images should render.

Steps to reproduce

  1. Open the attached sitemap.
  2. Observe that Test 1 is not rendered, but Test 2 is shown.

Can you reproduce the issue in demo mode?

No, I did not find an image element in the demo mode.

Environment data

Client

Server

openHAB Cloud

Logs

App log

I noticed log entries that state that an image decoder was unable to be created:

10-18 10:25:14.923 31271 31361 D skia : --- Failed to create image decoder with message 'unimplemented'

openHAB Server log

Click to expand ``` Not required. If you have installed openHAB via `apt-get`, the log is located under `/var/log/openhab2/openhab.log` ```
mueller-ma commented 3 years ago

I can reproduce this on my device. However the log message is slightly different: skia: --- SkImageDecoder::Factory returned null. My guess is that this image has some encoding that isn't supported on Android.

tobiasisenberg commented 3 years ago

If I open Basic UI using Chrome on Android and select my test sitemap, however, I see both images just fine.

maniac103 commented 3 years ago

Chrome probably includes its own copy of Skia or a different JPEG decoding library. I don't see this being meaningfully feasible for us, though. Are gallery apps able to decode that image after downloading it?

tobiasisenberg commented 3 years ago

Google Photos: yes; OnePlus' built-in Gallery app: yes.

Andrea-Cecchi commented 3 years ago

i have the same problem, however mine it's a png and it seems related to openhab3 because i can see the image in an old sitemap created using openhab 2.5 but not in the one created in openhab 3

Matthiasmhm commented 3 years ago

I can confirm this issue. Have a Image hosted in the openhabian Server...works perfectly fine in Browser also in mobile ...but Pictures Crashes in Beta app

mueller-ma commented 3 years ago

@Matthiasmhm can you post the log of the app, especially the crash?

Matthiasmhm commented 3 years ago

-----------------------
Device information
Model: moto g(7) plus
Manufacturer: motorola
Brand: motorola
Device: lake_n
Product: lake_reteu_n
OS: 10
Display: 1080x2015, 3.0 density
Data usage policy: DataUsagePolicy(canDoLargeTransfers=true, loadIconsWithState=true, autoPlayVideos=true, canDoRefreshes=true), data saver: 1, battery saver: false
-----------------------

--------- beginning of events
12-29 13:37:30.996 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.LogActivity,topStateChangedWhenResumed]
12-29 13:37:30.997 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.LogActivity,performPause]
12-29 13:37:31.005 24919 24919 I am_on_restart_called: [0,org.openhab.habdroid.ui.PreferencesActivity,performRestartActivity]
12-29 13:37:31.014 24919 24919 I am_on_start_called: [0,org.openhab.habdroid.ui.PreferencesActivity,handleStartActivity]
12-29 13:37:31.015 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.PreferencesActivity,RESUME_ACTIVITY]
12-29 13:37:31.016 24919 24919 I am_on_top_resumed_gained_called: [0,org.openhab.habdroid.ui.PreferencesActivity,topWhenResuming]
--------- beginning of main
12-29 13:37:31.042 24919 25018 D ConnectionFactory: checkAvailableConnection: found types [ConnectionType(type = Wifi, network=163)]
12-29 13:37:31.043 24919 25018 D AbstractConnection: Checking reachability of https://<openhab-local-address-openHAB>:8443/ (via 163)
12-29 13:37:31.048 24919 25018 D AbstractConnection: Socket connected (attempt  0)
12-29 13:37:31.049 24919 25018 D ConnectionFactory: Connecting to local URL via ConnectionType(type = Wifi, network=163)
12-29 13:37:31.468 24919 24919 I am_on_stop_called: [0,org.openhab.habdroid.ui.LogActivity,LIFECYCLER_STOP_ACTIVITY]
12-29 13:37:31.470 24919 24919 I am_on_destroy_called: [0,org.openhab.habdroid.ui.LogActivity,performDestroy]
12-29 13:37:32.164 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.PreferencesActivity,topStateChangedWhenResumed]
12-29 13:37:32.167 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.PreferencesActivity,performPause]
12-29 13:37:32.174 24919 24919 D MainActivity: onActivityResult() requestCode = 1001, resultCode = -1
12-29 13:37:32.174 24919 24919 I am_on_activity_result_called: [0,org.openhab.habdroid.ui.MainActivity,ACTIVITY_RESULT]
12-29 13:37:32.175 24919 24919 I am_on_restart_called: [0,org.openhab.habdroid.ui.MainActivity,performRestartActivity]
12-29 13:37:32.178 24919 24919 D MainActivity: onStart()
12-29 13:37:32.179 24919 24919 D PageConnectionHolderFragment: onStart(), started false
12-29 13:37:32.179 24919 24919 D PageConnectionHolderFragment: Loading data for https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, long polling false
12-29 13:37:32.180 24919 24919 D WidgetListFragment: onStart() https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:37:32.180 24919 24919 D PageConnectionHolderFragment: Trigger update for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, force false
12-29 13:37:32.180 24919 24919 D ContentController: Got update for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, pending []
12-29 13:37:32.192 24919 24919 D MainActivity: onActiveConnectionChanged()
12-29 13:37:32.199 24919 24919 D MainActivity: Cannot auto select server: No server with configured wifi
12-29 13:37:32.199 24919 24919 I am_on_start_called: [0,org.openhab.habdroid.ui.MainActivity,handleStartActivity]
12-29 13:37:32.200 24919 24919 D MainActivity: onResume()
12-29 13:37:32.203 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.MainActivity,RESUME_ACTIVITY]
12-29 13:37:32.204 24919 24919 I am_on_top_resumed_gained_called: [0,org.openhab.habdroid.ui.MainActivity,topWhenResuming]
12-29 13:37:32.341 24919 24919 D PageConnectionHolderFragment: Updated page data for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322 (4 widgets)
12-29 13:37:32.341 24919 24919 D ContentController: Got update for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, pending []
12-29 13:37:32.366 24919 24919 I WidgetImageView: Refreshing image at https://<openhab-local-address-openHAB>:8443/icon/?format=SVG&anyFormat=true&state=59.4, avoidCache false
12-29 13:37:32.671 24919 24919 I am_on_stop_called: [0,org.openhab.habdroid.ui.PreferencesActivity,LIFECYCLER_STOP_ACTIVITY]
12-29 13:37:32.679 24919 24919 I am_on_destroy_called: [0,org.openhab.habdroid.ui.PreferencesActivity,performDestroy]
12-29 13:37:34.326 24919 24919 D MainActivity: onOptionsItemSelected()
12-29 13:37:37.563 24919 24919 D PageConnectionHolderFragment: updateActiveConnections: URL list [https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322], connection org.openhab.habdroid.core.connection.DefaultConnection@70622c9
12-29 13:37:37.582 24919 24919 D WidgetListFragment: onPause() https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:37:37.629 24919 24919 I WebViewFactory: Loading com.google.android.webview version 87.0.4280.101 (code 428010133)
12-29 13:37:37.977 24919 24919 I cr_LibraryLoader: Loaded native library version number "87.0.4280.101"
12-29 13:37:37.982 24919 24919 I cr_CachingUmaRecorder: Flushed 5 samples from 5 histograms.
12-29 13:37:38.763 24919 25164 W cr_media: Requires BLUETOOTH permission
12-29 13:37:38.791 24919 24919 I Choreographer: Skipped 72 frames!  The application may be doing too much work on its main thread.
12-29 13:37:38.793 24919 24919 D MainActivity: onCreateOptionsMenu()
12-29 13:37:38.797 24919 24919 D MainActivity: onPrepareOptionsMenu()
12-29 13:37:38.827 24919 25013 I OpenGLRenderer: Davey! duration=1237ms; Flags=0, IntendedVsync=289038739070241, Vsync=289039939070193, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=289039940596561, AnimationStart=289039940762603, PerformTraversalsStart=289039951759219, DrawStart=289039955160625, SyncQueued=289039970001877, SyncStart=289039970517502, IssueDrawCommandsStart=289039970894220, SwapBuffers=289039975261200, FrameCompleted=289039976622815, DequeueBufferDuration=322000, QueueBufferDuration=695000, 
12-29 13:37:39.048 24919 25157 I cr_X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
12-29 13:37:39.051 24919 25166 E chromium: [ERROR:ssl_client_socket_impl.cc(960)] handshake failed; returned -1, SSL error code 1, net_error -202
12-29 13:37:39.138 24919 24919 D ConnectionWebViewClient: Invalid certificate, but the same one as the main connection
12-29 13:37:39.447 24919 25166 E chromium: [ERROR:ssl_client_socket_impl.cc(960)] handshake failed; returned -1, SSL error code 1, net_error -202
12-29 13:37:42.400 24919 25166 E chromium: [ERROR:ssl_client_socket_impl.cc(960)] handshake failed; returned -1, SSL error code 1, net_error -202
12-29 13:37:42.427 24919 25166 I chatty  : uid=10281(org.openhab.habdroid.beta) NetworkService identical 2 lines
12-29 13:37:42.435 24919 25166 E chromium: [ERROR:ssl_client_socket_impl.cc(960)] handshake failed; returned -1, SSL error code 1, net_error -202
12-29 13:37:58.040 24919 24919 D MainActivity: onOptionsItemSelected()
12-29 13:37:58.041 24919 24919 D PageConnectionHolderFragment: updateActiveConnections: URL list [https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322], connection org.openhab.habdroid.core.connection.DefaultConnection@70622c9
12-29 13:37:58.087 24919 24919 D WidgetListFragment: onViewCreated() https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:37:58.088 24919 24919 D WidgetListFragment: onStart() https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:37:58.089 24919 24919 D PageConnectionHolderFragment: Trigger update for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, force false
12-29 13:37:58.089 24919 24919 D ContentController: Got update for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322, pending []
12-29 13:37:58.104 24919 24919 D MainActivity: onCreateOptionsMenu()
12-29 13:37:58.105 24919 24919 D MainActivity: onPrepareOptionsMenu()
12-29 13:37:58.114 24919 24919 I WidgetImageView: Refreshing image at https://<openhab-local-address-openHAB>:8443/icon/humidity?format=SVG&anyFormat=true&state=40.200001, avoidCache false
12-29 13:37:58.118 24919 24919 I WidgetImageView: Refreshing image at https://<openhab-local-address-openHAB>:8443/icon/?format=SVG&anyFormat=true&state=59.4, avoidCache false
12-29 13:37:58.119 24919 24919 I WidgetImageView: Refreshing image at https://<openhab-local-address-openHAB>:8443/icon/?format=SVG&anyFormat=true&state=59.4, avoidCache false
12-29 13:37:59.044 24919 24919 D MainActivity: onOptionsItemSelected()
12-29 13:37:59.873 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.MainActivity,topStateChangedWhenResumed]
12-29 13:37:59.874 24919 24919 D MainActivity: onPause()
12-29 13:37:59.875 24919 24919 D WidgetListFragment: onPause() https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:37:59.878 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.MainActivity,performPause]
12-29 13:37:59.889 24919 24919 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@38d281
12-29 13:37:59.908 24919 24919 I AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
12-29 13:37:59.914 24919 24919 I am_on_create_called: [0,org.openhab.habdroid.ui.PreferencesActivity,performCreate]
12-29 13:37:59.940 24919 24919 D Ringtone: Successfully created local player
12-29 13:37:59.955 24919 24919 D PreferencesActivity: Removing notification prefs for < 25
12-29 13:37:59.967 24919 24919 I am_on_start_called: [0,org.openhab.habdroid.ui.PreferencesActivity,handleStartActivity]
12-29 13:37:59.969 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.PreferencesActivity,RESUME_ACTIVITY]
12-29 13:37:59.975 24919 24919 I am_on_top_resumed_gained_called: [0,org.openhab.habdroid.ui.PreferencesActivity,topStateChangedWhenResumed]
12-29 13:38:00.519 24919 24919 D MainActivity: onStop()
12-29 13:38:00.520 24919 24919 D PageConnectionHolderFragment: onStop()
12-29 13:38:00.520 24919 24919 D PageConnectionHolderFragment: Canceling connection for URL https://<openhab-local-address-openHAB>:8443/rest/sitemaps/uicomponents_page_8d65ef0322/uicomponents_page_8d65ef0322
12-29 13:38:00.522 24919 24919 I am_on_stop_called: [0,org.openhab.habdroid.ui.MainActivity,STOP_ACTIVITY_ITEM]
12-29 13:38:00.522 24919 24919 D MainActivity: onSaveInstanceState()
12-29 13:38:00.522 24919 24919 D ContentController: onSaveInstanceState()
12-29 13:38:00.765 24919 24919 W ListPreference: Setting a summary with a String formatting marker is no longer supported. You should use a SummaryProvider instead.
12-29 13:38:01.930 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.PreferencesActivity,topStateChangedWhenResumed]
12-29 13:38:01.931 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.PreferencesActivity,performPause]
12-29 13:38:01.937 24919 24919 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@e833fd8
12-29 13:38:01.951 24919 24919 I AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
12-29 13:38:01.952 24919 24919 I FloatingActionButton: Setting a custom background is not supported.
12-29 13:38:01.965 24919 24919 I am_on_create_called: [0,org.openhab.habdroid.ui.LogActivity,performCreate]
12-29 13:38:01.967 24919 24919 I am_on_start_called: [0,org.openhab.habdroid.ui.LogActivity,handleStartActivity]
12-29 13:38:01.969 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.LogActivity,RESUME_ACTIVITY]
12-29 13:38:01.975 24919 24919 I am_on_top_resumed_gained_called: [0,org.openhab.habdroid.ui.LogActivity,topStateChangedWhenResumed]
12-29 13:38:01.999 24919 24919 D LogActivity: onCreateOptionsMenu()
12-29 13:38:02.432 24919 24919 I am_on_stop_called: [0,org.openhab.habdroid.ui.PreferencesActivity,STOP_ACTIVITY_ITEM]
12-29 13:39:31.413 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.LogActivity,topStateChangedWhenResumed]
12-29 13:39:31.414 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.LogActivity,performPause]
12-29 13:39:43.400 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.LogActivity,RESUME_ACTIVITY]
12-29 13:39:43.401 24919 24919 I am_on_top_resumed_gained_called: [0,org.openhab.habdroid.ui.LogActivity,topWhenResuming]
12-29 13:39:44.718 24919 24919 I sysui_multi_action: [757,629,758,4,759,1]
--------- beginning of system
12-29 13:39:45.305 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:45.317 24919 24919 I sysui_multi_action: [757,1100,758,1101,759,1,806,org.openhab.habdroid.beta,1117,0,1118,0,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,0,1250,0,1251,1,1254,,1255,textview]
12-29 13:39:45.319 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:45.323 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:45.432 24919 25508 D androidtc: Loading ModelFile { path=/data/misc/textclassifier/lang_id.model name=lang_id.model version=0 locales=und }
12-29 13:39:45.507 24919 25508 D androidtc: Loading ModelFile { path=/data/misc/textclassifier/textclassifier.model name=textclassifier.model version=712 locales=de }
12-29 13:39:45.521 24919 25508 I tflite  : Initialized TensorFlow Lite runtime.
12-29 13:39:45.650 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:46.175 24919 24919 I sysui_multi_action: [757,1100,758,1106,759,1,806,org.openhab.habdroid.beta,1117,859,1118,859,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,1,1250,-4,1251,1,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:39:49.909 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:49.912 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:49.935 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,4618,1118,3759,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,2,1250,-4,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:39:51.234 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:39:51.236 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:01.552 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:01.554 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:01.583 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,16267,1118,11649,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,3,1250,-221,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:40:03.117 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:03.120 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:05.479 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:05.480 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:05.506 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,20190,1118,3923,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,4,1250,-447,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:40:06.117 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:06.119 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:08.088 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:08.090 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:08.150 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,22833,1118,2643,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,5,1250,-462,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:40:08.237 24919 24934 V MediaPlayer: resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-29 13:40:08.237 24919 24934 V MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-29 13:40:08.245 24919 24934 V MediaPlayer: resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-29 13:40:08.245 24919 24934 V MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-29 13:40:09.042 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:09.044 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:09.090 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,23774,1118,941,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,6,1250,-667,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:40:09.615 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:09.617 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:15.109 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:15.112 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:15.146 24919 24919 I sysui_multi_action: [757,1100,758,1102,759,1,806,org.openhab.habdroid.beta,1117,29829,1118,6055,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,7,1250,-993,1251,82,1252,-4,1253,1,1254,other,1255,textview,1256,de_v712]
12-29 13:40:16.016 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:16.018 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:17.806 24919 24919 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:17.808 24919 25508 D TextClassifierService: No configured system TextClassifierService
12-29 13:40:17.958 24919 24919 I sysui_multi_action: [757,1100,758,1115,759,1,806,org.openhab.habdroid.beta,1117,32641,1118,2812,1119,76369b2d-4c34-4ba0-9323-e51f486b1b5b,1120,8,1250,-993,1251,82,1252,-4,1253,1,1254,,1255,textview,1256,de_v712]
12-29 13:40:17.960 24919 24919 I sysui_multi_action: [757,1614,758,4,759,1616,806,org.openhab.habdroid.beta,1256,langId_v0,1634,androidtc|de_v712|-630556225,1635,en,1638,0.956099,1639,textview]
12-29 13:40:40.572 24919 24919 I am_on_top_resumed_lost_called: [0,org.openhab.habdroid.ui.LogActivity,topStateChangedWhenResumed]
12-29 13:40:40.573 24919 24919 I am_on_paused_called: [0,org.openhab.habdroid.ui.LogActivity,performPause]
12-29 13:40:46.874 24919 24919 I am_on_resume_called: [0,org.openhab.habdroid.ui.LogActivity,RESUME_ACTIVITY]
12-29 13:40:46.875 24919 24919 I am_on_top_resumed_g`
Matthiasmhm commented 3 years ago

I Just Posted the full Log after i cleared IT and opened the Image Page.

mueller-ma commented 3 years ago

I don't see any crash in the posted log.

Matthiasmhm commented 3 years ago

Unfortunatelly me neither thats why i posted the full cause i couldt find an issue in the Log. Ist there anyway so increase the Log Detail Level in the App? The wird Thing ist that the Pics are shown in a regular Browser. I i suspect that there ist a Decoding issue that does Not throw an Error Into the log

mueller-ma commented 3 years ago

Ist there anyway so increase the Log Detail Level in the App?

There's a way (Settings => Extended error messages), but it won't increase the verbosity of image rendering.

The wird Thing ist that the Pics are shown in a regular Browser.

The browser could have a bundled version of an image decoding library.

Which server version do you use? Is it possible that you send us an image that cannot be rendered?

Matthiasmhm commented 3 years ago

Thats the Version and ist running AS an openhabian Stack on a raspi runtimeInfo: version: 3.0.0 buildString: Release Build locale: de_DE systemInfo: configFolder: /etc/openhab userdataFolder: /var/lib/openhab logFolder: /var/log/openhab javaVersion: 11.0.9 javaVendor: Azul Systems, Inc. javaVendorVersion: Zulu11.43+88-CA osName: Linux osVersion: 5.4.79-v7+ osArchitecture: arm availableProcessors: 4 freeMemory: 44730632 totalMemory: 119775232

Here are two Screenshots Form the App and one of the Browser. do you also News the actual Image itself?

Screenshot_20210116-150722 Screenshot_20210116-150110 Screenshot_20210116-150057

mueller-ma commented 3 years ago

@Matthiasmhm Can you post the log of the app? Maybe it contains a hint why the images aren't loaded.

mueller-ma commented 3 years ago

I noticed that the gallery app I use can also display both images from the first post. It uses Glide, so I tried it and with this patch both images are displayed in openHAB:

diff --git a/mobile/build.gradle b/mobile/build.gradle
index 9acc026b..ccdbc2da 100644
--- a/mobile/build.gradle
+++ b/mobile/build.gradle
@@ -155,6 +155,10 @@ dependencies {
     implementation "com.jaredrummler:colorpicker:1.1.0"
     implementation "com.caverock:androidsvg-aar:1.4"
     implementation "com.github.AppIntro:AppIntro:6.0.0"
+
+    implementation 'com.github.bumptech.glide:glide:4.11.0'
+    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
+
     // MapView support
     fullImplementation "com.google.android.gms:play-services-maps:17.0.0"
     fossImplementation "org.osmdroid:osmdroid-android:6.1.6"
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.kt b/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.kt
index af780391..4be22806 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.kt
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.kt
@@ -20,6 +20,7 @@ import android.os.SystemClock
 import android.util.AttributeSet
 import android.util.Log
 import androidx.appcompat.widget.AppCompatImageView
+import com.bumptech.glide.Glide
 import kotlin.random.Random
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
@@ -287,6 +288,7 @@ class WidgetImageView constructor(context: Context, attrs: AttributeSet?) : AppC
         super.setImageDrawable(null)
     }

+    @Suppress("UNUSED_VARIABLE")
     private inner class HttpImageRequest(
         private val client: HttpClient,
         val url: HttpUrl,
@@ -324,12 +326,12 @@ class WidgetImageView constructor(context: Context, attrs: AttributeSet?) : AppC
                         ScaleType.FIT_END, ScaleType.FIT_XY -> ImageConversionPolicy.PreferTargetSize
                         else -> ImageConversionPolicy.PreferSourceSize
                     }
-                    val bitmap = client.get(actualUrl.toString(),
-                        timeoutMillis = timeoutMillis, caching = cachingMode)
-                        .asBitmap(size, conversionPolicy)
-                        .response
-                    CacheManager.getInstance(context).cacheBitmap(url, bitmap)
-                    applyLoadedBitmap(bitmap)
+                    scope?.launch {
+                        Glide
+                            .with(context)
+                            .load(actualUrl.toString())
+                            .into(this@WidgetImageView)
+                    }
                     lastRefreshTimestamp = SystemClock.uptimeMillis()
                     scheduleNextRefreshIfNeeded()
                 } catch (e: HttpClient.HttpException) {

This is just a test with Glide, many things around image loading is broken, obviously.

@maniac103 What do you think we should do here? Use Glide just for converting the downloaded stream to a Bitmap or replace our custom caching/sizing code?

mueller-ma commented 3 years ago

Ok, I found the issue and I'll propose a PR.

maniac103 commented 3 years ago

Great that you found a solution without using 3rd party image loading libraries :+1: I was looking into those a bit the last days, but none of the available libraries seems like a simple replacement, so your solution is much preferable ... even though the problem at hand is a real WTF.

tobiasisenberg commented 3 years ago

Many thanks!