</PreferenceCategory>
+ <PreferenceCategory
+ android:key="app_security"
+ android:title="@string/app_security_title">
+
+ <ListPreference
+ android:key="sms_security_check_limit"
+ android:dialogTitle="@string/sms_security_check_limit_title"
+ android:title="@string/sms_security_check_limit_title"
+ android:entries="@array/sms_security_check_limit_entries"
+ android:entryValues="@array/sms_security_check_limit_values"
+ android:defaultValue="30" />
+
+ </PreferenceCategory>
+
<PreferenceCategory android:title="@string/security_passwords_title"
android:persistent="false">
private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
private static final String KEY_TRUST_AGENT = "trust_agent";
private static final String KEY_SCREEN_PINNING = "screen_pinning_settings";
+ private static final String KEY_TOGGLE_DM_AUTOBOOT = "toggle_dm_autoboot";
+ private static final String KEY_SMS_SECURITY_CHECK_PREF = "sms_security_check_limit";
+ private static final String DM_AUTOBOOT_SETTING = "dm_selfregist_autoboot";
+ private static final int DM_AUTOBOOT_SETTING_ENABLE = 1;
+ private static final int DM_AUTOBOOT_SETTING_DISABLE = 0;
// These switch preferences need special handling since they're not all stored in Settings.
private static final String SWITCH_PREFERENCE_KEYS[] = { KEY_LOCK_AFTER_TIMEOUT,
private DialogInterface mWarnInstallApps;
private SwitchPreference mPowerButtonInstantlyLocks;
+ private ListPreference mSmsSecurityCheck;
+
private boolean mIsPrimary;
private Intent mTrustAgentClickIntent;
addPreferencesFromResource(R.xml.security_settings);
root = getPreferenceScreen();
+ // Add package manager to check if features are available
+ PackageManager pm = getPackageManager();
+
// Add options for lock/unlock screen
final int resid = getResIdForLockUnlockScreen(getActivity(), mLockPatternUtils);
addPreferencesFromResource(resid);
getResources().getString(R.string.switch_on_text));
}
+ // SMS rate limit security check
+ boolean isTelephony = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
+ if (isTelephony) {
+ mSmsSecurityCheck = (ListPreference) root.findPreference(KEY_SMS_SECURITY_CHECK_PREF);
+ mSmsSecurityCheck.setOnPreferenceChangeListener(this);
+ int smsSecurityCheck = Integer.valueOf(mSmsSecurityCheck.getValue());
+ updateSmsSecuritySummary(smsSecurityCheck);
+ }
+
// Show password
mShowPassword = (SwitchPreference) root.findPreference(KEY_SHOW_PASSWORD);
mResetCredentials = root.findPreference(KEY_RESET_CREDENTIALS);
final Preference pref = findPreference(SWITCH_PREFERENCE_KEYS[i]);
if (pref != null) pref.setOnPreferenceChangeListener(this);
}
+
return root;
}
}
}
+ private void updateSmsSecuritySummary(int i) {
+ String message = getString(R.string.sms_security_check_limit_summary, i);
+ mSmsSecurityCheck.setSummary(message);
+ }
+
private void setupLockAfterPreference() {
// Compatible with pre-Froyo
long currentTimeout = Settings.Secure.getLong(getContentResolver(),
} else {
setNonMarketAppsAllowed(false);
}
+ } else if (KEY_SMS_SECURITY_CHECK_PREF.equals(key)) {
+ int smsSecurityCheck = Integer.valueOf((String) value);
+ Settings.Secure.putInt(getContentResolver(), Settings.Global.SMS_OUTGOING_CHECK_MAX_COUNT,
+ smsSecurityCheck);
+ updateSmsSecuritySummary(smsSecurityCheck);
}
return result;
}