[picopc] Added ethernet patch based on Yi Sun <beyounn@gmail.com> from android-x86.org
[picopc-android-gingerbread:frameworks-base.git] / ethernet / java / android / net / ethernet / EthernetManager.java
1 /*
2  * Copyright (C) 2010 The Android-X86 Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * Author: Yi Sun <beyounn@gmail.com>
17  */
18
19 package android.net.ethernet;
20
21 import java.util.List;
22 import android.annotation.SdkConstant;
23 import android.annotation.SdkConstant.SdkConstantType;
24 import android.net.wifi.IWifiManager;
25 import android.os.Handler;
26 import android.os.RemoteException;
27 import android.util.Slog;
28
29 /**
30  * This class provides the primary API for managing all aspects of Ethernet
31  * connectivity. Get an instance of this class by calling
32  * {@link android.content.Context#getSystemService(String) Context.getSystemService(Context.ETHERNET_SERVICE)}.
33  *
34  * This is the API to use when performing Ethernet specific operations. To
35  * perform operations that pertain to network connectivity at an abstract
36  * level, use {@link android.net.ConnectivityManager}.
37  */
38 public class EthernetManager {
39     public static final String TAG = "EthernetManager";
40     public static final int ETHERNET_DEVICE_SCAN_RESULT_READY = 0;
41     public static final String ETHERNET_STATE_CHANGED_ACTION =
42             "android.net.ethernet.ETHERNET_STATE_CHANGED";
43     public static final String NETWORK_STATE_CHANGED_ACTION =
44             "android.net.ethernet.STATE_CHANGE";
45
46     public static final String EXTRA_NETWORK_INFO = "networkInfo";
47     public static final String EXTRA_ETHERNET_STATE = "ETHERNET_state";
48     public static final String EXTRA_PREVIOUS_ETHERNET_STATE = "previous_ETHERNET_state";
49
50     public static final int ETHERNET_STATE_UNKNOWN = 0;
51     public static final int ETHERNET_STATE_DISABLED = 1;
52     public static final int ETHERNET_STATE_ENABLED = 2;
53
54     IEthernetManager mService;
55     Handler mHandler;
56
57     public EthernetManager(IEthernetManager service, Handler handler) {
58         Slog.i(TAG, "Init Ethernet Manager, service: " +service);
59         mService = service;
60         mHandler = handler;
61     }
62
63     /**
64      * check if the ethernet service has been configured.
65      * @return {@code true} if configured {@code false} otherwise
66      */
67     public boolean isConfigured() {
68         try {
69             return mService.isConfigured();
70         } catch (RemoteException e) {
71             Slog.i(TAG, "Can not check eth config state");
72         }
73         return false;
74     }
75
76     /**
77      * Return the saved ethernet configuration
78      * @return ethernet interface configuration on success, {@code null} on failure
79      */
80     public EthernetDevInfo getSavedConfig() {
81         try {
82             return mService.getSavedConfig();
83         } catch (RemoteException e) {
84             Slog.i(TAG, "Can not get eth config");
85         }
86         return null;
87     }
88
89     /**
90      * update a ethernet interface information
91      * @param info  the interface infomation
92      */
93     public void updateDevInfo(EthernetDevInfo info) {
94         try {
95             mService.updateDevInfo(info);
96         } catch (RemoteException e) {
97             Slog.i(TAG, "Can not update ethernet device info");
98         }
99     }
100
101     /**
102      * get all the ethernet device names
103      * @return interface name list on success, {@code null} on failure
104      */
105     public String[] getDeviceNameList() {
106         try {
107             return mService.getDeviceNameList();
108         } catch (RemoteException e) {
109             return null;
110         }
111     }
112     /**
113      * Enable or Disable a ethernet service
114      * @param enable {@code true} to enable, {@code false} to disable
115      * @hide
116      */
117     public void setEnabled(boolean enable) {
118         try {
119             mService.setState(enable ? ETHERNET_STATE_ENABLED:ETHERNET_STATE_DISABLED);
120         } catch (RemoteException e) {
121             Slog.i(TAG,"Can not set new state");
122         }
123     }
124
125     /**
126      * Get ethernet service state
127      * @return the state of the ethernet service
128      */
129     public int getState( ) {
130         try {
131             return mService.getState();
132         } catch (RemoteException e) {
133             return 0;
134         }
135     }
136
137     /**
138      * get the number of ethernet interfaces in the system
139      * @return the number of ethernet interfaces
140      */
141     public int getTotalInterface() {
142         try {
143             return mService.getTotalInterface();
144         } catch (RemoteException e) {
145             return 0;
146         }
147     }
148
149     /**
150      * @hide
151      */
152     public void setDefaultConf() {
153         try {
154             mService.setMode(EthernetDevInfo.ETHERNET_CONN_MODE_DHCP);
155         } catch (RemoteException e) {
156         }
157     }
158 }