Commit Graph

3 Commits

Author SHA1 Message Date
2a75f886e4 Terminal: tampilkan soft keyboard + perbaiki scroll & newline
PROBLEM: setelah konek SSH, prompt tidak keluar & keyboard tidak muncul.

FIX (input):
- TerminalView: implementasi InputConnection (BaseInputConnection) jadi soft
  keyboard bisa muncul; onCheckIsTextEditor=true; commitText/key events
  diteruskan ke SSH session (onKeyInput). Handle hardware keyboard: Ctrl+letter
  -> ascii control, Enter/panah/PgUp/PgDn/Home/End/Esc/Tab/Del.
- TerminalController.attach(): hubungkan view.onKeyInput -> engine.write()
- TerminalActivity: requestFocus() + showKeyboard() saat 'Terhubung'.

FIX (render — bug ditemukan via unit test baru):
- TerminalModel.write('\n') kini reset cursorCol=0 (LF berperilaku seperti
  LF+CR). Sebelumnya LF tidak reset kolom sehingga baris lanjutan ditulis di
  posisi salah & scroll ganda terjadi.
- TerminalModel.scrollUp() tidak lagi mengubah cursorRow (pemanggil yang atur).
- Tambah 8+ unit test (TerminalParserTest): prompt shell, CRLF, truecolor SGR,
  erase, scroll, multiline. Semua 10 lulus.

verified: gradle :app:testDebugUnitTest BUILD SUCCESSFUL (10 tests, 0 fail);
gradle :app:assembleDebug BUILD SUCCESSFUL.
2026-08-31 00:20:04 +07:00
1040b19448 perbaikan dari gemini 2026-08-31 00:10:34 +07:00
c0c6dab473 SSH Mobile Client Android v1.0: terminal interaktif + SSH engine + profil tersimpan
- SSH 2.x via sshj, PTY xterm-256color interaktif
- Terminal emulator self-contained (model + parser ANSI + custom View):
  16/256/TrueColor, cursor, clear, scrollback, seleksi+copas, pinch-zoom
- SSH engine: auth password/private-key, reconnect dengan backoff, keep-alive 60s
- Profil server tersimpan dengan kredensial terenkripsi (EncryptedSharedPreferences)
- UI: daftar profil, editor profil, layar terminal + keyboard khusus + toolbar
- 6 tema terminal build-in + font monospace
- Build terverifikasi: assembleDebug SUCCESS, lintDebug 0 error (APK 11MB)
2026-08-30 14:56:46 +07:00