1d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt/*
2d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * Copyright (C) 2010 The Android Open Source Project
3d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt *
4d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * Licensed under the Apache License, Version 2.0 (the "License");
5d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * you may not use this file except in compliance with the License.
6d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * You may obtain a copy of the License at
7d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt *
8d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt *      http://www.apache.org/licenses/LICENSE-2.0
9d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt *
10d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * Unless required by applicable law or agreed to in writing, software
11d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * distributed under the License is distributed on an "AS IS" BASIS,
12d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * See the License for the specific language governing permissions and
14d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * limitations under the License.
15d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt */
16d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
17d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwaltpackage android.net;
18d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
19d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwaltimport android.util.Log;
20d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
21d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt/**
22d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * Describes the buildtime configuration of a network.
23d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * Holds settings read from resources.
24d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt * @hide
25d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt */
26d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwaltpublic class NetworkConfig {
27d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
28d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * Human readable string
29d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
30d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public String name;
31d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
32d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
33d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * Type from ConnectivityManager
34d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
35d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public int type;
36d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
37d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
38d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * the radio number from radio attributes config
39d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
40d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public int radio;
41d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
42d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
43d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * higher number == higher priority when turning off connections
44d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
45d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public int priority;
46d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
47d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
48d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * indicates the boot time dependencyMet setting
49d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
50d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public boolean dependencyMet;
51d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
52d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
53f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt     * indicates the default restoral timer in seconds
54f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt     * if the network is used as a special network feature
55f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt     * -1 indicates no restoration of default
56f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt     */
57f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt    public int restoreTime;
58f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt
59f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt    /**
60d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * input string from config.xml resource.  Uses the form:
61d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * [Connection name],[ConnectivityManager connection type],
62d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * [associated radio-type],[priority],[dependencyMet]
63d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
64d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public NetworkConfig(String init) {
65d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        String fragments[] = init.split(",");
66d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        name = fragments[0].trim().toLowerCase();
67d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        type = Integer.parseInt(fragments[1]);
68d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        radio = Integer.parseInt(fragments[2]);
69d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        priority = Integer.parseInt(fragments[3]);
70f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt        restoreTime = Integer.parseInt(fragments[4]);
71f2102f7a1a26d399cc60c516ed7d90ef660de055Robert Greenwalt        dependencyMet = Boolean.parseBoolean(fragments[5]);
72d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    }
73d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
74d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    /**
75d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     * Indicates if this network is supposed to be default-routable
76d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt     */
77d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    public boolean isDefault() {
78d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt        return (type == radio);
79d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    }
80d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt}
81