1b37e2887d3112082589997f1bbd802ec282cca6dJason Monk/* 2b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * Copyright (C) 2016 The Android Open Source Project 3b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * 4b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * except in compliance with the License. You may obtain a copy of the License at 6b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * 7b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * http://www.apache.org/licenses/LICENSE-2.0 8b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * 9b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * Unless required by applicable law or agreed to in writing, software distributed under the 10b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * KIND, either express or implied. See the License for the specific language governing 12b37e2887d3112082589997f1bbd802ec282cca6dJason Monk * permissions and limitations under the License. 13b37e2887d3112082589997f1bbd802ec282cca6dJason Monk */ 14b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 15b37e2887d3112082589997f1bbd802ec282cca6dJason Monkpackage com.android.settings.datausage; 16b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 17b37e2887d3112082589997f1bbd802ec282cca6dJason Monkimport android.content.Context; 18b37e2887d3112082589997f1bbd802ec282cca6dJason Monkimport android.net.NetworkTemplate; 19b37e2887d3112082589997f1bbd802ec282cca6dJason Monkimport android.support.v7.preference.Preference; 20b37e2887d3112082589997f1bbd802ec282cca6dJason Monkimport android.util.AttributeSet; 213676b931d9868018329498b6d63ac5bab335b323Jason Monkimport com.android.settings.DividedCategory; 22b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 233676b931d9868018329498b6d63ac5bab335b323Jason Monkpublic class TemplatePreferenceCategory extends DividedCategory implements TemplatePreference { 24b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 25b37e2887d3112082589997f1bbd802ec282cca6dJason Monk private NetworkTemplate mTemplate; 26b37e2887d3112082589997f1bbd802ec282cca6dJason Monk private int mSubId; 27b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 28b37e2887d3112082589997f1bbd802ec282cca6dJason Monk public TemplatePreferenceCategory(Context context, AttributeSet attrs) { 29b37e2887d3112082589997f1bbd802ec282cca6dJason Monk super(context, attrs); 30b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 31b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 32b37e2887d3112082589997f1bbd802ec282cca6dJason Monk @Override 33b37e2887d3112082589997f1bbd802ec282cca6dJason Monk public void setTemplate(NetworkTemplate template, int subId, 34b37e2887d3112082589997f1bbd802ec282cca6dJason Monk NetworkServices services) { 35b37e2887d3112082589997f1bbd802ec282cca6dJason Monk mTemplate = template; 36b37e2887d3112082589997f1bbd802ec282cca6dJason Monk mSubId = subId; 37b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 38b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 39b37e2887d3112082589997f1bbd802ec282cca6dJason Monk @Override 40b37e2887d3112082589997f1bbd802ec282cca6dJason Monk public boolean addPreference(Preference preference) { 41b37e2887d3112082589997f1bbd802ec282cca6dJason Monk if (!(preference instanceof TemplatePreference)) { 42b37e2887d3112082589997f1bbd802ec282cca6dJason Monk throw new IllegalArgumentException( 43b37e2887d3112082589997f1bbd802ec282cca6dJason Monk "TemplatePreferenceCategories can only hold TemplatePreferences"); 44b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 45b37e2887d3112082589997f1bbd802ec282cca6dJason Monk return super.addPreference(preference); 46b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 47b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 48b37e2887d3112082589997f1bbd802ec282cca6dJason Monk public void pushTemplates(NetworkServices services) { 49b37e2887d3112082589997f1bbd802ec282cca6dJason Monk if (mTemplate == null) { 50b37e2887d3112082589997f1bbd802ec282cca6dJason Monk throw new RuntimeException("null mTemplate for " + getKey()); 51b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 52b37e2887d3112082589997f1bbd802ec282cca6dJason Monk for (int i = 0; i < getPreferenceCount(); i++) { 53b37e2887d3112082589997f1bbd802ec282cca6dJason Monk ((TemplatePreference) getPreference(i)).setTemplate(mTemplate, mSubId, services); 54b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 55b37e2887d3112082589997f1bbd802ec282cca6dJason Monk } 56b37e2887d3112082589997f1bbd802ec282cca6dJason Monk 57b37e2887d3112082589997f1bbd802ec282cca6dJason Monk} 58