yashsingh1/xdaforums huggingface dataset:
[Android Apps and Games] akatarmo:
Hi, I can't find /android/data/fancywidgets neither. I created also this folder fancywidgets manually and unpacked the skins .zip file in it, but I can't see them from the skins selection. Android 12.
[Android Apps and Games] Bonesont:
I have done this with Androids 2.34 and 6.01 and 9 with success never owned androids 12. Did you run the widget first the look for folder it will have nothing in it. All I can say is check in all storage's Android/data. I'm also looking Fancy widgets 3.5.6 for the old android phone.

Android 6.01 layout
[Android Apps and Games] akatarmo:
Yes, I ran the widget first, but the /android/data/fancywidgets folder was not created, as in android 6. With this app Apk Info from the play Store

Apk Info - Apps on Google Play

Informations about installed applications

play.google.com

I can see that the folder for data (for Android 12) should be /android/data/com.anddoes.fancywidgets but no such folder is created by te apk. For this reason, I think, it is not possible neither to back up the configuration.
[Android Apps and Games] luboz:
No, because I don't have 3.5.6 available. Sorry.
[Android Apps and Games] akatarmo:
Hello, I am attaching Fancy Widgetsd 3.5.6 modified, based on the solution that has been posted before. I have only modified the address of the server that the apk uses to update the whaether forecast.

I have tested the app on Android 6.0.1 and Android 12 and both work and update fine. In VirusTotal, only Trustlook reports an "Android.PUA.DebugKey" but the remaining 50 or 60 analyzers give the file as safe.

Don't forget to include Fancy Widgets in the list of "not optimized" apps in battery usage, to prevent it from stopping updating.

Edit: go to the post #168
[Android Apps and Games] TomTom XL:
I have version 4.0.8. used by @luboz. Now the weather updates, but the time no longer. Anyone else know that?

(Translated by Google)
[Android Apps and Games] akatarmo:
Have you added Fancy Widgets to the list of apps that should not be optimized for battery use?
[Android Apps and Games] 1kaj:
I also have a "fancy" from the beginning -

(and it's been quite a few years -12?) Now Android 13 (Xiaomi Mi11)

Trying to solve it led me here. - on March 20, I received an update to a higher version of the system. And I test if my favorites work. The last time I used version 4.0.2 without problems was at the beginning of this year.

It stopped working a few weeks ago. I guess there was a partial update, it was still Android 12.

Now I miss the weather animation after unlocking the phone to perfection. (I also love the screen wiper.)

I used version 4.0.8 here from you. Many thanks for this working version.

If I could somehow contribute to "sustainable development" or beer... let me know and no problem.

I have several dozens of weather and clock skins saved. Unfortunately, I can't get them to work. I will deliver if interested.

Thank goodness "Fancy" is still alive.

<Excuse me non-English speakers... passive user from the Czech Republic...))>
[Android Apps and Games] kaoow:
Anyone got it working with Android 13? I tried the 3 different posted versions but I'm unable to add skins, there is just the default one with no background.

The app itself is not creating anything in Android/data even after adding the widget. If I create com.anddoes.fancywidgets folder manually there and add folders with skins, the app is not seeing them. Although when I uninstall the app, the folder gets deleted. Apk Info points to /data/user/0/com.anddoes.fancywidgets and I tried to put clockskins there and inside files subdirectory but no success
[Android Apps and Games] Bonesont:
I don't have adroids 12 or 13 but after installed and run once. Suggest take a look in setting, installed apps, fancy widgets. See the permissions for storage is enabled. If this is not enabled that is the possible answer why the Fancywidgets folder not populating. Very interesting that uninstall sees folder and remove your manually created one. I believe this maybe the problem.
[Android Apps and Games] kaoow:
I give it Files permission when it asks, it has it. While under 'All files access' Fancy Widgets don't show up.
[Android Apps and Games] loggirlmuso:
I get this message on my phone when I try to install it (see picture)...
[Android Apps and Games] akatarmo:
That message indicates that there is a newer version installed on your smartphone. You must completely uninstall Fancy Widgets before installing any version.
[Android Apps and Games] fieryjack55:
Forgive my ignorance but does the phone have to be rooted in order to see the skins folder?.
[Android Apps and Games] Bonesont:
Good question, but no my phones are not rooted. I'm only androids 9.x
[Android Apps and Games] fieryjack55:
Thanks for your reply,I added the fancywidgets/clockskins/weatherskins folders manually and put my skins in the folders and turned the phone off and back on and now all the skins work perfectly.So the phone doesnt have to be rooted for fancywidgets to work.

