UI: Better preview in CustomizeActivity
This commit is contained in:
@ -8,8 +8,8 @@ android {
|
||||
applicationId "io.neoterm"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 26
|
||||
versionCode 26
|
||||
versionName "1.2.4"
|
||||
versionCode 27
|
||||
versionName "1.2.5"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
resConfigs "zh-rCN", "zh-rTW"
|
||||
externalNativeBuild {
|
||||
|
@ -163,12 +163,13 @@ open class ShellTermSession private constructor(shellPath: String, cwd: String,
|
||||
val androidDataEnv = "ANDROID_DATA=" + System.getenv("ANDROID_DATA")
|
||||
val externalStorageEnv = "EXTERNAL_STORAGE=" + System.getenv("EXTERNAL_STORAGE")
|
||||
|
||||
// PY Trace: Some programs support NeoTerm in a special way.
|
||||
// PY Trade: Some programs support NeoTerm in a special way.
|
||||
val neotermIdEnv = "__NEOTERM=1"
|
||||
|
||||
return if (systemShell) {
|
||||
val pathEnv = "PATH=" + System.getenv("PATH")
|
||||
arrayOf(termEnv, homeEnv, androidRootEnv, androidDataEnv, externalStorageEnv, pathEnv, neotermIdEnv)
|
||||
arrayOf(termEnv, homeEnv, androidRootEnv, androidDataEnv,
|
||||
externalStorageEnv, pathEnv, neotermIdEnv)
|
||||
|
||||
} else {
|
||||
val ps1Env = "PS1=$ "
|
||||
@ -177,42 +178,21 @@ open class ShellTermSession private constructor(shellPath: String, cwd: String,
|
||||
val ldEnv = "LD_LIBRARY_PATH=" + buildLdLibraryEnv()
|
||||
val pwdEnv = "PWD=" + cwd
|
||||
val tmpdirEnv = "TMPDIR=${NeoTermPath.USR_PATH}/tmp"
|
||||
val originPathEnv = "__NEOTERM_ORIGIN_PATH=" + System.getenv("PATH")
|
||||
val originLdEnv = "__NEOTERM_ORIGIN_LD_LIBRARY_PATH=" + System.getenv("LD_LIBRARY_PATH")
|
||||
|
||||
arrayOf(termEnv, homeEnv, ps1Env, ldEnv, langEnv, pathEnv, pwdEnv, androidRootEnv, androidDataEnv, externalStorageEnv, tmpdirEnv, neotermIdEnv)
|
||||
arrayOf(termEnv, homeEnv, ps1Env, ldEnv, langEnv, pathEnv, pwdEnv,
|
||||
androidRootEnv, androidDataEnv, externalStorageEnv,
|
||||
tmpdirEnv, neotermIdEnv, originPathEnv, originLdEnv)
|
||||
}
|
||||
}
|
||||
|
||||
private fun buildLdLibraryEnv(): String {
|
||||
val builder = StringBuilder("${NeoTermPath.USR_PATH}/lib")
|
||||
|
||||
val programSelection = NeoPreference.loadString(R.string.key_general_program_selection, NeoPreference.VALUE_NEOTERM_ONLY)
|
||||
val systemPath = System.getenv("LD_LIBRARY_PATH")
|
||||
|
||||
if (programSelection != NeoPreference.VALUE_NEOTERM_ONLY) {
|
||||
builder.append(":$systemPath")
|
||||
}
|
||||
|
||||
return builder.toString()
|
||||
return "${NeoTermPath.USR_PATH}/lib"
|
||||
}
|
||||
|
||||
private fun buildPathEnv(): String {
|
||||
val builder = StringBuilder()
|
||||
val programSelection = NeoPreference.loadString(R.string.key_general_program_selection, NeoPreference.VALUE_NEOTERM_ONLY)
|
||||
val basePath = "${NeoTermPath.USR_PATH}/bin:${NeoTermPath.USR_PATH}/bin/applets"
|
||||
val systemPath = System.getenv("PATH")
|
||||
|
||||
when (programSelection) {
|
||||
NeoPreference.VALUE_NEOTERM_ONLY -> {
|
||||
builder.append(basePath)
|
||||
}
|
||||
NeoPreference.VALUE_NEOTERM_FIRST -> {
|
||||
builder.append("$basePath:$systemPath")
|
||||
}
|
||||
NeoPreference.VALUE_SYSTEM_FIRST -> {
|
||||
builder.append("$systemPath:$basePath")
|
||||
}
|
||||
}
|
||||
return builder.toString()
|
||||
return "${NeoTermPath.USR_PATH}/bin:${NeoTermPath.USR_PATH}/bin/applets"
|
||||
}
|
||||
}
|
||||
}
|
@ -32,16 +32,17 @@ open class BaseCustomizeActivity : AppCompatActivity() {
|
||||
setSupportActionBar(toolbar)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
terminalView = findViewById<TerminalView>(R.id.terminal_view)
|
||||
extraKeysView = findViewById<ExtraKeysView>(R.id.custom_extra_keys)
|
||||
terminalView = findViewById(R.id.terminal_view)
|
||||
extraKeysView = findViewById(R.id.custom_extra_keys)
|
||||
viewClient = BasicViewClient(terminalView)
|
||||
sessionCallback = BasicSessionCallback(terminalView)
|
||||
TerminalUtils.setupTerminalView(terminalView, viewClient)
|
||||
TerminalUtils.setupExtraKeysView(extraKeysView)
|
||||
|
||||
val script = resources.getStringArray(R.array.custom_preview_script_colors)
|
||||
val parameter = ShellParameter()
|
||||
.executablePath("${NeoTermPath.USR_PATH}/bin/applets/echo")
|
||||
.arguments(arrayOf("echo", "Hello NeoTerm."))
|
||||
.arguments(arrayOf("echo", "-e", *script))
|
||||
.callback(sessionCallback)
|
||||
.systemShell(false)
|
||||
|
||||
|
@ -16,8 +16,6 @@
|
||||
<string name="pref_general_shell_desc">登录时使用指定的程序</string>
|
||||
<string name="pref_general_vibrate">振动</string>
|
||||
<string name="pref_general_vibrate_desc">收到 \'\\a\' 时振动</string>
|
||||
<string name="pref_general_program_selection">程序选择模式</string>
|
||||
<string name="pref_general_program_selection_desc">当 NeoTerm 和 系统 中都含有同一个程序时,选择将要被执行的程序的模式</string>
|
||||
<string name="pref_general_initial_command">初始命令</string>
|
||||
<string name="pref_general_initial_command_desc">在新的会话创建时执行命令</string>
|
||||
<string name="pref_general_volume_as_control">将音量键作为特殊键</string>
|
||||
@ -54,11 +52,6 @@
|
||||
<string name="menu_update">更新并刷新</string>
|
||||
<string name="float_up">浮动窗口</string>
|
||||
|
||||
<string-array name="pref_general_program_selection_entries">
|
||||
<item>只使用 NeoTerm</item>
|
||||
<item>优先使用 NeoTerm</item>
|
||||
<item>优先使用 System</item>
|
||||
</string-array>
|
||||
<string name="done">完成</string>
|
||||
<string name="install">安装</string>
|
||||
|
||||
@ -153,4 +146,24 @@
|
||||
<item>亮青色</item>
|
||||
<item>亮白色</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="custom_preview_script_colors">
|
||||
<item>你好 NeoTerm\\n</item>
|
||||
<item>"\\e[30m 黑色 \\e[0m\\n"</item>
|
||||
<item>"\\e[31m 红色 \\e[0m\\n"</item>
|
||||
<item>"\\e[32m 绿色 \\e[0m\\n"</item>
|
||||
<item>"\\e[33m 黄色 \\e[0m\\n"</item>
|
||||
<item>"\\e[34m 蓝色 \\e[0m\\n"</item>
|
||||
<item>"\\e[35m 洋红色 \\e[0m\\n"</item>
|
||||
<item>"\\e[36m 青色 \\e[0m\\n"</item>
|
||||
<item>"\\e[37m 白色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;30m 亮黑色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;31m 亮红色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;32m 亮绿色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;33m 亮黄色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;34m 亮蓝色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;35m 亮洋红色\\e[0m\\n"</item>
|
||||
<item>"\\e[1;36m 亮青色 \\e[0m\\n"</item>
|
||||
<item>"\\e[1;37m 亮白色 \\e[0m\\n"</item>
|
||||
</string-array>
|
||||
</resources>
|
@ -16,8 +16,6 @@
|
||||
<string name="pref_general_shell_desc">登入時使用指定的程式</string>
|
||||
<string name="pref_general_vibrate">震動</string>
|
||||
<string name="pref_general_vibrate_desc">收到 \'\\a\' 時震動</string>
|
||||
<string name="pref_general_program_selection">程式選擇模式</string>
|
||||
<string name="pref_general_program_selection_desc">當 NeoTerm 和 系統 都有同一個程式時,選擇要被執行的程式模式</string>
|
||||
<string name="pref_general_initial_command">初始化指令</string>
|
||||
<string name="pref_general_initial_command_desc">在新的創建新的會話時執行指令</string>
|
||||
<string name="pref_general_volume_as_control">將音量鍵作為特殊鍵</string>
|
||||
@ -54,11 +52,6 @@
|
||||
<string name="menu_update">更新並重新整理</string>
|
||||
<string name="float_up">懸浮視窗</string>
|
||||
|
||||
<string-array name="pref_general_program_selection_entries">
|
||||
<item>只使用 NeoTerm</item>
|
||||
<item>優先使用 NeoTerm</item>
|
||||
<item>優先使用 System</item>
|
||||
</string-array>
|
||||
<string name="done">完成</string>
|
||||
<string name="install">安裝</string>
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
<string name="key_general_vibrate" translatable="false">neoterm_general_vibrate</string>
|
||||
<string name="key_generaL_backspace_map_to_esc" translatable="false">neoterm_general_backspace_map_to_esc</string>
|
||||
<string name="key_general_shell" translatable="false">neoterm_general_shell</string>
|
||||
<string name="key_general_program_selection" translatable="false">neoterm_general_program_selection</string>
|
||||
<string name="key_general_initial_command" translatable="false">neoterm_general_initial_command</string>
|
||||
<string name="key_general_auto_completion" translatable="false">neoterm_general_auto_completion</string>
|
||||
<string name="key_general_volume_as_control" translatable="false">neoterm_general_volume_as_control</string>
|
||||
|
@ -63,8 +63,6 @@
|
||||
<string name="pref_general_backspace_map_to_esc_desc">Send esc when backspace is pressed</string>
|
||||
<string name="pref_general_shell">Login Program</string>
|
||||
<string name="pref_general_shell_desc">Which program should we use as shell when login</string>
|
||||
<string name="pref_general_program_selection">Program Selection</string>
|
||||
<string name="pref_general_program_selection_desc">When both Neo Term and your Android OS have a program, which one should we choose?</string>
|
||||
<string name="pref_general_initial_command">Initial Command</string>
|
||||
<string name="pref_general_initial_command_desc">Execute commands when a session is being created</string>
|
||||
<string name="pref_general_auto_completion">Auto Completion(Experimental)</string>
|
||||
@ -137,20 +135,6 @@
|
||||
<item>zsh</item>
|
||||
<item>bash</item>
|
||||
<item>fish</item>
|
||||
<item>dash</item>
|
||||
<item>mosh</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="pref_general_program_selection_values" translatable="false">
|
||||
<item>NeoTermOnly</item>
|
||||
<item>NeoTermFirst</item>
|
||||
<item>SystemFirst</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="pref_general_program_selection_entries">
|
||||
<item>NeoTerm Only</item>
|
||||
<item>NeoTerm First</item>
|
||||
<item>System First</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="pref_package_source_entries" translatable="false">
|
||||
@ -185,4 +169,24 @@
|
||||
<item>Bright white</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="custom_preview_script_colors">
|
||||
<item>Hello NeoTerm\\n</item>
|
||||
<item>"\\e[30m Dim black \\e[0m\\n"</item>
|
||||
<item>"\\e[31m Dim red \\e[0m\\n"</item>
|
||||
<item>"\\e[32m Dim green \\e[0m\\n"</item>
|
||||
<item>"\\e[33m Dim yellow \\e[0m\\n"</item>
|
||||
<item>"\\e[34m Dim blue \\e[0m\\n"</item>
|
||||
<item>"\\e[35m Dim magenta \\e[0m\\n"</item>
|
||||
<item>"\\e[36m Dim cyan \\e[0m\\n"</item>
|
||||
<item>"\\e[37m Dim white \\e[0m\\n"</item>
|
||||
<item>"\\e[1;30m Bright black \\e[0m\\n"</item>
|
||||
<item>"\\e[1;31m Bright red \\e[0m\\n"</item>
|
||||
<item>"\\e[1;32m Bright green \\e[0m\\n"</item>
|
||||
<item>"\\e[1;33m Bright yellow \\e[0m\\n"</item>
|
||||
<item>"\\e[1;34m Bright blue \\e[0m\\n"</item>
|
||||
<item>"\\e[1;35m Bright magenta\\e[0m\\n"</item>
|
||||
<item>"\\e[1;36m Bright cyan \\e[0m\\n"</item>
|
||||
<item>"\\e[1;37m Bright white \\e[0m\\n"</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
@ -43,12 +43,4 @@
|
||||
android:summary="@string/pref_general_auto_completion_desc"
|
||||
android:title="@string/pref_general_auto_completion" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="NeoTermOnly"
|
||||
android:entries="@array/pref_general_program_selection_entries"
|
||||
android:entryValues="@array/pref_general_program_selection_values"
|
||||
android:key="@string/key_general_program_selection"
|
||||
android:summary="@string/pref_general_program_selection_desc"
|
||||
android:title="@string/pref_general_program_selection" />
|
||||
|
||||
</PreferenceScreen>
|
Reference in New Issue
Block a user