I have 4 modules in 1 widget that all switch and display text at a different time. I'm using #DH# to determine the time, and complete string is:
Code:
$#DH#<=maxtime && #DH#>=mintime?message$
So for example, $#DH#<=11 && #DH#>=6?Good Morning$ would display "Good Morning" between 6am and 11am and so on. Is there a way I can edit this string in a new module to display a bitmap at that time? Or is there a way I can make my own bitmap "icon" set and have the bitmaps change whenever they reach a certain time just like the text?
Wrong thread
Mokum020 said:
I thought you were asking a different question, so I was looking into that, I will give you the answer/code anyway:
Code:
$#DH#>=5&&#DH#<12?message1$
$#DH#>=12&&#DH#<17?message2$
$#DH#>=17&&#DH#<21?message3$
$#DH#>=21?message4$$#DH#<5?message4$
These should be placed in the text field and as you can see the last one is different and I also changed <= to < for the end time otherwise you will get a double message at that time.
It's also possible to do this with a bitmap, the best way to do this is to place the bitmap offscreen when inactive and onscreen when active with the offset parameters:
Code:
[ox]$#DH#>=5&&#DH#<12?:1000$[/ox]
[ox]$#DH#>=12&&#DH#<17?:1000$[/ox]
[ox]$#DH#>=17&&#DH#<21?:1000$[/ox]
[ox]$#DH#>=21?:1000$$#DH#<5?:1000$[/ox]
These should be placed in the advanced parameters of the bitmap modules.
Click to expand...
Click to collapse
Oh thanks. I actually was able to figure out my first issue after doing some more research and tweaking, but your code is a lot cleaner than mine in the end. Sorry for switching it out like that.
And with the bitmaps, does having this many active at once effect the performance?
Wrong thread
Related
Is it possible to create a widget that will draw images randomly from a designated folder. I've been searching to see if someone has done something similar to this but it looks like the closest I can get is using the images as an iconset although I still don't know how I would have Zooper pull the images randomly (I want to add to the folder occasionally). Is this something that I could do by adding in Tasker?
Any ideas?
I currently have an image widget on one of my homescreens and the way I do it is as follows:
I basically add each photo as a bitmap: So you add a bitmap module and then you navigate to the photo you want in your device gallery. After choosing your photo, you need to add advanced parameters that will control the bitmap opacity at a certain time during the day.
[bo][/bo] is used for bitmap opacity
#DH# is used for local hour during the day (0-23)
my conditional is set up as follows for my first photo.
[bo]$#DH#>=16&&#DH#<22?100:0$[/bo]
What this means is that if the current local time on my device is between the hours of 16 to 22 (4pm to 10pm) then set the bitmap opacity to 100%, else set it to 0%. You can theoretically set this up to have a max of 24 photos (one per hour) each day that continually loops. Mine is set up in intervals of 6 hours (4 photos total) but I plan on changing the values to allow for more.
The next one would be:
[bo]$#DH#>=22||#DH#<04?100:0$[/bo]
Notice I use an OR statement || versus an AND statement && because the value goes from 0-23 and if you used an && here the image would never display because of the conflicting conditional.
http://www.webermatters.com/blog/zooper-conditional-statements/
This is a good website that outlines conditional statements in ZW.
I'm assuming this is sort of what you are going for with your widget? It's not really "random" per se but it gets the job done. Not quite sure what you could do involving tasker.
greckia said:
I'm assuming this is sort of what you are going for with your widget? It's not really "random" per se but it gets the job done. Not quite sure what you could do involving tasker.
Click to expand...
Click to collapse
I was thinking about doing exactly this or possibly applying weather conditions to various pictures also. It doesn't really look like it's possible to add a random factor but this should do the trick.
Your steps are exactly what I needed.
Thanks
crios42 said:
It doesn't really look like it's possible to add a random factor
Click to expand...
Click to collapse
There is mathematical function you can use called rand...
Izzy Lamantia helped me out with this ...
The random function provides a number between 0*1, like 0.866390265. Let's say you had 10 pictures (named 1.jpg, 2.jpg, etc.) you wanted to randomize on the hour:
$#Dm#=0?(int(random()*10)$.jpg
So again, on every hour a random number will be generated, multiplied by 10, and return it as an integer 0.866390265 x10= 8.66390265, as an integer 8.
chandlerweb said:
There is mathematical function you can use called rand...
Izzy Lamantia helped me out with this ...
The random function provides a number between 0*1, like 0.866390265. Let's say you had 10 pictures (named 1.jpg, 2.jpg, etc.) you wanted to randomize on the hour:
$#Dm#=0?(int(random()*10)$.jpg
So again, on every hour a random number will be generated, multiplied by 10, and return it as an integer 0.866390265 x10= 8.66390265, as an integer 8.
Click to expand...
Click to collapse
So I would need to label the images: 1.png (I'm using png's), 2.png, 3.png, etc...?
Would the limit then be 10 images? If I wanted to use more than 10 images I could x 100 but then I'm guessing I would need to assign each image a range, if n >= 25 and n < 30 then x.png and so on. Can that be done?
Also, I'm a little unclear about how bitmap absolute path works. Is there a specific folder that I would need to put my bitmaps in? Looking at this example it seems that I can pick any folder I want.
It's awesome to hear that this can be done. I just need to work out the details now.
chandlerweb said:
$#Dm#=0?(int(random()*10)$.jpg
Click to expand...
Click to collapse
I was having some trouble getting this working but I finally found that there needs to be an extra set of parentheses.
$#Dm#=0?(int(random())*100)$ which give me a 2 digit number.
Now... I either have to pick 100 images (and label them 0-99, or is it 1-100?) or find a way to give the images a range.
If I have 2 separate widgets using the same parameters and drawing from the same folder, will the random number be the same or different in each of the widgets?
crios42 said:
I was having some trouble getting this working but I finally found that there needs to be an extra set of parentheses.
$#Dm#=0?(int(random())*100)$ which give me a 2 digit number.
Now... I either have to pick 100 images (and label them 0-99, or is it 1-100?) or find a way to give the images a range.
If I have 2 separate widgets using the same parameters and drawing from the same folder, will the random number be the same or different in each of the widgets?
Click to expand...
Click to collapse
Sorry for the delay in getting back to you
You would need 100 images and label them 1-100 if your multiplier is 100. You would need, say, 123 images and label them 1-123 if you multiplier is 123 i.e. $#Dm#=0?(int(random())*123)$
In my experience, the number generated is always different even if two random functions are performed at the same time although there is always the possibility that it will occasionally be the same.
I can't seem to get the widget working.
Here are the parameters I'm using $#Dm#=43?/sdcard/Pictures/Pics1/(int((random())*10)).png$.
Ignore the 43. Whatever time it is, I just add a minute so that I don't have to wait long to see if the widget will update.
I thought it might be the file path so I tried a few others:
/storage/sdcard0/Pictures/Pics1/
/emulated/0/Pictures/Pics/
Any ideas?
is it possible to create a picture
I had tried it many times but that does not work out
Not sure if OP is still wanting an answer to this or not. I'm still working on getting this perfect but hopefully this will help someone.
Create a folder on your sd card and put 10 jpg's in there titled 1.jpg through 10.jpg
Create a Zooper Widget and add a bitmap layer
do not choose an image, instead select Advanced Parameters and insert the following code
/sdcard/full path to image folder/$#Dm#>0?(int((random())*10)))$.jpg
If the above is correct then the example box should list /sdcard/full path to image folder/*.jpg
What does this do? If the minute is greater than 0 it will generate a pseudo-random number between 1 and 0. If you have set Zooper to update when the screen is off then you will want to replace the ">" with "=" so it only updates once an hour. You can make further adjustments by using Dh for hours rather than minutes. As stated above you can increase the images by multiplying by 100.
I wrote it like I did because I don't let Zooper update while the screen is off. If I changed the image on the hour it would likely not update the image because I would have to have my screen on at the beginning of each hour. As it is, it changes the image every 10 seconds or so whenever I have the screen on.
I am open to other modifications of this so I can keep Zooper configured to not update when the screen is off, and only change the images every 10 minutes or so.
Also, you may want a fallback image so you have something to display while you wait to whatever condition needs to be meet in order for Zooper to generate the random number.
SoldierOfCatan said:
Not sure if OP is still wanting an answer to this or not. I'm still working on getting this perfect but hopefully this will help someone.
Create a folder on your sd card and put 10 jpg's in there titled 1.jpg through 10.jpg
Create a Zooper Widget and add a bitmap layer
do not choose an image, instead select Advanced Parameters and insert the following code
/sdcard/full path to image folder/$#Dm#>0?(int((random())*10)))$.jpg
If the above is correct then the example box should list /sdcard/full path to image folder/*.jpg
What does this do? If the minute is greater than 0 it will generate a pseudo-random number between 1 and 0. If you have set Zooper to update when the screen is off then you will want to replace the ">" with "=" so it only updates once an hour. You can make further adjustments by using Dh for hours rather than minutes. As stated above you can increase the images by multiplying by 100.
I wrote it like I did because I don't let Zooper update while the screen is off. If I changed the image on the hour it would likely not update the image because I would have to have my screen on at the beginning of each hour. As it is, it changes the image every 10 seconds or so whenever I have the screen on.
I am open to other modifications of this so I can keep Zooper configured to not update when the screen is off, and only change the images every 10 minutes or so.
Also, you may want a fallback image so you have something to display while you wait to whatever condition needs to be meet in order for Zooper to generate the random number.
Click to expand...
Click to collapse
I did the above, but had to add an extra parentheses before the word "int" to get it to display properly in the example box.
/sdcard/full path to image folder/$#Dm#>0?((int((random())*10)))$.jpg
However, when I save and exit out of the Zooper, it still just shows the default "folder" icon. I have it pointing to 1-10.jpg in a folder called "test" on my internal SD. I also tried the code in the advanced parameters of an existing picture I had on my widget, and it didn't do anything either.
HA! Figured it out. What a dummy I am. You have to put the b tags first
[*b]/sdcard/full path to image folder/$#Dm#>0?((int((random())*10)))$.jpg[/b]
(without the asterisk I couldn't get it to show since it's the same code for "Bold" on the forum)
rachelm920 said:
HA! Figured it out. What a dummy I am. You have to put the b tags first
[*b]/sdcard/full path to image folder/$#Dm#>0?((int((random())*10)))$.jpg[/b]
(without the asterisk I couldn't get it to show since it's the same code for "Bold" on the forum)
Click to expand...
Click to collapse
If you have pictures 1-10 and you use random times 10, wouldn't the only picture that would get displayed be picture 10 (which is when random equals 1, times 10).
Or is the value for ((int((random())*10))) actually limiting the random numbers to be 1-10?
SchmilK said:
If you have pictures 1-10 and you use random times 10, wouldn't the only picture that would get displayed be picture 10 (which is when random equals 1, times 10).
Or is the value for ((int((random())*10))) actually limiting the random numbers to be 1-10?
Click to expand...
Click to collapse
I actually have 66 pictures and the number increases everyday, since they're pictures of my boyfriend and he's constantly sending me new ones... or we're taking new ones etc. LOL I just change the number it multiplies by as the pictures increase.
I'm not sure if number one gets displayed... I could however rename picture one to 67 so there's never a problem. Since there's so many its hard to tell.
rachelm920 said:
HA! Figured it out. What a dummy I am. You have to put the b tags first
[*b]/sdcard/full path to image folder/$#Dm#>0?((int((random())*10)))$.jpg[/b]
(without the asterisk I couldn't get it to show since it's the same code for "Bold" on the forum)
Click to expand...
Click to collapse
mate, i did following your code but in zooper widget, it only shown folder icon, i use .png picture, so this is correct, it must be jpg ?
Oohhlala said:
mate, i did following your code but in zooper widget, it only shown folder icon, i use .png picture, so this is correct, it must be jpg ?
Click to expand...
Click to collapse
Not sure I only tried it with .jpg
Sent from my SAMSUNG-SGH-I747 using Tapatalk
You should be able to do this with tasker/zooper integration. I have a weather radar image that I download via tasker. Due to how zooper buffers images I haev to change the filename each time I refresh the image. The new alternating path to the image is passed from tasker to zooper. First time is w1.jpg, next time is w2.jpg. This idea could be extended for images in a folder.
When I create a Tasker value that can be used in Zooper (#T...#), I can not use this value under Advanced Parameters in an argument.
When I type #T...# it gives me the value. When I use $#T...#=Value?, it doesnt work and it leaves the $T..# blank. Any ideas on how to solve this? I want to use this to change the color of an object when for instance GPS is on
RebelwithoutaClue said:
When I create a Tasker value that can be used in Zooper (#T...#), I can not use this value under Advanced Parameters in an argument.
When I type #T...# it gives me the value. When I use $#T...#=Value?, it doesnt work and it leaves the $T..# blank. Any ideas on how to solve this? I want to use this to change the color of an object when for instance GPS is on
Click to expand...
Click to collapse
Is " $#T...#=Value?" the whole string you entered or are you just partially quoting it? I ask because Zoopers parser engine doesn't respond well to incomplete conditionals and that might throw off the substation of variable tags.
Apart from that I adhoc don't have any other idea. Did multiple widgets with Tasker variables and have not yet encountered this problem. If you upload your profile/task and your widget I could take a look at it for you.
Send from my secret moonbase via space carrier pigeons
kwerdenker said:
Is " $#T...#=Value?" the whole string you entered or are you just partially quoting it? I ask because Zoopers parser engine doesn't respond well to incomplete conditionals and that might throw off the substation of variable tags.
Apart from that I adhoc don't have any other idea. Did multiple widgets with Tasker variables and have not yet encountered this problem. If you upload your profile/task and your widget I could take a look at it for you.
Send from my secret moonbase via space carrier pigeons
Click to expand...
Click to collapse
The entire string is as follows:
[c]$#TGPS#=on?#4a2d8303$[/c]
In Tasker there is a task triggered by profile Variable set %GPS, that reads:
Zooper Widget Pro Variable
ZW variable = GPS
ZW Text = %GPS
RebelwithoutaClue said:
The entire string is as follows:
[c]$#TGPS#=on?#4a2d8303$[/c]
In Tasker there is a task triggered by profile Variable set %GPS, that reads:
Zooper Widget Pro Variable
ZW variable = GPS
ZW Text = %GPS
Click to expand...
Click to collapse
Did you try to setup a task that just sets the variable to 0 or 1 depending on GPS status? String comparison in Zooper sometimes is a bit wonky so I usually try to do it with numbered values instead
kwerdenker said:
Did you try to setup a task that just sets the variable to 0 or 1 depending on GPS status? String comparison in Zooper sometimes is a bit wonky so I usually try to do it with numbered values instead
Click to expand...
Click to collapse
Now it got a bit weird, changed the task to make #TGPS# 1 if gps is on and 0 when off. But when I put the variable in Zooper, it still showed On and Off. So I changed the name of the value to #TSAT# and now the argument works. I think since %GPS is a standard task value, it will make TGPS a standard value as well. Now the argument works with the new value name. Thanks for helping me out
Never mind... forgot I used #TGPS# in another task...fixed that
Greetings!
I have a Tasker task that goes out and grabs an image from the web. I save it with the same name in the same location each time. And I verified that it is different.
In Zooper I added a bitmap module and pointed at that image. The image never changes. Not even on a reboot of the phone.
So, what is the trick to get it to update?
This will be my new thing to learn today!
Thank for any help in advance!
Dave
Sent from my Nexus 5 using Tapatalk
MrBiggzz said:
Greetings!
I have a Tasker task that goes out and grabs an image from the web. I save it with the same name in the same location each time. And I verified that it is different.
In Zooper I added a bitmap module and pointed at that image. The image never changes. Not even on a reboot of the phone.
So, what is the trick to get it to update?
This will be my new thing to learn today!
Thank for any help in advance!
Dave
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Saving it with the same name is actually the problem in this case. Zooper caches external images for its widgets and doesn't reload them after the initial load. If you want your image to change you have to use the same method Media Utilities uses for the coverart: Save the image under a different name on each save (append a random number or a timestap to the name), push the path to the new image as a variable to Zooper (lets say "CHANGINGIMAGE") and then use that variable as an advanced parameter on the bitmap module in your Zooper Widget as follows
HTML:
[b]#TCHANGINGIMAGE#[/b]
Since the name of the bitmap changes, Zooper recognizes it as a new bitmap and will reload it on the widget.
kwerdenker said:
Saving it with the same name is actually the problem in this case. Zooper caches external images for its widgets and doesn't reload them after the initial load. If you want your image to change you have to use the same method Media Utilities uses for the coverart: Save the image under a different name on each save (append a random number or a timestap to the name), push the path to the new image as a variable to Zooper (lets say "CHANGINGIMAGE") and then use that variable as an advanced parameter on the bitmap module in your Zooper Widget as follows
HTML:
[b]#TCHANGINGIMAGE#[/b]
Since the name of the bitmap changes, Zooper recognizes it as a new bitmap and will reload it on the widget.
Click to expand...
Click to collapse
Interesting! That variable would have the path to the image is what I'm understanding. The rest makes perfect sense!
Thanks @kwerdenker
It works .. but
It only updates when a minute flips. It doesn't change on request. I'm even displaying the Tasker Zooper variable and it changes but the image waits till the minute changes.
I there a way to make the widget refresh itself automatically??
MrBiggzz said:
It works .. but
It only updates when a minute flips. It doesn't change on request. I'm even displaying the Tasker Zooper variable and it changes but the image waits till the minute changes.
I there a way to make the widget refresh itself automatically??
Click to expand...
Click to collapse
[SOLVED]
Ok I feel like an idiot now! After staring at this for an entire weekend back and forth from other things. I finally licked it!
It's all about bitmap opacity
The Tasker part was just to supply a 0 or 1 as the toggle switch via the ON TAP event supplied by Zooper.
You have to have two bitmap modules in the exact same position to create the switch effect.
Code:
$#TMAPTOGGLE#=0?[b][bo]ff[/bo]/sdcard/ZooperWidget/Bitmaps/map.png[/b]:[b][bo]00[/bo]/sdcard/ZooperWidget/Bitmaps/map.png[/b]$
That above was my first module and below that I had one with the same code except I was testing for a 1 instead of a 0 and the bitmap name was different.
I would be nice it Zooper gave the mechanism to do this with out having to reach out to Tasker. But it works! :good::highfive:
Hello, Its possible to use bitmaps with conditioins, for example, if there's a missing call the bitmap change?
rogerhnn said:
Hello, Its possible to use bitmaps with conditioins, for example, if there's a missing call the bitmap change?
Click to expand...
Click to collapse
Define the premises of "bitmap change".
For example, as a part of my setup, whenever I receive a missed call, I have set a condition for my bitmap to "light up" like this:
- Add a Zooper widget to your homescreen > Add the Bitmap module you want for the missed call icon
- Set its normal opacity at 100
- Add this code to its Advanced Parameters:
Code:
$#SMCALLS#=0?[bo]#30ffffff[/bo]$
.
This will lead to the bitmap staying "dim" when there are no missed calls and "light up" when there are.
If you want to completely change the bitmap image, you can do that too within the Advanced Parameters. Here, for simplicity's sake, we will assume that you have a bitmap called "Image.png" in a folder called "Folder" on your Internal SD Card.
- Add a Zooper widget to your homescreen > Add the Bitmap module you want for the missed call icon
- In order to re-direct to a different bitmap when there are no missed calls, add this code to its Advanced Parameters: (without the space after /b)
Code:
$#SMCALLS#=0?[b]/storage/emulated/0/Folder/Image.png[/b ]$
- (Your path to your image on your device will be different so keep that in mind).
This will result in the no missed call icon and won't trigger any changes until you receive a missed call.
Let me know if I helped.
Rickav said:
Define the premises of "bitmap change".
For example, as a part of my setup, whenever I receive a missed call, I have set a condition for my bitmap to "light up" like this:
- Add a Zooper widget to your homescreen > Add the Bitmap module you want for the missed call icon
- Set its normal opacity at 100
- Add this code to its Advanced Parameters:
Code:
$#SMCALLS#=0?[bo]#30ffffff[/bo]$
.
This will lead to the bitmap staying "dim" when there are no missed calls and "light up" when there are.
If you want to completely change the bitmap image, you can do that too within the Advanced Parameters. Here, for simplicity's sake, we will assume that you have a bitmap called "Image.png" in a folder called "Folder" on your Internal SD Card.
- Add a Zooper widget to your homescreen > Add the Bitmap module you want for the missed call icon
- In order to re-direct to a different bitmap when there are no missed calls, add this code to its Advanced Parameters: (without the space after /b)
Code:
$#SMCALLS#=0?[b]/storage/emulated/0/Folder/Image.png[/b ]$
- (Your path to your image on your device will be different so keep that in mind).
This will result in the no missed call icon and won't trigger any changes until you receive a missed call.
Let me know if I helped.
Click to expand...
Click to collapse
Thanks for your help!
What I managed to do was to hide the icon if there's no calls using this:
[ox]$#SMCALLS#=0?500$[/ox]
So, if there's no calls it moves the icon 500 in the X axis, otherwise it will display it.
We need a thread only about advanced parameters! :laugh:
rogerhnn said:
Thanks for your help!
What I managed to do was to hide the icon if there's no calls using this:
[ox]$#SMCALLS#=0?500$[/ox]
So, if there's no calls it moves the icon 500 in the X axis, otherwise it will display it.
We need a thread only about advanced parameters! :laugh:
Click to expand...
Click to collapse
Sure, if it works for you, that's all you need. An alternative could be $#SMCALLS#=0?[bo]#00000000[/bo]$ which would achieve the same result except this one makes the bitmap transparent instead of moving it. Same difference, I guess you could say.
As far as the advanced parameters only thread goes, there is just so much potential and possibilities in the ways of using them that I don't think any thread could contain them all.
Having said that, this Q&A thread makes an attempt to fill a void in helping members at any level on their way to achieve their aim in Zooper.
Furthermore, this reference-only thread by the pretty awesome @kwerdenker lists a number of invaluable ready-made advanced parameters to be used as required.
Cheers.
Is it possoble to get me to press a bitmap and male ot shrink while making a different one grow?
Yes this can be achieved. With any type of toggle input you will need to create a Tasker task which will toggle a variable on or off. You can then output this variable to Zooper and use a conditional to act upon the variable state (in this case you would want to use the bitmap scaling function on each of the bitmaps) then set the module on tap element of both bitmaps to the task shortcut in order to activate it.
The speed at which this works would be dependant on your phone/tablet so it might not work particularly fast.
Is there a video for this? Im kinda confused but im understanding it a little more.
Sorry for not getting back to you sooner.
This isn't a video but should help you to create the toggle in Tasker: http://www.pocketables.com/2013/03/how-to-create-a-toggleable-task-in-tasker.html
After you have got that working you just need to add another action so press + in your task then select plugin, and then Zooper Widget Pro.
In configuration enter the Tasker variable in ZW Text (remember the %) and enter a name in ZW Variable which you want to use in zooper, this can be anything you want. The convention is to use all capitals for Zooper variables buy it is not necessary.
Once you have saved this you will see that Tasker has added #T to the start of your variable and another # at the end, this is what you will be using in zooper.
Exit from the task with the < icon in the top left corner until you are back at the task page. This is important as it saves your task and also you will not be able to access the task shortcut from Zooper (or any other app for that matter) as Tasker will still be in edit mode.
Right, in your zooper widget call up one of your Bitmaps and go to advanced parameters. Enter this code , changing the variable name to what you have chosen
PHP:
$#TTASK#=1?[s]50[/s]:[s]100[/s]$
This tells Zooper to display bitmap at 50% if #TTASK# is set to 1 or 100% otherwise
Go to module on tap, select the Task Shortcut from the shortcuts menu, then select your task from the list - It will probably prompt you to select an icon. Do that and you have finished that bitmap. Now repeat the parameters in the other bitmap but change =1 to =0 so it is reversed then you are done.
Hopefully I haven't missed anything but let me know if you encounter any problems.
I almost got it, when i tap the picture it just switches between hello and world its probly my tasker but ill show u a screenshot
Lstarz said:
I almost got it, when i tap the picture it just switches between hello and world its probly my tasker but ill show u a screenshot
Click to expand...
Click to collapse
You've misunderstood me a little there, probably my fault.
In Zooper configuration enter %Toggle as the ZWText. It need to be the variable you have already defined in tasker, otherwise you are telling tasker to output a variable that you are not setting.
Also, you can just put one zooper plugin activity after the End If instead of having two separate statements as Tasker will read this last and update then.
Dude the man it works now
When I'm done with the widget I'll tell you so u can see what I shud improve, ATM I have 2 five nights at Freddy's widgets posted if u wanna check them out
Yo, the doors work for the toggle, but I'm trying to make chika and bonnie pop up on screen after a certain time that they show up at the doors
So basically, can I make a timer that that is triggered by one bitmap showing up and when it goes to zero a different bitmap pops up?