diff options
author | Vineet Patil <vpatil@cyngn.com> | 2014-11-12 17:14:27 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-11-24 12:44:15 -0800 |
commit | 5f350518a2aec87c057152191eddddad21083d1c (patch) | |
tree | be00269646217027b249e0ab56a20832d60b793b /src/com/android/settings/widget | |
parent | 99d6fd01a334b4057e7b56ce3ece09c3e6124bf9 (diff) | |
download | packages_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.java | 64 | ||||
-rw-r--r-- | src/com/android/settings/widget/InertCheckBox.java | 84 |
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 |