Fix crashes on stupid devices
This commit is contained in:
@@ -122,6 +122,7 @@ class RepeaterService : Service(), WifiP2pManager.ChannelListener, SharedPrefere
|
|||||||
WifiP2pManager.P2P_UNSUPPORTED -> getString(R.string.repeater_failure_reason_p2p_unsupported)
|
WifiP2pManager.P2P_UNSUPPORTED -> getString(R.string.repeater_failure_reason_p2p_unsupported)
|
||||||
WifiP2pManager.BUSY -> getString(R.string.repeater_failure_reason_busy)
|
WifiP2pManager.BUSY -> getString(R.string.repeater_failure_reason_busy)
|
||||||
WifiP2pManager.NO_SERVICE_REQUESTS -> getString(R.string.repeater_failure_reason_no_service_requests)
|
WifiP2pManager.NO_SERVICE_REQUESTS -> getString(R.string.repeater_failure_reason_no_service_requests)
|
||||||
|
WifiP2pManagerHelper.UNSUPPORTED -> getString(R.string.repeater_failure_reason_unsupported_operation)
|
||||||
else -> getString(R.string.failure_reason_unknown, reason)
|
else -> getString(R.string.failure_reason_unknown, reason)
|
||||||
})
|
})
|
||||||
Crashlytics.logException(Failure(result))
|
Crashlytics.logException(Failure(result))
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
findPreference("misc.source").setOnPreferenceClickListener {
|
findPreference("misc.source").setOnPreferenceClickListener {
|
||||||
customTabsIntent.launchUrl(activity, Uri.parse("https://github.com/Mygod/VPNHotspot"))
|
customTabsIntent.launchUrl(requireActivity(), Uri.parse("https://github.com/Mygod/VPNHotspot"))
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import java.util.regex.Pattern
|
|||||||
|
|
||||||
object WifiP2pManagerHelper {
|
object WifiP2pManagerHelper {
|
||||||
private const val TAG = "WifiP2pManagerHelper"
|
private const val TAG = "WifiP2pManagerHelper"
|
||||||
|
const val UNSUPPORTED = -2
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Matches the output of dumpsys wifip2p. This part is available since Android 4.2.
|
* Matches the output of dumpsys wifip2p. This part is available since Android 4.2.
|
||||||
@@ -36,8 +37,14 @@ object WifiP2pManagerHelper {
|
|||||||
Int::class.java, Int::class.java, WifiP2pManager.ActionListener::class.java)
|
Int::class.java, Int::class.java, WifiP2pManager.ActionListener::class.java)
|
||||||
}
|
}
|
||||||
fun WifiP2pManager.setWifiP2pChannels(c: WifiP2pManager.Channel, lc: Int, oc: Int,
|
fun WifiP2pManager.setWifiP2pChannels(c: WifiP2pManager.Channel, lc: Int, oc: Int,
|
||||||
listener: WifiP2pManager.ActionListener) {
|
listener: WifiP2pManager.ActionListener) {
|
||||||
setWifiP2pChannels.invoke(this, c, lc, oc, listener)
|
try {
|
||||||
|
setWifiP2pChannels.invoke(this, c, lc, oc, listener)
|
||||||
|
} catch (e: NoSuchMethodException) {
|
||||||
|
e.printStackTrace()
|
||||||
|
Crashlytics.logException(e)
|
||||||
|
listener.onFailure(UNSUPPORTED)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -49,9 +56,14 @@ object WifiP2pManagerHelper {
|
|||||||
WifiP2pManager::class.java.getDeclaredMethod("startWps",
|
WifiP2pManager::class.java.getDeclaredMethod("startWps",
|
||||||
WifiP2pManager.Channel::class.java, WpsInfo::class.java, WifiP2pManager.ActionListener::class.java)
|
WifiP2pManager.Channel::class.java, WpsInfo::class.java, WifiP2pManager.ActionListener::class.java)
|
||||||
}
|
}
|
||||||
fun WifiP2pManager.startWps(c: WifiP2pManager.Channel, wps: WpsInfo,
|
fun WifiP2pManager.startWps(c: WifiP2pManager.Channel, wps: WpsInfo, listener: WifiP2pManager.ActionListener) {
|
||||||
listener: WifiP2pManager.ActionListener) {
|
try {
|
||||||
startWps.invoke(this, c, wps, listener)
|
startWps.invoke(this, c, wps, listener)
|
||||||
|
} catch (e: NoSuchMethodException) {
|
||||||
|
e.printStackTrace()
|
||||||
|
Crashlytics.logException(e)
|
||||||
|
listener.onFailure(UNSUPPORTED)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,7 +77,13 @@ object WifiP2pManagerHelper {
|
|||||||
}
|
}
|
||||||
fun WifiP2pManager.deletePersistentGroup(c: WifiP2pManager.Channel, netId: Int,
|
fun WifiP2pManager.deletePersistentGroup(c: WifiP2pManager.Channel, netId: Int,
|
||||||
listener: WifiP2pManager.ActionListener) {
|
listener: WifiP2pManager.ActionListener) {
|
||||||
deletePersistentGroup.invoke(this, c, netId, listener)
|
try {
|
||||||
|
deletePersistentGroup.invoke(this, c, netId, listener)
|
||||||
|
} catch (e: NoSuchMethodException) {
|
||||||
|
e.printStackTrace()
|
||||||
|
Crashlytics.logException(e)
|
||||||
|
listener.onFailure(UNSUPPORTED)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val interfacePersistentGroupInfoListener by lazy @SuppressLint("PrivateApi") {
|
private val interfacePersistentGroupInfoListener by lazy @SuppressLint("PrivateApi") {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
<string name="repeater_failure_reason_p2p_unsupported">设备不支持 Wi\u2011Fi 直连</string>
|
<string name="repeater_failure_reason_p2p_unsupported">设备不支持 Wi\u2011Fi 直连</string>
|
||||||
<string name="repeater_failure_reason_busy">系统忙</string>
|
<string name="repeater_failure_reason_busy">系统忙</string>
|
||||||
<string name="repeater_failure_reason_no_service_requests">未添加服务请求</string>
|
<string name="repeater_failure_reason_no_service_requests">未添加服务请求</string>
|
||||||
|
<string name="repeater_failure_reason_unsupported_operation">不支持此操作</string>
|
||||||
|
|
||||||
<string name="tethering_temp_hotspot">临时 WLAN 热点</string>
|
<string name="tethering_temp_hotspot">临时 WLAN 热点</string>
|
||||||
<string name="tethering_temp_hotspot_location">使用临时热点需要打开位置服务。</string>
|
<string name="tethering_temp_hotspot_location">使用临时热点需要打开位置服务。</string>
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
<string name="repeater_failure_reason_p2p_unsupported">Wi\u2011Fi direct unsupported</string>
|
<string name="repeater_failure_reason_p2p_unsupported">Wi\u2011Fi direct unsupported</string>
|
||||||
<string name="repeater_failure_reason_busy">framework is busy</string>
|
<string name="repeater_failure_reason_busy">framework is busy</string>
|
||||||
<string name="repeater_failure_reason_no_service_requests">no service requests added</string>
|
<string name="repeater_failure_reason_no_service_requests">no service requests added</string>
|
||||||
|
<string name="repeater_failure_reason_unsupported_operation">unsupported operation</string>
|
||||||
|
|
||||||
<string name="tethering_temp_hotspot">Temporary Wi\u2011Fi hotspot</string>
|
<string name="tethering_temp_hotspot">Temporary Wi\u2011Fi hotspot</string>
|
||||||
<string name="tethering_temp_hotspot_location">Temporary hotspot requires location to be turned on.</string>
|
<string name="tethering_temp_hotspot_location">Temporary hotspot requires location to be turned on.</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user