UsageBarPreference.java revision 511c8cf103193fb41c915941b1b1d2a442a1ae12
1511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root/* 2511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * Copyright (C) 2010 The Android Open Source Project 3511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * 4511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 5511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * you may not use this file except in compliance with the License. 6511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * You may obtain a copy of the License at 7511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * 8511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * http://www.apache.org/licenses/LICENSE-2.0 9511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * 10511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * Unless required by applicable law or agreed to in writing, software 11511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * distributed under the License is distributed on an "AS IS" BASIS, 12511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * See the License for the specific language governing permissions and 14511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * limitations under the License. 15511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root */ 16511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 17511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootpackage com.android.settings.deviceinfo; 18511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 19511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport com.android.settings.R; 20511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 21511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport android.content.Context; 22511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport android.preference.Preference; 23511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport android.util.AttributeSet; 24511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport android.view.View; 25511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 26511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport java.util.ArrayList; 27511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootimport java.util.Collection; 28511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 29511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root/** 30511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root * Creates a percentage bar chart inside a preference. 31511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root */ 32511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Rootpublic class UsageBarPreference extends Preference { 33511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root private PercentageBarChart mChart = null; 34511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 35511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root private final Collection<PercentageBarChart.Entry> mEntries = new ArrayList<PercentageBarChart.Entry>(); 36511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 37511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public UsageBarPreference(Context context, AttributeSet attrs, int defStyle) { 38511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root super(context, attrs, defStyle); 39511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root setWidgetLayoutResource(R.layout.preference_memoryusage); 40511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 41511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 42511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public UsageBarPreference(Context context) { 43511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root super(context); 44511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root setWidgetLayoutResource(R.layout.preference_memoryusage); 45511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 46511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 47511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public UsageBarPreference(Context context, AttributeSet attrs) { 48511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root super(context, attrs); 49511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root setWidgetLayoutResource(R.layout.preference_memoryusage); 50511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 51511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 52511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public void addEntry(float percentage, int color) { 53511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root mEntries.add(PercentageBarChart.createEntry(percentage, color)); 54511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 55511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 56511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root @Override 57511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root protected void onBindView(View view) { 58511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root super.onBindView(view); 59511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 60511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root mChart = (PercentageBarChart) view.findViewById(R.id.percentage_bar_chart); 61511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 62511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root mChart.setEntries(mEntries); 63511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 64511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 65511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public void commit() { 66511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root if (mChart != null) { 67511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root mChart.invalidate(); 68511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 69511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 70511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root 71511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root public void clear() { 72511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root mEntries.clear(); 73511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root } 74511c8cf103193fb41c915941b1b1d2a442a1ae12Kenny Root} 75