plusonelabs / calendar-widget

An calender widget for your Android home screen.
Apache License 2.0
369 stars 126 forks source link

Sometimes after device unlock the widget is stuck at "ToDo Agenda Loading..." view #318

Closed StarCruiser75 closed 4 years ago

StarCruiser75 commented 5 years ago

Hi, since last update (v3.0), even recreating the widget from scratch, keeps crashing after a few hours... Xiaomi Mi Mix 3, Android 9, Rootless Launcher

Screenshot_2019-09-02-19-59-47-002_amirz rootless nexuslauncher

yvolk commented 5 years ago

@StarCruiser75 I don't see any crash reports in Google Play yet... Could you capture crash errors / stack traces somehow, otherwise I don't know, what to fix...

See https://www.google.com/search?q=how+to+capture+android+logs&oq=How+to+capture+Android+logs on logs capture.

You need to search for errors in lines that contain "todoagenda"

StarCruiser75 commented 5 years ago

Hi Yuri, thank you for your reply. To tell you the truth, I'm guessing that it is crashing, because the only thing I know is that after a few hours that I create a new cal widget, suddenly I unlock the phone and it is in the state that you can see in the pucture I uploaded. Between the creation and the "ghost mode", I have unlocked the phone many times and the widget was displayed perfectly, so I am sure that it was working, and before the v3.0 I never had a problem like this. I can try to connect the phone in debug mode, but I do not know how to replicate the issue or when it will happen, so I doubt I'll be succesfull in this. If you have a "debug" version that writes a log on the phone, I can install it and then send you the log as soon as the problem occurs, hoping that something usefull is logged.

yvolk commented 5 years ago

@StarCruiser75 Thanks for investigating. Please don't give up!

Aha, so it is not crashing but rather "doesn't load": the screenshot clearly (as I thought :-) ) tells that currently the widget "is loading" or maybe is waiting for Android system (Launcher app) to start its update.

Before v.3 release the widget didn't have the "Loading" view: it simply showed "No events" and thus confused users. But probably the cause is similar.

So we need to find out, why the widget is not loaded (or fails to load) sometimes. This means that logs may help... BTW AFAIK logs can be downloaded even if you connect to the phone AFTER seeing this problem, please try.

Honestly, I encountered this problem once also. It is cured by forcing loading by opening "ToDo Agenda" app (not a widget) using a Launcher, selecting the widget in the list (if you have more than one) and simply exiting. Please try!

yvolk commented 4 years ago

Collecting links to solutions of similar problem with other Android AppWidget apps: https://digibites.zendesk.com/hc/en-us/articles/208094229-Widget-not-loading https://joyofandroid.com/android-widget-problems/

eturk1 commented 4 years ago

Just crashed on my screen. What can we search for in LogCat to look for errors?

yvolk commented 4 years ago

I can reproduce this problem by simply changing font size in settings. On the "CONFIGURATION_CHANGED" the widget is reset by Launcher, but receives no events/notifications for reloading and redrawing. Hence it stays in initial state. I already figured out, how to catch that "android.intent.action.CONFIGURATION_CHANGED" event, fighting now with Launcher to redraw the widget...

For curious:

2019-09-05 09:26:27.283 7105-7105/org.andstatus.todoagenda I/org.andstatus.todoagenda.EnvironmentChangedReceiver: Received intent: Intent { act=android.intent.action.CONFIGURATION_CHANGED flg=0x70000010 } 2019-09-05 09:26:27.285 7105-7105/org.andstatus.todoagenda D/org.andstatus.todoagenda.AppWidgetProvider: recreateWidget, widgetId:17, context:android.app.Application@6bed9fc 2019-09-05 09:26:27.288 1572-1572/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 3832) 2019-09-05 09:26:27.288 1572-1572/? E/AppWidgetServiceImpl: Widget host dead: HostId{user:0, app:10042, hostId:1024, pkg:com.lenovo.launcher} android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(Binder.java:615) at com.android.internal.appwidget.IAppWidgetHost$Stub$Proxy.updateAppWidget(IAppWidgetHost.java:123) at com.android.server.appwidget.AppWidgetServiceImpl.handleNotifyUpdateAppWidget(AppWidgetServiceImpl.java:1925) at com.android.server.appwidget.AppWidgetServiceImpl.-wrap9(AppWidgetServiceImpl.java) at com.android.server.appwidget.AppWidgetServiceImpl$CallbackHandler.handleMessage(AppWidgetServiceImpl.java:3440) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at com.android.server.SystemServer.run(SystemServer.java:359) at com.android.server.SystemServer.main(SystemServer.java:228) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