For reference my phone is Moto E20 running Android 11Go.
[Android Apps and Games] fieryjack55:
I also have this problem,using 4.08 and the time doesn't update.If you refresh in settings it updates the time but only for that minute.

Moto E20 on Android 11Go.
[Android Apps and Games] rider123:
I have the same problem with the time not updating. I have a new S23 with android 13 which has the time update problem. My old S9 on android 10 updates time perfectly.
[Android Apps and Games] fieryjack55:
I fixed this problem by adding fancywidgets to the list of apps that should not be optimized for battery use.

It now works perfectly on moto E20 running android 11Go.

Reactions: Stefanos53
[Android Apps and Games] rider123:
Thanks!

I just set the battery use for Fancy Widgets to "unrestricted" and now it updates time correctly on Android 13. I am happy again!
[Android Apps and Games] fieryjack55:
Also the battery skins work good now as well,so everything is 100% now;
[Android Apps and Games] dejan16v:
It is working on Android 13 on Samsung phone.

Once again Thanks a lot
[Android Apps and Games] The Diplomat:
Hi,

It seems that isn't working since yesterday. Anyone else is experiencing the same problem?

It's not updating temperature or the forecast.
[Android Apps and Games] akatarmo:
It seems that isn't working since yesterday. Anyone else is experiencing the same problem?

Yes, same here. The previously proposed provider that we were using in the recompiled versions is dead. When doing the query manually, he says:

"your subscription has expired. Please contact AccuWeather to resubscribe"

We need to find a new provider that is up and running.
[Android Apps and Games] The Diplomat:
Thanks for this confirmation. I hope that it can be fixed soon with a resubscription or a new provider.
[Android Apps and Games] &Delinquent[$]:
New accu-weather account

There may be a way for each individual to do this themselves. Accu-weather has a free API tier, so assuming we can all create a widget with the same name, all we would need to do is adjust our hosts file to redirect x.accu-weather.com to our own API account.

I'll look at that if this accu-weather account falls over.
[Android Apps and Games] The Diplomat:
Hi,

What's that, the fancy widgets .apk working again?

Thanks.
[Android Apps and Games] akatarmo:
Hi, thanks for the good work. Yes, it works fine with the provider you entered. I searched the net and found several, but all with an expired subscription. However, I did not find the one you have found, that I could see when decompiling your mod with ApkEasyTool.

I agree that it would be best if we could use our own API. In fact, I got mine and you can do up to 50 queries a day free, which is enough for personal use. But it would be necessary to do tests and find out how to adapt our own API to Fancy-Widgets because the way to use the personal API is different.

For example, I do it like this from my internet browser (using latitude & longitude as parameters)

http://dataservice.accuweather.com/locations/v1/cities/geoposition/search?apikey=

<myAPIkey>&q=41.5293878%2C2.2875081&language=es&details=true
[Android Apps and Games] akatarmo:
Attached version 4.0.8 modified using the @&Delinquent[$] provider. This version has animations and allows to adjust the widget to the screen with more precision. And it works on Android 12 (I think Android 13 too).

Remenber to add Fancy Widgets to the list of apps that should not be optimized to avoid that the app (also the time) stop updating.

Edit: Go to post #168
[Android Apps and Games] The Diplomat:
Thank you very much! Working again.
[Android Apps and Games] &Delinquent[$]:
Yep. That's just raw API data though - I'm farily certain there has to be a way to create a widget package with accuweather. Anyway, I'll look it up another time - the provider I found should last a little longer than samsung did, since samsung mobile has, I'm fairly certain, obsoleted their old weather widget stuff.
[Android Apps and Games] Surmoka:
I just found this thread and I'm so happy that it's not only me with the problem that FW was not working and I was missing it so much.

