summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/setupwizard/setup
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyanogenmod/setupwizard/setup')
-rw-r--r--src/com/cyanogenmod/setupwizard/setup/AbstractSetupData.java15
-rw-r--r--src/com/cyanogenmod/setupwizard/setup/PageList.java13
-rw-r--r--src/com/cyanogenmod/setupwizard/setup/SetupDataCallbacks.java1
3 files changed, 29 insertions, 0 deletions
diff --git a/src/com/cyanogenmod/setupwizard/setup/AbstractSetupData.java b/src/com/cyanogenmod/setupwizard/setup/AbstractSetupData.java
index 105facf..edae5c6 100644
--- a/src/com/cyanogenmod/setupwizard/setup/AbstractSetupData.java
+++ b/src/com/cyanogenmod/setupwizard/setup/AbstractSetupData.java
@@ -135,6 +135,21 @@ public abstract class AbstractSetupData extends BroadcastReceiver implements Set
doPreviousNext(runnable);
}
+ @Override
+ public void setCurrentPage(String key) {
+ if (mPageList.getPage(key) != null) {
+ mCurrentPageIndex = mPageList.getPageIndex(key);
+ }
+ }
+
+ public Page getNextPage(String key) {
+ if (mPageList.getPage(key) != null) {
+ int currentPageIndex = mPageList.getPageIndex(key);
+ return mPageList.getPage(currentPageIndex + 1);
+ }
+ return null;
+ }
+
private boolean advanceToNextUnhidden() {
while (mCurrentPageIndex < mPageList.size()) {
mCurrentPageIndex++;
diff --git a/src/com/cyanogenmod/setupwizard/setup/PageList.java b/src/com/cyanogenmod/setupwizard/setup/PageList.java
index 6709d47..dcb5bc1 100644
--- a/src/com/cyanogenmod/setupwizard/setup/PageList.java
+++ b/src/com/cyanogenmod/setupwizard/setup/PageList.java
@@ -16,6 +16,8 @@
package com.cyanogenmod.setupwizard.setup;
+import android.text.TextUtils;
+
import java.util.LinkedHashMap;
public class PageList extends LinkedHashMap<String, Page> {
@@ -30,6 +32,17 @@ public class PageList extends LinkedHashMap<String, Page> {
return get(key);
}
+ public int getPageIndex(String key) {
+ int i=0;
+ for (Page page : values()) {
+ if (TextUtils.equals(page.getKey(), key)) {
+ return i;
+ }
+ i++;
+ }
+ return i;
+ }
+
public Page getPage(int index) {
int i=0;
for (Page page : values()) {
diff --git a/src/com/cyanogenmod/setupwizard/setup/SetupDataCallbacks.java b/src/com/cyanogenmod/setupwizard/setup/SetupDataCallbacks.java
index 6b4982b..338c838 100644
--- a/src/com/cyanogenmod/setupwizard/setup/SetupDataCallbacks.java
+++ b/src/com/cyanogenmod/setupwizard/setup/SetupDataCallbacks.java
@@ -26,5 +26,6 @@ public interface SetupDataCallbacks {
boolean isCurrentPage(Page page);
Page getPage(String key);
Page getPage(int key);
+ void setCurrentPage(String key);
void addFinishRunnable(Runnable runnable);
}