diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/settings/ChooseLockPassword.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockPattern.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/notification/RedactionInterstitial.java | 102 |
3 files changed, 106 insertions, 0 deletions
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 6dfb0f7..84758d8 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -19,6 +19,7 @@ package com.android.settings; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.PasswordEntryKeyboardHelper; import com.android.internal.widget.PasswordEntryKeyboardView; +import com.android.settings.notification.RedactionInterstitial; import android.app.Activity; import android.app.Fragment; @@ -408,6 +409,7 @@ public class ChooseLockPassword extends SettingsActivity { mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback); getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + startActivity(RedactionInterstitial.createStartIntent(getActivity())); } else { CharSequence tmp = mPasswordEntry.getText(); if (tmp != null) { diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index c13cea2..9b3ce0a 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -22,6 +22,7 @@ import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternView; import com.android.internal.widget.LockPatternView.Cell; +import com.android.settings.notification.RedactionInterstitial; import static com.android.internal.widget.LockPatternView.DisplayMode; @@ -532,6 +533,7 @@ public class ChooseLockPattern extends SettingsActivity { getActivity().setResult(RESULT_FINISHED); getActivity().finish(); + startActivity(RedactionInterstitial.createStartIntent(getActivity())); } } } diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java new file mode 100644 index 0000000..f122188 --- /dev/null +++ b/src/com/android/settings/notification/RedactionInterstitial.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.notification; + +import com.android.settings.R; +import com.android.settings.SettingsActivity; +import com.android.settings.SettingsPreferenceFragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RadioButton; + +public class RedactionInterstitial extends SettingsActivity { + + @Override + public Intent getIntent() { + Intent modIntent = new Intent(super.getIntent()); + modIntent.putExtra(EXTRA_SHOW_FRAGMENT, RedactionInterstitialFragment.class.getName()); + return modIntent; + } + + @Override + protected boolean isValidFragment(String fragmentName) { + return RedactionInterstitialFragment.class.getName().equals(fragmentName); + } + + public static Intent createStartIntent(Context ctx) { + return new Intent(ctx, RedactionInterstitial.class) + .putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, true) + .putExtra(EXTRA_PREFS_SET_BACK_TEXT, (String) null) + .putExtra(EXTRA_PREFS_SET_NEXT_TEXT, ctx.getString( + R.string.app_notifications_dialog_done)); + } + + public static class RedactionInterstitialFragment extends SettingsPreferenceFragment + implements View.OnClickListener { + + private RadioButton mShowAllButton; + private RadioButton mRedactSensitiveButton; + private RadioButton mHideAllButton; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.redaction_interstitial, container, false); + mShowAllButton = (RadioButton) view.findViewById(R.id.show_all); + mRedactSensitiveButton = (RadioButton) view.findViewById(R.id.redact_sensitive); + mHideAllButton = (RadioButton) view.findViewById(R.id.hide_all); + + mShowAllButton.setOnClickListener(this); + mRedactSensitiveButton.setOnClickListener(this); + mHideAllButton.setOnClickListener(this); + return view; + } + + @Override + public void onResume() { + super.onResume(); + loadFromSettings(); + } + + private void loadFromSettings() { + final boolean enabled = Settings.Global.getInt(getContentResolver(), + Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0) != 0; + final boolean show = Settings.Secure.getInt(getContentResolver(), + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0) != 0; + mShowAllButton.setChecked(enabled && show); + mRedactSensitiveButton.setChecked(enabled && !show); + mHideAllButton.setChecked(!enabled); + } + + @Override + public void onClick(View v) { + final boolean show = (v == mShowAllButton); + final boolean enabled = (v != mHideAllButton); + + Settings.Secure.putInt(getContentResolver(), + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, show ? 1 : 0); + Settings.Global.putInt(getContentResolver(), + Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS, enabled ? 1 : 0); + } + } +}
\ No newline at end of file |