diff --git a/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala b/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala index 513acdf3..84d5af65 100644 --- a/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala +++ b/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala @@ -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) diff --git a/src/main/scala/com/github/shadowsocks/acl/CustomRulesFragment.scala b/src/main/scala/com/github/shadowsocks/acl/CustomRulesFragment.scala index 9754f72e..be3a1e38 100644 --- a/src/main/scala/com/github/shadowsocks/acl/CustomRulesFragment.scala +++ b/src/main/scala/com/github/shadowsocks/acl/CustomRulesFragment.scala @@ -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)