15d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey/*
25d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * Copyright (C) 2012 The Android Open Source Project
35d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey *
45d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License");
55d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * you may not use this file except in compliance with the License.
65d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * You may obtain a copy of the License at
75d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey *
85d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey *      http://www.apache.org/licenses/LICENSE-2.0
95d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey *
105d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * Unless required by applicable law or agreed to in writing, software
115d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS,
125d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * See the License for the specific language governing permissions and
145d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * limitations under the License.
155d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey */
165d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey
175d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeypackage android.support.v4.net;
185d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey
195d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_BLUETOOTH;
205d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_ETHERNET;
215d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_MOBILE;
225d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_MOBILE_DUN;
235d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI;
245d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_MOBILE_MMS;
255d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_MOBILE_SUPL;
265d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_WIFI;
275d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport static android.net.ConnectivityManager.TYPE_WIMAX;
285d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey
295d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport android.net.ConnectivityManager;
305d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyimport android.net.NetworkInfo;
315d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey
325d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey/**
335d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey * Implementation of ConnectivityManagerCompat that can use Honeycomb MR2 APIs.
345d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey */
355d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkeyclass ConnectivityManagerCompatHoneycombMR2 {
365d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey    public static boolean isActiveNetworkMetered(ConnectivityManager cm) {
375d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        final NetworkInfo info = cm.getActiveNetworkInfo();
385d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        if (info == null) {
395d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            // err on side of caution
405d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            return true;
415d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        }
425d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey
435d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        final int type = info.getType();
445d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        switch (type) {
455d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_MOBILE:
465d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_MOBILE_DUN:
475d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_MOBILE_HIPRI:
485d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_MOBILE_MMS:
495d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_MOBILE_SUPL:
505d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_WIMAX:
515d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey                return true;
525d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_WIFI:
535d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_BLUETOOTH:
545d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            case TYPE_ETHERNET:
555d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey                return false;
565d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey            default:
575d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey                // err on side of caution
585d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey                return true;
595d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey        }
605d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey    }
615d79c2b6211936177817f2492816c1dba76dac3eJeff Sharkey}
62