Thanks for the updated versions! However, this one does not work for me on Android 10 (I know... but it's impossible to upgrade my phone), I think because of the animations or something graphical, because the widget is invisible on the home screen. I can tap it and resize and remove because it occupies space, but still completely invisible.

Can you maybe build a standard version (without new graphical fancy) with the updated weather connection? Would be much appreciated!
[Android Apps and Games] zulu88:
Works fine for me on my Galaxy Note9 (android 10).

PS. On android 11 I can't add any location
[Android Apps and Games] Surmoka:
For me, the previous versions (with now non-functioning weather again) show up OK, this latest version (with animations) is invisible.
[Android Apps and Games] akatarmo:
The same thing happened on my wife's smartphone, also with Android 10. Version 3.5.6

works fine

but it doesn't have animations or the 3 dots on the top right to update and more options. My wife wants her animations back :oops:

I installed version 4.0.8 (without uninstalling 3.5.6) and what you say happened, the widget was not visible. So, I

completely uninstalled

everything and started a clean install of 4.0.8. But it is

very important

run and configure the app

before

creating the first widget and make sure to grant the necessary permissions (location and card access). After that, I created the first widget and this way it worked.
[Android Apps and Games] akatarmo:
But the version 3.5.6 that @&Delinquent[$] has published (without animations), now works again and with updated weather connection. Maybe that version is the one you need, right?
[Android Apps and Games] Surmoka:
Thank you! After a complete reinstall and meticulous permission granting BEFORE creating the widget, it now shows up!

So happy, I'm already doing the full backup of my phone...
[Android Apps and Games] zulu88:
Galaxy Note9 android 10 everything works v4.0.8.

Galaxy Tab S5e android 11 cannot add any location and cannot backup (v3.5.6 and v4.0.8)
[Android Apps and Games] xclub_101:
Thank you very much!

Would it be super-complicated to add some code like "if a certain file with a name very specific to this program exists use the first lines of that as the API key for the weather provider"? That way there would be a way for everybody to configure the program for their personal use.
[Android Apps and Games] akatarmo:
Hello. Yes, I think it's complicated. I have already done tests replacing the internal call that the app makes to the server to obtain the information with my own API. And it

does not work

. Because the format of the received file is different (JSON) from the original (XML).

I think @&Delinquent[$] knows a lot more than I do and, if necessary, he will be able to make some modification so that we can use our own API, which would logically be the best option to prevent the app from crashing again.
[Android Apps and Games] Surmoka:
Would this maybe mean that we can - theoretically - re-add other providers like WeatherBug? Accuweather is terribly inaccurate on many occasions
[Android Apps and Games] akatarmo:
I don't believe it. Because the internal code of Fancy Widgets is prepared to process the responses from the AccuWeather servers. I'm pretty sure it won't work with another provider.

I am paying attention to Fancy Widgets because my wife likes it but I don't use it. I use a weather forecast app that I have built with KWGT Kustom Widget Maker app, and I use OpenWeatherMap as provider (also with my free own API).
[Android Apps and Games] Surmoka:
I spent a lot of time configuring KWGT, but I just couldn't get it right. And it didn't update the clock until I tapped it, even tho it was excluded from battery optimizations.
[Android Apps and Games] akatarmo:
It works well for me. KWGT Pro, Samsung A52s and Android 12. The clock updates correctly (when you unlock the screen) and the forecast also, every hour.
[Android Apps and Games] Bonesont:
Just wondering what program you used to move the class file and resigned it?
[Android Apps and Games] &Delinquent[$]:
Android: How to Decompile and Recompile APKs - Stack Pointer

Explains how to decompile and recompile android APK files using apktool. This allows you to make changes to resource, smali and AndroidManifest.xml files.

stackpointer.io
[Android Apps and Games] &Delinquent[$]:
​

@xclub_101

Broadly speaking, this isn't complicated. First you'll need to find out what the widget expects, and what the personal API delivers. Then you'll need a fixed host (i.e. something with a static IP), that can run a scripting language - such as PHP or Python. Any language will do.

Then you can extract the information from the personal API, reformat it as an XML table, and return it in a webrequest. Point the widget at your script host, and job done.

I have a webserver of my own, so I'd just stick it in apache and call it done. For someone else without their own server, there are a number of cloud providers that wil offer you a free VPS. It's small, but you need next to no computing power for this. Oracle, Azure, and AWS all have free tiers.

Akatarmo, since you've already gone and done the API, could you maybe drop an example of the JSON and XML outputs? I'll write a script tomorrow and post it here, along with some instructions on setting up apache and whatnot.

Note: Actually modifying the widget is another matter entirely. There are reverse engineering tools out there that can pick up some of the actual code, as opposed to decompiling and getting a list of variables and pointers. However, this is not where my expertise lies - I'm a web developer, not a mobile applications developer.
[Android Apps and Games] akatarmo:
Hi, this is the response obtained with the internal call of Fancy Widgets, using your own code of payment provider with AccuWeather. LatLon of NYC, as example.

http://.........................../weather-data.asp?metric=1&langId=1&slat=40.730610&slon=-73.935242

(hidden partnerID with <----------------> in response)

Spoiler content hidden.

And this is the response obtained from the web browser using a free API. As you can see, it takes 3 calls to get the same result. And, the bad thing, the response is in JSON format.

1st internal call with LatLon for obtain CityID

http://dataservice.accuweather.com/locations/v1/cities/geoposition/search?apikey=

<api_key>&q=40.730610%2C-73.935242&language=en&details=true

Spoiler content hidden.

2nd Call with CityID, Current Condition

http://dataservice.accuweather.com/currentconditions/v1/349727?apikey=<apikey>&language=en&details=true&metric=true

Spoiler content hidden.

Third call with CityID, forecast 5 Days

http://dataservice.accuweather.com/forecasts/v1/daily/5day/349727?apikey=<apikey>&language=en&details=false&metric=true

Spoiler content hidden.

Both using LatLon for New York City.

I also use ApkTool and ApkEasyTool-GUI to decompile, modify, sign and recompile apk's.
[Android Apps and Games] akatarmo:
I agree, it's a very good solution. I also have a cheap web server linked with my own .com domain. I pay only

$10 a year

and have 30 Gb of space and 200GB Monthly Data.

I have some knowledge of PHP, in the past I made some web pages with that language.
[Android Apps and Games] Surmoka:
This is really gøød. I mean, then there is no limit to what API you're querying with your script. If there is a better source than Accuweather, it's just a matter of creating the wrapper that turns the API's response into the proper JSON.
[Android Apps and Games] akatarmo:
I'm afraid it's not that easy. Maybe it can be done for AccuWeather API but I think it's more complicated to adapt Fancy Widgets for any other provider. Let's wait for &Delinquent[$] to publish the script he announced today.
[Android Apps and Games] &Delinquent[$]:
hoookay this is going to be a while. There's next to no information in the accu-weather personal API for some reason. I'm going to have a look at what I might be able to dig up, but short of being able to add more data to the API call, I'm not sure accuweather is going to be the right solution.

Instead, I'm going to see what I can do about finding that information and collating it, which lets me build an entirely custom XML response containing the same information. OpenWeatherMap looks like it might work out - but it involves adding a payment option and limiting queries to 1000 per day (which is the limit for free queries). That might put some people off, but it seems to contain most of the data we need.

We could also look at weatherapi.com, which claims to be entirely free. They also provide an option for XML responses, so... maybe? I think we'd still need the intermediary script.

I'll do some digging and see what I can find.
[Android Apps and Games] &Delinquent[$]:
Well, I took a look at weatherapi.com, and I think mostly everything is there. There are some changes in how the weather text is formatted (for example, "overcast" instead of "mostly cloudy"), which means that there is the possibility that the built-in images might not function correctly. That's easy to fix with some string matching.

The only major problem is units. At present, I don't know how conversions between celcius and fahrenheit are managed - whether that is inside the widget, or with the API. WeatherAPI allows us to select what units are returned, but the original coding looks for an API that doesn't appear to support fahrenheight. I'm leaning towards assuming that the widget performs this conversion automatically, but I have no confirmation of this.

It's not plug-and-play either - I'm still going to need to write a conversion script to do this. I'll also need to write a little installation script in bash to smooth the setup process for anyone else who wants to do this. The latter is easy, the former is time consuming - there's a lot of fields to go through.

I'll be writing this in .NET, possibly .NET Core, since C# is the only language I've used XML in. .NET Core is natively supported on Linux now, so no issues trying to get Mono working. For now, though, the widget is functional with the replacement provider, so I'll do this as and when I have time to.
[Android Apps and Games] Surmoka:
I can port your script to PHP or Perl if you are done. That might help install it in a web server on Linux
[Android Apps and Games] dr71399:
What the heck happened Fancy widget stopped working again oh no... 😔 dang
[Android Apps and Games] dr71399:
Where are the unlock animations on this version? I see about purchasing a key?
[Android Apps and Games] akatarmo:
You have to download version 4.0.8 posted in comment #85 and follow the instructions in comment #91
[Android Apps and Games] akatarmo:
Hi, I have found a way to get all the information from AccuWeather

with the free API

. And best of all, I have written a PHP script to convert the JSON data to XML. It's not 100% functional but I think it will do. I'll upload it tomorrow. For now, you can see the XML file that my script gets. This is a link to my server.

https://www.keylandata.com/acu-api/forecast.xml

and

https://www.keylandata.com/acu-api/current.xml (Needed for the above, get the city_ID from LatLon). This is the file to which you refer that has little information because, in reality, it is mandatory to obtain the other one autonomously, starting from LatLon. In fact, FancyWidgets doesn't work if you don't have the Location service activated.

In my opinion, it is better to invest the time in adapting this file (forecast.xml) because I think that adapting the one from WeatherAPI will be much more complicated for the reasons that you yourself have commented.

Edit 26-04-2023

This is the PHP script. I have omitted my api_key, but I have put on my server one that I found abandoned on the net. You can also put your own although my script can be executed in this way, to see the result. If the free calls for the day run out then it won't work.

https://www.keylandata.com/acu-api/acuinfo.php?slat=52.520008,&slon=13.404954

This call is for Berlin, Germany (New York default, if no params entered)

Edit 2

This is the output created by the original Fancy Widgets app.

http://www.keylandata.com/acu-api/data.xml (Current and Forecast 10 days)

I have been able to figure out that it adds slat and slon to the call line. I have pointed my .apk to this .xml file and recompiled and

it works perfectl

y, even the animations in version 4.0.8. Like this, in the a.smali file:

const-string v5, "http://www.keylandata.com/acu-api/data.xml?"

So this is the goal to achieve. In other words, adapt the output of the free API to exactly this format, as &Delinquent[$] already pointed out.

Spoiler content hidden.
[Android Apps and Games] akatarmo:
Hello, can you take a look at the PHP script that I posted above?. I am not a specialist in PHP although I have done some things.
[Android Apps and Games] itsallwright:
I will preface that I have no experience with PHP, so this could be nothing.

I see post #104 shows the native call that the widget makes:

"http://.........................../weather-data.asp?metric=1&langId=1&latitude=40.730610&longitude=-73.935242"

The PHP script seems to look for lat/lon in query:

$lat = htmlspecialchars($_GET["lat"]);

$lon = htmlspecialchars($_GET["lon"]);

Should the GET statements be looking for latitude/longitude spelled out since the native call is passing them that way?

$lat = htmlspecialchars($_GET["latitude"]);

$lon = htmlspecialchars($_GET["longitude"]);

I also see a 'city-find' call in the smali:

const-string v3, "http://.........................../city-find.asp?location="

Will that also need to be translated for full functionality?

Does anybody have an example output of the city-find response?
[Android Apps and Games] dr71399:
Got it I followed directions to the T. I got animations when I go Into the app but when I unlock the phone I don't have any animations. I also got it checked marked for unlock animations... what am I missing or doing wrong?
[Android Apps and Games] akatarmo:
There are no animations when you unlock the smartphone. Only when you click on the main weather icon and the forecast screen for the next 5 days appears. Then you can see the animated icon.
[Android Apps and Games] akatarmo:
This script that I have posted is for teaching purposes only. That is why LatLon is assigned by default if the expected parameter is not found. It's just to see how it works. Actually, as I mentioned above, the actual call of the app is http://.........................../weather-data .asp?slat=xxx&slon=xxx. I have already modified the script to clarify.

Regarding the const-string v3 call, "http://........................../city-find.asp?location =", is a call to obtain the numerical code of the city we are looking for. This would be a response, using Paris as an example.

http://.........................../city-find.asp?location=Paris

Spoiler content hidden.
[Android Apps and Games] Surmoka:
Hi, sure, give me a few days and I'll get back to you.