Is there a way to stop event propagation without passing message? - elm

I'd like to stop the event propagation on specific Html elements, but for this, I need to create a Placeholder Message. I found this post https://github.com/elm/html/issues/96 but it seems outdated and the recommendations do not work anymore.
Is there a nice way to achieve it? Unfortunately the never fn does not work.
My Current solution is:
Html.Events.stopPropagationOn event (Json.Decode.succeed ( IgnoreEvent, True ))

Related

[JETPACK COMPOSE]: is there a way to restart whole app programmatically?

I need a way to make my app close and opens again. Or just restart everything inside of it.
Since the issue with my app can be fixed by closing app and opening again (When creating user the loading function to firebase the collection inside user document does not load for some reason)
Below code can do it:
val context = LocalContext.current
val packageManager: PackageManager = context.packageManager
val intent: Intent = packageManager.getLaunchIntentForPackage(context.packageName)!!
val componentName: ComponentName = intent.component!!
val restartIntent: Intent = Intent.makeRestartActivityTask(componentName)
context.startActivity(restartIntent)
Runtime.getRuntime().exit(0)
So... you could write ways to "restart everything", but I am going to strongly suggest not doing that. When building an app, you will run into edge cases. You will hit some failure states that you can't recover from. That happens. But, solving these cases by just "restarting" doesn't actually address the issue and will probably result in wonky and undesirable UX.
I would instead suggest you post here some steps to reproduce and debugging results.
Under what circumstance/flow does this document stop loading?
When it does happen, can you capture the call to Firebase where it is trying to load the document?
If so, what does that call look like?
Is it looking for the document in the correct place?
Can you show an example of the call when it fails and also what the database hierarchy looks like?
Can you show us a snippet of code where this is failing?
Without more information, this sounds more like a race condition - you might be trying to find the document before it is actually created and not handling the error path for when the document is not found. However, we would need to do some debugging to verify.

GSAP after clear timeline reverse animation not working

I am facing an issue when I clear the timeline using timeline.clear() to move back all the elements to it's original position because of immediateRenderer = true, now issue I am facing is after clear timeline revert is not working.
Please suggest a proper solution that includes immediateRenderer to true with on complete of animation elements should reset to it's original position and revert should work after clear the timeline
I have also search into GSAP forum but not get any proper solution for this issue.
When you clear() a timeline, that literally deletes all of its child animations, so it'd make sense that if you try to revert by doing something like seek(0), it would have no effect (there are no child tweens to re-render at their staring values). It sounds like maybe you just shouldn't call clear() before reverting.
If your goal is to revert the changes that a tween or timeline made, you should be able to simply seek(0) to jump back to the starting time, and if you want to pause it there so that it doesn't continue playing just pause(0) like:
var tl = new TimelineLite();
tl.to(...);
//then later...
tl.pause(0);
Is that what you're looking for?
If not, it'd be super helpful if you could provide a reduced test case in codepen or jsfiddle so that we can see what's going on.
Also, were you saying that you posted in the GreenSock forums but you didn't receive an answer? We're usually very good about answering every question, typically in less than 24 hours. Let me know if there's something we missed.

wxWidgets: is it possible to nest two different wxTimers?

I am writing an application that stays in the traybar and do some checks every some minutes.
When it performs this checks, I would like the traybar icon to be animated.
That is why I have a first wxTimer triggering checks. In its OnTimer call I tried to manage the second wxTimer to handle the animation.
The issue is that timers work in the mainloop, so the icon is not updated when the second timer updates the icon index.
Is there a way to overcome this problem?
Thank you!
Your description of the problem is unfortunately not clear at all but if you mean that you don't get timer events until you reenter the event loop, this is indeed true and, moreover, almost tautological -- you need to return to the event loop to get any events.
This is the reason why your event handlers should always execute quickly and return control to the main loop. And if they take too long, the usual solution is to use a background thread for the real work and just schedule it in your event handler, but not wait until it is done.
Basing on Ryan G's comment
It is possible to incorporate wx.Yield() into the main loop. This is usually used to temporarily release the global lock to allow the widgets to update.
It is also possible to create a separate thread to update the animation independently from the main thread.
Using wx.Yield() should be easier to implement.

pygtk vlc player does not play next track

I'm writing a small custom player based on libvlc. I've used much of the code from https://github.com/hartror/python-libvlc-bindings/blob/master/examples/gtkvlc.py that plays a single track just like I need.
Now I want to swtich to another track after previous has finished. To do that I catch callback "EventType.MediaPlayerEndReached" and in callback handler I write code:
<------>def endCallback(self,event):
<------><------>fname = vlc_controller.GetNextTrack()['url']
<------><------>self.w.set_title(fname)
<------><------>self.vlc.player.set_mrl(fname)
<------><------>self.w.set_title('after set_mrl')
<------><------>self.vlc.player.play()
<------><------>self.w.set_title('after play')
Now when this code gets executed it stucks on self.vlc.player.set_mrl(fname) and does not go any further and as a result I see NO NEXT TRACK.
I've tried different variations of this code using (vlc.stop(), vlc.set_media instead of vlc.set_mrl) but nothing works
Finally....
I think the best choise is to make multi threaded application on python
2 Threads:
Main thread - gtk.loop and displaying video an some other thinks
Additional thread that makes media switching.
For some time I was afraid of multithreading but now I know that this was the best way to do this task
For those facing similar issue in C# (Xamarin), per VLC documentation, calling the VLC object from an event tied to the object may freeze the application. So they said to use the code below inside the trigger event.
ThreadPool.QueueUserWorkItem(_ => PlayNext());
An example would be calling the code above inside the EndReach event.
Where PlayNext() is your own custom method to handle the next action you want to execute.
I struggled with this for about a day before seeing that portion of the documentation.

Interrupting & Non-interrumpting events can be for throwing and catching?

I have a question about the BPMN notation. Does anybody know if interrupting/non-interrumpting events can be for throwing and catching. The specification (v2.0) doesn't define this explicitly (or maybe I missed it) but it seems it only defines the icon for catching the event.
Maybe I am misunderstanding the use that events attached to the border of an activity have.
If I had to take a guess I would say that it is only catching since events attached to the border of an activity are catching things that happen inside subprocesses or activities. Things that happen outside the scope of the activity or subprocess do not influence what can happen inside it.
Thanks for your help.
interrupting (int) /non-interrumpting (n-int) are only catching events. they can be used in sub-processes and as boundary events.
the diffrence between int and n-int as a boundary event is:
- [int] when fired the action is blocked
- [n-int] the event is fired but the action still goes on.
here you can see a simple doc with all the grammar. if you look on the right side you can see that no trowing can be (n-int).
if you think about that, trowing event does not have to wait for do their action, so n-int or int does not make any sense.