• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5  * except in compliance with the License. You may obtain a copy of the License at
6  *
7  *      http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the
10  * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11  * KIND, either express or implied. See the License for the specific language governing
12  * permissions and limitations under the License.
13  */
14 
15 package com.android.settings.datausage;
16 
17 import android.net.NetworkPolicy;
18 
19 import com.android.settingslib.net.DataUsageController.DataUsageInfo;
20 
21 /**
22  * Controller to handle caching and mobile data logic.
23  */
24 public class DataUsageInfoController {
25     /**
26      * Take the cached data usage values in the NetworkPolicy to update DataUsageInfo.
27      */
updateDataLimit(DataUsageInfo info, NetworkPolicy policy)28     public void updateDataLimit(DataUsageInfo info, NetworkPolicy policy) {
29         if (info == null || policy == null) {
30             return;
31         }
32         if (policy.warningBytes >= 0) {
33             info.warningLevel = policy.warningBytes;
34         }
35         if (policy.limitBytes >= 0) {
36             info.limitLevel = policy.limitBytes;
37         }
38     }
39 
40     /**
41      * @returns the most appropriate limit for the data usage summary. Use the total usage when it
42      * is higher than the limit and warning level. Use the limit when it is set and less than usage.
43      * Otherwise use warning level.
44      */
getSummaryLimit(DataUsageInfo info)45     public long getSummaryLimit(DataUsageInfo info) {
46         long limit = info.limitLevel;
47         if (limit <= 0) {
48             limit = info.warningLevel;
49         }
50         if (info.usageLevel > limit) {
51             limit = info.usageLevel;
52         }
53         return limit;
54     }
55 }
56