• 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 import com.android.settingslib.net.DataUsageController.DataUsageInfo;
19 
20 /**
21  * Controller to handle caching and mobile data logic.
22  */
23 public class DataUsageInfoController {
24     /**
25      * Take the cached data usage values in the NetworkPolicy to update DataUsageInfo.
26      */
updateDataLimit(DataUsageInfo info, NetworkPolicy policy)27     public void updateDataLimit(DataUsageInfo info, NetworkPolicy policy) {
28         if (info == null || policy == null) {
29             return;
30         }
31         if (policy.warningBytes >= 0) {
32             info.warningLevel = policy.warningBytes;
33         }
34         if (policy.limitBytes >= 0) {
35             info.limitLevel = policy.limitBytes;
36         }
37     }
38 
39     /**
40      * @returns the most appropriate limit for the data usage summary. Use the total usage when it
41      * is higher than the limit and warning level. Use the limit when it is set and less than usage.
42      * Otherwise use warning level.
43      */
getSummaryLimit(DataUsageInfo info)44     public long getSummaryLimit(DataUsageInfo info) {
45         long limit = info.limitLevel;
46         if (limit <= 0) {
47             limit = info.warningLevel;
48         }
49         if (info.usageLevel > limit) {
50             limit = info.usageLevel;
51         }
52         return limit;
53     }
54 }
55