Fix crash caused by illegal clipboard content

This commit is contained in:
Mygod
2019-04-10 11:20:38 +08:00
parent 95b9cc77b1
commit e6ff746d2f

View File

@@ -23,6 +23,7 @@ import be.mygod.vpnhotspot.RepeaterService
import be.mygod.vpnhotspot.util.QRCodeDialog import be.mygod.vpnhotspot.util.QRCodeDialog
import be.mygod.vpnhotspot.util.toByteArray import be.mygod.vpnhotspot.util.toByteArray
import be.mygod.vpnhotspot.util.toParcelable import be.mygod.vpnhotspot.util.toParcelable
import be.mygod.vpnhotspot.widget.SmartSnackbar
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
import kotlinx.android.synthetic.main.dialog_wifi_ap.view.* import kotlinx.android.synthetic.main.dialog_wifi_ap.view.*
import java.lang.IllegalStateException import java.lang.IllegalStateException
@@ -175,12 +176,15 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
Base64.encodeToString(ret.configuration.toByteArray(), BASE64_FLAGS)) Base64.encodeToString(ret.configuration.toByteArray(), BASE64_FLAGS))
true true
} }
android.R.id.paste -> { android.R.id.paste -> try {
app.clipboard.primaryClip?.getItemAt(0)?.text?.apply { app.clipboard.primaryClip?.getItemAt(0)?.text?.apply {
Base64.decode(toString(), BASE64_FLAGS).toParcelable<WifiConfiguration>() Base64.decode(toString(), BASE64_FLAGS).toParcelable<WifiConfiguration>()
?.let { populateFromConfiguration(it) } ?.let { populateFromConfiguration(it) }
} }
true true
} catch (e: IllegalArgumentException) {
SmartSnackbar.make(e).show()
false
} }
R.id.share_qr -> { R.id.share_qr -> {
QRCodeDialog().withArg(ret.configuration.toQRString()) QRCodeDialog().withArg(ret.configuration.toQRString())