├── app ├── locale │ ├── .revno │ └── playstore │ │ ├── playstore.pot │ │ ├── bg.po │ │ ├── da.po │ │ ├── fi.po │ │ ├── hu.po │ │ ├── id.po │ │ ├── ko.po │ │ ├── nl.po │ │ ├── pl.po │ │ ├── pt.po │ │ ├── ro.po │ │ ├── sk.po │ │ ├── sv.po │ │ ├── uk.po │ │ ├── zh_TW.po │ │ ├── ja.po │ │ ├── af.po │ │ ├── pt_PT.po │ │ ├── cs.po │ │ ├── fr.po │ │ ├── ru.po │ │ ├── sl.po │ │ ├── it.po │ │ ├── ar.po │ │ ├── de.po │ │ ├── tr.po │ │ ├── pt_BR.po │ │ ├── es.po │ │ ├── zh_CN.po │ │ ├── gl.po │ │ ├── eu.po │ │ ├── en_GB.po │ │ ├── lv.po │ │ ├── el.po │ │ └── vi.po ├── proguard-tests.cfg ├── src │ ├── main │ │ ├── res │ │ │ ├── values-ne │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rHK │ │ │ │ └── strings.xml │ │ │ ├── raw │ │ │ │ └── bell.ogg │ │ │ ├── mipmap-hdpi │ │ │ │ ├── icon.png │ │ │ │ └── icon_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── icon.png │ │ │ │ └── icon_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── icon.png │ │ │ │ └── icon_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── icon.png │ │ │ │ └── icon_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── icon.png │ │ │ │ └── icon_round.png │ │ │ ├── drawable-hdpi │ │ │ │ ├── ic_add.png │ │ │ │ ├── ic_lock.png │ │ │ │ ├── ic_save.png │ │ │ │ ├── ic_lock_open.png │ │ │ │ ├── ic_volume_up.png │ │ │ │ ├── ic_action_copy.png │ │ │ │ ├── ic_action_paste.png │ │ │ │ ├── ic_expand_less.png │ │ │ │ ├── ic_expand_more.png │ │ │ │ ├── notification_icon.png │ │ │ │ ├── ic_status_connected.png │ │ │ │ ├── ic_status_disconnected.png │ │ │ │ └── ic_status_not_yet_connected.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── ic_add.png │ │ │ │ ├── ic_lock.png │ │ │ │ ├── ic_save.png │ │ │ │ ├── gesture_pgdn.png │ │ │ │ ├── gesture_pgup.png │ │ │ │ ├── ic_lock_open.png │ │ │ │ ├── ic_volume_up.png │ │ │ │ ├── ic_action_copy.png │ │ │ │ ├── ic_action_paste.png │ │ │ │ ├── ic_expand_less.png │ │ │ │ ├── ic_expand_more.png │ │ │ │ ├── gesture_hostnext.png │ │ │ │ ├── gesture_hostprev.png │ │ │ │ ├── gesture_scrollback.png │ │ │ │ ├── notification_icon.png │ │ │ │ ├── ic_status_connected.png │ │ │ │ ├── gesture_scrollforward.png │ │ │ │ ├── ic_status_disconnected.png │ │ │ │ └── ic_status_not_yet_connected.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── ic_add.png │ │ │ │ ├── ic_lock.png │ │ │ │ ├── ic_save.png │ │ │ │ ├── ic_lock_open.png │ │ │ │ ├── ic_volume_up.png │ │ │ │ ├── ic_action_copy.png │ │ │ │ ├── ic_expand_less.png │ │ │ │ ├── ic_expand_more.png │ │ │ │ ├── ic_action_paste.png │ │ │ │ ├── notification_icon.png │ │ │ │ ├── ic_status_connected.png │ │ │ │ ├── ic_status_disconnected.png │ │ │ │ └── ic_status_not_yet_connected.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_add.png │ │ │ │ ├── ic_lock.png │ │ │ │ ├── ic_save.png │ │ │ │ ├── ic_lock_open.png │ │ │ │ ├── ic_volume_up.png │ │ │ │ ├── ic_action_copy.png │ │ │ │ ├── ic_action_paste.png │ │ │ │ ├── ic_expand_less.png │ │ │ │ ├── ic_expand_more.png │ │ │ │ ├── notification_icon.png │ │ │ │ ├── ic_status_connected.png │ │ │ │ ├── ic_status_disconnected.png │ │ │ │ └── ic_status_not_yet_connected.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── ic_add.png │ │ │ │ ├── ic_lock.png │ │ │ │ ├── ic_save.png │ │ │ │ ├── ic_lock_open.png │ │ │ │ ├── ic_volume_up.png │ │ │ │ ├── ic_action_copy.png │ │ │ │ ├── ic_action_paste.png │ │ │ │ ├── ic_expand_less.png │ │ │ │ ├── ic_expand_more.png │ │ │ │ ├── notification_icon.png │ │ │ │ ├── ic_status_connected.png │ │ │ │ ├── ic_status_disconnected.png │ │ │ │ └── ic_status_not_yet_connected.png │ │ │ ├── values-be │ │ │ │ └── strings.xml │ │ │ ├── drawable │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── ic_format_size.xml │ │ │ │ ├── ic_laptop.xml │ │ │ │ ├── ic_keyboard_arrow_down.xml │ │ │ │ ├── ic_keyboard_arrow_up.xml │ │ │ │ ├── ic_keyboard_arrow_left.xml │ │ │ │ ├── ic_keyboard_arrow_right.xml │ │ │ │ ├── ic_keyboard_tab.xml │ │ │ │ ├── ic_code.xml │ │ │ │ ├── ic_person.xml │ │ │ │ ├── ic_add_box.xml │ │ │ │ ├── ic_folder_open.xml │ │ │ │ ├── ic_zip.xml │ │ │ │ ├── ic_vpn_key.xml │ │ │ │ ├── ic_launcher_monochrome.xml │ │ │ │ ├── ic_sync.xml │ │ │ │ ├── ic_keyboard.xml │ │ │ │ ├── ic_keyboard_hide.xml │ │ │ │ ├── ic_sync_disabled.xml │ │ │ │ ├── ic_palette.xml │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ ├── ic_vpn_lock.xml │ │ │ │ ├── ic_android.xml │ │ │ │ ├── pubkey.xml │ │ │ │ ├── keyboard_button_border.xml │ │ │ │ ├── keyboard_keyboard_border.xml │ │ │ │ ├── keyboard_button_selector.xml │ │ │ │ └── connected.xml │ │ │ ├── values-lt │ │ │ │ └── strings.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── icon.xml │ │ │ │ └── icon_round.xml │ │ │ ├── values-en-rCA │ │ │ │ └── strings.xml │ │ │ ├── anim │ │ │ │ ├── keyboard_fade_in.xml │ │ │ │ ├── fade_out_delayed.xml │ │ │ │ └── keyboard_fade_out.xml │ │ │ ├── values │ │ │ │ ├── attrs.xml │ │ │ │ ├── viewpager.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ └── notrans.xml │ │ │ ├── values-th │ │ │ │ └── strings.xml │ │ │ ├── color │ │ │ │ ├── blue.xml │ │ │ │ ├── green.xml │ │ │ │ └── red.xml │ │ │ ├── layout │ │ │ │ ├── activity_edit_host.xml │ │ │ │ ├── activity_settings.xml │ │ │ │ ├── switch_compat_preference_layout.xml │ │ │ │ ├── dia_password.xml │ │ │ │ ├── item_terminal.xml │ │ │ │ ├── act_pubkeylist.xml │ │ │ │ ├── dia_gatherentropy.xml │ │ │ │ ├── item_portforward.xml │ │ │ │ ├── dia_resize.xml │ │ │ │ ├── act_colors.xml │ │ │ │ ├── volume_preference_dialog_layout.xml │ │ │ │ ├── act_portforwardlist.xml │ │ │ │ └── view_checkablemenuitem.xml │ │ │ ├── menu │ │ │ │ ├── edit_host_activity_add_menu.xml │ │ │ │ ├── edit_host_activity_edit_menu.xml │ │ │ │ └── pubkey_list_activity_menu.xml │ │ │ ├── values-tk │ │ │ │ └── strings.xml │ │ │ ├── values-ta │ │ │ │ └── strings.xml │ │ │ ├── values-v11 │ │ │ │ └── styles.xml │ │ │ └── values-af │ │ │ │ └── strings.xml │ │ ├── java │ │ │ ├── org │ │ │ │ ├── connectbot │ │ │ │ │ ├── annotation │ │ │ │ │ │ └── KeepForTesting.java │ │ │ │ │ ├── util │ │ │ │ │ │ ├── OnEntropyGatheredListener.java │ │ │ │ │ │ ├── OnDbWrittenListener.java │ │ │ │ │ │ ├── ProviderLoaderListener.java │ │ │ │ │ │ ├── OnKeyGeneratedListener.java │ │ │ │ │ │ ├── Version.java │ │ │ │ │ │ ├── EntropyDialog.java │ │ │ │ │ │ ├── SwitchCompatPreference.java │ │ │ │ │ │ └── TerminalViewPager.java │ │ │ │ │ ├── service │ │ │ │ │ │ ├── BridgeDisconnectedListener.java │ │ │ │ │ │ ├── FontSizeChangedListener.java │ │ │ │ │ │ ├── OnHostStatusChangedListener.java │ │ │ │ │ │ └── BackupAgent.java │ │ │ │ │ ├── HintsActivity.java │ │ │ │ │ ├── SettingsActivity.java │ │ │ │ │ ├── data │ │ │ │ │ │ └── ColorStorage.java │ │ │ │ │ ├── EulaActivity.java │ │ │ │ │ ├── bean │ │ │ │ │ │ └── AbstractBean.java │ │ │ │ │ └── SettingsFragment.java │ │ │ │ └── openintents │ │ │ │ │ └── intents │ │ │ │ │ └── FileManagerIntents.java │ │ │ ├── de │ │ │ │ └── mud │ │ │ │ │ └── terminal │ │ │ │ │ └── VDUDisplay.java │ │ │ └── com │ │ │ │ └── google │ │ │ │ └── ase │ │ │ │ └── Exec.java │ │ └── cpp │ │ │ └── com_google_ase_Exec.h │ ├── test │ │ └── java │ │ │ ├── android │ │ │ └── net │ │ │ │ └── http │ │ │ │ └── AndroidHttpClient.java │ │ │ └── org │ │ │ └── connectbot │ │ │ ├── mock │ │ │ └── NullOutputStream.java │ │ │ └── HostListActivityTest.java │ ├── oss │ │ └── java │ │ │ └── org │ │ │ └── connectbot │ │ │ └── util │ │ │ └── ProviderLoader.java │ ├── androidTest │ │ └── java │ │ │ └── org │ │ │ └── connectbot │ │ │ ├── ConnectbotJUnitRunner.java │ │ │ └── EditHostActivityTest.java │ └── google │ │ └── java │ │ └── org │ │ └── connectbot │ │ └── util │ │ └── ProviderLoader.java ├── lint.xml ├── CMakeLists.txt ├── proguard-debug.cfg └── proguard.cfg ├── icons ├── icon.xd ├── icon-web.png ├── icon14.png └── icon64.png ├── .linthub.yml ├── .stickler.yml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── plugins.txt ├── .idea └── codeStyles │ └── codeStyleConfig.xml ├── spotless.gradle ├── gradle.properties ├── .github ├── ISSUE_TEMPLATE │ ├── support-question.md │ ├── feature_request.md │ └── bug_report.md ├── workflows │ ├── gradle-wrapper-validation.yml │ └── export-po-files.yml └── dependabot.yml ├── config ├── quality.gradle └── checkstyle │ ├── checkstyle.xml │ └── suppressions.xml ├── .gitattributes ├── .gitignore ├── connectbot.iml ├── settings.gradle ├── translations └── translations.iml ├── ci ├── check-lint-count.bash └── builder │ └── Dockerfile └── README.md /app/locale/.revno: -------------------------------------------------------------------------------- 1 | 51 2 | -------------------------------------------------------------------------------- /app/proguard-tests.cfg: -------------------------------------------------------------------------------- 1 | -dontwarn com.google.android.apps.common.testing.** 2 | -------------------------------------------------------------------------------- /icons/icon.xd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/icons/icon.xd -------------------------------------------------------------------------------- /icons/icon-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/icons/icon-web.png -------------------------------------------------------------------------------- /icons/icon14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/icons/icon14.png -------------------------------------------------------------------------------- /icons/icon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/icons/icon64.png -------------------------------------------------------------------------------- /.linthub.yml: -------------------------------------------------------------------------------- 1 | java: 2 | lint: true 3 | config: config/quality/checkstyle/checkstyle.xml 4 | -------------------------------------------------------------------------------- /.stickler.yml: -------------------------------------------------------------------------------- 1 | linters: 2 | checkstyle: 3 | config: ./config/checkstyle/checkstyle.xml 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-ne/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-zh-rHK/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/raw/bell.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/raw/bell.ogg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-hdpi/icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-mdpi/icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xhdpi/icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xxhdpi/icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xxxhdpi/icon.png -------------------------------------------------------------------------------- /app/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_save.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_save.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_save.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/icon_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-hdpi/icon_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/icon_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-mdpi/icon_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_save.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_save.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/icon_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xhdpi/icon_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xxhdpi/icon_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_lock_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_volume_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_volume_up.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_pgdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_pgdn.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_pgup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_pgup.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_lock_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_volume_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_volume_up.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_lock_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_volume_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_volume_up.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/icon_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/mipmap-xxxhdpi/icon_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_action_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_action_paste.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_expand_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_expand_less.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_expand_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_expand_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_action_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_action_paste.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_expand_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_expand_less.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_expand_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_expand_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_action_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_expand_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_expand_less.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_expand_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_expand_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_lock_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_volume_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_volume_up.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_lock_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_volume_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_volume_up.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/notification_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/notification_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_hostnext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_hostnext.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_hostprev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_hostprev.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_scrollback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_scrollback.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/notification_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/notification_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_action_paste.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/notification_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/notification_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_action_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_action_paste.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_expand_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_expand_less.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_expand_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_expand_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_action_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_action_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_action_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_action_paste.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_expand_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_expand_less.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_expand_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_expand_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_status_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_status_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_status_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_status_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_status_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_status_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/notification_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/notification_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/notification_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/notification_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_status_disconnected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_status_disconnected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gesture_scrollforward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/gesture_scrollforward.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_status_disconnected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_status_disconnected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_status_disconnected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_status_disconnected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_status_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_status_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_status_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_status_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_status_disconnected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_status_disconnected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_status_disconnected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_status_disconnected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_status_not_yet_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-hdpi/ic_status_not_yet_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_status_not_yet_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-mdpi/ic_status_not_yet_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_status_not_yet_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xhdpi/ic_status_not_yet_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_status_not_yet_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxhdpi/ic_status_not_yet_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_status_not_yet_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mthli/connectbot/main/app/src/main/res/drawable-xxxhdpi/ic_status_not_yet_connected.png -------------------------------------------------------------------------------- /plugins.txt: -------------------------------------------------------------------------------- 1 | android-lint:latest 2 | blueocean:latest 3 | build-pipeline-plugin:latest 4 | checkstyle:latest 5 | docker-slaves:latest 6 | jacoco:latest 7 | workflow-aggregator:latest 8 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /spotless.gradle: -------------------------------------------------------------------------------- 1 | spotless { 2 | groovyGradle { 3 | target '**/*.gradle' 4 | } 5 | 6 | format 'misc', { 7 | target '**/*.md', '**/.gitignore' 8 | 9 | trimTrailingWhitespace() 10 | endWithNewline() 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | jacocoVersion=0.8.10 2 | org.gradle.caching=true 3 | org.gradle.jvmargs=-Xmx2048m 4 | android.useAndroidX=true 5 | android.enableJetifier=false 6 | android.jetifier.ignorelist=bcprov-jdk15on 7 | org.gradle.configuration-cache=true 8 | -------------------------------------------------------------------------------- /app/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ConnectBot) 2 | 3 | cmake_minimum_required (VERSION 3.4.1) 4 | 5 | add_library (com_google_ase_Exec SHARED "src/main/cpp/com_google_ase_Exec.cpp") 6 | find_library (log-lib log) 7 | target_link_libraries (com_google_ase_Exec ${log-lib}) 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tap Menu to create\nor import key pairs. 4 | Tap Menu to create\nport forwards. 5 | 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/support-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Support question 3 | about: Ask a question about how to use ConnectBot 4 | title: '' 5 | labels: question 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Aug 21 22:29:08 PDT 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /app/proguard-debug.cfg: -------------------------------------------------------------------------------- 1 | -keepattributes SourceFile,LineNumberTable 2 | 3 | -keepclassmembers class * { 4 | @org.connectbot.annotation.KeepForTesting ; 5 | } 6 | 7 | -keep class com.google.common.util.concurrent.ListenableFuture { 8 | void addListener(java.lang.Runnable, java.util.concurrent.Executor); 9 | } -------------------------------------------------------------------------------- /config/quality.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'checkstyle' 2 | 3 | checkstyle { 4 | toolVersion = '8.10' 5 | } 6 | 7 | check.dependsOn 'checkstyle' 8 | 9 | task checkstyle(type: Checkstyle) { 10 | source 'src/main/java' 11 | include 'org/connectbot/**/*.java' 12 | exclude '**/gen/**' 13 | 14 | classpath = files() 15 | } 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set default behaviour, in case users don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files we want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.java text 7 | 8 | # Denote all files that are truly binary and should not be modified. 9 | *.png binary 10 | *.jpg binary 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-lt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pagalba 4 | Spalvos 5 | Tap Menu to create\nor import key pairs. 6 | Tap Menu to create\nport forwards. 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/icon_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_size.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/annotation/KeepForTesting.java: -------------------------------------------------------------------------------- 1 | package org.connectbot.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(value = RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface KeepForTesting { 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_laptop.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_up.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_left.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_tab.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_code.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-en-rCA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Colours 4 | Tap Menu to create\nor import key pairs. 5 | Tap Menu to create\nport forwards. 6 | Colour category 7 | Sort by colour 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /.github/workflows/gradle-wrapper-validation.yml: -------------------------------------------------------------------------------- 1 | name: "Validate Gradle Wrapper" 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | validation: 13 | name: "Validation" 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 17 | - uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_box.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_open.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_zip.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_vpn_key.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_monochrome.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # translation artifacts 2 | launchpad-*.tar.gz 3 | 4 | # local config files 5 | local.properties 6 | 7 | # working files 8 | *~ 9 | 10 | # OS X sucks 11 | .DS_Store 12 | 13 | # SublimeText working files 14 | *.sublime-project 15 | *.sublime-workspace 16 | 17 | # Android Studio 18 | .gradle/ 19 | build/ 20 | 21 | # Android gradle native build 22 | \.externalNativeBuild/ 23 | 24 | # keep code style 25 | .idea/* 26 | !.idea/codeStyles/ 27 | !.idea/copyright/ 28 | 29 | **/.cxx 30 | 31 | # Jenkinsfile-runner 32 | \.jenkinsfile-runner/ 33 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_hide.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: feature 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Is your feature request related to a problem? Please describe. 11 | 13 | 14 | 15 | ## Describe the solution you'd like 16 | 17 | 18 | 19 | ## Describe alternatives you've considered 20 | 21 | 22 | 23 | ## Additional context 24 | 25 | -------------------------------------------------------------------------------- /.github/workflows/export-po-files.yml: -------------------------------------------------------------------------------- 1 | name: Copy .po files to po-files branch 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | jobs: 8 | copy: 9 | name: Copy to po-files 10 | if: github.repository_owner == 'connectbot' 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 14 | 15 | - name: Push subdirectory 16 | uses: s0/git-publish-subdir-action@ac113f6bfe8896e85a373534242c949a7ea74c98 # develop 17 | env: 18 | REPO: self 19 | BRANCH: po-files 20 | FOLDER: app/locale 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | MESSAGE: "Automated export to {target-branch}\n\nFrom branch main commit {long-sha}:\n\n{msg}" 23 | SKIP_EMPTY_COMMITS: true 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync_disabled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_palette.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 14 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_vpn_lock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/OnEntropyGatheredListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | public interface OnEntropyGatheredListener { 21 | void onEntropyGathered(byte[] entropy); 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/service/BridgeDisconnectedListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.service; 19 | 20 | public interface BridgeDisconnectedListener { 21 | void onDisconnected(TerminalBridge bridge); 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/OnDbWrittenListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2010 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | /** 21 | * @author kroot 22 | * 23 | */ 24 | public interface OnDbWrittenListener { 25 | void onDbWritten(); 26 | } 27 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: gradle 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | open-pull-requests-limit: 10 8 | ignore: 9 | - dependency-name: com.diffplug.spotless 10 | versions: 11 | - 5.10.0 12 | - 5.10.1 13 | - 5.12.0 14 | - 5.12.1 15 | - 5.9.0 16 | - dependency-name: net.ltgt.errorprone 17 | versions: 18 | - 2.0.0 19 | - dependency-name: com.google.android.gms:play-services-basement 20 | versions: 21 | - 17.6.0 22 | - dependency-name: org.robolectric:robolectric 23 | versions: 24 | - "4.5" 25 | - dependency-name: org.mockito:mockito-core 26 | versions: 27 | - 3.7.7 28 | - package-ecosystem: gradle 29 | directory: "/translations" 30 | schedule: 31 | interval: daily 32 | open-pull-requests-limit: 10 33 | 34 | - package-ecosystem: "github-actions" 35 | directory: "/" # Location of package manifests 36 | schedule: 37 | interval: "weekly" 38 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_android.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/ProviderLoaderListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2017 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | /** 21 | * Created by kenny on 3/2/17. 22 | */ 23 | 24 | public interface ProviderLoaderListener { 25 | void onProviderLoaderSuccess(); 26 | void onProviderLoaderError(); 27 | } 28 | -------------------------------------------------------------------------------- /app/src/test/java/android/net/http/AndroidHttpClient.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package android.net.http; 19 | 20 | /** 21 | * This is a work-around until Robolectric 3.1 comes out with the fix for this. 22 | * https://github.com/robolectric/robolectric/issues/1862 23 | */ 24 | public class AndroidHttpClient { 25 | } 26 | -------------------------------------------------------------------------------- /connectbot.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def MAVEN_REPO_CACHE = System.getenv("MAVEN_REPO_CACHE")?.trim() 3 | if (MAVEN_REPO_CACHE) { 4 | repositories { 5 | maven { 6 | url MAVEN_REPO_CACHE 7 | } 8 | } 9 | } else { 10 | repositories { 11 | google() 12 | gradlePluginPortal() 13 | } 14 | } 15 | 16 | resolutionStrategy { 17 | eachPlugin { 18 | if (requested.id.id == "com.android.application") { 19 | useModule("com.android.tools.build:gradle:${requested.version}") 20 | } 21 | } 22 | } 23 | } 24 | 25 | ext.MAVEN_REPO_CACHE = System.getenv("MAVEN_REPO_CACHE")?.trim() 26 | ext.GRADLE_BUILD_CACHE = System.getenv("GRADLE_BUILD_CACHE")?.trim() 27 | ext.TRANSLATIONS_ONLY = System.getenv("TRANSLATIONS_ONLY")?.trim() 28 | 29 | buildCache { 30 | local { enabled = !GRADLE_BUILD_CACHE } 31 | if (GRADLE_BUILD_CACHE) { 32 | remote(HttpBuildCache) { 33 | url = GRADLE_BUILD_CACHE 34 | push = true 35 | } 36 | } 37 | } 38 | 39 | if (!TRANSLATIONS_ONLY) { 40 | include ':app' 41 | } 42 | include ':translations' 43 | -------------------------------------------------------------------------------- /app/src/main/res/anim/keyboard_fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/values/viewpager.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out_delayed.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/anim/keyboard_fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/values-th/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ใช้ง่าย, มีประสิทธิภาพ, โอเพนซอร์ส SSH ไคลเอนท์ 4 | จัดการการเชื่อมต่อ SSH และใส่กุญแจสาธารณะ 5 | เครื่องปลายทางต่าง ๆ 6 | กุญแจสาธารณะ 7 | ฟอร์เวิร์ดพอร์ต 8 | แก้ไขโฮสต์ 9 | ช่วยเหลือ 10 | สี 11 | เลือกสี 12 | ค่าตั้ง 13 | สร้าง 14 | กรุณาเลือกหัวข้อเฉพาะที่ต้องการข้อมูลเพิ่มเติม 15 | เงื่อนไขและข้อตกลงต่างๆ 16 | ข้อแนะนำ 17 | ทางลัดเครื่องปลายทาง 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/OnKeyGeneratedListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2016 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import java.security.KeyPair; 21 | 22 | /** 23 | * Created by kenny on 6/6/16. 24 | */ 25 | public interface OnKeyGeneratedListener { 26 | void onGenerationError(Exception e); 27 | 28 | void onGenerationSuccess(KeyPair keyPair); 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/service/FontSizeChangedListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.service; 19 | 20 | /** 21 | * @author Kenny Root 22 | * 23 | */ 24 | public interface FontSizeChangedListener { 25 | 26 | /** 27 | * @param sizeDp 28 | * new font size in dp 29 | */ 30 | void onFontSizeChanged(float sizeDp); 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/pubkey.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/service/OnHostStatusChangedListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.service; 19 | 20 | /** 21 | * Used to notify interested parties when a {@link TerminalBridge} has changed materially 22 | * changed status (e.g., connected, disconnected, name changed, etc). 23 | */ 24 | public interface OnHostStatusChangedListener { 25 | void onHostStatusChanged(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/test/java/org/connectbot/mock/NullOutputStream.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.mock; 19 | 20 | import java.io.IOException; 21 | import java.io.OutputStream; 22 | 23 | /** 24 | * @author Kenny Root 25 | * 26 | */ 27 | public class NullOutputStream extends OutputStream { 28 | @Override 29 | public void write(int arg0) throws IOException { 30 | // do nothing 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/res/color/blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/color/green.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/color/red.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_edit_host.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/HintsActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import android.os.Bundle; 21 | import androidx.appcompat.app.AppCompatActivity; 22 | 23 | public class HintsActivity extends AppCompatActivity { 24 | 25 | @Override 26 | protected void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.act_hints); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import android.os.Bundle; 21 | import androidx.appcompat.app.AppCompatActivity; 22 | 23 | public class SettingsActivity extends AppCompatActivity { 24 | @Override 25 | protected void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | setContentView(R.layout.activity_settings); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/proguard.cfg: -------------------------------------------------------------------------------- 1 | #-keepattributes SourceFile,LineNumberTable 2 | #-optimizationpasses 5 3 | -dontobfuscate 4 | 5 | # App classes 6 | -keep class org.connectbot.** 7 | -keepclassmembers class org.connectbot.R$* { 8 | public static ; 9 | } 10 | -keepattributes InnerClasses 11 | -keep public class com.trilead.ssh2.compression.** 12 | -keep public class com.trilead.ssh2.crypto.** 13 | 14 | # All the classes are referenced indirectly. 15 | -keep class org.conscrypt.** { *; } 16 | 17 | # Backward compatibility code in Conscrypt 18 | -dontnote libcore.io.Libcore 19 | -dontnote org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateKey 20 | -dontnote org.apache.harmony.security.utils.AlgNameMapper 21 | -dontnote sun.security.x509.AlgorithmId 22 | 23 | -dontwarn dalvik.system.BlockGuard 24 | -dontwarn dalvik.system.BlockGuard$Policy 25 | -dontwarn dalvik.system.CloseGuard 26 | -dontwarn com.android.org.conscrypt.OpenSSLSocketImpl 27 | -dontwarn com.android.org.conscrypt.SSLParametersImpl 28 | -dontwarn org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl 29 | -dontwarn org.apache.harmony.xnet.provider.jsse.SSLParametersImpl 30 | -dontwarn javax.annotation.Nullable 31 | -------------------------------------------------------------------------------- /app/locale/playstore/playstore.pot: -------------------------------------------------------------------------------- 1 | #, fuzzy 2 | msgid "" 3 | msgstr "" 4 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 5 | "Report-Msgid-Bugs-To: \n" 6 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 7 | "PO-Revision-Date: 2015-03-16 15:00+0000\n" 8 | "Last-Translator: FULL NAME \n" 9 | "Language-Team: LANGUAGE \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=utf-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "X-Launchpad-Export-Date: 2018-11-01 01:01+0000\n" 14 | "X-Generator: Launchpad (build 18810)\n" 15 | 16 | #. Tag line used in the graphics describing the ConnectBot application. 17 | msgctxt "tag-line" 18 | msgid "The first SSH client for Android." 19 | msgstr "" 20 | 21 | #. A description of the ConnectBot SSH application used in the Play Store. 22 | msgctxt "store-description" 23 | msgid "" 24 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 25 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 26 | "between other applications.\n" 27 | "\n" 28 | "This client allows you to connect to Secure Shell servers that typically run " 29 | "on UNIX-based servers." 30 | msgstr "" 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/keyboard_button_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/keyboard_keyboard_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/data/ColorStorage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.data; 19 | 20 | /** 21 | * Created by kroot on 9/11/15. 22 | */ 23 | public interface ColorStorage { 24 | int[] getColorsForScheme(int colorScheme); 25 | 26 | void setGlobalColor(int mCurrentColor, int value); 27 | 28 | int[] getDefaultColorsForScheme(int colorScheme); 29 | 30 | void setDefaultColorsForScheme(int mColorScheme, int mDefaultColor, int mDefaultColor1); 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/keyboard_button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/locale/playstore/bg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:36+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/da.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:36+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/fi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/hu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/id.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/ko.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/nl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/pl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/pt.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/ro.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/sk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/sv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/locale/playstore/uk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 11:39+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | -------------------------------------------------------------------------------- /app/src/main/res/menu/edit_host_activity_add_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 23 | 24 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/menu/edit_host_activity_edit_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 23 | 24 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 22 | 23 | 28 | -------------------------------------------------------------------------------- /translations/translations.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Bug description 11 | 12 | 13 | ## Steps to reproduce 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | ## Expected behavior 21 | 22 | 23 | ## Screenshots 24 | 25 | 26 | ## Android device 27 | 28 | 29 | - Device: [e.g. Google Pixel 2] 30 | - OS: [e.g. Android 8.1 OPM1.171019.021] 31 | - ConnectBot Version: [e.g., 1.9.5] 32 | 33 | ## Server information 34 | 35 | 36 | - OS: [e.g., Ubuntu Linux 16.10] 37 | - SSH Software and Version: [e.g., OpenSSH 7.1] 38 | - Pubkeys used (if applicable): [e.g., Ed25519] 39 | 40 | ## Additional context 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 72dp 21 | 16dp 22 | 20dp 23 | 16sp 24 | 14sp 25 | 18dp 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/connected.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 26 | 27 | 30 | 31 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/EulaActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import org.connectbot.util.Version; 21 | 22 | import android.os.Bundle; 23 | import androidx.appcompat.app.AppCompatActivity; 24 | 25 | public class EulaActivity extends AppCompatActivity { 26 | 27 | @Override 28 | protected void onCreate(Bundle savedInstanceState) { 29 | super.onCreate(savedInstanceState); 30 | setContentView(R.layout.act_eula); 31 | 32 | Version.setVersionText(getApplicationContext(), findViewById(R.id.version)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/switch_compat_preference_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | -------------------------------------------------------------------------------- /config/checkstyle/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/oss/java/org/connectbot/util/ProviderLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2017 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import java.security.Security; 21 | 22 | import org.conscrypt.OpenSSLProvider; 23 | 24 | import android.content.Context; 25 | 26 | /** 27 | * Created by kenny on 3/2/17. 28 | */ 29 | public final class ProviderLoader { 30 | public static void load(Context context, ProviderLoaderListener listener) { 31 | try { 32 | Security.insertProviderAt(new OpenSSLProvider(), 1); 33 | listener.onProviderLoaderSuccess(); 34 | } catch (Exception e) { 35 | listener.onProviderLoaderError(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/com_google_ase_Exec.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | /* Header for class com_google_ase_Exec */ 4 | 5 | #ifndef _Included_com_google_ase_Exec 6 | #define _Included_com_google_ase_Exec 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | /* 11 | * Class: com_google_ase_Exec 12 | * Method: createSubprocess 13 | * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/io/FileDescriptor; 14 | */ 15 | JNIEXPORT jobject JNICALL Java_com_google_ase_Exec_createSubprocess 16 | (JNIEnv *, jclass, jstring, jstring, jstring, jintArray); 17 | 18 | /* 19 | * Class: com_google_ase_Exec 20 | * Method: setPtyWindowSize 21 | * Signature: (Ljava/io/FileDescriptor;IIII)V 22 | */ 23 | JNIEXPORT void JNICALL Java_com_google_ase_Exec_setPtyWindowSize 24 | (JNIEnv *, jclass, jobject, jint, jint, jint, jint); 25 | 26 | /* 27 | * Class: com_google_ase_Exec 28 | * Method: waitFor 29 | * Signature: (I)I 30 | */ 31 | JNIEXPORT jint JNICALL Java_com_google_ase_Exec_waitFor 32 | (JNIEnv *, jclass, jint); 33 | 34 | /* 35 | * Class: com_google_ase_Exec 36 | * Method: register 37 | * Signature: ()I 38 | */ 39 | JNIEXPORT jint JNICALL Java_com_google_ase_Exec_register 40 | (JNIEnv *, jclass); 41 | 42 | #ifdef __cplusplus 43 | } 44 | #endif 45 | #endif 46 | -------------------------------------------------------------------------------- /app/src/androidTest/java/org/connectbot/ConnectbotJUnitRunner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2019 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import com.linkedin.android.testbutler.TestButler; 21 | 22 | import android.os.Bundle; 23 | import androidx.test.runner.AndroidJUnitRunner; 24 | 25 | public class ConnectbotJUnitRunner extends AndroidJUnitRunner { 26 | @Override 27 | public void onStart() { 28 | TestButler.setup(getTargetContext()); 29 | super.onStart(); 30 | } 31 | 32 | @Override 33 | public void finish(int resultCode, Bundle results) { 34 | TestButler.teardown(getTargetContext()); 35 | super.finish(resultCode, results); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dia_password.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 27 | 28 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_terminal.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 26 | 27 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/locale/playstore/zh_TW.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2017-02-14 05:42+0000\n" 7 | "Last-Translator: Kenny Root \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "第一個SSH用戶端Android版。" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot 是一個功能強大、開源的安全shell (SSH) 客戶端。它可以管理同時的多個 SSH " 31 | "會話,創建安全隧道,並可以和其他應用程序間進行 複製/粘貼。\n" 32 | "\n" 33 | "此客戶端允許您連接到通常在基於 UNIX 的服務器上運行的安全 Shell 服務器。" 34 | -------------------------------------------------------------------------------- /config/checkstyle/suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | #55f0f0f0 20 | #aaa0a0ff 21 | #55f0f0f0 22 | #55000000 23 | #00000000 24 | #55b0b0f0 25 | 26 | #03A9F4 27 | #0288D1 28 | 29 | #40C4FF 30 | #00B0FF 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/menu/pubkey_list_activity_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 23 | 24 | 29 | 30 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/locale/playstore/ja.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-09-05 10:49+0000\n" 7 | "Last-Translator: Naofumi Fukue \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Android用最初のSSHクライアント。" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot はパワフルなオープンソース セキュアシェル (SSH) クライアントです。同時に SSH セッションを管理し、セキュア " 31 | "トンネルを作成し、他のアプリケーションとの間でコピー/貼り付けすることができます。\n" 32 | "\n" 33 | "このクライアントは、通常 UNIX ベースのサーバー上で実行される、セキュア シェル サーバーに接続することができます。" 34 | -------------------------------------------------------------------------------- /app/locale/playstore/af.po: -------------------------------------------------------------------------------- 1 | # Afrikaans translation for connectbot 2 | # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2015-03-26 11:36+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Afrikaans \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "" 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | -------------------------------------------------------------------------------- /app/locale/playstore/pt_PT.po: -------------------------------------------------------------------------------- 1 | # Portuguese (Portugal) translation for connectbot 2 | # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2015-04-09 06:13+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Portuguese (Portugal) \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "" 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | -------------------------------------------------------------------------------- /app/src/main/java/de/mud/terminal/VDUDisplay.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of "JTA - Telnet/SSH for the JAVA(tm) platform". 3 | * 4 | * (c) Matthias L. Jugel, Marcus Meißner 1996-2005. All Rights Reserved. 5 | * 6 | * Please visit http://javatelnet.org/ for updates and contact. 7 | * 8 | * --LICENSE NOTICE-- 9 | * This program is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License 11 | * as published by the Free Software Foundation; either version 2 12 | * of the License, or (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, write to the Free Software 21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 22 | * --LICENSE NOTICE-- 23 | * 24 | */ 25 | 26 | package de.mud.terminal; 27 | 28 | /** 29 | * Generic display 30 | */ 31 | public interface VDUDisplay { 32 | public void redraw(); 33 | public void updateScrollBar(); 34 | 35 | public void setVDUBuffer(VDUBuffer buffer); 36 | public VDUBuffer getVDUBuffer(); 37 | 38 | public void setColor(int index, int red, int green, int blue); 39 | public void resetColors(); 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/res/values-tk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Ýönekeý, güýçli, açyk çeşme SSH müşderisi 4 | SSH birikmelerini we ýüklenen pubkeýleri saklaýar 5 | Ýer eýeleri(Hosts) 6 | Pubkeys 7 | Port maglumaty 8 | Host redaktirläň 9 | Kömek 10 | Reñkler 11 | Renk saýlañ 12 | Sazlamalar 13 | Dörediň 14 | Belli bir mowzuk hakda has giňişleýin maglumat üçin aşakdaky mowzugy saýlaň 15 | Şertler 16 | Maslahat 17 | Host Salgylanmalary 18 | Ýygy-ýygydan ulanylýan SSH Hostlar üçin göni gysga ýollary döretmek üçin Android iş stoluňyzda uzak basyp duruñ 19 | Yzyna aýlaň / Öňe aýlaň 20 | Barmagyňyzy ekranyň sag tarapynda ýokary süýşürseñiz, ýerli terminal bufer taryhynda yza we öňe aýlanmaga mümkinçilik berýär 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/act_pubkeylist.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 26 | 27 | 32 | 33 | 41 | 42 | -------------------------------------------------------------------------------- /app/locale/playstore/cs.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2016-06-12 17:11+0000\n" 7 | "Last-Translator: qwertz \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "První SSH klient pro Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot je mocný open-source Secure Shell (SSH) klient. Dokáže spravovat " 31 | "souběžná připojení k více hostitelům, vytvářet bezpečné tunely a podporuje " 32 | "kopírování/vkládání textu.\n" 33 | "\n" 34 | "Klient umožňuje připojení k SSH službám typicky UNIXových hostitelů." 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/Version.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2018 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import android.content.Context; 21 | import android.content.pm.PackageInfo; 22 | import android.content.pm.PackageManager; 23 | import android.util.Log; 24 | import android.widget.TextView; 25 | 26 | public class Version { 27 | public static final String TAG = "CB/EulaActivity"; 28 | 29 | private Version() { 30 | } 31 | 32 | public static void setVersionText(Context context, TextView textView) { 33 | try { 34 | PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); 35 | textView.setText(pi.versionName); 36 | } catch (PackageManager.NameNotFoundException e) { 37 | Log.i(TAG, "Couldn't get my own package info for some reason"); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/locale/playstore/fr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-10-25 07:40+0000\n" 7 | "Last-Translator: Alex \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Le premier client SSH pour Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot est un client Secure Shell (SSH) open-source puissant. Il permet " 31 | "plusieurs sessions SSH simultanées, créer des tunnels, et copier/coller avec " 32 | "d’autres applications.\n" 33 | "Ce client permet de se connecter à des serveurs SSH (Secure Shell) qui " 34 | "tournent généralement sur un système UNIX." 35 | -------------------------------------------------------------------------------- /app/locale/playstore/ru.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2017-04-26 12:14+0000\n" 7 | "Last-Translator: Timur Gogolev \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Первый SSH-клиент для Andriod" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot - это мощный SSH-клиент с открытым исходным кодом. Он может " 31 | "поддерживать одновременную работу нескольких SSH-сессий, создавать " 32 | "защищённые туннели, копировать их между приложениями.\n" 33 | "\n" 34 | "Клиент позволяет соединяться с SSH-серверами, как правило, работающими на " 35 | "базе UNIX-систем." 36 | -------------------------------------------------------------------------------- /app/locale/playstore/sl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2018-02-14 12:55+0000\n" 7 | "Last-Translator: Matic Gradišer \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Prvi SSH odjemalec za Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot je močan odprtokodni Secure Shell (SSH) odjemalec. Uporaben za " 31 | "sočasne SSH seje, ustvarjanje varnih tunelov, omogoča tudi copy/paste med " 32 | "aplikacijami in mnogo več.\n" 33 | "\n" 34 | "Ta odjemalec omogoča povezave na Secure Shell strežnike, ki tipično tečejo " 35 | "na UNIX baziranih strežnikih." 36 | -------------------------------------------------------------------------------- /app/locale/playstore/it.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2016-11-15 06:33+0000\n" 7 | "Last-Translator: Roberto \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Il primo client SSH per Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot è un potente client per Shell sicura (SSH) con codice aperto. Può " 31 | "gestire sessioni SSH simultanee, creare tunnel sicuri ed eseguire " 32 | "copia/incolla con altre applicazioni.\n" 33 | "\n" 34 | "Questo client consente di connettersi a server Secure Shell che tipicamente " 35 | "girano su server basati su UNIX." 36 | -------------------------------------------------------------------------------- /app/src/main/res/values/notrans.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | ConnectBot 22 | 23 | ConnectBot is provided under the Apache License, Version 2.0 (the “License”). Here are a few key points:\n\nYou may not use this program except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 24 | 25 | -------------------------------------------------------------------------------- /app/locale/playstore/ar.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2018-08-06 14:45+0000\n" 7 | "Last-Translator: Mustafa Wahhudi \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "برنامج عميل بروتوكول النقل الآمن SSH الأول لنظام أندرويد." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "كنكت-بوت هو برنامج عميل لبروتوكول النقل الآمن SSH مفتوح المصدر وفعال. " 31 | "بإمكانه إدارة عدة جلسات SSH في وقت واحد، إنشاء إتصالات النقل النفقي الآمن، " 32 | "والنسخ/اللصق بين التطبيقات الأخرى.\n" 33 | "هذا البرنامج يتيح لك الإتصال مع خوادم بروتوكول النقل الآمن SSH والتي تعمل " 34 | "مبدئياً على الخوادم المبنية على نظام يونكس." 35 | -------------------------------------------------------------------------------- /app/locale/playstore/de.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-03-26 16:11+0000\n" 7 | "Last-Translator: Peter Kornherr \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Der erste SSH Client für Android" 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot ist eine mächtiger, quelloffener SSH Client. Er kann simultane " 31 | "SSH-Sitzungen verwalten, sichere Tunnel aufbauen und beherrscht " 32 | "kopieren/einfügen mit anderen Anwendungen.\n" 33 | "\n" 34 | "Diese Anwendung erlaubt ihnen zu Secure Shell-Servern, die üblicherweise auf " 35 | "UNIX basierenden Servern laufen, zu verbinden." 36 | -------------------------------------------------------------------------------- /app/locale/playstore/tr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2017-01-14 11:43+0000\n" 7 | "Last-Translator: Kudret EMRE \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "Android için ilk SSH istemci." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot güçlü bir açık-kaynak Secure Shell (SSH) istemcisidir. Eş zamanı " 31 | "SSH oturumlarını yönetebilir, güvenli tünel oluşturabilir ve diğer " 32 | "uygulamalar arasında kopyala/yapıştır eylemlerini gerçekleştirebilir.\n" 33 | "\n" 34 | "İstemci ile UNIX tabanlı sunucularda çalışan Secure Shell sunucularına " 35 | "bağlanabilirsiniz." 36 | -------------------------------------------------------------------------------- /app/locale/playstore/pt_BR.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2016-04-13 13:08+0000\n" 7 | "Last-Translator: Ícaro Hoff \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "O primeiro cliente SSH para o Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot é um poderoso cliente Secure Shell (SSH) de código aberto. Ele " 31 | "consegue gerenciar múltiplas sessões simultâneas, criar tunelamentos seguros " 32 | "e copiar/colar entre diversas aplicações.\n" 33 | "\n" 34 | "Esse cliente permite que você conecte à servidores Secure Shell que " 35 | "tipicamente rodam em servidores baseados em UNIX." 36 | -------------------------------------------------------------------------------- /app/locale/playstore/es.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: ConnectBot Play Store files Version 1.2\n" 4 | "Report-Msgid-Bugs-To: \n" 5 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 6 | "PO-Revision-Date: 2015-09-28 11:36+0000\n" 7 | "Last-Translator: manuti \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 13 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 14 | 15 | #. Tag line used in the graphics describing the ConnectBot application. 16 | msgctxt "tag-line" 17 | msgid "The first SSH client for Android." 18 | msgstr "El cliente SSH numero 1 en Android." 19 | 20 | #. A description of the ConnectBot SSH application used in the Play Store. 21 | msgctxt "store-description" 22 | msgid "" 23 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 24 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 25 | "between other applications.\n" 26 | "\n" 27 | "This client allows you to connect to Secure Shell servers that typically run " 28 | "on UNIX-based servers." 29 | msgstr "" 30 | "ConnectBot es un potente cliente SSH (Secure Shell) en código abierto. Puede " 31 | "manejar varias sesiones simultáneas, crear conexiones segurar en modo túnel " 32 | "y permite Copiar/Pegar desde otras aplicaciones.\n" 33 | "\n" 34 | "Este cliente te permite conectarte a los servidores SSH (Secure Shell) que " 35 | "normalmente incluyen los servidores basados en UNIX." 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/bean/AbstractBean.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.bean; 19 | 20 | import java.util.Map.Entry; 21 | 22 | import org.connectbot.util.XmlBuilder; 23 | 24 | import android.content.ContentValues; 25 | 26 | /** 27 | * @author Kenny Root 28 | * 29 | */ 30 | abstract class AbstractBean { 31 | public abstract ContentValues getValues(); 32 | public abstract String getBeanName(); 33 | 34 | public String toXML() { 35 | XmlBuilder xml = new XmlBuilder(); 36 | 37 | xml.append(String.format("<%s>", getBeanName())); 38 | 39 | ContentValues values = getValues(); 40 | for (Entry entry : values.valueSet()) { 41 | Object value = entry.getValue(); 42 | if (value != null) 43 | xml.append(entry.getKey(), value); 44 | } 45 | xml.append(String.format("", getBeanName())); 46 | 47 | return xml.toString(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/locale/playstore/zh_CN.po: -------------------------------------------------------------------------------- 1 | # Chinese (Simplified) translation for connectbot 2 | # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2016-01-25 17:52+0000\n" 12 | "Last-Translator: Kenny Root \n" 13 | "Language-Team: Chinese (Simplified) \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "第一个Android版的SSH客户端。" 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot 是一个功能强大、开源的安全shell (SSH) 客户端。它可以管理同时的多个 SSH " 36 | "会话,创建安全隧道,并可以和其他应用程序间进行 复制/粘贴。\n" 37 | "\n" 38 | "此客户端允许您连接到通常在基于 UNIX 的服务器上运行的安全 Shell 服务器。" 39 | -------------------------------------------------------------------------------- /app/src/main/res/values-ta/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | உதவி 4 | வண்ணங்கள் 5 | நிறத்தை தேர்ந்தெடு 6 | அமைப்புகள் 7 | பக்கத்தின் மேலே 8 | பக்கத்தின் கீழே 9 | விசைப்பலகை குறுக்குவழிகள் 10 | எழுத்துரு அளவை கூட்டு 11 | எழுத்துரு அளவை குறை 12 | உருவாக்கு 13 | கடவுச்சொல்லை மாற்று 14 | புனைப்பெயர்: 15 | கடவுச்சொல்: 16 | மாற்று 17 | அளவு மாற்று 18 | முழுத்திரை 19 | விசைப்பலகை 20 | செயல்நீக்கு 21 | புனைப்பெயர் 22 | சுருக்குதல் 23 | எப்பொழுதும் இணைந்திரு 24 | குறியீட்டு முறை 25 | பயனாளர் பெயர் 26 | புரவல்கணினி 27 | மூடுக 28 | படியெடு 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/EntropyDialog.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2007 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import org.connectbot.R; 21 | 22 | import android.app.Dialog; 23 | import android.content.Context; 24 | import android.view.View; 25 | 26 | public class EntropyDialog extends Dialog implements OnEntropyGatheredListener { 27 | 28 | public EntropyDialog(Context context) { 29 | super(context); 30 | 31 | this.setContentView(R.layout.dia_gatherentropy); 32 | this.setTitle(R.string.pubkey_gather_entropy); 33 | 34 | ((EntropyView) findViewById(R.id.entropy)).addOnEntropyGatheredListener(this); 35 | } 36 | 37 | public EntropyDialog(Context context, View view) { 38 | super(context); 39 | 40 | this.setContentView(view); 41 | this.setTitle(R.string.pubkey_gather_entropy); 42 | 43 | ((EntropyView) findViewById(R.id.entropy)).addOnEntropyGatheredListener(this); 44 | } 45 | 46 | @Override 47 | public void onEntropyGathered(byte[] entropy) { 48 | this.dismiss(); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dia_gatherentropy.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 29 | 30 | 36 | 37 | 45 | 46 | -------------------------------------------------------------------------------- /app/locale/playstore/gl.po: -------------------------------------------------------------------------------- 1 | # Galician translation for connectbot 2 | # Copyright (c) 2017 Rosetta Contributors and Canonical Ltd 2017 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2017-08-24 07:47+0000\n" 12 | "Last-Translator: Hadrián Candela \n" 13 | "Language-Team: Galician \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "O primeiro cliente SSH para Android." 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot é un potente cliente para Secure Shell (SSH) en código aberto. " 36 | "Pode manexar varias sesións SSH simultáneas, crear tuneis seguros e " 37 | "copiar/pegar desde outras aplicacións\n" 38 | "\n" 39 | "Este cliente permite conectarte aos servidores SSH que normalmente funcionan " 40 | "en servidores basados en UNIX." 41 | -------------------------------------------------------------------------------- /app/locale/playstore/eu.po: -------------------------------------------------------------------------------- 1 | # Basque translation for connectbot 2 | # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2015-09-12 12:09+0000\n" 12 | "Last-Translator: Asier Iturralde Sarasola \n" 13 | "Language-Team: Basque \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "Androiderako lehen SSH bezeroa" 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot kode irekiko Secure Shell (SSH) bezero ahaltsua da. Aldibereko " 36 | "SSH saioak kudea ditzake, tunel seguruak sortu eta beste aplikazioen artean " 37 | "kopiatu/itsatsi.\n" 38 | "\n" 39 | "Bezero honek UNIXen oinarritutako zerbitzarietan exekutatu ohi diren Secure " 40 | "Shell zerbitzarietara konektatzeko aukera ematen dizu." 41 | -------------------------------------------------------------------------------- /app/locale/playstore/en_GB.po: -------------------------------------------------------------------------------- 1 | # English (United Kingdom) translation for connectbot 2 | # Copyright (c) 2017 Rosetta Contributors and Canonical Ltd 2017 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2017-12-06 18:45+0000\n" 12 | "Last-Translator: Andi Chandler \n" 13 | "Language-Team: English (United Kingdom) \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "The first SSH client for Android." 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 36 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 37 | "between other applications.\n" 38 | "\n" 39 | "This client allows you to connect to Secure Shell servers that typically run " 40 | "on UNIX-based servers." 41 | -------------------------------------------------------------------------------- /app/locale/playstore/lv.po: -------------------------------------------------------------------------------- 1 | # Latvian translation for connectbot 2 | # Copyright (c) 2024 Rosetta Contributors and Canonical Ltd 2024 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2025-04-03 09:08+0000\n" 12 | "Last-Translator: ℂ𝕠𝕠𝕠𝕝 \n" 13 | "Language-Team: Latvian \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "Pirmais Android SSH klients." 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot - funkcionāls atvērtā koda Secure Shell (SSH) klients. Tas var " 36 | "pieslēgties vienlaicīgi vairākām SSH sesijām, izveidot drošus tuneļus un " 37 | "kopēt/ielīmēt starpliktuves saturu starp dažādām lietotnēm.\n" 38 | "\n" 39 | "Šis klients ļauj izveidot savienojumu ar Secure Shell serveriem, kas parasti " 40 | "darbojas uz UNIX un Linux serveriem." 41 | -------------------------------------------------------------------------------- /app/src/google/java/org/connectbot/util/ProviderLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2017 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import com.google.android.gms.security.ProviderInstaller; 21 | 22 | import android.content.Context; 23 | import android.content.Intent; 24 | 25 | /** 26 | * Created by kenny on 3/2/17. 27 | */ 28 | 29 | public final class ProviderLoader { 30 | public static void load(Context context, ProviderLoaderListener listener) { 31 | ProviderInstaller.installIfNeededAsync(context, new ProviderInstallListenerWrapper(listener)); 32 | } 33 | 34 | private static class ProviderInstallListenerWrapper implements ProviderInstaller.ProviderInstallListener { 35 | private final ProviderLoaderListener mListener; 36 | 37 | public ProviderInstallListenerWrapper(ProviderLoaderListener listener) { 38 | mListener = listener; 39 | } 40 | 41 | @Override 42 | public void onProviderInstalled() { 43 | mListener.onProviderLoaderSuccess(); 44 | } 45 | 46 | @Override 47 | public void onProviderInstallFailed(int i, Intent intent) { 48 | mListener.onProviderLoaderError(); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ci/check-lint-count.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Checks the number of lint issues against historical values. Used in 4 | # Travis CI builds to fail when the number increases by exploiting the 5 | # caching mechanism. 6 | 7 | if [[ $# != 2 || ! -f $1 ]]; then \ 8 | echo "Usage: $0 " 9 | exit 1 10 | fi 11 | 12 | lint_file="$1" 13 | historical_file="$2" 14 | 15 | xqilla="$(which xqilla)" 16 | 17 | if [[ ! -x $xqilla ]]; then \ 18 | echo "Error: cannot find xqilla" 19 | exit 1 20 | fi 21 | 22 | if [[ ! -f $historical_file ]]; then \ 23 | # no cache history, store this one and exit 24 | cp "$lint_file" "$historical_file" 25 | exit 0 26 | fi 27 | 28 | tmp_dir="$(mktemp -d lint.XXXXXXXX)" 29 | trap 'rm -rf $tmp_dir' ERR EXIT 30 | 31 | lint_results="$tmp_dir/lint.txt" 32 | hist_results="$tmp_dir/hist.txt" 33 | 34 | run_query() { 35 | local xqilla_script='string-join(//issue/location/(concat("file=", @file, " line=", @line, " column=", @column, " message=", ../@message)), " ")' 36 | xqilla -i "$1" <(echo "$xqilla_script") | sed "s,$PWD/,,g" > "$2" 37 | } 38 | 39 | run_query "$lint_file" "$lint_results" 40 | run_query "$historical_file" "$hist_results" 41 | 42 | old_count=$(wc -l < "$hist_results") 43 | new_count=$(wc -l < "$lint_results") 44 | 45 | echo "Historical count: $old_count, new count: $new_count" 46 | 47 | if [[ $new_count > $old_count ]]; then \ 48 | echo "FAILURE: lint issues increased from $old_count to $new_count" 49 | diff -u "$hist_results" "$lint_results" 50 | if [[ $TRAVIS_PULL_REQUEST != false ]]; then \ 51 | exit 2 52 | fi 53 | fi 54 | 55 | if [[ $TRAVIS_PULL_REQUEST == false ]]; then \ 56 | # Okay, we either stayed the same or reduced our number. 57 | # Write it out so we can check it next build! 58 | cp "$lint_file" "$historical_file" 59 | fi 60 | -------------------------------------------------------------------------------- /app/locale/playstore/el.po: -------------------------------------------------------------------------------- 1 | # Greek translation for connectbot 2 | # Copyright (c) 2021 Rosetta Contributors and Canonical Ltd 2021 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2021-08-03 15:20+0000\n" 12 | "Last-Translator: konenas \n" 13 | "Language-Team: Greek \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "Ο πρώτος πελάτης SSH για Android." 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "Το ConnectBot είναι ένας ισχυρός πελάτης Secure Shell (SSH) ανοικτού κώδικα. " 36 | "Μπορεί να διαχειρίζεται ταυτόχρονες συνόδους SSH, να δημιουργεί ασφαλείς " 37 | "συνδέσεις και να πραγματοποιεί αντιγραφή/επικόλληση μεταξύ άλλων εφαρμογών.\n" 38 | "\n" 39 | "Αυτός ο πελάτης σας επιτρέπει να συνδέεστε σε διακομιστές Secure Shell που " 40 | "συνήθως εκτελούνται σε διακομιστές που βασίζονται σε UNIX." 41 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/SwitchCompatPreference.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package org.connectbot.util; 18 | 19 | import org.connectbot.R; 20 | 21 | import android.annotation.TargetApi; 22 | import android.content.Context; 23 | import android.os.Build; 24 | import android.preference.CheckBoxPreference; 25 | import android.util.AttributeSet; 26 | 27 | public class SwitchCompatPreference extends CheckBoxPreference { 28 | 29 | public SwitchCompatPreference(Context context, AttributeSet attrs, int defStyleAttr) { 30 | super(context, attrs, defStyleAttr); 31 | init(); 32 | } 33 | 34 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 35 | public SwitchCompatPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 36 | super(context, attrs, defStyleAttr, defStyleRes); 37 | init(); 38 | } 39 | 40 | public SwitchCompatPreference(Context context, AttributeSet attrs) { 41 | super(context, attrs); 42 | init(); 43 | } 44 | 45 | public SwitchCompatPreference(Context context) { 46 | super(context); 47 | init(); 48 | } 49 | 50 | private void init() { 51 | setWidgetLayoutResource(R.layout.switch_compat_preference_layout); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/locale/playstore/vi.po: -------------------------------------------------------------------------------- 1 | # Vietnamese translation for connectbot 2 | # Copyright (c) 2017 Rosetta Contributors and Canonical Ltd 2017 3 | # This file is distributed under the same license as the connectbot package. 4 | # FIRST AUTHOR , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: connectbot\n" 9 | "Report-Msgid-Bugs-To: FULL NAME \n" 10 | "POT-Creation-Date: 2015-03-16 11:12+0000\n" 11 | "PO-Revision-Date: 2017-12-03 09:21+0000\n" 12 | "Last-Translator: Hami \n" 13 | "Language-Team: Vietnamese \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Launchpad-Export-Date: 2025-04-23 04:47+0000\n" 18 | "X-Generator: Launchpad (build e76edd883483c71c468bb038e98836435de44530)\n" 19 | 20 | #. Tag line used in the graphics describing the ConnectBot application. 21 | msgctxt "tag-line" 22 | msgid "The first SSH client for Android." 23 | msgstr "Client SSH đầu tiên dành cho thiết bị chạy hệ điều hành Android." 24 | 25 | #. A description of the ConnectBot SSH application used in the Play Store. 26 | msgctxt "store-description" 27 | msgid "" 28 | "ConnectBot is a powerful open-source Secure Shell (SSH) client. It can " 29 | "manage simultaneous SSH sessions, create secure tunnels, and copy/paste " 30 | "between other applications.\n" 31 | "\n" 32 | "This client allows you to connect to Secure Shell servers that typically run " 33 | "on UNIX-based servers." 34 | msgstr "" 35 | "ConnectBot là dự án mã nguồn mở, cung cấp một client SSH (Secure SHell) mạnh " 36 | "mẽ giúp các thiết bị chạy hệ điều hành Android kết nối với các máy chủ. \n" 37 | "ConnectBot cho phép quản lý nhiều phiên làm việc SSH cùng lúc, tạo ra các " 38 | "kênh truy xuất bảo mật cao, đồng thời còn hỗ trợ copy/paste với các ứng dụng " 39 | "khác.\n" 40 | "ConnectBot giúp bạn tạo kết nối SSH tới các Máy chủ hoạt động trên nền tảng " 41 | "UNIX." 42 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_portforward.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 32 | 33 | 42 | 43 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.com/connectbot/connectbot.svg?branch=master)]( 2 | https://travis-ci.com/connectbot/connectbot) 3 | 4 | # ConnectBot 5 | 6 | ConnectBot is a [Secure Shell](https://en.wikipedia.org/wiki/Secure_Shell) 7 | client for Android that lets you connect to remote servers over a 8 | cryptographically secure link. 9 | 10 | 11 | ## Google Play 12 | 13 | [![Get it on Google Play][2]][1] 14 | 15 | [1]: https://play.google.com/store/apps/details?id=org.connectbot 16 | [2]: https://developer.android.com/images/brand/en_generic_rgb_wo_60.png 17 | 18 | 19 | ## Compiling 20 | 21 | ### Android Studio 22 | 23 | ConnectBot is most easily developed in [Android Studio]( 24 | https://developer.android.com/studio/). You can import this project 25 | directly from its project creation screen by importing from the GitHub URL. 26 | 27 | ### Command line 28 | 29 | To compile ConnectBot using `gradlew`, you must first specify where your 30 | Android SDK is via the `ANDROID_SDK_HOME` environment variable. Then 31 | you can invoke the Gradle wrapper to build: 32 | 33 | ```sh 34 | ./gradlew build 35 | ``` 36 | 37 | ### Reproducing Continuous Integration (CI) builds locally 38 | 39 | To run the Jenkins CI pipeline locally, you can use 40 | `jenkinsfile-runner` via a Docker installation which can be invoked like 41 | this: 42 | 43 | ```sh 44 | docker run -it -v $(pwd):/workspace \ 45 | -v jenkinsfile-runner-cache:/var/jenkinsfile-runner-cache \ 46 | -v jenkinsfile-runner:/var/jenkinsfile-runner \ 47 | -v /var/run/docker.sock:/var/run/docker.sock \ 48 | -v $(which docker):$(which docker) \ 49 | -e ANDROID_ADB_SERVER_ADDRESS=host.docker.internal \ 50 | jenkins/jenkinsfile-runner 51 | ``` 52 | 53 | 54 | ## Translations 55 | 56 | If you'd like to correct or contribute new translations to ConnectBot, 57 | then head on over to [ConnectBot's translations project]( 58 | https://translations.launchpad.net/connectbot/trunk/+pots/fortune) 59 | -------------------------------------------------------------------------------- /ci/builder/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jenkinsci/slave 2 | LABEL MAINTAINER="ConnectBot Developers " 3 | 4 | ENV CI true 5 | ENV ANDROID_HOME /opt/android 6 | ENV ANDROID_SDK_HOME $ANDROID_HOME 7 | ENV ANDROID_NDK_HOME $ANDROID_HOME/ndk-bundle 8 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools 9 | ENV JAVA_OPTS "" 10 | ENV GRADLE_BUILD_CACHE "" 11 | 12 | USER root 13 | 14 | RUN apt-get update && apt-get install -y --no-install-recommends \ 15 | socat \ 16 | && rm -rf /var/lib/apt/lists/* 17 | 18 | RUN mkdir -p $ANDROID_HOME && chown -R jenkins $ANDROID_HOME 19 | USER jenkins 20 | 21 | # Accept Android SDK licenses 22 | RUN mkdir -p $ANDROID_HOME/licenses && \ 23 | echo -ne "\n8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license && \ 24 | echo -ne "\n84831b9409646a918e30573bab4c9c91346d8abd\n504667f4c0de7af1a06de9f4b1727b84351f2910" >> $ANDROID_HOME/licenses/android-sdk-preview-license 25 | 26 | # Install the base part of Android's tools 27 | RUN mkdir -p $ANDROID_HOME && \ 28 | curl -L https://dl.google.com/android/repository/tools_r25.2.3-linux.zip \ 29 | -o $ANDROID_HOME/tools.zip && \ 30 | unzip -oq $ANDROID_HOME/tools.zip -d $ANDROID_HOME && \ 31 | rm -f $ANDROID_HOME/tools.zip 32 | 33 | # Install Android and the things ConnectBot needs 34 | RUN mkdir -p $ANDROID_HOME/.android && \ 35 | touch $ANDROID_HOME/.android/repositories.cfg && \ 36 | $ANDROID_HOME/tools/bin/sdkmanager \ 37 | tools \ 38 | platform-tools \ 39 | emulator \ 40 | 'system-images;android-23;default;x86' \ 41 | 'build-tools;27.0.3' \ 42 | 'platforms;android-27' \ 43 | 'extras;android;m2repository' \ 44 | 'extras;google;m2repository' \ 45 | 'extras;google;google_play_services' \ 46 | ndk-bundle && \ 47 | chown -R jenkins ${ANDROID_HOME} 48 | 49 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/util/TerminalViewPager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.util; 19 | 20 | import android.content.Context; 21 | import androidx.viewpager.widget.ViewPager; 22 | import android.util.AttributeSet; 23 | import android.view.MotionEvent; 24 | 25 | /** 26 | * Custom ViewPager {@link ViewPager} which is used to swipe between TerminalViews 27 | * {@link org.connectbot.TerminalView}. Also allows temporary disabling of paging 28 | * functionality to prevent event intercepts. 29 | * 30 | * @author rhansby 31 | */ 32 | public class TerminalViewPager extends ViewPager { 33 | private boolean enabled; 34 | 35 | public TerminalViewPager(Context context, AttributeSet attrs) { 36 | super(context, attrs); 37 | this.enabled = true; 38 | } 39 | 40 | @Override 41 | public boolean onTouchEvent(MotionEvent event) { 42 | if (this.enabled) { 43 | return super.onTouchEvent(event); 44 | } 45 | 46 | return false; 47 | } 48 | 49 | @Override 50 | public boolean onInterceptTouchEvent(MotionEvent event) { 51 | if (this.enabled) { 52 | return super.onInterceptTouchEvent(event); 53 | } 54 | 55 | return false; 56 | } 57 | 58 | public void setPagingEnabled(boolean enabled) { 59 | this.enabled = enabled; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dia_resize.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 30 | 31 | 37 | 38 | 48 | 49 | 55 | 56 | -------------------------------------------------------------------------------- /app/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 29 | 30 | 38 | 39 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/act_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 25 | 26 | 31 | 32 | 40 | 41 | 49 | 50 | 51 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/SettingsFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2017 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import org.connectbot.util.VolumePreference; 21 | import org.connectbot.util.VolumePreferenceFragment; 22 | 23 | import android.os.Bundle; 24 | import androidx.fragment.app.DialogFragment; 25 | import androidx.preference.Preference; 26 | import androidx.preference.PreferenceFragmentCompat; 27 | 28 | /** 29 | * Created by kenny on 2/20/17. 30 | */ 31 | 32 | public class SettingsFragment extends PreferenceFragmentCompat { 33 | public SettingsFragment() { 34 | } 35 | 36 | /** 37 | * Called when a preference in the tree requests to display a dialog. Subclasses should 38 | * override this method to display custom dialogs or to handle dialogs for custom preference 39 | * classes. 40 | * 41 | * @param preference The Preference object requesting the dialog. 42 | */ 43 | @Override 44 | public void onDisplayPreferenceDialog(Preference preference) { 45 | if (preference instanceof VolumePreference) { 46 | DialogFragment fragment = VolumePreferenceFragment.newInstance(preference); 47 | fragment.setTargetFragment(this, 0); 48 | fragment.show(getFragmentManager(), 49 | "android.support.v7.preference.PreferenceFragment.DIALOG"); 50 | } else { 51 | super.onDisplayPreferenceDialog(preference); 52 | } 53 | } 54 | 55 | @Override 56 | public void onCreatePreferences(Bundle bundle, String rootKey) { 57 | setPreferencesFromResource(R.xml.preferences, rootKey); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/res/values-af/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Gashere 4 | Publieke Sleutels 5 | Poort aansturings 6 | Redigeer Gasheer 7 | Hulp 8 | Kleure 9 | Genereer 10 | Verwyder sleutel 11 | Versamel Ewekansigheid 12 | Raak hierdie boks om ewekansigheid te versamel: %1$d%% voltooi 13 | Om ewekansigheid te verseker gedurende die sleutel generering, beweeg u vinger ewekansig oor die boks hieronder. 14 | Dupliseer privaat sleutel 15 | Dupliseer publieke sleutel 16 | Tap Menu to create\nor import key pairs. 17 | Onbekende formaat 18 | Verander wagwoord 19 | Kies van /sdcard 20 | Ontsluit sleutel 21 | Laai na geheue 22 | Bevestig voor gebruik 23 | Tap Menu to create\nport forwards. 24 | Redigeer poort aansturing 25 | Verwyder poort aanstuur 26 | Bynaam: 27 | Oorsprong poort: 28 | Bestemming: 29 | Ou wagwoord: 30 | Wagwoord: 31 | Tipe: 32 | Nota: wagwoord kan leeg gelos word 33 | 34 | -------------------------------------------------------------------------------- /app/src/androidTest/java/org/connectbot/EditHostActivityTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2017 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import org.connectbot.util.PubkeyDatabase; 21 | import org.junit.Before; 22 | import org.junit.Rule; 23 | import org.junit.Test; 24 | import org.junit.runner.RunWith; 25 | 26 | import android.content.Context; 27 | import android.content.Intent; 28 | import androidx.test.ext.junit.runners.AndroidJUnit4; 29 | import androidx.test.rule.ActivityTestRule; 30 | 31 | import static androidx.test.InstrumentationRegistry.getTargetContext; 32 | import static androidx.test.espresso.Espresso.onView; 33 | import static androidx.test.espresso.action.ViewActions.clearText; 34 | import static androidx.test.espresso.action.ViewActions.click; 35 | import static androidx.test.espresso.action.ViewActions.scrollTo; 36 | import static androidx.test.espresso.matcher.ViewMatchers.withId; 37 | 38 | /** 39 | * Created by kenny on 2/26/17. 40 | */ 41 | @RunWith(AndroidJUnit4.class) 42 | public class EditHostActivityTest { 43 | @Rule 44 | public final ActivityTestRule mActivityRule = new ActivityTestRule<>( 45 | EditHostActivity.class, false, false); 46 | 47 | @Before 48 | public void makeDatabasePristine() { 49 | Context testContext = getTargetContext(); 50 | PubkeyDatabase.resetInMemoryInstance(testContext); 51 | 52 | mActivityRule.launchActivity(new Intent()); 53 | } 54 | 55 | @Test 56 | public void checkFontSizeEntry() throws Exception { 57 | onView(withId(R.id.font_size_text)).perform(scrollTo(), clearText()); 58 | onView(withId(R.id.nickname_field)).perform(click()); 59 | } 60 | } -------------------------------------------------------------------------------- /app/src/main/java/org/connectbot/service/BackupAgent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2010 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot.service; 19 | 20 | import org.connectbot.util.HostDatabase; 21 | import org.connectbot.util.PreferenceConstants; 22 | import org.connectbot.util.PubkeyDatabase; 23 | 24 | import android.app.backup.BackupAgentHelper; 25 | import android.app.backup.FileBackupHelper; 26 | import android.app.backup.SharedPreferencesBackupHelper; 27 | import android.content.SharedPreferences; 28 | import android.preference.PreferenceManager; 29 | import android.util.Log; 30 | 31 | /** 32 | * ConnectBot's backup agent. This is only loaded on API 8 and later by 33 | * reading the AndroidManifest.xml, so it shouldn't affect any minimum 34 | * SDK level. 35 | */ 36 | public class BackupAgent extends BackupAgentHelper { 37 | @Override 38 | public void onCreate() { 39 | Log.d("ConnectBot.BackupAgent", "onCreate called"); 40 | 41 | SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 42 | 43 | SharedPreferencesBackupHelper prefsHelper = new SharedPreferencesBackupHelper(this, getPackageName() + "_preferences"); 44 | addHelper(PreferenceConstants.BACKUP_PREF_KEY, prefsHelper); 45 | 46 | FileBackupHelper hosts = new FileBackupHelper(this, "../databases/" + HostDatabase.DB_NAME); 47 | addHelper(HostDatabase.DB_NAME, hosts); 48 | 49 | if (prefs.getBoolean(PreferenceConstants.BACKUP_KEYS, PreferenceConstants.BACKUP_KEYS_DEFAULT)) { 50 | FileBackupHelper pubkeys = new FileBackupHelper(this, "../databases/" + PubkeyDatabase.DB_NAME); 51 | addHelper(PubkeyDatabase.DB_NAME, pubkeys); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/res/layout/volume_preference_dialog_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 26 | 27 | 39 | 40 | 49 | 50 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /app/src/main/res/layout/act_portforwardlist.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 27 | 28 | 30 | 37 | 38 | 48 | 49 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /app/src/main/java/com/google/ase/Exec.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.ase; 18 | 19 | import java.io.FileDescriptor; 20 | 21 | /** 22 | * Tools for executing commands. 23 | */ 24 | public class Exec { 25 | /** 26 | * @param cmd 27 | * The command to execute 28 | * @param arg0 29 | * The first argument to the command, may be null 30 | * @param arg1 31 | * the second argument to the command, may be null 32 | * @return the file descriptor of the started process. 33 | * 34 | */ 35 | public static FileDescriptor createSubprocess(String cmd, String arg0, String arg1) { 36 | return createSubprocess(cmd, arg0, arg1, null); 37 | } 38 | 39 | /** 40 | * @param cmd 41 | * The command to execute 42 | * @param arg0 43 | * The first argument to the command, may be null 44 | * @param arg1 45 | * the second argument to the command, may be null 46 | * @param processId 47 | * A one-element array to which the process ID of the started process will be written. 48 | * @return the file descriptor of the started process. 49 | * 50 | */ 51 | public static native FileDescriptor createSubprocess(String cmd, String arg0, String arg1, 52 | int[] processId); 53 | 54 | public static native void setPtyWindowSize(FileDescriptor fd, int row, int col, int xpixel, 55 | int ypixel); 56 | 57 | /** 58 | * Causes the calling thread to wait for the process associated with the receiver to finish 59 | * executing. 60 | * 61 | * @return The exit value of the Process being waited on 62 | * 63 | */ 64 | public static native int waitFor(int processId); 65 | 66 | static { 67 | System.loadLibrary("com_google_ase_Exec"); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_checkablemenuitem.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 21 | 22 | 29 | 30 | 37 | 38 | 48 | 49 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /app/src/test/java/org/connectbot/HostListActivityTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConnectBot: simple, powerful, open-source SSH client for Android 3 | * Copyright 2015 Kenny Root, Jeffrey Sharkey 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.connectbot; 19 | 20 | import org.connectbot.service.TerminalManager; 21 | import org.junit.Test; 22 | import org.junit.runner.RunWith; 23 | import org.robolectric.Robolectric; 24 | 25 | import android.app.Application; 26 | import android.content.ComponentName; 27 | import android.content.Intent; 28 | import androidx.test.core.app.ApplicationProvider; 29 | import androidx.test.ext.junit.runners.AndroidJUnit4; 30 | 31 | import static org.junit.Assert.assertTrue; 32 | import static org.mockito.Mockito.mock; 33 | import static org.mockito.Mockito.spy; 34 | import static org.mockito.Mockito.when; 35 | import static org.robolectric.Shadows.shadowOf; 36 | 37 | @RunWith(AndroidJUnit4.class) 38 | public class HostListActivityTest { 39 | private void mockBindToService(TerminalManager terminalManager) { 40 | TerminalManager.TerminalBinder stubBinder = mock(TerminalManager.TerminalBinder.class); 41 | when(stubBinder.getService()).thenReturn(terminalManager); 42 | shadowOf((Application) ApplicationProvider.getApplicationContext()).setComponentNameAndServiceForBindService(new ComponentName("org.connectbot", TerminalManager.class.getName()), stubBinder); 43 | } 44 | 45 | @Test 46 | public void bindsToTerminalManager() { 47 | TerminalManager terminalManager = spy(TerminalManager.class); 48 | mockBindToService(terminalManager); 49 | 50 | HostListActivity activity = Robolectric.buildActivity(HostListActivity.class).create().start().get(); 51 | 52 | Intent serviceIntent = new Intent(activity, TerminalManager.class); 53 | Intent actualIntent = shadowOf(activity).getNextStartedService(); 54 | 55 | assertTrue(actualIntent.filterEquals(serviceIntent)); 56 | } 57 | } -------------------------------------------------------------------------------- /app/src/main/java/org/openintents/intents/FileManagerIntents.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 OpenIntents.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.openintents.intents; 18 | 19 | // Version Dec 9, 2008 20 | 21 | 22 | /** 23 | * Provides OpenIntents actions, extras, and categories used by providers. 24 | *

These specifiers extend the standard Android specifiers.

25 | */ 26 | public final class FileManagerIntents { 27 | 28 | /** 29 | * Activity Action: Pick a file through the file manager, or let user 30 | * specify a custom file name. 31 | * Data is the current file name or file name suggestion. 32 | * Returns a new file name as file URI in data. 33 | * 34 | *

Constant Value: "org.openintents.action.PICK_FILE"

35 | */ 36 | public static final String ACTION_PICK_FILE = "org.openintents.action.PICK_FILE"; 37 | 38 | /** 39 | * Activity Action: Pick a directory through the file manager, or let user 40 | * specify a custom file name. 41 | * Data is the current directory name or directory name suggestion. 42 | * Returns a new directory name as file URI in data. 43 | * 44 | *

Constant Value: "org.openintents.action.PICK_DIRECTORY"

45 | */ 46 | public static final String ACTION_PICK_DIRECTORY = "org.openintents.action.PICK_DIRECTORY"; 47 | 48 | /** 49 | * The title to display. 50 | * 51 | *

This is shown in the title bar of the file manager.

52 | * 53 | *

Constant Value: "org.openintents.extra.TITLE"

54 | */ 55 | public static final String EXTRA_TITLE = "org.openintents.extra.TITLE"; 56 | 57 | /** 58 | * The text on the button to display. 59 | * 60 | *

Depending on the use, it makes sense to set this to "Open" or "Save".

61 | * 62 | *

Constant Value: "org.openintents.extra.BUTTON_TEXT"

63 | */ 64 | public static final String EXTRA_BUTTON_TEXT = "org.openintents.extra.BUTTON_TEXT"; 65 | 66 | } 67 | --------------------------------------------------------------------------------