|
@@ -4,6 +4,7 @@ import android.content.BroadcastReceiver
|
|
|
import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import android.content.IntentFilter
|
|
|
+import android.net.wifi.ScanResult
|
|
|
import android.os.Bundle
|
|
|
import androidx.core.content.ContextCompat
|
|
|
import androidx.fragment.app.Fragment
|
|
@@ -14,15 +15,21 @@ import com.luojigou.product.xiaodou.connect.XDConnectErrorFragment
|
|
|
import com.luojigou.product.xiaodou.connect.XDConnectFailFragment
|
|
|
import com.luojigou.product.xiaodou.connect.XDConnectNotFoundFragment
|
|
|
import com.luojigou.product.xiaodou.connect.XDConnectPasswordErrorFragment
|
|
|
+import com.luojigou.product.xiaodou.connect.XDConnectPasswordFragment
|
|
|
+import com.luojigou.product.xiaodou.connect.XDConnectPasswordSsidFragment
|
|
|
import com.luojigou.product.xiaodou.connect.XDConnectSuccessFragment
|
|
|
import com.luojigou.product.xiaodou.connect.XDConnectTimeoutFragment
|
|
|
-import com.luojigou.product.xiaodou.wifi.XDScanWifiInfo
|
|
|
+import com.luojigou.product.xiaodou.wifi.ssid
|
|
|
|
|
|
class XDConnectActivity : BaseActivity() {
|
|
|
companion object {
|
|
|
- fun startConnect(context: Context, device: XDScanWifiInfo) {
|
|
|
+ const val ACTION_SELECT_WIFI_SSID = "com.luojigou.xiaodou.ble.ACTION_SELECT_WIFI_SSID"
|
|
|
+ const val ACTION_SELECT_WIFI_WPA = "com.luojigou.xiaodou.ble.ACTION_SELECT_WIFI_WPA"
|
|
|
+
|
|
|
+ fun startConnect(context: Context, wifi: ScanResult?) {
|
|
|
val intent = Intent(context, XDConnectActivity::class.java)
|
|
|
- intent.putExtra(XDConnectService.ACTION_SELECT_WIFI_DEVICE_DATA, device)
|
|
|
+ intent.putExtra(ACTION_SELECT_WIFI_SSID, wifi?.ssid())
|
|
|
+ intent.putExtra(ACTION_SELECT_WIFI_WPA, wifi?.capabilities?.contains("WPA"))
|
|
|
context.startActivity(intent)
|
|
|
}
|
|
|
}
|
|
@@ -55,7 +62,7 @@ class XDConnectActivity : BaseActivity() {
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
super.onCreate(savedInstanceState)
|
|
|
setTitle("连接Wi-Fi")
|
|
|
- setFragment(connectingFragment)
|
|
|
+// setFragment(connectingFragment)
|
|
|
|
|
|
val intentFilter = IntentFilter()
|
|
|
intentFilter.apply {
|
|
@@ -75,12 +82,13 @@ class XDConnectActivity : BaseActivity() {
|
|
|
ContextCompat.RECEIVER_EXPORTED,
|
|
|
)
|
|
|
|
|
|
- val device = intent.getParcelableExtra<XDScanWifiInfo>(XDConnectService.ACTION_SELECT_WIFI_DEVICE_DATA)
|
|
|
+ val ssid = intent.getStringExtra(ACTION_SELECT_WIFI_SSID)
|
|
|
+ val wpa = intent.getBooleanExtra(ACTION_SELECT_WIFI_WPA, true)
|
|
|
|
|
|
- if (device != null) {
|
|
|
- val intent = Intent(XDConnectService.ACTION_SELECT_WIFI_DEVICE)
|
|
|
- intent.putExtra(XDConnectService.ACTION_SELECT_WIFI_DEVICE_DATA, device)
|
|
|
- sendBroadcast(intent)
|
|
|
+ if (ssid != null) {
|
|
|
+ setFragment(XDConnectPasswordFragment(ssid))
|
|
|
+ } else {
|
|
|
+ setFragment(XDConnectPasswordSsidFragment())
|
|
|
}
|
|
|
}
|
|
|
|