diff options
5 files changed, 44 insertions, 23 deletions
diff --git a/src/com/android/settings/OwnerInfoSettings.java b/src/com/android/settings/OwnerInfoSettings.java index 2d44921..0a83f1a 100644 --- a/src/com/android/settings/OwnerInfoSettings.java +++ b/src/com/android/settings/OwnerInfoSettings.java @@ -20,7 +20,6 @@ import android.app.Fragment; import android.content.ContentResolver; import android.os.Bundle; import android.os.UserHandle; -import android.provider.Settings; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -29,36 +28,40 @@ import android.widget.CompoundButton; import android.widget.EditText; import android.widget.CompoundButton.OnCheckedChangeListener; +import com.android.internal.widget.LockPatternUtils; + public class OwnerInfoSettings extends Fragment { private View mView; private CheckBox mCheckbox; private EditText mEditText; + private int mUserId; + private LockPatternUtils mLockPatternUtils; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = inflater.inflate(R.layout.ownerinfo, container, false); + mUserId = UserHandle.myUserId(); + mLockPatternUtils = new LockPatternUtils(getActivity()); initView(mView); return mView; } private void initView(View view) { final ContentResolver res = getActivity().getContentResolver(); - String info = Settings.Secure.getString(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO); - int enabled = Settings.Secure.getInt(res, - Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1); + String info = mLockPatternUtils.getOwnerInfo(mUserId); + boolean enabled = mLockPatternUtils.isOwnerInfoEnabled(); mCheckbox = (CheckBox) mView.findViewById(R.id.show_owner_info_on_lockscreen_checkbox); mEditText = (EditText) mView.findViewById(R.id.owner_info_edit_text); mEditText.setText(info); - mEditText.setEnabled(enabled != 0); - mCheckbox.setChecked(enabled != 0); + mEditText.setEnabled(enabled); + mCheckbox.setChecked(enabled); if (UserHandle.myUserId() != UserHandle.USER_OWNER) { mCheckbox.setText(R.string.show_user_info_on_lockscreen_label); } mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - Settings.Secure.putInt(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, - isChecked ? 1 : 0); + mLockPatternUtils.setOwnerInfoEnabled(isChecked); mEditText.setEnabled(isChecked); // disable text field if not enabled } }); @@ -71,9 +74,8 @@ public class OwnerInfoSettings extends Fragment { } void saveToDb() { - ContentResolver res = getActivity().getContentResolver(); String info = mEditText.getText().toString(); - Settings.Secure.putString(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO, info); + mLockPatternUtils.setOwnerInfo(info, mUserId); } } diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index ed3685d..4cc4e40 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -134,16 +134,12 @@ public class Settings extends PreferenceActivity private Header mLastHeader; private boolean mListeningToAccountUpdates; - private List<RestrictionEntry> mAppRestrictions; - @Override protected void onCreate(Bundle savedInstanceState) { if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) { getWindow().setUiOptions(getIntent().getIntExtra(EXTRA_UI_OPTIONS, 0)); } - mAppRestrictions = getApplicationRestrictions(); - mAuthenticatorHelper = new AuthenticatorHelper(); mAuthenticatorHelper.updateAuthDescriptions(this); mAuthenticatorHelper.onAccountsUpdated(this, null); diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java index 8b93417..7d4af4f 100644 --- a/src/com/android/settings/users/AppRestrictionsFragment.java +++ b/src/com/android/settings/users/AppRestrictionsFragment.java @@ -562,7 +562,8 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen if (packageName.equals(getActivity().getPackageName())) { RestrictionUtils.setRestrictions(getActivity(), restrictions, mUser); } else { - mUserManager.setApplicationRestrictions(packageName, restrictions, + mUserManager.setApplicationRestrictions(packageName, + RestrictionUtils.restrictionsToBundle(restrictions), mUser); } break; @@ -594,12 +595,11 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen getActivity(), mUser); onRestrictionsReceived(preference, packageName, restrictions); } else { - List<RestrictionEntry> oldEntries = + Bundle oldEntries = mUserManager.getApplicationRestrictions(packageName, mUser); Intent intent = new Intent(Intent.ACTION_GET_RESTRICTION_ENTRIES); intent.setPackage(packageName); - intent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS, - new ArrayList<RestrictionEntry>(oldEntries)); + intent.putExtra(Intent.EXTRA_RESTRICTIONS_BUNDLE, oldEntries); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); getActivity().sendOrderedBroadcast(intent, null, new RestrictionsResultReceiver(packageName, preference), @@ -626,14 +626,16 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen public void onReceive(Context context, Intent intent) { Bundle results = getResultExtras(true); final ArrayList<RestrictionEntry> restrictions = results.getParcelableArrayList( - Intent.EXTRA_RESTRICTIONS); + Intent.EXTRA_RESTRICTIONS_LIST); Intent restrictionsIntent = (Intent) results.getParcelable(CUSTOM_RESTRICTIONS_INTENT); if (restrictions != null && restrictionsIntent == null) { onRestrictionsReceived(preference, packageName, restrictions); - mUserManager.setApplicationRestrictions(packageName, restrictions, mUser); + mUserManager.setApplicationRestrictions(packageName, + RestrictionUtils.restrictionsToBundle(restrictions), mUser); } else if (restrictionsIntent != null) { final Intent customIntent = restrictionsIntent; - customIntent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS, restrictions); + customIntent.putExtra(Intent.EXTRA_RESTRICTIONS_BUNDLE, + RestrictionUtils.restrictionsToBundle(restrictions)); Preference p = new Preference(context); p.setTitle(R.string.app_restrictions_custom_label); p.setOnPreferenceClickListener(new OnPreferenceClickListener() { @@ -741,12 +743,13 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen if (resultCode == Activity.RESULT_OK) { ArrayList<RestrictionEntry> list = - data.getParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS); + data.getParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS_LIST); if (list != null) { // If there's a valid result, persist it to the user manager. String packageName = pref.getKey().substring(PKG_PREFIX.length()); pref.setRestrictions(list); - mUserManager.setApplicationRestrictions(packageName, list, mUser); + mUserManager.setApplicationRestrictions(packageName, + RestrictionUtils.restrictionsToBundle(list), mUser); } toggleAppPanel(pref); } diff --git a/src/com/android/settings/users/RestrictionUtils.java b/src/com/android/settings/users/RestrictionUtils.java index 241395b..be62b3b 100644 --- a/src/com/android/settings/users/RestrictionUtils.java +++ b/src/com/android/settings/users/RestrictionUtils.java @@ -90,4 +90,18 @@ public class RestrictionUtils { } um.setUserRestrictions(userRestrictions, user); } + + public static Bundle restrictionsToBundle(ArrayList<RestrictionEntry> entries) { + final Bundle bundle = new Bundle(); + for (RestrictionEntry entry : entries) { + if (entry.getType() == RestrictionEntry.TYPE_BOOLEAN) { + bundle.putBoolean(entry.getKey(), entry.getSelectedState()); + } else if (entry.getType() == RestrictionEntry.TYPE_MULTI_SELECT) { + bundle.putStringArray(entry.getKey(), entry.getAllSelectedStrings()); + } else { + bundle.putString(entry.getKey(), entry.getSelectedString()); + } + } + return bundle; + } } diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java index 60dd119..5b732d6 100755 --- a/src/com/android/settings/wfd/WifiDisplaySettings.java +++ b/src/com/android/settings/wfd/WifiDisplaySettings.java @@ -117,6 +117,12 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { } @Override + public void onDestroyView() { + getActivity().getActionBar().setCustomView(null); + super.onDestroyView(); + } + + @Override public void onResume() { super.onResume(); |