diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 82b135f6de1..4360443cc9c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1109,6 +1109,9 @@
+
+
+
+
diff --git a/res/layout/encryption_interstitial.xml b/res/layout/encryption_interstitial.xml
index 362ff8228fa..162ad0e077d 100644
--- a/res/layout/encryption_interstitial.xml
+++ b/res/layout/encryption_interstitial.xml
@@ -20,8 +20,8 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingStart="@dimen/settings_side_margin"
- android:paddingEnd="@dimen/settings_side_margin">
+ android:paddingStart="?attr/side_margin"
+ android:paddingEnd="?attr/side_margin">
+ android:paddingStart="?attr/side_margin"
+ android:paddingEnd="?attr/side_margin">
+
@@ -40,6 +41,7 @@
- @*android:drawable/ic_menu_moreoverflow_material
- @drawable/ic_wps_dark
- @color/setup_divider_color_dark
+ - 0dip
- @color/setup_wizard_wifi_color_dark
- @drawable/wifi_signal_teal
- ?android:attr/colorBackground
@@ -57,6 +59,7 @@
- @*android:drawable/ic_menu_moreoverflow_material
- @drawable/ic_wps_light
- @color/setup_divider_color_light
+ - 0dip
- @color/setup_wizard_wifi_color_light
- @drawable/wifi_signal_teal
- ?android:attr/colorBackground
@@ -98,6 +101,7 @@
- @*android:drawable/ic_menu_moreoverflow_holo_dark
- @drawable/ic_wps_dark
- @drawable/wifi_signal_teal
+ - @dimen/settings_side_margin
- @style/Theme.ActionBar
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 1f2f2b395ac..3cbcbb4bd52 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -189,13 +189,13 @@ public class ChooseLockGeneric extends SettingsActivity {
if (Process.myUserHandle().isOwner() && LockPatternUtils.isDeviceEncryptionEnabled()) {
mEncryptionRequestQuality = quality;
mEncryptionRequestDisabled = disabled;
+ final Context context = getActivity();
// If accessibility is enabled and the user hasn't seen this dialog before, set the
// default state to agree with that which is compatible with accessibility
// (password not required).
- final boolean accEn = AccessibilityManager.getInstance(getActivity()).isEnabled();
+ final boolean accEn = AccessibilityManager.getInstance(context).isEnabled();
final boolean required = mLockPatternUtils.isCredentialRequiredToDecrypt(!accEn);
- Intent intent = EncryptionInterstitial.createStartIntent(
- getActivity(), quality, required);
+ Intent intent = getEncryptionInterstitialIntent(context, quality, required);
startActivityForResult(intent, ENABLE_ENCRYPTION_REQUEST);
} else {
mRequirePassword = false; // device encryption not enabled or not device owner.
@@ -414,6 +414,11 @@ public class ChooseLockGeneric extends SettingsActivity {
confirmCredentials);
}
+ protected Intent getEncryptionInterstitialIntent(Context context, int quality,
+ boolean required) {
+ return EncryptionInterstitial.createStartIntent(context, quality, required);
+ }
+
/**
* Invokes an activity to change the user's pattern, password or PIN based on given quality
* and minimum quality specified by DevicePolicyManager. If quality is
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index dbf6d2f366a..2c0598681e5 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -299,6 +299,10 @@ public class ChooseLockPassword extends SettingsActivity {
}
}
+ protected Intent getRedactionInterstitialIntent(Context context) {
+ return RedactionInterstitial.createStartIntent(context);
+ }
+
protected void updateStage(Stage stage) {
final Stage previousStage = mUiStage;
mUiStage = stage;
@@ -441,7 +445,7 @@ public class ChooseLockPassword extends SettingsActivity {
getActivity().finish();
mDone = true;
if (!wasSecureBefore) {
- startActivity(RedactionInterstitial.createStartIntent(getActivity()));
+ startActivity(getRedactionInterstitialIntent(getActivity()));
}
} else {
CharSequence tmp = mPasswordEntry.getText();
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index d0551843874..85694b1999e 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -386,6 +386,10 @@ public class ChooseLockPattern extends SettingsActivity {
mDone = false;
}
+ protected Intent getRedactionInterstitialIntent(Context context) {
+ return RedactionInterstitial.createStartIntent(context);
+ }
+
public void onClick(View v) {
if (v == mFooterLeftButton) {
if (mUiStage.leftMode == LeftButtonMode.Retry) {
@@ -562,7 +566,7 @@ public class ChooseLockPattern extends SettingsActivity {
getActivity().finish();
mDone = true;
if (!wasSecureBefore) {
- startActivity(RedactionInterstitial.createStartIntent(getActivity()));
+ startActivity(getRedactionInterstitialIntent(getActivity()));
}
}
}
diff --git a/src/com/android/settings/SetupChooseLockGeneric.java b/src/com/android/settings/SetupChooseLockGeneric.java
index def859326d2..2894f859a3c 100644
--- a/src/com/android/settings/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/SetupChooseLockGeneric.java
@@ -28,6 +28,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
+/**
+ * Setup Wizard's version of ChooseLockGeneric screen. It inherits the logic and basic structure
+ * from ChooseLockGeneric class, and should remain similar to that behaviorally. This class should
+ * only overload base methods for minor theme and behavior differences specific to Setup Wizard.
+ * Other changes should be done to ChooseLockGeneric class instead and let this class inherit
+ * those changes.
+ */
public class SetupChooseLockGeneric extends ChooseLockGeneric
implements SetupWizardNavBar.NavigationBarListener {
@@ -101,5 +108,14 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric
SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
return intent;
}
+
+ @Override
+ protected Intent getEncryptionInterstitialIntent(Context context, int quality,
+ boolean required) {
+ Intent intent = SetupEncryptionInterstitial.createStartIntent(context, quality,
+ required);
+ SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
+ return intent;
+ }
}
}
diff --git a/src/com/android/settings/SetupChooseLockPassword.java b/src/com/android/settings/SetupChooseLockPassword.java
index 5366a55478c..ed6fab4c06a 100644
--- a/src/com/android/settings/SetupChooseLockPassword.java
+++ b/src/com/android/settings/SetupChooseLockPassword.java
@@ -27,6 +27,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+/**
+ * Setup Wizard's version of ChooseLockPassword screen. It inherits the logic and basic structure
+ * from ChooseLockPassword class, and should remain similar to that behaviorally. This class should
+ * only overload base methods for minor theme and behavior differences specific to Setup Wizard.
+ * Other changes should be done to ChooseLockPassword class instead and let this class inherit
+ * those changes.
+ */
public class SetupChooseLockPassword extends ChooseLockPassword
implements SetupWizardNavBar.NavigationBarListener {
@@ -86,5 +93,12 @@ public class SetupChooseLockPassword extends ChooseLockPassword
super.onViewCreated(view, savedInstanceState);
SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle());
}
+
+ @Override
+ protected Intent getRedactionInterstitialIntent(Context context) {
+ Intent intent = SetupRedactionInterstitial.createStartIntent(context);
+ SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
+ return intent;
+ }
}
}
diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java
index 019f4340c8d..b44dea1075f 100644
--- a/src/com/android/settings/SetupChooseLockPattern.java
+++ b/src/com/android/settings/SetupChooseLockPattern.java
@@ -27,6 +27,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+/**
+ * Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure
+ * from ChooseLockPattern class, and should remain similar to that behaviorally. This class should
+ * only overload base methods for minor theme and behavior differences specific to Setup Wizard.
+ * Other changes should be done to ChooseLockPattern class instead and let this class inherit
+ * those changes.
+ */
public class SetupChooseLockPattern extends ChooseLockPattern
implements SetupWizardNavBar.NavigationBarListener {
@@ -84,5 +91,12 @@ public class SetupChooseLockPattern extends ChooseLockPattern
super.onViewCreated(view, savedInstanceState);
SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle());
}
+
+ @Override
+ protected Intent getRedactionInterstitialIntent(Context context) {
+ Intent intent = SetupRedactionInterstitial.createStartIntent(context);
+ SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
+ return intent;
+ }
}
}
diff --git a/src/com/android/settings/SetupEncryptionInterstitial.java b/src/com/android/settings/SetupEncryptionInterstitial.java
new file mode 100644
index 00000000000..53548bd2377
--- /dev/null
+++ b/src/com/android/settings/SetupEncryptionInterstitial.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings;
+
+import com.android.setupwizard.navigationbar.SetupWizardNavBar;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Setup Wizard's version of EncryptionInterstitial screen. It inherits the logic and basic
+ * structure from EncryptionInterstitial class, and should remain similar to that behaviorally. This
+ * class should only overload base methods for minor theme and behavior differences specific to
+ * Setup Wizard. Other changes should be done to EncryptionInterstitial class instead and let this
+ * class inherit those changes.
+ */
+public class SetupEncryptionInterstitial extends EncryptionInterstitial
+ implements SetupWizardNavBar.NavigationBarListener{
+
+ public static Intent createStartIntent(Context ctx, int quality,
+ boolean requirePasswordDefault) {
+ Intent startIntent = EncryptionInterstitial.createStartIntent(ctx, quality,
+ requirePasswordDefault);
+ startIntent.setClass(ctx, SetupEncryptionInterstitial.class);
+ startIntent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false)
+ .putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, -1);
+ return startIntent;
+ }
+
+ @Override
+ public Intent getIntent() {
+ Intent modIntent = new Intent(super.getIntent());
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT,
+ SetupEncryptionInterstitialFragment.class.getName());
+ return modIntent;
+ }
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ return SetupEncryptionInterstitialFragment.class.getName().equals(fragmentName);
+ }
+
+ @Override
+ protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+ resid = SetupWizardUtils.getTheme(getIntent(), resid);
+ super.onApplyThemeResource(theme, resid, first);
+ }
+
+ @Override
+ public void onNavigationBarCreated(SetupWizardNavBar bar) {
+ SetupWizardUtils.setImmersiveMode(this, bar);
+ }
+
+ @Override
+ public void onNavigateBack() {
+ onBackPressed();
+ }
+
+ @Override
+ public void onNavigateNext() {
+ setResult(RESULT_OK, getResultIntentData());
+ finish();
+ }
+
+ public static class SetupEncryptionInterstitialFragment extends EncryptionInterstitialFragment {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.setup_template, container, false);
+ ViewGroup setupContent = (ViewGroup) view.findViewById(R.id.setup_content);
+ View content = super.onCreateView(inflater, setupContent, savedInstanceState);
+ setupContent.addView(content);
+ return view;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ SetupWizardUtils.setHeaderText(getActivity(), R.string.encryption_interstitial_header);
+ }
+ }
+}
diff --git a/src/com/android/settings/SetupRedactionInterstitial.java b/src/com/android/settings/SetupRedactionInterstitial.java
new file mode 100644
index 00000000000..96f4dffd099
--- /dev/null
+++ b/src/com/android/settings/SetupRedactionInterstitial.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings;
+
+import com.android.settings.notification.RedactionInterstitial;
+import com.android.setupwizard.navigationbar.SetupWizardNavBar;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Setup Wizard's version of RedactionInterstitial screen. It inherits the logic and basic structure
+ * from RedactionInterstitial class, and should remain similar to that behaviorally. This class
+ * should only overload base methods for minor theme and behavior differences specific to Setup
+ * Wizard. Other changes should be done to RedactionInterstitial class instead and let this class
+ * inherit those changes.
+ */
+public class SetupRedactionInterstitial extends RedactionInterstitial
+ implements SetupWizardNavBar.NavigationBarListener{
+
+ public static Intent createStartIntent(Context ctx) {
+ Intent startIntent = RedactionInterstitial.createStartIntent(ctx);
+ startIntent.setClass(ctx, SetupRedactionInterstitial.class);
+ startIntent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false)
+ .putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, -1);
+ return startIntent;
+ }
+
+ @Override
+ public Intent getIntent() {
+ Intent modIntent = new Intent(super.getIntent());
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT,
+ SetupEncryptionInterstitialFragment.class.getName());
+ return modIntent;
+ }
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ return SetupEncryptionInterstitialFragment.class.getName().equals(fragmentName);
+ }
+
+ @Override
+ protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+ resid = SetupWizardUtils.getTheme(getIntent(), resid);
+ super.onApplyThemeResource(theme, resid, first);
+ }
+
+ @Override
+ public void onNavigationBarCreated(SetupWizardNavBar bar) {
+ SetupWizardUtils.setImmersiveMode(this, bar);
+ }
+
+ @Override
+ public void onNavigateBack() {
+ onBackPressed();
+ }
+
+ @Override
+ public void onNavigateNext() {
+ setResult(RESULT_OK, getResultIntentData());
+ finish();
+ }
+
+ public static class SetupEncryptionInterstitialFragment extends RedactionInterstitialFragment {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.setup_template, container, false);
+ ViewGroup setupContent = (ViewGroup) view.findViewById(R.id.setup_content);
+ View content = super.onCreateView(inflater, setupContent, savedInstanceState);
+ setupContent.addView(content);
+ return view;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ SetupWizardUtils.setHeaderText(getActivity(), R.string.notification_section_header);
+ }
+ }
+}