12a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler/* 22a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * Copyright (C) 2015 The Android Open Source Project 32a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * 42a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * Licensed under the Apache License, Version 2.0 (the "License"); 52a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * you may not use this file except in compliance with the License. 62a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * You may obtain a copy of the License at 72a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * 82a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * http://www.apache.org/licenses/LICENSE-2.0 92a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * 102a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * Unless required by applicable law or agreed to in writing, software 112a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * distributed under the License is distributed on an "AS IS" BASIS, 122a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * See the License for the specific language governing permissions and 142a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler * limitations under the License 152a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler */ 162a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 172a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerpackage com.android.tv.settings.device.storage; 182a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 192a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.content.pm.PackageInfo; 202a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.content.pm.PackageManager; 212a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.os.Bundle; 222a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.support.annotation.NonNull; 232a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.support.v17.leanback.app.GuidedStepFragment; 242a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.support.v17.leanback.widget.GuidanceStylist; 252a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport android.support.v17.leanback.widget.GuidedAction; 262a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 272a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport com.android.tv.settings.R; 282a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 292a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerimport java.util.List; 302a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 312a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantlerpublic class ConfirmClearCacheFragment extends GuidedStepFragment { 322a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 332a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler @NonNull 342a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler @Override 352a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) { 362a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler return new GuidanceStylist.Guidance( 372a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler getString(R.string.device_storage_clear_cache_title), 382a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler getString(R.string.device_storage_clear_cache_message), 392a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler null, 408f472252a02517b065b5de166135a50e93d4b425Tony Mantler getContext().getDrawable(R.drawable.ic_settings_backup_restore_132dp) 412a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler ); 422a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } 432a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 442a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler @Override 452a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) { 462a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler actions.add(new GuidedAction.Builder(getContext()) 472a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler .clickAction(GuidedAction.ACTION_ID_OK) 482a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler .build()); 492a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler actions.add(new GuidedAction.Builder(getContext()) 502a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler .clickAction(GuidedAction.ACTION_ID_CANCEL) 512a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler .build()); 522a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } 532a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler 542a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler @Override 552a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler public void onGuidedActionClicked(GuidedAction action) { 562a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler if (action.getId() == GuidedAction.ACTION_ID_OK) { 572a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler super.onGuidedActionClicked(action); 582a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler final PackageManager pm = getContext().getPackageManager(); 592a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler final List<PackageInfo> infos = pm.getInstalledPackages(0); 602a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler for (PackageInfo info : infos) { 612a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler pm.deleteApplicationCacheFiles(info.packageName, null); 622a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } 632a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler getFragmentManager().popBackStack(); 642a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } else { 652a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler getFragmentManager().popBackStack(); 662a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } 672a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler } 682a55a49f5a2d3f102c11f822c76f190a00249d50Tony Mantler} 69