全志Launcher代码首次提交

This commit is contained in:
2025-11-05 21:08:38 +08:00
commit 578f5739bf
299 changed files with 26334 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
package com.android.device;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import com.android.util.LogUtils;
import com.android.util.NetUtil;
import com.android.util.NetworkType;
import com.android.util.NetworkUtil;
import java.util.ArrayList;
import java.util.List;
public class NetStateChangeReceiver extends BroadcastReceiver {
private static class InstanceHolder {
private static final NetStateChangeReceiver INSTANCE = new NetStateChangeReceiver();
}
private List<NetStateChangeObserver> mObservers = new ArrayList<>();
// private int lastEffectiveNetworkType = -1;
// @Override
// public void onReceive(Context context, Intent intent) {
// if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
// int currentNetState = NetUtil.getNetWorkState(context);
// int currentEffectiveType = NetUtil.getEffectiveNetworkType(currentNetState);
// if (currentEffectiveType == lastEffectiveNetworkType) {
// LogUtils.loge("NetStateChangeReceiver同类型网络波动跳过通知类型" +
// NetUtil.getTypeName(currentEffectiveType) + "");
// return;
// }
//
// //类型变更 通知观察者,并更新上次类型
// lastEffectiveNetworkType = currentEffectiveType;
// NetworkType networkType = NetworkUtil.getNetworkType(context);
// LogUtils.loge("NetStateChangeReceiver网络类型变更" +
// NetUtil.getTypeName(lastEffectiveNetworkType) + "),通知观察者");
// notifyObservers(networkType);
// }
// }
@Override
public void onReceive(Context context, Intent intent) {
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
NetworkType networkType = NetworkUtil.getNetworkType(context);
LogUtils.loge("NetStateChangeReceiver:"+networkType.toString());
notifyObservers(networkType);
}
}
public static void registerReceiver(Context context) {
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(InstanceHolder.INSTANCE, intentFilter);
}
public static void unRegisterReceiver(Context context) {
context.unregisterReceiver(InstanceHolder.INSTANCE);
}
public static void registerObserver(NetStateChangeObserver observer) {
if (observer == null) {
return;
}
if (!InstanceHolder.INSTANCE.mObservers.contains(observer)) {
InstanceHolder.INSTANCE.mObservers.add(observer);
}
}
public static void unRegisterObserver(NetStateChangeObserver observer) {
if (observer == null) {
return;
}
if (InstanceHolder.INSTANCE.mObservers == null) {
return;
}
InstanceHolder.INSTANCE.mObservers.remove(observer);
}
private void notifyObservers(NetworkType networkType) {
if (networkType == NetworkType.NETWORK_NO) {
for (NetStateChangeObserver observer : mObservers) {
observer.onNetDisconnected();
}
} else {
for (NetStateChangeObserver observer : mObservers) {
observer.onNetConnected(networkType);
}
}
}
}