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