Hi there! I’m dreaming about one simple script, but I’m not programmer, I’m only power user with great visions. ;)

Hi there! I’m dreaming about one simple script, but I’m not programmer, I’m only power user with great visions. 😉

The goal is to simple freeze or unfreeze apps by long tap on icons on desktops. Long tap scipt will be defined in General or in Desktop settings, for all icons, not only for selected and reconfigured icons by hand.

Will be better to have BW icon when apps are freezed and to have color icons when they are unfreezed.

As freeze/unfreeze utility I using 3C Toolbox which this functionality offer as shortcut and I configure this shortcut as long tap for selected icon, but for a lot of apps it is so much time to done it by hand…

Freezing is great for save battery, data and RAM, you know. 😉

Is there someone with skill to create this script for me?

Or is exist something with similar solution?

EDIT – solved! 🙂

http://www.lightninglauncher.com/wiki/doku.php?id=script_autosetupappfreeze

https://github.com/cdfa/AutoSetupLongTapFreeze

]]>

53 Commentsto Hi there! I’m dreaming about one simple script, but I’m not programmer, I’m only power user with great visions. ;)

  1. Anonymous says:

    < ![CDATA[

    Reeaally nice idea!!


    I’ll try to do this this week! (I’m not good at scripting too…) thanks!

    ]]>

  2. Anonymous says:

    < ![CDATA[

    Great, thx! 🙂


    I will help with any consultation or beta testing.


    Hope this script will be not only for me, but for a lot of fans of LL also. 😉

    ]]>

  3. Anonymous says:

    < ![CDATA[

    Aaaaand it’s done!


    At least I hope so… 3c toolbox really often failes to freeze an app, so the greyscaling may get out of sync. This might just be a problem with my phone though. If you’re experiencing this too, I’ll do my best to fix it, but I don’t have any idea how (yet). Also the greyscaling probably isn’t the most beautiful you’ve ever seen, because to make it more beautiful I need float arrays and you can’t make those specifically in JavaScript. There was a conversation about this and a solution was found I think, but it’s a really long time ago and since google+ doesn’t have a search function for posts (at least to my knowledge) it would take quiet some time to dig up. I’m kinda hoping someone who found the solution reads this and comments, but is he doesn’t I might try to dig it up or solve it myself anyway.



    How to use: run script from an container and all items in that container which don’t already have a custom long tap eventhandler will now freeze on long tap.



    Code is below and if you have any questions/comments/suggestions I’ll be happy to respond to them.


    Repository link: http://www.lightninglauncher.com/wiki/doku.php?id=script_autosetupappfreeze



    var e = LL.getEvent();


    var it = e.getItem();


    if(it==null){


    var c = e.getContainer();


    c.getProperties().edit().setEventHandler(“i.longTap”, EventHandler.RUN_SCRIPT, LL.getCurrentScript().getId()).commit();


    }else{


    LL.bindClass(“java.io.File”);


    LL.bindClass(“android.content.Context”);


    LL.bindClass(“java.io.FileInputStream”)


    LL.bindClass(“java.io.FileOutputStream”)


    LL.bindClass(“android.graphics.BitmapFactory”)


    LL.bindClass(“android.graphics.Bitmap”)


    LL.bindClass(“android.graphics.Canvas”)


    LL.bindClass(“android.graphics.ColorMatrix”)


    LL.bindClass(“android.graphics.ColorMatrixColorFilter”)



    var context = LL.getContext();


    var storeDir = new File(context.getFilesDir(), “unfreezeColorImages”);


    if(!storeDir.exists())storeDir.mkdir();



    function saveImage(bmp){


    var out = null;


    try {


    out = new FileOutputStream(storeDir.getPath()+”/”+it.getId()+”.png”);


    bmp.compress(Bitmap.CompressFormat.PNG, 100, out);


    // PNG is a lossless format, the compression factor (100) is ignored


    } catch (e) {


    throw(e);


    } finally {


    try {


    if (out != null) out.close();


    } catch (e) {


    throw(e);


    }


    }


    }



    function toGrayscale(bmpOriginal) {


    var imgGrayscale = LL.createImage(bmpOriginal.getWidth(), bmpOriginal.getHeight())


    var canv = imgGrayscale.draw();


    var paint = new Paint();


    var cm = new ColorMatrix();


    cm.setSaturation(0);


    var f = new ColorMatrixColorFilter(cm);


    paint.setColorFilter(f);


    canv.drawBitmap(bmpOriginal, 0, 0, paint);


    return imgGrayscale;


    }



    LL.runAction(EventHandler.LAUNCH_SHORTCUT, “#Intent;action=ccc71.at.freeze;launchFlags=0x34000000;component=ccc71.at.free/ccc71.at.activities.tweaks.at_tweaker_activity;S.ccc71.at.packagename=”+it.getIntent().getComponent().getPackageName()+”;end”)


    var frozen = it.getTag(“frozen”);


    if(frozen==”true”){


    if(it.getTag(“customIcon”)==”true”){


    var path = storeDir.getPath()+”/”+it.getId()+”.png”;


    it.setCustomIcon(LL.createImage(path));


    it.getCustomIcon().save();


    var bmp = new File(path);


    bmp.delete();


    }else{


    it.setCustomIcon(null);


    }


    it.setTag(“frozen”,false);


    }else{


    var img = it.getCustomIcon();


    if(img==null){


    img = it.getDefaultIcon();


    it.setTag(“customIcon”, false);


    }else{


    it.setTag(“customIcon”, true);


    }


    var bmp = img.getBitmap();


    saveImage(bmp);


    it.setCustomIcon(toGrayscale(bmp))


    it.setTag(“frozen”,true);


    }


    }

    ]]>

  4. Anonymous says:

    < ![CDATA[

    Colin de Roos to grayscale the icon you can simply do



    var e = LL.getEvent()


    var it = e.getItem()



    it.getProperties()


    .edit()


    .setInteger(“s.iconColorFilter”, 0x00ffffff)


    .commit()



    That’s it!

    ]]>

  5. Anonymous says:

    < ![CDATA[

    Colin de Roos Wow, that is miracle! Thank you a lot for made this dream into script so fast! 🙂 But I’m lost how to use it now, I need some time to discover it, I never used scripts in LL yet. 😉


    Grayscaling is one of visual principe to show another state of icon, also red/green background of icon with some transparency or overlay picture will be probably good indicator.


    3C Toolbox not fails with (un)freezing in my phone yet, thx for sharing your experience.



    I can’t wait to get script started! Thx again! 🙂

    ]]>

  6. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal he gave usage instructions in the script repository (link on top of his comment) !

    ]]>

  7. Anonymous says:

    < ![CDATA[

    Benoît de Chezelles​ wow that would have made things so much easier. The other way was a also fun learning experience though, so not really wasted time. Thank you for your comment! Script will be updated in the repository in a minute

    ]]>

  8. Anonymous says:

    < ![CDATA[

    Colin de Roos , thx again! And good message for you, it paritally works. 🙂


    1) I using 3C Toolbox Pro, thus “ccc71.at” must be called. Can be detected?


    2) I suggest solution for syncing gray filter icon – when run script in container, try to detect if app of icon is freezed (how?) and then set/unset filter on icon.


    3) When I run script directly from Lightning menu it says “At line 11: TypeError: Cannot call method ‘GetProperties’ of null”. I know that this script call from menu is not valid, but I’m thinking about utilization this, for help or for script long tap freeze uninstall on all icons in all containers, what you say?

    ]]>

  9. Anonymous says:

    < ![CDATA[

    Colin de Roos ops, you probably don’t want believe me , but I simply bricked my phone with your script… 😀


    I have one icon on desktop which has no association what to launch. And I long tapped this icon. LL go out like killed, Home button not work, tried to find LL in apps thru settings, but looks like LL is uninstalled, then I restart phone and it stay on boot logo. Interesting. I think that 3C Toolbox freeze LL directly. 😀


    Now I need to install some another home launcher, LL apparently not work already.

    ]]>

  10. Anonymous says:

    < ![CDATA[

    Colin de Roos LL was really freezed, fixed thru ADB with this link:


    https://gist.github.com/CHEF-KOCH/a56447c10cf16a3d1f04


    Please try to fix this curious bug, do not freeze LL. 😉

    ]]>

  11. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal very good suggestions 1 and 3 I can definitely do, but i have no idea how to do 2. I need a way to either ask 3C toolbox if an app is frozen, which it doesn’t have an api or something like that for, or I need a way to intercept the toast of 3C saying that it has frozen the app or not, but i don’t know if that’s possible. I’ll definitely try some things though.



    Wow the bricking really amazes me and I’m really glad you were able to fix it so fast. The bug that caused it is definitely fixable though. I just need to check if the launch intent of an item is not null or something (or check it is even an app that is installed).



    Thank you for your feedback!

    ]]>

  12. Anonymous says:

    < ![CDATA[

    Colin de Roos to point 2 – I think that freezed app is not available in OS, so if you know app apk name, or path, or any other entry from icon and make ask to OS for giving more information about this app you will get right data sucessfully or you get error. What you say?


    It is only idea, I’m not programmer and I do not know anything about Android API and function calling.



    If script can get root rights then my ADB link upper showing how to get list of freezed apps in OS.


    Then you can also call to freeze/unfreeze app directly and not thru 3C Toolbox.



    Maybe some another app/addon for freezing and listing exist (or can be created) and can be used for external calling by script from LL.

    ]]>

  13. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal​ yes i was thinking the same, but if there is no other way without the need of root permissions I can’t do it. Giving LL root permissions might be possible with the permission manager: https://play.google.com/store/apps/details?id=com.faendir.lightning_launcher.permission_manager, but it requires xposed and if I install that on my device it gets really laggy. Someone else might be able to code it though.



    I have been working on the other suggestions though: when you run the script in a container the stuff gets setup like normal, but when you run again it reverts the long tap event on all items in that container. Running it from lightning menu does that for all containers.


    Also you shouldn’t be able to freeze LL anymore!



    If no one who can do the permission manager stuff replies I also can add that when the script is ran from the item menu the grayscale effect is toggled, but it doesn’t send an intent to 3c toolbox. Instead of syncing this way, you could also make a temporary shortcut for every app that would be out of sync if you don’t have too many. (Or if there is another way to freeze/unfreeze an app with 3c toolbox I don’t know if you should do that discourse) If you do have a lot of apps that would be out of sync I recommend unfreezing them with the free version of titanium backup, which lets you unfreeze apps in the free version, but not freeze. Just filter on frozen apps to find them easily.



    If you really want to I could add some more freeze/unfreeze item effects, but that would be quit a bit of work I think so if it isn’t too much of a problem I’ll skip that one.



    The new version of the script will be on the repository in a minute :)

    ]]>

  14. Anonymous says:

    < ![CDATA[

    Colin de Roos will be good to have some “whitelist” of apps which will not be freezed.



    I’m a tech. developer so skill about analyze and fix something that is my ability. 😉



    New small idea – is possible to make short phone vibration on app freeze/unfreeze please? 😉



    Hope improved version will be available soon and I look forward for new testing.



    Thank you a lot for your script, your time and work!

    ]]>

  15. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal those are both perfectly possible and easy. Although the whitelist will have to be manually edited in the script and you would need the package names, but i think you can do that :).


    Btw can you give me the package name of the paid version of 3c toolbox? I don’t have it myself.


    Thanks in advance

    ]]>

  16. Anonymous says:

    < ![CDATA[

    Colin de Roos I’m amazed, you are so fast! 🙂



    Thank you for adding uninstall functionality and also for protecting LL before freezing.



    I have about 200 apps installed and freezed for most time about 180 user apps. Also there are about 30 apps freezed permanently  in system. Before this script I used Link2SD Plus for (un)freezing apps, also in bulk, for ex. for looking on Google Play for app updates (freezed apps cannot be found). 3C Tollbox can (ub)freeze apps too.


    Your sync suggestion is nice and will work but I need clever solution. 😉



    I’m using Xposed so this way is best for me, but not usable for everyone.


    Are you able to combine script code for both scenarios? Guess for 3C Toolbox (Pro) and Xposed?



    3C Toolbox Pro apk name is “ccc71.at.apk”, only “free” word missing.



    About icon effects – I suggest only one – using icon overlay. It means to add overlay (transparent?) icon on app icon. Best to have some small custom (like ice) icon in corner. I need it because I found that I have some apps with BW/gray icons in original. For ex. Sync, Calculator, Titanium Recorder, Perfect Piano, RealCalc, Think, VoiceRecorder and others.


    I hope that  this is not so much coding and solve most requirement of users by simple script edit (icon source, trans. of icon).

    ]]>

  17. Anonymous says:

    < ![CDATA[

    Bugreport: Repository Importer wrongly import your script, but this is probably not your business.


    Line 37 on Github (44 in phone with comments):


    Right on Github:       for(var i=0;i


    Wrong imported:       for(var i=0;i



    After I fixed previous bug (copy and paste by clipboard), then I get “At line28: ReferenceError: “AlertDialog” is not defined.” when I run script secondly for uninstall. I have Android 4.2.1, is there some problem?



    I found that some very weak vibration on long tap is present, but where is defined? Probably not in your script, rather in LL. Probably needed tune up to stronger vibration only.

    ]]>

  18. Anonymous says:

    < ![CDATA[

    The AlertDialog bug is quite a weird one because I don’t get it too. Tell me what it says when you change line 4 to: alert(LL.bindClass(“android.app.AlertDialog”));



    Vibration is indeed not in my script but in LL, but i couldn’t find a setting for it.

    ]]>

  19. Anonymous says:

    < ![CDATA[

    I got dialog “true” when I run in firstly and then always I got “false”.


    Then next dialog ask for uninstall.


    It helps?

    ]]>

  20. Anonymous says:

    < ![CDATA[

    It helps a little bit. Possible workaround in script repository now. Also with blacklist/whitelist functionality and checking if 3c toolbox free is installed. I don’t know the package name for the paid version for sure, but if it doesn’t work change the package name in line 112.

    ]]>

  21. Anonymous says:

    < ![CDATA[

    Dialog works. Thanks.


    Another bugs:


    1) When I manually unset long tap at all desktops then I get “At line 82: TypeError: Cannot read property “length” from null” when I run script from HW menu key and confirm uninstall dialog.


    Line 77 on Github.



    2) When script is installed then I get “At line 94: ReferenceError: “BlackList” is not defined.” when tried long tap on icon.


    Line 89 on Github.



    3) Use this:


    pm.getPackageInfo(“ccc71.at“, PackageManager.GET_ACTIVITIES);

    ]]>

  22. Anonymous says:

    < ![CDATA[

    Please add some version info and date into comment in script.

    ]]>

  23. Anonymous says:

    < ![CDATA[

    Suggestions: will be nice to show ask dialog “Do you want to install…?” and also dialogs/toasts “Installed” and “Uninstalled” for sure. Thx! 🙂

    ]]>

  24. Anonymous says:

    < ![CDATA[

    Bug: at line 119 (on Github) you forgot to change “ccc71.at.free” to real detected variant variable.

    ]]>

  25. Anonymous says:

    < ![CDATA[

    Bug: when icon is shortcut and not launches some app I got “At line 94: TypeError: Cannot call method “getPackageName” of null”.


    Line 88 on Github. Solution – catching error or do not set long tap event on icons which not launching apps when script is installed?



    BTW, I fixed some bugs (blackList, Pro version) locally for testing.

    ]]>

  26. Anonymous says:

    < ![CDATA[

    Wow, another big/little problem – I use same app/icon on more desktops (thematic oriented, like Maps, Office, Games, …), but only one (actual) icon change effect, others stay untouched.


    Is possible to scan all icons on all desktops and change icon effect suddenly? May it take significant more time, like when installing, right?



    Hope you are not flooded too much by my messages/suggestions.


    Now I will wait for your reply. 😉

    ]]>

  27. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal​ A little flooded yes, but that’s what I should get for making such a buggy script. Sorry for that :/.



    Starting with your comment on the syncing (which I overlooked at first oops😅):


    I would like to be able to write the script to work with root acces via the xposed module, but i can’t test what I write. I could try and look up some code on the internet and put that in the script, but it may take many times of me uploading the script and you telling me what is going wrong. I suggest this is the last thing we do and I first fix other stuff, if we choose to do it. The overlayicon i can probably do, but some icon packs also use overlays, so either when i set the overlay to be the ice crystal the icon overlay will go away. I could also draw the ice crystal on top of the icon pack overlay, but I would need to look into a way to redo the icon pack overlay on the item for unfreeze, or save the normal icon pack overlay somewhere. Either way this would be quite a big change so I hope you don’t mind if I also push this back to a little later.



    Now the first bug report comment:


    1: hopefully will be fixed in the next version, on line 82 in my current version there is only an } so I kinda had to guess where it went wrong. Also you are referring to GitHub, but I didn’t upload my script to GitHub, so could you provide me with a link to the page you’re referring to please?


    2: stupid typo’s😑 i saw you fixed it already later though, so👍. I can’t find it in my latest version though, so maybe I fixed it already somehow.


    3: will be corrected in next version



    Version and date info is a good idea! Didn’t think this script was going to get that expansive when I started it. I do programming for fun though, so no problem :).



    Dialog and toasts for confirmation aren’t hard to do so also will be in next version



    Also will be sending command to the right version of 3c toolbox now. Thanks 🙂



    For the shortcut problem there is an easy solution and a better, but slower solution. The easy solution is checking if the package name is null before trying to freeze/unfreeze, but long tap events on the shortcuts will still be set to run the script. Preventing that is the slow solution, but i would have to go over all items in a container and check if they have a not null package name and make a list of those items for reverting the eventhandler at uninstall. This is much slower than it is now because now I’m just setting and reverting the default long tap event of items. Tell me what you want.



    The problem with the apps in multiple places also has 2 solutions:


    1 I will go over all items in every container to maybe find items with the same package name and also greyscale those items


    2 run the script on the resumed event of every desktop and check for frozen/unfrozen items and than go over all items in just that desktop and change the icon.


    The first one increases the time it takes to apply a freeze/unfreeze, the second one would increase load time when switching desktops or resuming LL and would be harder to implement. Tell me which you like better.



    I’ll upload a new version with the fixes I said would be in the next version in a minute.


    Again sorry for the buggyness if this version


    Colin de Roos

    ]]>

  28. Anonymous says:

    < ![CDATA[

    Colin de Roos Dear Colin, respect to your work and enthusiasm! 🙂



    In short:



    0) Xposed support – I agree with goal to have script+Xposed as final solution. I suggest you to install some Android simulator on PC for faster development. 



    0,5) I suggest to ignore icon packs (you use some?) and implement overlay ice icon little later. Combination of gray icon and mini ice icon is best what I can get. 😉




    1) Sorry for crossing my thoughts, I cooperate with another project on Github and forgot that your script is here:


    http://www.lightninglauncher.com/wiki/doku.php?id=script_autosetupappfreeze


    So when I before wrote Github I mean your script on web there.


    FYI – when script was imported to LL by Repository Importer app then line numbering got some offset (I think +5) because in front of code there are added some comments by Repository Importer.



    2) Well done. 🙂



    3) Wow, nice, thx! 🙂 BTW, I using Xposed + XToast customization.



    4) Date+time – I think also that script will be simple and small, but grows rapidly, and works great. 😉



    5) 3C Toolbox calling – ok.



    6) Icon with null package name – I suggest to test null before trying to freeze/unfreeze. I think that second solution have not any important benefit.



    7) Icon on multiple places – both solution are very nice and I can imagine that I would use both. I preffer speed and I guess that first method will be faster in general, but second method is exactly what I want to suggest you now – to automatically solve situation when another tool (un)freeze some app (like in Link2SD) and set icons to right effect.


    Are you able to implement both and than we make some benchmark and then make optimal decision?



    8) Problem of double uninstalling still persist, in 1.4b2 now at line 86 – “TypeError: Cannot read property ‘length’ from null”. And I found that one grey icon stay grey, you miss some. 😉



    9) May I discover reason of #8 now – first freezed app after script installing never make icon gray, so when I make same app freeze again I remove 



    10) New bug – I use dynamic text as clock on desktop and long tap make this error: “At line 98: TypeError: Cannot find function getIntent in object DynamicText 229”. Similar problem I got by long tap on widget , so I suggest to test type of object before all and accept only shorcuts. May this solve #6 also.



    11) Maybe new bug – when I create app shorcut and then modify tap event to launch another app than original icon app thus long tap freeze original app and not newly tap asociated app, right? Is possible to check tap target and freeze this app instead to unwanted freeze of original app? It is little tricky, because event can be asociated to gesture also. But I think this is not a bug and not needed to solve anything.

    ]]>

  29. Anonymous says:

    < ![CDATA[

    Jaroslav Grochal First of all: thank you for your comment 🙂


    0) I tried some android simulator on my laptop, but it wouldn’t let me type with my keyboard. I would have to click the letters on the simulated keyboard. If you know a simulator that does let me input with my laptop’s keyboard let me know :). Another potential problem with the simulator is that I doubt it van be rooted. I have never tried though, so I’m not sure. What I wanted to try for faster development in sync a scripts folder between my phone and pc and make the app launch a tasker task which would sync the scripts between the folder and LL. I haven’t found an app that does this yet, but my search hasn’t ended either.


    If I can’t find anything I’ll try teamviewer from my phone to my laptop, but that also might cause trouble because when i tried to record my phone screen a little while ago the recording was pretty messed up.


    So as third and last option I could also just sync scripts with a shortcut on my testing desktop, but if I can I want to prevent me having to press that button each time.


    I also want to say that I would probably only turn to my laptop when I think I’ll write a big chunk a once, not for debugging.



    0,5) yes I use flatty icon pack :). As I don’t really need this script that much I’ll ignore the overlay problem for now then. I did have an maybe even cooler idea though: if I can find one on the internet I might be able to implement some freezing animation which actually makes the icon look like it is frozen. Tell me what you think about this :).



    1)Ah okay. I’ll keep that in mind 🙂



    6) the benefit from checking the intent of each item on setup would be that items with a null package name wouldn’t get the long tap event set. I don’t think it is really important either though.



    7) I can do both solutions in separate scripts, but having both in one would be unnecessary. I personally think the 2e solution would cause the least wait time, but i’m not sure. For detecting if an app has been frozen/unfrozen I also need root permissions. I’ll see what I can do though.



    8) i didn’t get the error somehow, but i spotted my typo with “==” instead of “=”. Sometimes programming is such a precise activity :/.



    9) I had this before too, but i think I fixed it and now it doesn’t happen anymore. So if I understand correctly, when you install the script in a clean container and then long tap an app it does sent the freeze intent to 3c toolbox, but doesn’t greyscale the item? And then the greyscaling and actually freezing of the app are out of sync or not?



    10) will also be solved by #6 yes 🙂



    11) i can do that and it won’t even be that tricky. Will be in soon :).



    I’ll upload a small bugfix version in a minute, but the new features above might take a while since I need to do stuff for school too.

    ]]>

  30. Anonymous says:

    < ![CDATA[

    11)Just made the script do that and then realized you can also modify which app an icon launches going into edit mode, tapping the item, tapping customize in top right corner of the screen and then select app. This will actually modify the items intent, so I don’t have to check for launch app eventhandler on item tap. I can still leave it in if you want, but i think the direct modification of the intent would be cleaner.

    ]]>

  31. Anonymous says:

    < ![CDATA[

    Colin de Roos Sorry for development pause, a lot of work to do, but still collecting ideas for script improvement. 😉



    This will maybe interesting for you.


    https://plus.google.com/u/0/110790148759623578112/posts/jgjsSbuXj6m?cfem=1

    ]]>

  32. Anonymous says:

    < ![CDATA[

    I haven’t been able to do much spare time programming either. Life gets very busy very fast sometimes.



    I have read the post and that’s where some of my ideas I said before came from. The problem I now have is that my laptop’s keyboard is a little bit broken, so programming on my laptop wouldn’t help anyway.

    ]]>

  33. Anonymous says:

    < ![CDATA[

    Dear Colin, after everyday using of your GREAT script I have new ideas and wishes. 🙂 Are you ready to second development marathon? 😉

    ]]>

  34. Anonymous says:

    < ![CDATA[

    Well, I just got a break from school so that gives me some more time do to some scripting, but i do have my finals exams right after the break, so i’ll have t study somewhere in between too, but at least the first few days i’ll have a lot of time so yes i’m ready 🙂

    ]]>

  35. Anonymous says:

    < ![CDATA[

    Well, nice to hear it, thank you! 🙂


    So will we move to another communication channel or will you prefer to make it “here”?


    What I really want to change is to sync “icons” on desktop(s) with real “freeze” status of apps.


    First task will be to show some GUI with a few simple choices to select and then confirm, will it be possible?

    ]]>

  36. Anonymous says:

    < ![CDATA[

    I would like to move this discussion to another channel, but i don’t really have a good idea to where then. Do you have any suggestions?


    I remember the syncing problem. Do you actually freeze/unfreeze apps outside of LL or not? If not that would make implementing a solution a lot easier.


    A GUI with some options is possible i think. What would you like those options to be?

    ]]>

  37. Anonymous says:

    < ![CDATA[

    I do not have any suggestion. We use Redmine in our company, but I do not know any simple Redmine hosting for private usage…


    Yes, I still (un)freeze apps in many ways. For example in more desktops with same icons, in Play Store when updating freezed app, in Link2SD when tune something, in “mistake” when LL lost right state and show wrong icon. In these conditions is really hard to manually sync icons on desktops. Best way will be to run script on desktop, show GUI, select “sync desktop” and one-time-manual-sync will be performed. Sync on every desktop show/switch will be too slow I think.


    Are you able to detect (by some tool like BusyBox?) if app is actually freezed or not? This is probably key requirement.

    ]]>

  38. Anonymous says:

    < ![CDATA[

    If root will be required then I remember something about from author of LL.

    ]]>

  39. Anonymous says:

    < ![CDATA[

    Hi, we could try GitHub for communication. I don’t know if you have any experience with it, but it has a pretty nice system where you can create issues of different types, for example bug or feature suggestion, and then i can respond to that in a chat kinda like this below.



    I kinda already implemented the syncing on container resume because after your request i couldn’t stop wondering how hard it would be to implement, so i just kinda did it. I wasn’t to hard to do with the help of some script that lets you execute root commands. I could actually remove the dependency of 3C toolbox completely now, but that’s maybe for the next version.



    To get the sync working you need to reinstall in the container and the first time LL will probably request root access just like any other app. If the syncing doesn’t increase load times to much I think I can implement a system that automatically updates all the containers you have the script installed in at the time of the first execution of the new version, but we need to just test the load times first.



    Your idea for manual sync is definitely possible, but it’s also possible to make the script only check the frozenness of certain items in a container, by running the script from the item menu of each item or it would even be possible to say somenthing like: only sync items that are frozen now. Tell me what you like better :).

    ]]>

  40. Anonymous says:

    < ![CDATA[

    Hi, GitHub sounds good, but I never used this, but I expect it will be similar bug tracking system like Redmine. Do it! 🙂



    Next version without 3C Toolbox sounds good, thx! 🙂



    For speed testing I have old HTC Wildfire S, so it will be interesting to compare sync time in different strategy.



    Manual sync is best option for me, in priority of maximize LL speed and only few-a-day manual sync requests.


    In my case I have 99 % of apps freezed (160 of 178 now, include some system apps like FM Radio, mostly for prevent battery consuming).


    I unfreeze apps only for instant usage, then I freeze it again.


    On my primary desktop there are about 130 icons now, (3x) 5×9 raster.


    My 2nd desktop has about 140 icons (2x) 7×10 raster.


    In this case I think your sync strategy will be the slowest one. 😉


    Some autodetection of ratio of live/freezed apps and then change the sync strategy may be good variant.



    Will be very nice to set some flag (by GUI command) for some (often?) used icon which will be “autofreezed” after some time, for ex. 1 hour. 😉


    Some aditional overlay info icon (on bottom right place) on these icons/apps will be good to show, like “mini timer” icon.


    But probably in next future versions.



    Hope the overlay “mini ice flash” icon (on top right place) on freezed apps (not only BW change like now) will be possible.



    Another freezing related problem is that I cannot simply add freezed icon/app to desktop (from LL App Drawer).


    I must find app in Link2SD, unfreeze it, then open and refresh LL App Drawer, then I can add icon on desktop, then I must use freeze long tap and viola, finished, ufff. 🙂


    Have you some idea how to simplify this?


    Will LL App Drawer some option to show freezed app when LL got root access?

    ]]>

  41. Anonymous says:

    < ![CDATA[

    I can imagine that with 130 items in each container it load times would be significantly increased, especially on an older phone, but please test the current version just to see how bad is. If it’s really terrible you can always just go into container settings->events and actions->resumed and change that from run script to unset. Manual sync will be implemented in next version. I’ll still leave autodetection implemented, but when you install you’ll asked if you want to setup autodetection or not.



    Doing autofreezing in itself wouldn’t be very hard to implement, but a GUI to do it might be. How would you like to see this exactly? Creating a custom layout with for example a number selectors for seconds, minutes and hours would require a custom layout, which would require me to make a real separate app instead of just a script, which might require quit some time and effort. It is also possible to do it with just a script, but you will get separate popups for each (seconds, minutes and hours). I would be using the built in number picker then. Furthermore: when do you want this gui or whatever to show? When you run script from item menu? Do you want it to ask if you want to enable autofreeze when you unfreeze an app? Let me know :).



    Overlays are also definitely possible, but it might require me to save the icon without overlay for restoring somewhere on your device. It might be possible to set it on a mask or overlay layer, which would leave the actual icon untouched, but that might interfere with icon packs. I’ll try a few things. Once i have it figured out, ice crystal and timer overlay would be easy though.



    Freezed apps showing in LL is something i can’t do anything about. I also don’t know any setting to change it.


    I don’t know if it’s even possible, but there might be an separate app drawer app that doesn’t to this and lets you add apps to any launcher. The chances this exists are small, but i think it’s worth a try. If you don’t find anything, you could try ask Pierre to add an option for it, but i think he would then have to add root permission to LL, or rely on you having installed xposed and it’s permission manager module, so i don’t know if he would want to do that. If all that fails, I might look into creating my own very simplistic app drawer, but it would probably consist of just app names and a search bar.



    The script is uploaded to: https://github.com/cdfa/AutoSetupLongTapFreeze and i created issues for those above. We’ll communicate there further.

    ]]>

  42. Anonymous says:

    < ![CDATA[

    Ok, noted, thx a lot! 🙂


    Please wait for my reply there on GitHub soon (a few days)…

    ]]>

  43. Anonymous says:

    < ![CDATA[

    Hi Colin, after some testing I added some issues to GitHub, pls. look. 🙂

    ]]>

  44. Anonymous says:

    < ![CDATA[

    Hi, i will try to look at them soon, but i’m currently on holiday, so I won’t be doing a lot of scripting. When I’m back I’ll get right to it though

    ]]>

  45. Anonymous says:

    < ![CDATA[

    Hi, i will try to look at them soon, but i’m currently on holiday, so I won’t be doing a lot of scripting. When I’m back I’ll get right to it though

    ]]>

  46. Anonymous says:

    < ![CDATA[

    Ok, sorry for bother, simply enjoy your holidays! 🙂

    ]]>

  47. Anonymous says:

    < ![CDATA[

    So you know how vacations can be the busiest time of the year right?


    Anyways finally another update on the script. Some of the bugs you posted on github i haven’t been able to reproduce, so hopefully this version fixes them magically, but if not i’ll help you debugging. The biggist problem: LL freezing when syncing and freezing/defreezing is not solved yet, but i’ll keep trying. Meanwhile i added a few quality of life things that make up for the freezing a little bit i hope.

    ]]>

  48. Anonymous says:

    < ![CDATA[

    What surprise! 🙂 Thank you a lot! I will try it soon and make some report. 🙂

    ]]>

  49. Anonymous says:

    < ![CDATA[

    Hey, Colin, I use your script daily and I have new ideas, are you available for some update please? 😉

    ]]>

  50. Anonymous says:

    < ![CDATA[

    I’ll see what i can do 🙂

    ]]>

  51. Anonymous says:

    < ![CDATA[

    Hi, it’s been a while since I worked on this script and in the meanwhile my life has gotten a lot busier and even though I still like working on this kind of stuff, I can’t really justify spending any time on it. In other words: the script needs a new maintainer… If you’re up to it, just send me a message

    ]]>

  52. Anonymous says:

    < ![CDATA[

    Colin de Roos Hi Colin, I understand and respect the change, I’ve just edited the script myself and I can upload some improvements to Github, but I’m not going to make any big adjustments, I’m not a programmer, and this is the first time I’ve ever modified the Java code on Android.


    On the weekend, I went through your script in detail, and I understood most of the behavior, and then I was able to make minor adjustments.


    Thanks to you for such a programming lesson, I appreciate it! I use the script daily from the beginning, now on several of my phones and tablets, and it is simply irreplaceable for me! I’m little bit sad we will not improve the script anymore, but it’s already in great shape, so it’s okay to stay that way. Have great days!

    ]]>

  53. Anonymous says:

    < ![CDATA[

    It’s great to hear that! 🙂 I’ve always put a lot of work in trying to keep my code clean and neat and because of that I’m usually a bit slower than other programmers, but this is usually only really rewarded in long term projects such as this one so I’m really happy it did indeed help :). Apart from that all I can say is: stay curious. Then you might eventually understand enough of the code that you feel confident in making the more complicated changes too 🙂


    Enjoy!

    ]]>

Leave a Reply

Your email address will not be published. Required fields are marked *