/* * Copyright (C) 2016 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.storagemanager.deletionhelper; import android.content.Context; import androidx.preference.CheckBoxPreference; import androidx.preference.PreferenceViewHolder; import android.text.format.Formatter; import android.view.View; import android.widget.CheckBox; import android.widget.TextView; import com.android.storagemanager.R; /** * NestedCheckboxPreference is a CheckBoxPreference which is nested in to align with a {@link * CollapsibleCheckboxPreferenceGroup}. */ public class NestedDeletionPreference extends CheckBoxPreference { private TextView mSize; private long mAppSize; public NestedDeletionPreference(Context context) { super(context); setLayoutResource(com.android.storagemanager.R.layout.preference_nested); setWidgetLayoutResource(com.android.storagemanager.R.layout.preference_widget_checkbox); } @Override protected void onClick() { super.onClick(); mSize.setActivated(isChecked()); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); CheckBox checkboxWidget = (CheckBox) holder.findViewById(com.android.internal.R.id.checkbox); checkboxWidget.setVisibility(View.VISIBLE); mSize = (TextView) holder.findViewById(R.id.deletion_type_size); mSize.setActivated(checkboxWidget.isChecked()); mSize.setText(getItemSize()); } void setItemSize(long itemSize) { mAppSize = itemSize; } public String getItemSize() { return Formatter.formatFileSize(getContext(), mAppSize); } }