Open MaxLeiter opened 5 years ago
This is going to be long sorry, but to answer your direct question.
"Would it be feasible / sensible to provide an array of notifications?"
I don't know for sure. Just being honest, i've never implemented such a thing. Do I know how to get alerted when a notification is presented, yes, do I know how to get the date from the notification, meta data, maybe (on a few things), do I know how to store these things? sure.
Now the story of why I don't really care to update XenInfo.
XenInfo was not made to be what it is. It's that simple, i'm a person that enjoyed Cydgets. With Cydgets you could access a lot of the iOS APIs due to Sauriks cycript. It was an amazing tool. A widget with a clock and date (only thing really allowed by pure javascript) is pretty lame. I want a widget to have weather, clock, maybe battery percent, signal, etc. Cydget allowed this and if you look at that timeline I was the one making "Cydgets". These were advanced widgets. They allowed you to do things a normal widget couldn't do.
I was addicted, but was limited. Cydgets only ran in Cydget. New things appeared such as LockHTML. LockHTML was limited though (I thought). You could only use "web" things. This means web APIs (like weather) and more. While limited we could get weather in our widgets, what's better than a clock and date? A clock, date, and weather:)
One day while messing around I found out I could load .bundles in LockHTML. .bundles are a little complicated, but lets say I was able to achieve everything I did with Cycript, but without Cycript. I realized I could have direct communication to iOS and have LockHTML load it. I fell in love and went so far into this. This meant reversing iOS's weather framework, searching their private headers looking for battery percent, signal, music info, etc, everything you could think of I was looking.
In this time comes this tool InfoStats. InfoStats was simple it saved things like battery percent to a text file. In your HTML you could load the text file and you get the battery percent. This worked with tweaks like LockHTML, GroovyLock, and iWidgets. This allowed you to have all this info in all these tweaks. It was great and got better. Saurik joined in, he created WebCycript https://twitter.com/saurik/status/615602688089133057?s=20 a utility that allowed us to get all the info of cycript in any HTML, but we couldn't do this directly. This is where InfoStats2 comes in.
InfoStats2 had this great API that allowed you to connect to the system directly through any webview, wether it be iWidgets, LockHTML, GroovyHTML, etc. It had an amazing callback system and made it insane to create widgets. The widgets were amazing. To cut to the point this didn't last long and died. It died because Saurik didn't update WebCycript which is what InfoStats2 relied on. I won't get too far into this drama, but I would've stopped as well.
With InfoStats2 dead and no one out there has a replacement. The whole jailbreak community only had widgets with time and date, some weather apis, but they got killed off after. I was the only person who had widgets that gave info. Due to me getting so in depth with LockHTML loading bundles I was able to reverse the weather api and get all the system info I wanted.
I made LockPlus waaaay back in like 2012. It wasn't called LockPlus it was called LockBuilder (not the alpha name) and was built for Cydget. Cydget died, I made it for LockHTML, LockHTML died and I made LockPlus which ran it's own system. I also made FrontPage, which was for the homescreen. I put FrontPage on github hoping someone would take what i've found and make an API like InfoStats2 but without the reliance of Cycript. No one did.
I was the only one who had "widgets" on the homescreen and lockscreen, but in this time AnemoneHTML came along. Pretty simple, load your html and run widgets. Again widgets were limited to clock, date and internet apis. You could not get system info. iWidgets, LockHTML, and GroovyHTML were dead at this time. No one had widgets with system info on the homescreen and lockscreen besides me through LockPlus and FrontPage.
Me being the person I am, I wanted people to have better widgets in AnemoneHTML. So I took the info I learned from LockPlus, FrontPage, and Cycript and made AnemoneInfo. This allowed you to use a simple api and get iOS info in AnemoneHTML. Music, battery, signal, etc.
Immediately everyone started using it. Tons of widgets were made and everyone loved it. Besides AnemoneHTMLs issue of showing a random white screen, and all the battery performance issues.
In due time AnemoneHTML was removed from Anemone. Who knows why, but who really cares. XenHTML emerged a little before and was the staple. It allowed html to be placed on the lockscreen and homescreen. It replaced iWidgets, AnemoneHTML, LockHTML, GroovyHTML, and whatever else. (It didn't replace LockPlus or FrontPage as they are totally different)
The obvious thing people wanted was AnemoneHTML for XenHTML. What did I do? I dumped XenHTML headers and went to town (either before it was open source or before I knew it was open source but I remember dumping the headers)
Anyway. I made XenInfo. I will point out, at the time, I did not say it was a replacement for InfoStats2. At this time I still thought it would come back, and I did not try to implement anything that would accept InfoStats2 code. A note here: The same person who made XenHTML also made InfoStats and InfoStats2 https://twitter.com/_Matchstic . I did not consult Matchstic about this which in hindsight I wish I did. If only about the name.
I supported XenInfo for awhile, I was in communication with many of the prominent widget makers. By support I mean frequent updates, listening for what they wanted and tried to implement it. As a side effect FrontPage and LockPlus would gain info from me learning to add it to XenInfo. This lasted awhile until an issue arose with XenHTML.
This issue was a weird freezing after a new jailbreak. The freezing was not on all devices and only seemed to append with Low Power Mode enabled. At this time Matchstic decided to rewrite XenInfo as he thought that was the issue (there is no proof it was but I believe what he tested) upon the rewrite the entire code base was changed. If anyone has ever been in any type of development then you know what this means. Bugs. So many bugs, in the beginning it was me and Matchstic testing. It conflicted with LockPlus, FrontPage, didn't update correctly, had date bugs, etc. While Matchstic addressed most of these issues before release. The release was on my repo.
Since this was my repo it fell on me. I didn't know anything about this codebase, I didn't write it, I only read it. Obviously I had to learn the new code base myself and deal with the issues that came up. Please note at this time our jailbreaks weren't very good. I mean they still suck with random reboots, etc. This whole rewrite was done because a though was XenInfo froze the device, when the jailbreak itself with no tweaks installed still froze the device.
Anyway I still continued to support it, I listened to widget developers and they wanted it free. Not all but the majority. XenInfo was only available through my repo, and only people who support me get into my repo. Meaning only those who supported my repo financially would have access to XenInfo making it a "paywall" to access XenInfo. I made it free for everyone. (BTW all the code is literally right here) I felt this was the only decision as the base code was no longer from me, but from Matchstic. You can literally blame me for all the shitty widgets in Packix though. sorry.
Even though it was Matchstic's code now I had to learn it and I still have to support it. I don't know if you've ever supported someone else's work but it sucks. At this time XenInfo is still working and it's only working because i've fixed issues that come up. I've also added new things as well. It still has bugs and it seems neither I or Matchstic care. I still get emails daily for XenInfo support most is tweak conflicts that are clearly mentioned and people not enabling options.
Now (as I was then too) i'm waiting on someone to take this info and make their own tool that does this but better. I though Nepeta was going to do this but didn't, and to this day Matchstic says he will (or is in the process to) make a "native" XenInfo built into XenHTML which honestly is what should happen. Just like I did with LockPlus and FrontPage. Their API is built into them. XenInfo is hacking its way to XenHTML and always has. It was only built to provide that info which it does and it was only built for my supporters. Not for every single person on Packix trying to sell a $3 widget.
We are now here. I know Matchstic is making an alternative (he said he is and I trust his word) so I have no real motivation to mess with this code. There is many things that could be added in this tweak, but also so much that wouldn't be used at all. I'm tired of deciding what gets added and what doesn't what would people use and what would be totally pointless for the majority. The research it takes would be better else where.
There is so much that goes into a project that people have no idea about and if someone is making an alternative, that will be better, and is creditable, that should be your time to say hey my time can be spent better elsewhere.
Thanks.
Would it be feasible / sensible to provide an array of notifications?