13ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee/* 23ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * Copyright 2014, The Android Open Source Project 33ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * 43ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * Licensed under the Apache License, Version 2.0 (the "License"); 53ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * you may not use this file except in compliance with the License. 63ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * You may obtain a copy of the License at 73ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * 83ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * http://www.apache.org/licenses/LICENSE-2.0 93ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * 103ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * Unless required by applicable law or agreed to in writing, software 113ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * distributed under the License is distributed on an "AS IS" BASIS, 123ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * See the License for the specific language governing permissions and 143ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * limitations under the License. 153ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee */ 16f7a9eea8fe577f2f5edbbe6e73891a54351286c6Benjamin Franzpackage com.android.managedprovisioning.preprovisioning; 173ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee 1849dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franzimport static android.app.admin.DevicePolicyManager.ACTION_START_ENCRYPTION; 193cc3880a7d61101d439cf6c5fdd351e22fdc8f4fJakub Gielzak 2092013087f0eb359c2ab56564b08be8d3382afbceTamas Berghammerimport static com.android.internal.logging.nano.MetricsProto.MetricsEvent.PROVISIONING_ENCRYPT_DEVICE_ACTIVITY_TIME_MS; 21eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra 223ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Leeimport android.content.Intent; 23e3146e92028e1aee45082d1b925ff45feee789c8Jessica Hummelimport android.os.Bundle; 24e3146e92028e1aee45082d1b925ff45feee789c8Jessica Hummelimport android.view.View; 25efd16c808b000fecc83671273b138328a956ac30Nicolas Prevotimport android.widget.Button; 26a36dd9919e54ae848875205c1bb2f4bab3f66584Sander Alewijnseimport android.widget.TextView; 27fc98d5780a1ce96277b8a962e10a35401af2ef78Nicolas Prevot 28c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franzimport com.android.managedprovisioning.R; 2949dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franzimport com.android.managedprovisioning.common.ProvisionLogger; 305d71a12cb40f72157b983c365f3eee584d55e22cJakub Gielzakimport com.android.managedprovisioning.common.SetupGlifLayoutActivity; 313cc3880a7d61101d439cf6c5fdd351e22fdc8f4fJakub Gielzakimport com.android.managedprovisioning.model.CustomizationParams; 32d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport com.android.managedprovisioning.model.ProvisioningParams; 33c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz 343ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee/** 353ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * Activity to ask for permission to activate full-filesystem encryption. 363ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee * 37a0e00a5c36469ceef697d062143343a434534677Kenny Guy * Pressing 'settings' will launch settings to prompt the user to encrypt 38a0e00a5c36469ceef697d062143343a434534677Kenny Guy * the device. 393ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee */ 405d71a12cb40f72157b983c365f3eee584d55e22cJakub Gielzakpublic class EncryptDeviceActivity extends SetupGlifLayoutActivity { 410a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz private ProvisioningParams mParams; 42a36dd9919e54ae848875205c1bb2f4bab3f66584Sander Alewijnse 4349dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz protected EncryptionController getEncryptionController() { 4449dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz return EncryptionController.getInstance(this); 4549dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz } 4649dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz 473ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee @Override 4849dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz protected void onCreate(Bundle savedInstanceState) { 493ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee super.onCreate(savedInstanceState); 503ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee 5149dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz mParams = getIntent().getParcelableExtra(ProvisioningParams.EXTRA_PROVISIONING_PARAMS); 520a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz if (mParams == null) { 53c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz ProvisionLogger.loge("Missing params in EncryptDeviceActivity activity"); 54c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz finish(); 5549dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz return; 56c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz } 57c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz 5849dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz if (getUtils().isProfileOwnerAction(mParams.provisioningAction)) { 590a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz initializeUi(R.string.setup_work_profile, 600a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz R.string.setup_profile_encryption, 61137a5aa0f8af9e73ffdd0a54719c25a9c6f5ec82Sudheer Shanka R.string.encrypt_device_text_for_profile_owner_setup); 6249dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz } else if (getUtils().isDeviceOwnerAction(mParams.provisioningAction)) { 630a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz initializeUi(R.string.setup_work_device, 640a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz R.string.setup_device_encryption, 65137a5aa0f8af9e73ffdd0a54719c25a9c6f5ec82Sudheer Shanka R.string.encrypt_device_text_for_device_owner_setup); 66c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz } else { 670a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz ProvisionLogger.loge("Unknown provisioning action: " + mParams.provisioningAction); 68c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz finish(); 6949dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz return; 70a36dd9919e54ae848875205c1bb2f4bab3f66584Sander Alewijnse } 71efd16c808b000fecc83671273b138328a956ac30Nicolas Prevot 72efd16c808b000fecc83671273b138328a956ac30Nicolas Prevot Button encryptButton = (Button) findViewById(R.id.encrypt_button); 7349dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz encryptButton.setOnClickListener((View v) -> { 7449dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz getEncryptionController().setEncryptionReminder(mParams); 75efd16c808b000fecc83671273b138328a956ac30Nicolas Prevot // Use settings so user confirms password/pattern and its passed 76efd16c808b000fecc83671273b138328a956ac30Nicolas Prevot // to encryption tool. 7749dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz startActivity(new Intent(ACTION_START_ENCRYPTION)); 7849dbaa804b8fd5d1845f6ace366b93c0c5e3bd44Benjamin Franz }); 790a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz } 80c79c4bc4e83edd3938e13dc4a434d5a1bb638498Benjamin Franz 81eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra @Override 82eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra protected int getMetricsCategory() { 83eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra return PROVISIONING_ENCRYPT_DEVICE_ACTIVITY_TIME_MS; 84eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra } 85eca5fc2ef6652fc14d272acf7fbe084ebdebce4cMahaver Chopra 860a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz private void initializeUi(int headerRes, int titleRes, int mainTextRes) { 873cc3880a7d61101d439cf6c5fdd351e22fdc8f4fJakub Gielzak initializeLayoutParams(R.layout.encrypt_device, headerRes, false, 88b0e275f0511cfe10c698d6a260fcfdb194e7c810Jakub Gielzak CustomizationParams.createInstance(mParams, this, mUtils).statusBarColor); 890a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz setTitle(titleRes); 900a964a32b7e8e7b2207416530f8f4575e1cde46eBenjamin Franz ((TextView) findViewById(R.id.encrypt_main_text)).setText(mainTextRes); 913ab2b570bd2e18bbdd742ade979de5d368aa0a0eRobin Lee } 923cc3880a7d61101d439cf6c5fdd351e22fdc8f4fJakub Gielzak}