yvolk commented 4 years ago

I hope that I fixed this problem in v.3.0.2 Beta, please check #320

StarCruiser75 commented 4 years ago

Hi @yvolk, first of all, thank you for your work and for your time on this! As soon as you posted about the new beta, I checked many times the Play Store for the update, but as of now the latest is still v3.0.1. Do you know if it is normal that it takes so long for a beta to be available?

StarCruiser75 commented 4 years ago

UPDATE: v3.0.2 finally showed up in the Play Store. So far the widget seems to work, I'll let you know in the next hours as in my case it was not "crashing" immediately but after a few hours and a few unlocks.

eturk1 commented 4 years ago

@yvolk oops, spoke too soon. Now widget is becoming completely invisible.

Screenshot_20190907-131931
yvolk commented 4 years ago

@eturk1 Please try these steps:

  1. Uninstall the "ToDo Agenda"app.
  2. Reboot your device
  3. Install the app again. ?!
BlackDex commented 4 years ago

I have exactly the same issue. Will try the uninstall, reboot, install now and report back.

BlackDex commented 4 years ago

I did the following like 5 hours ago:

  1. Force stop
  2. Clear data/cache
  3. Uninstalled
  4. Rebooted phone
  5. Installed/Configured again

And it still is working. Lets hope it still keeps working the rest of the day.

yvolk commented 4 years ago

Another attempt to improve / fix this is done in v.3.0.4, see #322

BlackDex commented 4 years ago

Well, v3.0.4 kind worked oke i think but v3.0.5 is making it worse again. I Also disabled all battery optimizations for the app it self, the calendar app, the launcher etc... No action seems to be able to fix it.

The v2.x versions worked without any issues on the same phone before. I Can only fix it temporarrily by opening Todo Agenda from the apps drawer.

Screenshot_20190918-082825_TodoAgenda

yvolk commented 4 years ago

@BlackDex Please try reinstallation steps that you mentioned before: https://github.com/plusonelabs/calendar-widget/issues/318#issuecomment-530391976

?!

yvolk commented 4 years ago

I test v.3.0.5 on three devices and an Emulator: Android 4.3, 7, 8 and Emulator with Android 9: No problems loading the widget found.

Emulator works slowly on my notebook, so right after boot I saw, for about a minute, the same not initialized widget that @BlackDex demonstrated on the screenshot. But after this, without my intervention, the widget was automatically initialized and showed a list of events correctly.

I also tested Android 9 behaviour after upgrade from ToDo Agenda v.2 to v.3 - it doesn't work properly after upgrade: old widgets are empty, a new widget created stays not initialized. It took me two reboots (!) to have the new widget working properly (old widgets disappeared after the first reboot though...)

BTW, how many times did you reboot? :-) https://youtu.be/uRGljemfwUE

BlackDex commented 4 years ago

Well, i still have the issue. I even did more this time by clearing the app/dalvik cache after uninstall. Did two reboots after that. Installed and configured again.

And it happened twice today. As right now also. Never had these issues with v2. So I'm wondering what has changed so significantly. No phone updates, or other apps installed, only updates.

Is there something we can do? Can you create a special debug/logcat version which logs somewhere to a file which we can send you after we noticed this?

yvolk commented 4 years ago

@BlackDex First of all, thank you for taking time investigating the problem and willing to help developers. With your help we will definitely find a solution for your case, otherwise I don't know, how to reproduce the problem. To all: please post your observations / thoughts on a way to reproduce the problem.

Q1. Two times in a day means that about once in 10 times, when you unlock your device, you see the widget not initialized ?!

Q2. What is your Device model and Android version?

Q3. What launcher do you use? If you use not a factory one, please try it.

Q4. Try to go to Android Settings -> Display -> Font size; Change the font size and press Home button on your device. Does the ToDo Agenda widget still work?

yvolk commented 4 years ago

@BlackDex 1. I could reproduce the problem by installing Nova Launcher and switching between it and default device Launcher.

  1. I fixed the problem, now widget is initialized successfully in both Launchers, even after switching between them (when ToDo Agenda widgets exist in each Launcher).

Please try v.3.0.6, see #320

BlackDex commented 4 years ago

@yvolk, testing it now. I'm using nova indeed. Ill keep you posted, thanks for the work.

