Skip to content

Commit d73d38e

Browse files
committed
try to fix null loop bug
1 parent a5be9f0 commit d73d38e

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

user-lock-manager.smartapp.groovy

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* User Lock Manager v3.7.2
2+
* User Lock Manager v3.7.3
33
*
44
* Copyright 2015 Erik Thayer
55
*
@@ -40,6 +40,7 @@ def rootPage() {
4040

4141
if (locks) {
4242
section {
43+
input name: "maxUsers", title: "Number of users", type: "number", multiple: false, refreshAfterSelection: true, submitOnChange: true
4344
href(name: "toSetupPage", title: "User Settings", page: "setupPage", description: setupPageDescription(), state: setupPageDescription() ? "complete" : "")
4445
href(name: "toNotificationPage", page: "notificationPage", title: "Notification Settings", description: notificationPageDescription(), state: notificationPageDescription() ? "complete" : "")
4546
href(name: "toSchedulingPage", page: "schedulingPage", title: "Schedule (optional)", description: schedulingHrefDescription(), state: schedulingHrefDescription() ? "complete" : "")
@@ -54,18 +55,23 @@ def rootPage() {
5455

5556
def setupPage() {
5657
dynamicPage(name:"setupPage", title:"User Settings") {
57-
section("How many Users? (1-30)?") {
58-
input name: "maxUsers", title: "Number of users", type: "number", multiple: false, refreshAfterSelection: true, submitOnChange: true
59-
href(name: "toResetAllCodeUsage", title: "Reset Code Usage", page: "resetAllCodeUsagePage", description: "Tap to reset")
60-
}
61-
section("Users") {
62-
for (int i = 1; i <= settings.maxUsers; i++) {
63-
i = i.toString().replaceAll('.0','').toInteger()
64-
if (!state."userState${i}") {
65-
//there's no values, so reset
66-
resetCodeUsage(i)
58+
if (maxUsers > 0) {
59+
section("Users") {
60+
for (int i = 1; i <= settings.maxUsers; i++) {
61+
i = i.toString().replaceAll('.0','').toInteger()
62+
if (!state."userState${i}") {
63+
//there's no values, so reset
64+
resetCodeUsage(i)
65+
}
66+
href(name: "toUserPage", page: "userPage", params: [number: i], required: false, description: userHrefDescription(i), title: userHrefTitle(i), state: userPageState(i) )
6767
}
68-
href(name: "toUserPage", page: "userPage", params: [number: i], required: false, description: userHrefDescription(i), title: userHrefTitle(i), state: userPageState(i) )
68+
}
69+
section {
70+
href(name: "toResetAllCodeUsage", title: "Reset Code Usage", page: "resetAllCodeUsagePage", description: "Tap to reset")
71+
}
72+
} else {
73+
section("Users") {
74+
paragraph "Users are set to zero. Please go back to the main page and change the number of users to at least 1."
6975
}
7076
}
7177
}
@@ -98,12 +104,8 @@ def userPage(params) {
98104
if (phrases) {
99105
phrases.sort()
100106
input name: "userHomePhrases${i}", type: "enum", title: "Hello Home Phrase", multiple: true,required: false, options: phrases, defaultValue: settings."userHomePhrases${i}", refreshAfterSelection: true
101-
if(settings."userHomePhrases${i}" != null) {
102-
input "userNoRunPresence${i}", "capability.presenceSensor", title: "Don't run Actions if any of these are present:", multiple: true, required: false, defaultValue: settings."userNoRunPresence${i}"
103-
}
104-
if(settings."userHomePhrases${i}" != null) {
105-
input "userDoRunPresence${i}", "capability.presenceSensor", title: "Run Actions only if any of these are present:", multiple: true, required: false, defaultValue: settings."userDoRunPresence${i}"
106-
}
107+
input "userNoRunPresence${i}", "capability.presenceSensor", title: "Don't run Actions if any of these are present:", multiple: true, required: false, defaultValue: settings."userNoRunPresence${i}"
108+
input "userDoRunPresence${i}", "capability.presenceSensor", title: "Run Actions only if any of these are present:", multiple: true, required: false, defaultValue: settings."userDoRunPresence${i}"
107109
}
108110
}
109111
section {

0 commit comments

Comments
 (0)