/* * 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.trustagent.test; import android.annotation.Nullable; import android.app.Activity; import android.app.KeyguardManager; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; public class SampleTrustAgentSettings extends Activity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener { private static final int TRUST_DURATION_MS = 30 * 1000; private CheckBox mReportUnlockAttempts; private CheckBox mReportDeviceLocked; private CheckBox mManagingTrust; private TextView mCheckDeviceLockedResult; private KeyguardManager mKeyguardManager; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mKeyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); setContentView(R.layout.sample_trust_agent_settings); findViewById(R.id.enable_trust).setOnClickListener(this); findViewById(R.id.revoke_trust).setOnClickListener(this); findViewById(R.id.crash).setOnClickListener(this); findViewById(R.id.check_device_locked).setOnClickListener(this); mReportUnlockAttempts = (CheckBox) findViewById(R.id.report_unlock_attempts); mReportUnlockAttempts.setOnCheckedChangeListener(this); mReportDeviceLocked = (CheckBox) findViewById(R.id.report_device_locked); mReportDeviceLocked.setOnCheckedChangeListener(this); mManagingTrust = (CheckBox) findViewById(R.id.managing_trust); mManagingTrust.setOnCheckedChangeListener(this); mCheckDeviceLockedResult = (TextView) findViewById(R.id.check_device_locked_result); } @Override protected void onResume() { super.onResume(); mReportUnlockAttempts.setChecked(SampleTrustAgent.getReportUnlockAttempts(this)); mManagingTrust.setChecked(SampleTrustAgent.getIsManagingTrust(this)); updateTrustedState(); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.enable_trust) { SampleTrustAgent.sendGrantTrust(this, "SampleTrustAgent", TRUST_DURATION_MS, false /* initiatedByUser */); } else if (id == R.id.revoke_trust) { SampleTrustAgent.sendRevokeTrust(this); } else if (id == R.id.crash) { throw new RuntimeException("crash"); } else if (id == R.id.check_device_locked) { updateTrustedState(); } } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (buttonView == mReportUnlockAttempts) { SampleTrustAgent.setReportUnlockAttempts(this, isChecked); } else if (buttonView == mManagingTrust) { SampleTrustAgent.setIsManagingTrust(this, isChecked); } else if (buttonView == mReportDeviceLocked) { SampleTrustAgent.setReportDeviceLocked(this, isChecked); } } private void updateTrustedState() { mCheckDeviceLockedResult.setText(Boolean.toString( mKeyguardManager.isDeviceLocked())); } }