summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/widget
diff options
context:
space:
mode:
authorVineet Patil <vpatil@cyngn.com>2014-11-12 17:14:27 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-11-24 12:44:15 -0800
commit5f350518a2aec87c057152191eddddad21083d1c (patch)
treebe00269646217027b249e0ab56a20832d60b793b /src/com/android/settings/widget
parent99d6fd01a334b4057e7b56ce3ece09c3e6124bf9 (diff)
downloadpackages_apps_Settings-5f350518a2aec87c057152191eddddad21083d1c.zip
packages_apps_Settings-5f350518a2aec87c057152191eddddad21083d1c.tar.gz
packages_apps_Settings-5f350518a2aec87c057152191eddddad21083d1c.tar.bz2
Re-Implementation of Protected App Settings
Protected App [2/3] Protected Apps Settings -> Apps: - Added Receiver which can send in a call to PackageManager to toggle a components protected status. - Add Protected Apps activity (available from Apps fragment) - Reads from ApplicationInfo state - Requires Pattern Lock to view/modify protected apps - Updates Settings Secure DB with protected components - Support resetting protected apps pattern lock Change-Id: If07a7b69ac963ffae855621881e1944fc8754782 Protected Apps: - App Info for protected Apps doesn't allow Uninstall or Clear data - App Info menu item for launching into Protected Apps when looking at protected components - Prevent process dialog from getting dismissed on touch or back key (can cause odd behavior if cancelled mid-protect) Conflicts: src/com/android/settings/applications/InstalledAppDetails.java Change-Id: I64104d7ff3fbf9d8c393ebf262d4de0b28abbc5c Reset Pattern: - If user cancels while creating new pattern, old pattern is restored Change-Id: I55955b1ffadca2ba712c40c7d443c4fc4b0f528c Clean up protected apps code (1/2) - Work with actual ComponentNames instead of converting them between String and ComponentName all the time - Name protection state parameter in methods 'state' instead of 'protect', as a value of true actually means it's not protected. Also consistently use the respective constants for its values. - Some misc. cleanup Change-Id: I2855978c8aef3cfa14249e3398039c7cdd145ede Settings: Create a security fallback on protected apps. -- Allow a user to bypass pattern lock on protected apps by inputting their primary account information for the device. Conflicts: res/values/cm_dimens.xml res/values/cm_strings.xml Change-Id: I39e5a89a8699cfd2ffaba8aea2daa4f477f2cc9b settings: reset protected apps view instead of finish the activity Finish the app after resettings the account, will lead to the protected app selection without a valid pattern. Instead this should reset the pattern view to create a new pattern prior to go to protected apps. Change-Id: Ida41a29f4f8787940f803a23014a68a2f8beb969 Signed-off-by: Jorge Ruesga <jorge@ruesga.com> Settings: Don't show protected apps options in restricted profiles. Change-Id: I38c2e8fd3508d360f0e23703ce6c939f02f3714e JIRA: 4668 Issue: https://jira.cyanogenmod.org/browse/CYAN-4668 Follow normal lock screen convention - allow user to retry when creating pattern lock Change-Id: I6ad39b07b8de3de03146322b37b60e3f846093d1 Fix: Even when the list is entirely unchecked there may still be components which are still protected and need to cleared when Reset is triggered. https://jira.cyanogenmod.org/browse/BACON-679 https://jira.cyanogenmod.org/browse/CYAN-4835 Change-Id: Ifee3e8b87be39769aedfed0f9a5bda366c67ee45 ProtectedApps pattern lock for landscape mode. Change-Id: I9ef70a0e363d4d17510188d24f4742f458fba38e Launch Protected Apps Change-Id: I2dc2e1e05c1979118d5324c3c05adfcc6f7ee22a Protected Apps: update protected apps screens UI Change-Id: I2dd922956f8ffd9ed153c3d1aa1f9161a127e4c6 Remove unnecessary drawables for launching Protected Apps Change-Id: I58f471ef9d64c7ced79befbfc30b94d75a0085a2 ProtectedAppsReceiver: fix NPE when components are null * To reproduce: create a folder at Trebuchet, lock it and leave the screen Change-Id: I49a2e76fdaa3e375b0ea5aa2bb05eaa92528dd19 Protected Apps: Show state by component instead of by app Change-Id: Idbe1d69b376fc3f42980404d9448152f606e7f8e (cherry picked from commit 56e11c8640cb9e34d07eb11fb1b67f3283b2f6f6) Protected Apps: Increase hit target of the launch app button Change-Id: I38355aca37079d43975d287ee9d81c3a500c3575 (cherry picked from commit 47e8e46f53cdf4f536845d57cc383d3c5f0ca893) Protected Apps: Monitor unlock status Monitor the Activities unlock status so that we can rotate the screen in this activity without having to unlock again. Change-Id: I8feab5cb4d55c4df0d0d1475ab6646c046f01925 Protected Apps: add some side padding in app list view Change-Id: I2549fd8f8b662e2e2c542e67cbc20e6a366fba42 Conflicts: AndroidManifest.xml res/values/cm_dimens.xml res/values/cm_strings.xml res/values/strings.xml src/com/android/settings/applications/ApplicationsState.java src/com/android/settings/applications/InstalledAppDetails.java src/com/android/settings/applications/ManageApplications.java Conflicts: res/values/cm_dimens.xml Conflicts: res/values/cm_strings.xml . Change-Id: I065ac7965a8c7253ad67a20806201fe8fc6cec84
Diffstat (limited to 'src/com/android/settings/widget')
-rw-r--r--src/com/android/settings/widget/CheckableLinearLayout.java64
-rw-r--r--src/com/android/settings/widget/InertCheckBox.java84
2 files changed, 148 insertions, 0 deletions
diff --git a/src/com/android/settings/widget/CheckableLinearLayout.java b/src/com/android/settings/widget/CheckableLinearLayout.java
new file mode 100644
index 0000000..a4b9a7d
--- /dev/null
+++ b/src/com/android/settings/widget/CheckableLinearLayout.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2015 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.CheckBox;
+import android.widget.Checkable;
+import android.widget.LinearLayout;
+import com.android.settings.R;
+
+/*
+ * This class is useful for using inside of ListView that needs to have checkable items.
+ */
+public class CheckableLinearLayout extends LinearLayout implements Checkable {
+ private CheckBox mCheckBox;
+
+ public CheckableLinearLayout(Context context) {
+ super(context);
+ }
+
+ public CheckableLinearLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public CheckableLinearLayout(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+
+ mCheckBox = (CheckBox) findViewById(R.id.checkbox);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mCheckBox.isChecked();
+ }
+
+ @Override
+ public void setChecked(boolean checked) {
+ mCheckBox.setChecked(checked);
+ }
+
+ @Override
+ public void toggle() {
+ mCheckBox.toggle();
+ }
+} \ No newline at end of file
diff --git a/src/com/android/settings/widget/InertCheckBox.java b/src/com/android/settings/widget/InertCheckBox.java
new file mode 100644
index 0000000..82a376f
--- /dev/null
+++ b/src/com/android/settings/widget/InertCheckBox.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2015 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.widget.CheckBox;
+
+
+// CheckBox that does not react to any user event in order to let the container handle them.
+public class InertCheckBox extends CheckBox {
+
+ @SuppressWarnings("unused")
+ public InertCheckBox(Context context) {
+ super(context);
+ }
+
+ @SuppressWarnings("unused")
+ public InertCheckBox(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @SuppressWarnings("unused")
+ public InertCheckBox(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onKeyPreIme(int keyCode, KeyEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onKeyShortcut(int keyCode, KeyEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onKeyUp(int keyCode, KeyEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+
+ @Override
+ public boolean onTrackballEvent(MotionEvent event) {
+ // Make the checkbox not respond to any user event
+ return false;
+ }
+} \ No newline at end of file