Commit 5e9f78d3 authored by Mygod's avatar Mygod

Prevent crash when importing

Fix #1060.
parent f4026e5a
......@@ -26,6 +26,7 @@ import android.app.Activity
import android.content._
import android.net.Uri
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.v7.widget.RecyclerView.ViewHolder
import android.support.v7.widget._
import android.support.v7.widget.helper.ItemTouchHelper
......@@ -348,15 +349,17 @@ final class ProfilesFragment extends ToolbarFragment with Toolbar.OnMenuItemClic
}
true
case R.id.action_import =>
if (clipboard.hasPrimaryClip) {
try {
val profiles = Parser.findAll(clipboard.getPrimaryClip.getItemAt(0).getText)
if (profiles.nonEmpty) {
profiles.foreach(app.profileManager.createProfile)
Toast.makeText(getActivity, R.string.action_import_msg, Toast.LENGTH_SHORT).show()
return true
}
} catch {
case _: Exception =>
}
Toast.makeText(getActivity, R.string.action_import_err, Toast.LENGTH_SHORT).show()
Snackbar.make(getActivity.findViewById(R.id.snackbar), R.string.action_import_err, Snackbar.LENGTH_LONG).show()
true
case R.id.action_manual_settings =>
startConfig(app.profileManager.createProfile().id)
......
......@@ -5,6 +5,7 @@ import java.util.Locale
import android.content.{ClipData, ClipboardManager, Context, DialogInterface}
import android.os.{Bundle, Handler}
import android.support.design.widget.Snackbar
import android.support.v7.app.AlertDialog
import android.support.v7.widget.RecyclerView.ViewHolder
import android.support.v7.widget.helper.ItemTouchHelper
......@@ -276,7 +277,16 @@ class CustomRulesFragment extends ToolbarFragment with Toolbar.OnMenuItemClickLi
.create().show()
true
case R.id.action_import =>
clipboard.getPrimaryClip.getItemAt(0).getText.toString.split("\n").foreach(adapter.addToProxy)
try {
val items = clipboard.getPrimaryClip.getItemAt(0).getText.toString.split("\n")
if (items.nonEmpty) {
items.foreach(adapter.addToProxy)
return true
}
} catch {
case _: Exception =>
}
Snackbar.make(getActivity.findViewById(R.id.snackbar), R.string.action_import_err, Snackbar.LENGTH_LONG).show()
true
case R.id.action_import_gfwlist =>
val acl = new Acl().fromId(Acl.GFWLIST)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment