Skip to content

MichaelKoo/TvSettings

Repository files navigation

TvSettings

#Logging for work

网络模块

1.初始化wifi监听类,并开始监听WiFi;
2.初始化PPPOE监听;
3.生成布局并显示;
    3.1 生成3个主项,WLAN,有线网络,PPPOE
    3.2 监听网络回调,刷新网络列表
    3.3 添加网络更改的监听会更合适(network change)
    3.4 显示布局并扫描无线网络,显示扫描到网络(记录网络类型)

类文件说明

Layout.java

  • Node,LayoutRow,
  • 有刷新,有get,DrawableGetter,StringGetter
  • LayoutGetter,获取布局,Header 有子项布局的总类
  • Action,Status,Static,继承Node,

SettingsLayoutFragment.java

  • onCreate()生成布局,显示页面
  • createLayout(),此类没有显示,留给具体的子类实现,如:NetworkActivity.java

WifiConnectionActivity.java

  • createIntent()生成回调的Intent
  • onPageComplete() -->CONNECT-->RESULT_ETHERNET_CONNECTED
  • WifiMultiPagedFormActivity.java -->addPage()

ConnectivityListener.java

在监听器中添加两个动作:
ConnectivityManager.ACTION_DATA_ACTIVITY_CHANGE,
ConnectivityManager.ACTION_TETHER_STATE_CHANGED

网络变化和页面更新

  • 由NetworkActivity的onCreate()方法可知,Listener接口由NetworkActivity类实现了
  • 查看NetworkActivity的onConnectivityChange方法可知,具体的页面刷新是由布局Layout的具体实现类实现,刷新方法为实现类的refreshView()
  • 查看以太网的mEthernetConnectedDescription的实现,这里的实现只有两个方法,其中一个就是刷新布局方法refreshView(),
    其中方法实现里面有mConnectivityListener.getConnectivityStatus().isEthernetConnected() !=lastIsEthernetConnected的判断,到这里就切换到ConnectivityListener中去查看
  • 查看ConnectivityListener可知是updateConnectivityStatus判断并改变改变网络类型,而updateConnectivityStatus的实现则由ConnectivityManager.getActiveNetworkInfo()决定
  • 由updateConnectivityStatus可以决定后续的布局刷新,只要网络有改变,布局就会刷新

网络热点

宿主界面类:TetherSettingsActivity.java
主要实现界面类:TetherSettings.java
热点设置信息实现类:WifiApDialog.java
点击之后不可再点击,等操作完成后再恢复点击,TetherSettings.java ,onPreferenceChange() 宿主界面类:TetherSettingsActivity类
主要实现界面类:TetherSettings类
热点设置信息实现类:WifiApDialog类

About

mStar priv-app TvSettings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages