cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Blair
Level: Powered On

Screen Saver?

Hey Folks,

Have built a visitors registration app for our reception.
Is it possible to set a screen saver after X time period? Then when the user touches the screen it returns to the home screen?

Was thinking of something on select properties, but have had no luck.

 

Thanks!
Smiley Happy

1 ACCEPTED SOLUTION

Accepted Solutions
PowerApps Staff CarlosFigueira
PowerApps Staff

Re: Screen Saver?

It's possible to do that, although it requires a lot of work. What you would need to do:

- In the first screen of the app, add a timer that will keep updating the current time:

 

Visible: false
OnTimerEnd: Set(now, Now())
Start: true
AutoStart: true
Repeat: true
AutoPause: false

 

 

- In every screen on your app, add an image, and set the following properties (in this case, the screen saver timeout is set to 120000 milliseconds, or 2 minutes):

 

X: 0
Y: 0
Width: Parent.Width
Height: Parent.Height
Image: <some animated GIF or something you want used for the screen saver>
OnSelect: Set(lastAction, Now()); Navigate(HomeScreen, ScreenTransition.Fade)
Visible: DateDiff(lastAction, now, Milliseconds) > 120000

And you also need to make sure that the image is in front of all other controls on the screen; you can do that by selecting it, and on the Home tab on ribbon select 'Reorder' -> 'Bring to front'.

 

 

Now for all controls that you have in your application (really, all of them, which is why I mentioned that this requires a lot of work), you'd need to update their OnSelect/OnChange so that they update the 'lastAction' variable. For example, if you used the "Start with your data" to create an app, you'd need to update these controls:

 

IconNewItem1.OnSelect: Set(lastAction, Now()); NewForm(EditForm1); Navigate(EditScreen1, ScreenTransition.None)
IconSortUpDown1.OnSelect: Set(lastAction, Now()); UpdateContext({SortDescending1: !SortDescending1})
IconRefresh1.OnSelect: Set(lastAction, Now()); Refresh(<data source name>)
NextArrow1.OnSelect: Set(lastAction, Now()); Navigate(DetailScreen1, ScreenTransition.None)
BrowseGallery1.OnSelect: Set(lastAction, Now())
...

In other words, it's possible to do it, but the effort may not be worth it.

 

Please consider creating an entry in the PowerApps Ideas board (or vote one up if this already exists) to propose this feature to the product team.

 

1 REPLY 1
PowerApps Staff CarlosFigueira
PowerApps Staff

Re: Screen Saver?

It's possible to do that, although it requires a lot of work. What you would need to do:

- In the first screen of the app, add a timer that will keep updating the current time:

 

Visible: false
OnTimerEnd: Set(now, Now())
Start: true
AutoStart: true
Repeat: true
AutoPause: false

 

 

- In every screen on your app, add an image, and set the following properties (in this case, the screen saver timeout is set to 120000 milliseconds, or 2 minutes):

 

X: 0
Y: 0
Width: Parent.Width
Height: Parent.Height
Image: <some animated GIF or something you want used for the screen saver>
OnSelect: Set(lastAction, Now()); Navigate(HomeScreen, ScreenTransition.Fade)
Visible: DateDiff(lastAction, now, Milliseconds) > 120000

And you also need to make sure that the image is in front of all other controls on the screen; you can do that by selecting it, and on the Home tab on ribbon select 'Reorder' -> 'Bring to front'.

 

 

Now for all controls that you have in your application (really, all of them, which is why I mentioned that this requires a lot of work), you'd need to update their OnSelect/OnChange so that they update the 'lastAction' variable. For example, if you used the "Start with your data" to create an app, you'd need to update these controls:

 

IconNewItem1.OnSelect: Set(lastAction, Now()); NewForm(EditForm1); Navigate(EditScreen1, ScreenTransition.None)
IconSortUpDown1.OnSelect: Set(lastAction, Now()); UpdateContext({SortDescending1: !SortDescending1})
IconRefresh1.OnSelect: Set(lastAction, Now()); Refresh(<data source name>)
NextArrow1.OnSelect: Set(lastAction, Now()); Navigate(DetailScreen1, ScreenTransition.None)
BrowseGallery1.OnSelect: Set(lastAction, Now())
...

In other words, it's possible to do it, but the effort may not be worth it.

 

Please consider creating an entry in the PowerApps Ideas board (or vote one up if this already exists) to propose this feature to the product team.

 

Helpful resources

Announcements
firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

FirstImage

Power Platform World Tour

Coming to a city near you

thirdimage

PowerApps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

FourthImage

Join PowerApps User Group!!

Connect, share, and learn with your peers year-round

SecondImage

Power Platform Summit North America

Register by September 5 to save $200

Users Online
Currently online: 44 members 4,900 guests
Please welcome our newest community members: