package com.bwx.bequick.handlers;
import android.content.Intent;
import android.provider.Settings;
import com.bwx.bequick.MainSettingsActivity;
import com.bwx.bequick.R;
import com.bwx.bequick.fwk.Setting;
import com.bwx.bequick.fwk.SettingHandler;
/**
* Pattern handler for android 2.2
*
* @author sergej@beworx.com
*/
public class UnlockPatternSettingHandler22 extends SettingHandler {
public final static String PASSWORD_TYPE_KEY = "lockscreen.password_type";
private final static String LOCK_PATTERN_ENABLED = "lock_pattern_autolock"; // Settings.Secure.LOCK_PATTERN_ENABLED
private static final long SYSTEM_TYPE_NUMERIC = 131072; //DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
private static final long SYSTEM_TYPE_ALPHABETIC = 262144; //DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
private static final long SYSTEM_TYPE_ALPHANUMERIC = 327680; //DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC;
private static final int TYPE_NONE = 0;
private static final int TYPE_PATTERN = 1;
private static final int TYPE_PIN = 2;
private static final int TYPE_PASS = 3;
public UnlockPatternSettingHandler22(Setting setting) {
super(setting);
}
@Override
public void activate(MainSettingsActivity activity) throws Exception {
mActivity = activity;
int pattern = Settings.Secure.getInt(mActivity.getContentResolver(), LOCK_PATTERN_ENABLED);
int type;
if (pattern == 1) {
type = TYPE_PATTERN;
} else {
long passwordType = Settings.Secure.getLong(mActivity.getContentResolver(), PASSWORD_TYPE_KEY);
if (passwordType == SYSTEM_TYPE_ALPHABETIC || passwordType == SYSTEM_TYPE_ALPHANUMERIC) {
type = TYPE_PASS;
} else if (passwordType == SYSTEM_TYPE_NUMERIC) {
type = TYPE_PIN;
} else {
type = TYPE_NONE;
}
}
Setting s = mSetting;
s.checked = type != TYPE_NONE;
switch (type) {
case TYPE_PATTERN: s.descr = getString(R.string.txt_pattern); break;
case TYPE_PIN: s.descr = getString(R.string.txt_pin); break;
case TYPE_PASS: s.descr = getString(R.string.txt_password); break;
default: s.descr = getString(R.string.txt_status_disabled); break;
}
s.updateView();
}
@Override
public void deactivate() {
// do nothing
}
@Override
public void onSelected(int buttonIndex) {
mActivity.startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
}
@Override
public void onSwitched(boolean switched) {
Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.ChooseLockGeneric");
mActivity.startActivity(intent);
}
@Override
public void onValueChanged(int value) {
// do nothing
}
}