BlackDex commented 4 years ago

Oke, this works quite nice. There is just one quirk i spotted. Now only the headers shows the icon, but the calendar list is showing.

Screenshot_20190923-080037_Nova Launcher

yvolk commented 4 years ago

@BlackDex Do I understand correctly that you see the initial header with ToDo Agenda's icon instead of normal header with current date and buttons?! I'm almost sure that this can be cured by uninstall/reboot/ install... ?!

BlackDex commented 4 years ago

Indeed, you understand correctly. It only happened two times today.

But i will try the clean, uninstall, reboot, install again with this version :).

yvolk commented 4 years ago

@BlackDex Anyway, I made another fix, please install v.3.0.7, see #320

New look of the "not initialized" widget: not-initialized-yet

StarCruiser75 commented 4 years ago

Hi, I had the same problem as @BlackDex, occurring on my case each time screen was rotating, but with v.3.0.7 si fixed! However I have a new thing I'd like to report, probably we cannot consider it an issue or problem, but more a strange behavior: with events where icons are shown, if the title is on two lines, the icon resizes to fit the two lines high, but in my opinion it is inconsistent with the other events with one line events, where icons are smaller. Probably the correct behaviors should be to have all the same size that is the one line. Screenshot_2019-09-23-22-02-11-059_amirz rootless nexuslauncher

yvolk commented 4 years ago

@StarCruiser75 I couldn't reproduce such enlarged icons on my devices. Could you test previous version of ToDo Agenda with the same data on the same device (v.2.1, that is available e.g. on F-Droid and can be installed in parallel with this one) I need to understand if this is a new problem, or it existed before.

StarCruiser75 commented 4 years ago

I tried the comparison and the behavior is the same, maybe previously I was using a bigger font and the different hight was less evident (now I'l using the smallest). In my opinion, anyway, icons should always remain of the same size regardless if the title is on one or two lines. This occurs in one case, that you can see in the image I attached in my previous comment in the third calendar event from the bottom, the one that has start and end time as second row. But you are the creator, so you decide what's best. ;-)

BlackDex commented 4 years ago

@yvolk It is working fine since yesterday, No issues at all. Thx!

BlackDex commented 4 years ago

I have not seen this issue any more today. Seems it is fixed. Thx.

Was this a nova compatibility issue? Or something more general?

yvolk commented 4 years ago

I think this problem is caused by a failure of Android team to describe properly how a Launcher application should or should not interact with an application that provides its widgets (with Todo Agenda in this case). This is why widgets are so fragile and work differently in different Launchers, this is why re-installs and restarts are needed...

yvolk commented 4 years ago

@StarCruiser75 I hope that I fixed the problem with enlarged icons also, please try v.3.0.8 here #320

StarCruiser75 commented 4 years ago

Hi @yvolk, now icons are all of the same size, big, but of the same size, at least for me that use "very small" font size. Thanks for the fix

yvolk commented 4 years ago

@StarCruiser75 Could you create separate issue on this with screenshots, please.

dagord commented 3 years ago

Hello. I'm adding my contribute after 2 years since I'm experiencing the same problem as described by the OP on my Xiaomi Redmi Note 7. I'm using it without problems for several months, but since a couple of days it started "stucking" with the "loading" message. I tried switching between different launchers (default launcher and Poco launcher) but the problem persists. No updates on my side - none of which I'm aware - the problems simply started out of a blue. Strange thing: I tested another widget (https://github.com/andstatus/todoagenda) and it has the same behaviour

yvolk commented 3 years ago

@dagord ToDo Agenda widget is actually a continuation of this widget's (the "Calendar widget") work and source code. In January 2019 the "Calendar Widget" was renamed to "Todo Agenda" and published to Google Play as the new application. More details: https://github.com/plusonelabs/calendar-widget/issues/291

I mean that maybe even today both old and new versions of the widget have something similar from Launcher's point of view, and this causes similar problems. It would be interesting to know if any other similar Open Source widget works normally on your device...

dagord commented 3 years ago

@yvolk In the last days I tested the default calendar widget and "Calendar widget: month + agenda" (chosen at random and very similar to ToDo Agenda) and both work perfectly, at least with regard to this specific issue

yvolk commented 3 years ago

@dagord Thank you for testing. Unfortunately the "Calendar widget: month + agenda" is closed sourced. Please try to find any Open Source "calendar widget" that works on your device. So I could compare their code with our.