Files
app_Settings/src/com/android/settings/SetupChooseLockPassword.java
Maurice Lam 83301b5256 [Setup] Use SetupWizardLayout
Use SetupWizardLayout for the screens that show in Settings to get
better visual consistency and new features like showing a progress
bar in list view.

Bug: 19594252
Change-Id: I53ab17a4c2d922a362e3762f1cdccb512f7d8f6e
2015-04-21 10:19:35 -07:00

135 lines
5.2 KiB
Java

/*
* 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.setupwizardlib.SetupWizardLayout;
import com.android.setupwizardlib.util.SystemBarHelper;
import com.android.setupwizardlib.view.NavigationBar;
import android.app.Activity;
import android.app.Fragment;
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 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 {
public static Intent createIntent(Context context, int quality,
int minLength, final int maxLength, boolean requirePasswordToDecrypt,
boolean confirmCredentials) {
Intent intent = ChooseLockPassword.createIntent(context, quality, minLength,
maxLength, requirePasswordToDecrypt, confirmCredentials);
intent.setClass(context, SetupChooseLockPassword.class);
intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
return intent;
}
public static Intent createIntent(Context context, int quality,
int minLength, final int maxLength, boolean requirePasswordToDecrypt, String password) {
Intent intent = ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
requirePasswordToDecrypt, password);
intent.setClass(context, SetupChooseLockPassword.class);
intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
return intent;
}
public static Intent createIntent(Context context, int quality,
int minLength, final int maxLength, boolean requirePasswordToDecrypt, long challenge) {
Intent intent = ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
requirePasswordToDecrypt, challenge);
intent.setClass(context, SetupChooseLockPassword.class);
intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
return intent;
}
@Override
protected boolean isValidFragment(String fragmentName) {
return SetupChooseLockPasswordFragment.class.getName().equals(fragmentName);
}
@Override
/* package */ Class<? extends Fragment> getFragmentClass() {
return SetupChooseLockPasswordFragment.class;
}
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
resid = SetupWizardUtils.getTheme(getIntent());
super.onApplyThemeResource(theme, resid, first);
}
public static class SetupChooseLockPasswordFragment extends ChooseLockPasswordFragment
implements NavigationBar.NavigationBarListener {
private NavigationBar mNavigationBar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final SetupWizardLayout layout = (SetupWizardLayout) inflater.inflate(
R.layout.setup_choose_lock_password, container, false);
SystemBarHelper.setImeInsetView(layout.findViewById(R.id.suw_bottom_scroll_view));
mNavigationBar = layout.getNavigationBar();
mNavigationBar.setNavigationBarListener(this);
layout.setHeaderText(getActivity().getTitle());
SetupWizardUtils.setImmersiveMode(getActivity());
return layout;
}
@Override
protected Intent getRedactionInterstitialIntent(Context context) {
Intent intent = SetupRedactionInterstitial.createStartIntent(context);
SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
return intent;
}
@Override
protected void setNextEnabled(boolean enabled) {
mNavigationBar.getNextButton().setEnabled(enabled);
}
@Override
protected void setNextText(int text) {
mNavigationBar.getNextButton().setText(text);
}
@Override
public void onNavigateBack() {
final Activity activity = getActivity();
if (activity != null) {
activity.onBackPressed();
}
}
@Override
public void onNavigateNext() {
handleNext();
}
}
}