19d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall/* 29d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * Copyright (C) 2013 The Android Open Source Project 39d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * 49d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * Licensed under the Apache License, Version 2.0 (the "License"); 59d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * you may not use this file except in compliance with the License. 69d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * You may obtain a copy of the License at 79d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * 89d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * http://www.apache.org/licenses/LICENSE-2.0 99d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * 109d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * Unless required by applicable law or agreed to in writing, software 119d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * distributed under the License is distributed on an "AS IS" BASIS, 129d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * See the License for the specific language governing permissions and 149d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * limitations under the License. 159d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall */ 169d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 179d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallpackage com.android.settings; 189d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 199d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.app.Activity; 209d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.app.AlertDialog; 219d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.app.Dialog; 229d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.app.admin.DevicePolicyManager; 239d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.content.Context; 249d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.content.DialogInterface; 259d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.content.DialogInterface.OnClickListener; 269d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.content.Intent; 279d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.os.Bundle; 289d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.os.RemoteException; 299d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.view.WindowManager; 309d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallimport android.view.WindowManagerGlobal; 319d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 329d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall/** 339d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * Activity that shows a dialog explaining that a CA cert is allowing someone to monitor network 349d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall * traffic. 359d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall */ 369d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthallpublic class MonitoringCertInfoActivity extends Activity implements OnClickListener { 379d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 389d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall private boolean hasDeviceOwner = false; 399d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 409d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall @Override 419d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall protected void onCreate(Bundle savedStates) { 429d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall super.onCreate(savedStates); 439d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 449d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall DevicePolicyManager dpm = 459d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); 469d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 479d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall final AlertDialog.Builder builder = new AlertDialog.Builder(this); 489d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setTitle(R.string.ssl_ca_cert_dialog_title); 499d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setCancelable(true); 509d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall hasDeviceOwner = dpm.getDeviceOwner() != null; 519d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall int buttonLabel; 529d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall if (hasDeviceOwner) { 539d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall // Institutional case. Show informational message. 549d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall String message = this.getResources().getString(R.string.ssl_ca_cert_info_message, 559d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall dpm.getDeviceOwnerName()); 569d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setMessage(message); 579d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall buttonLabel = R.string.done_button; 589d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } else { 599d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall // Consumer case. Show scary warning. 609d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setIcon(android.R.drawable.stat_notify_error); 619d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setMessage(R.string.ssl_ca_cert_warning_message); 629d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall buttonLabel = R.string.ssl_ca_cert_settings_button; 639d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 649d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 659d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall builder.setPositiveButton(buttonLabel, this); 669d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 679d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall final Dialog dialog = builder.create(); 689d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 699d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall try { 709d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall WindowManagerGlobal.getWindowManagerService().dismissKeyguard(); 719d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } catch (RemoteException e) { 729d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 739d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 749d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall @Override public void onCancel(DialogInterface dialog) { 759d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall finish(); 769d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 779d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall }); 789d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 799d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall dialog.show(); 809d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 819d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall 829d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall @Override 839d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall public void onClick(DialogInterface dialog, int which) { 849d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall if (hasDeviceOwner) { 859d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall finish(); 869d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } else { 879d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall Intent intent = 889d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall new Intent(android.provider.Settings.ACTION_TRUSTED_CREDENTIALS_USER); 899d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 909d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall startActivity(intent); 919d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall finish(); 929d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 939d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall } 949d6c40e56d799427ba30495238b2077cdc3c2115Maggie Benthall} 95