diff options
author | Adrian Roos <roosa@google.com> | 2014-08-13 02:06:54 +0200 |
---|---|---|
committer | Adrian Roos <roosa@google.com> | 2014-08-13 17:24:36 +0000 |
commit | 2bb8bfd1e85c8359412159fde57dd5722f5be58c (patch) | |
tree | 393b20c9a0f43fd83ace82eb090d69e29256cfed /packages/Keyguard/test/SampleTrustAgent/src/com | |
parent | 959409b86f04700cb9898e4641b3bc1da30f5cb2 (diff) | |
download | frameworks_base-2bb8bfd1e85c8359412159fde57dd5722f5be58c.zip frameworks_base-2bb8bfd1e85c8359412159fde57dd5722f5be58c.tar.gz frameworks_base-2bb8bfd1e85c8359412159fde57dd5722f5be58c.tar.bz2 |
Dismiss bouncer when onTrustInitiatedByUser fires
Also modifies the SampleTrustAgent to allow testing of the feature
and adds the initiatedByUser flag to the dumpsys output.
Bug: 16840500
Change-Id: I4c08ddcdcbd0ab02c694a1873f73cb9a250f98d7
Diffstat (limited to 'packages/Keyguard/test/SampleTrustAgent/src/com')
2 files changed, 24 insertions, 6 deletions
diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java index ed17494..4ea1c77 100644 --- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java +++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java @@ -31,6 +31,16 @@ import android.widget.Toast; public class SampleTrustAgent extends TrustAgentService implements SharedPreferences.OnSharedPreferenceChangeListener { + /** + * If true, allows anyone to control this trust agent, e.g. using adb: + * <pre> + * $ adb shell am broadcast -a action.sample_trust_agent.grant_trust\ + * -e extra.message SampleTrust\ + * --el extra.duration 1000 --ez extra.init_by_user false + * </pre> + */ + private static final boolean ALLOW_EXTERNAL_BROADCASTS = false; + LocalBroadcastManager mLocalBroadcastManager; private static final String ACTION_GRANT_TRUST = "action.sample_trust_agent.grant_trust"; @@ -38,7 +48,7 @@ public class SampleTrustAgent extends TrustAgentService private static final String EXTRA_MESSAGE = "extra.message"; private static final String EXTRA_DURATION = "extra.duration"; - private static final String EXTRA_EXTRA = "extra.extra"; + private static final String EXTRA_INITIATED_BY_USER = "extra.init_by_user"; private static final String PREFERENCE_REPORT_UNLOCK_ATTEMPTS = "preference.report_unlock_attempts"; @@ -50,11 +60,16 @@ public class SampleTrustAgent extends TrustAgentService @Override public void onCreate() { super.onCreate(); + mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); + IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_GRANT_TRUST); filter.addAction(ACTION_REVOKE_TRUST); - mLocalBroadcastManager = LocalBroadcastManager.getInstance(this); mLocalBroadcastManager.registerReceiver(mReceiver, filter); + if (ALLOW_EXTERNAL_BROADCASTS) { + registerReceiver(mReceiver, filter); + } + setManagingTrust(getIsManagingTrust(this)); PreferenceManager.getDefaultSharedPreferences(this) .registerOnSharedPreferenceChangeListener(this); @@ -79,6 +94,9 @@ public class SampleTrustAgent extends TrustAgentService public void onDestroy() { super.onDestroy(); mLocalBroadcastManager.unregisterReceiver(mReceiver); + if (ALLOW_EXTERNAL_BROADCASTS) { + unregisterReceiver(mReceiver); + } PreferenceManager.getDefaultSharedPreferences(this) .unregisterOnSharedPreferenceChangeListener(this); } @@ -91,7 +109,7 @@ public class SampleTrustAgent extends TrustAgentService try { grantTrust(intent.getStringExtra(EXTRA_MESSAGE), intent.getLongExtra(EXTRA_DURATION, 0), - false /* initiatedByUser */); + intent.getBooleanExtra(EXTRA_INITIATED_BY_USER, false)); } catch (IllegalStateException e) { Toast.makeText(context, "IllegalStateException: " + e.getMessage(), Toast.LENGTH_SHORT).show(); @@ -103,11 +121,11 @@ public class SampleTrustAgent extends TrustAgentService }; public static void sendGrantTrust(Context context, - String message, long durationMs, Bundle extra) { + String message, long durationMs, boolean initiatedByUser) { Intent intent = new Intent(ACTION_GRANT_TRUST); intent.putExtra(EXTRA_MESSAGE, message); intent.putExtra(EXTRA_DURATION, durationMs); - intent.putExtra(EXTRA_EXTRA, extra); + intent.putExtra(EXTRA_INITIATED_BY_USER, initiatedByUser); LocalBroadcastManager.getInstance(context).sendBroadcast(intent); } diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java index 2c85609..bea74ab 100644 --- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java +++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java @@ -59,7 +59,7 @@ public class SampleTrustAgentSettings extends Activity implements View.OnClickLi int id = v.getId(); if (id == R.id.enable_trust) { SampleTrustAgent.sendGrantTrust(this, "SampleTrustAgent", TRUST_DURATION_MS, - null /* extra */); + false /* initiatedByUser */); } else if (id == R.id.revoke_trust) { SampleTrustAgent.sendRevokeTrust(this); } else if (id == R.id.crash) { |