override fun onMenuItemClick()

in mobile/src/main/java/com/github/shadowsocks/ProfilesFragment.kt [496:545]


    override fun onMenuItemClick(item: MenuItem): Boolean {
        return when (item.itemId) {
            R.id.action_scan_qr_code -> {
                startActivity(Intent(context, ScannerActivity::class.java))
                true
            }
            R.id.action_import_clipboard -> {
                try {
                    val profiles = Profile.findAllUrls(
                            Core.clipboard.primaryClip!!.getItemAt(0).text,
                            Core.currentProfile?.main
                    ).toList()
                    if (profiles.isNotEmpty()) {
                        profiles.forEach { ProfileManager.createProfile(it) }
                        (activity as MainActivity).snackbar().setText(R.string.action_import_msg).show()
                        return true
                    }
                } catch (exc: Exception) {
                    Timber.d(exc)
                }
                (activity as MainActivity).snackbar().setText(R.string.action_import_err).show()
                true
            }
            R.id.action_import_file -> {
                startFilesForResult(importProfiles)
                true
            }
            R.id.action_replace_file -> {
                startFilesForResult(replaceProfiles)
                true
            }
            R.id.action_manual_settings -> {
                startConfig(ProfileManager.createProfile(
                        Profile().also { Core.currentProfile?.main?.copyFeatureSettingsTo(it) }))
                true
            }
            R.id.action_export_clipboard -> {
                val profiles = ProfileManager.getActiveProfiles()
                val success = profiles != null && Core.trySetPrimaryClip(profiles.joinToString("\n"))
                (activity as MainActivity).snackbar().setText(
                        if (success) R.string.action_export_msg else R.string.action_export_err).show()
                true
            }
            R.id.action_export_file -> {
                startFilesForResult(exportProfiles)
                true
            }
            else -> false
        }
    }