SetupWizard: Part 2: Implement new OOBE using custom wizard manager
Change-Id: Ie6beb6395c5a4936384e78d57c95262e302220f9
This commit is contained in:
126
src/com/cyanogenmod/setupwizard/util/NetworkMonitor.java
Normal file
126
src/com/cyanogenmod/setupwizard/util/NetworkMonitor.java
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.cyanogenmod.setupwizard.util;
|
||||
|
||||
import static com.cyanogenmod.setupwizard.SetupWizardApp.LOGV;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
|
||||
public class NetworkMonitor {
|
||||
|
||||
public static final String TAG = NetworkMonitor.class.getSimpleName();
|
||||
|
||||
private static NetworkMonitor sInstance;
|
||||
|
||||
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (LOGV) {
|
||||
Log.v(TAG, intent.toString());
|
||||
}
|
||||
NetworkMonitor.this.updateNetworkStatus(context);
|
||||
}
|
||||
};
|
||||
private Context mContext = null;
|
||||
private boolean mNetworkConnected = false;
|
||||
private NetworkInfo mNetworkInfo = null;
|
||||
|
||||
public static void initInstance(Context context) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new NetworkMonitor(context.getApplicationContext());
|
||||
}
|
||||
}
|
||||
|
||||
public static NetworkMonitor getInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public NetworkMonitor(Context context) {
|
||||
mContext = context;
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "Starting NetworkMonitor");
|
||||
}
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
|
||||
context.registerReceiver(mBroadcastReceiver, filter);
|
||||
new Handler().post(new Runnable() {
|
||||
public void run() {
|
||||
updateNetworkStatus(mContext);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean isNetworkConnected() {
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "isNetworkConnected() returns " + mNetworkConnected);
|
||||
}
|
||||
return mNetworkConnected;
|
||||
}
|
||||
|
||||
public boolean isWifiConnected() {
|
||||
boolean wifiConnected = (!mNetworkConnected || mNetworkInfo == null) ?
|
||||
false :
|
||||
mNetworkInfo.getType() == 1;
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "isWifiConnected() returns " + wifiConnected);
|
||||
}
|
||||
return wifiConnected;
|
||||
}
|
||||
|
||||
public boolean checkIsNetworkConnected() {
|
||||
updateNetworkStatus(mContext);
|
||||
return isNetworkConnected();
|
||||
}
|
||||
|
||||
private void onNetworkConnected(NetworkInfo ni) {
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "onNetworkConnected()");
|
||||
}
|
||||
mNetworkConnected = true;
|
||||
mNetworkInfo = ni;
|
||||
}
|
||||
|
||||
private void onNetworkDisconnected() {
|
||||
if (LOGV) {
|
||||
Log.v(TAG, "onNetworkDisconnected()");
|
||||
}
|
||||
mNetworkConnected = false;
|
||||
mNetworkInfo = null;
|
||||
}
|
||||
|
||||
private boolean updateNetworkStatus(Context context) {
|
||||
ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
if (cm != null) {
|
||||
NetworkInfo ni = cm.getActiveNetworkInfo();
|
||||
boolean isConnected = ni != null ? ni.isConnected() : false;
|
||||
if (isConnected && !mNetworkConnected) {
|
||||
onNetworkConnected(ni);
|
||||
} else if (!isConnected && mNetworkConnected) {
|
||||
onNetworkDisconnected();
|
||||
}
|
||||
}
|
||||
return mNetworkConnected;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user