This commit is contained in:
+2
-2
@@ -4,11 +4,11 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace 'org.pubvm.a3270'
|
||||
namespace 'haus.nightmare.a3270'
|
||||
compileSdk 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId "org.pubvm.a3270"
|
||||
applicationId "haus.nightmare.a3270"
|
||||
minSdk 24
|
||||
targetSdk 34
|
||||
versionCode 4
|
||||
|
||||
+12
-12
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270
|
||||
package haus.nightmare.a3270
|
||||
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
@@ -23,18 +23,18 @@ import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import android.content.Context
|
||||
import android.view.KeyCharacterMap
|
||||
import org.lib3270j.protocol.DS3270Constants.*
|
||||
import org.pubvm.a3270.service.TerminalService
|
||||
import org.pubvm.a3270.storage.HostStorage
|
||||
import org.pubvm.a3270.ui.ConnectDialog
|
||||
import org.pubvm.a3270.ui.FileTransferDialog
|
||||
import org.pubvm.a3270.ui.OiaStatusBar
|
||||
import org.pubvm.a3270.ui.SettingsDialog
|
||||
import org.pubvm.a3270.ui.TerminalInputView
|
||||
import org.pubvm.a3270.ui.TerminalView
|
||||
import org.pubvm.a3270.ui.TwoRowKeyBar
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.*
|
||||
import haus.nightmare.a3270.service.TerminalService
|
||||
import haus.nightmare.a3270.storage.HostStorage
|
||||
import haus.nightmare.a3270.ui.ConnectDialog
|
||||
import haus.nightmare.a3270.ui.FileTransferDialog
|
||||
import haus.nightmare.a3270.ui.OiaStatusBar
|
||||
import haus.nightmare.a3270.ui.SettingsDialog
|
||||
import haus.nightmare.a3270.ui.TerminalInputView
|
||||
import haus.nightmare.a3270.ui.TerminalView
|
||||
import haus.nightmare.a3270.ui.TwoRowKeyBar
|
||||
|
||||
import org.pubvm.a3270.ui.UntrustedCertificateDialog
|
||||
import haus.nightmare.a3270.ui.UntrustedCertificateDialog
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
+17
-17
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270
|
||||
package haus.nightmare.a3270
|
||||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
@@ -11,19 +11,19 @@ import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.lib3270j.ConnectionConfig
|
||||
import org.lib3270j.ConnectionState
|
||||
import org.lib3270j.Telnet3270Client
|
||||
import org.lib3270j.TerminalModel
|
||||
import org.lib3270j.ft.FTConfig
|
||||
import org.lib3270j.listener.ConnectionListener
|
||||
import org.lib3270j.listener.ScreenUpdateListener
|
||||
import org.lib3270j.protocol.DS3270Constants.AID_ENTER
|
||||
import org.lib3270j.protocol.DS3270Constants.faIsProtected
|
||||
import org.lib3270j.screen.ScreenBuffer
|
||||
import org.pubvm.a3270.ft.FileTransfer
|
||||
import org.pubvm.a3270.service.TerminalService
|
||||
import org.pubvm.a3270.storage.AppSettings
|
||||
import haus.nightmare.lib3270j.ConnectionConfig
|
||||
import haus.nightmare.lib3270j.ConnectionState
|
||||
import haus.nightmare.lib3270j.Telnet3270Client
|
||||
import haus.nightmare.lib3270j.TerminalModel
|
||||
import haus.nightmare.lib3270j.ft.FTConfig
|
||||
import haus.nightmare.lib3270j.listener.ConnectionListener
|
||||
import haus.nightmare.lib3270j.listener.ScreenUpdateListener
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.AID_ENTER
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.faIsProtected
|
||||
import haus.nightmare.lib3270j.screen.ScreenBuffer
|
||||
import haus.nightmare.a3270.ft.FileTransfer
|
||||
import haus.nightmare.a3270.service.TerminalService
|
||||
import haus.nightmare.a3270.storage.AppSettings
|
||||
import java.io.File
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.logging.Logger
|
||||
@@ -325,7 +325,7 @@ class TerminalViewModel(application: Application) : AndroidViewModel(application
|
||||
val effectiveTn3270e = tn3270e && parsedConfig.isTn3270eEnabled
|
||||
val globalVerify = AppSettings.isVerifyCertsEnabled(getApplication())
|
||||
val effectiveVerify = tlsVerifyCert && globalVerify
|
||||
val gMode = org.lib3270j.graphics.GraphicsMode.fromString(graphicsModeStr)
|
||||
val gMode = haus.nightmare.lib3270j.graphics.GraphicsMode.fromString(graphicsModeStr)
|
||||
|
||||
_isTlsActive.value = effectiveTls
|
||||
_isTlsVerified.value = effectiveVerify
|
||||
@@ -341,7 +341,7 @@ class TerminalViewModel(application: Application) : AndroidViewModel(application
|
||||
graphicsMode = gMode
|
||||
}
|
||||
|
||||
config.certificateVerifier = org.lib3270j.tls.TlsCertificateVerifier { chain, _, exception ->
|
||||
config.certificateVerifier = haus.nightmare.lib3270j.tls.TlsCertificateVerifier { chain, _, exception ->
|
||||
if (!AppSettings.isVerifyCertsEnabled(getApplication())) {
|
||||
log.info("Certificate verification bypassed via global AppSettings")
|
||||
return@TlsCertificateVerifier true
|
||||
@@ -642,7 +642,7 @@ class TerminalViewModel(application: Application) : AndroidViewModel(application
|
||||
inputChannel.trySend(TerminalInputAction.LightPenSelect(baddr))
|
||||
}
|
||||
|
||||
fun getGocaDecoder(): org.lib3270j.graphics.GocaDecoder? = client?.gocaDecoder
|
||||
fun getGocaDecoder(): haus.nightmare.lib3270j.graphics.GocaDecoder? = client?.gocaDecoder
|
||||
|
||||
fun handleGraphicTouch(px: Int, py: Int, button: Int = 1, shift: Boolean = false, ctrl: Boolean = false) {
|
||||
val c = client ?: return
|
||||
+6
-6
@@ -1,12 +1,12 @@
|
||||
package org.pubvm.a3270.ft
|
||||
package haus.nightmare.a3270.ft
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import org.lib3270j.Telnet3270Client
|
||||
import org.lib3270j.ft.FTConfig
|
||||
import org.lib3270j.ft.FTConstants.FTState
|
||||
import org.lib3270j.ft.FTCut
|
||||
import org.lib3270j.ft.FTDft
|
||||
import haus.nightmare.lib3270j.Telnet3270Client
|
||||
import haus.nightmare.lib3270j.ft.FTConfig
|
||||
import haus.nightmare.lib3270j.ft.FTConstants.FTState
|
||||
import haus.nightmare.lib3270j.ft.FTCut
|
||||
import haus.nightmare.lib3270j.ft.FTDft
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.util.Timer
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.service
|
||||
package haus.nightmare.a3270.service
|
||||
|
||||
import android.app.Notification
|
||||
import android.app.NotificationChannel
|
||||
@@ -10,8 +10,8 @@ import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.IBinder
|
||||
import androidx.core.app.NotificationCompat
|
||||
import org.pubvm.a3270.MainActivity
|
||||
import org.pubvm.a3270.R
|
||||
import haus.nightmare.a3270.MainActivity
|
||||
import haus.nightmare.a3270.R
|
||||
|
||||
class TerminalService : Service() {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.storage
|
||||
package haus.nightmare.a3270.storage
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.storage
|
||||
package haus.nightmare.a3270.storage
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
@@ -26,8 +26,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import org.pubvm.a3270.storage.HostStorage
|
||||
import org.pubvm.a3270.storage.SavedHost
|
||||
import haus.nightmare.a3270.storage.HostStorage
|
||||
import haus.nightmare.a3270.storage.SavedHost
|
||||
|
||||
private val TerminalKeyboardOptions = KeyboardOptions(
|
||||
capitalization = KeyboardCapitalization.None,
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
@@ -15,8 +15,8 @@ import androidx.compose.ui.text.input.KeyboardCapitalization
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.lib3270j.ft.FTConfig
|
||||
import org.pubvm.a3270.FTProgressState
|
||||
import haus.nightmare.lib3270j.ft.FTConfig
|
||||
import haus.nightmare.a3270.FTProgressState
|
||||
|
||||
private val TerminalKeyboardOptions = KeyboardOptions(
|
||||
capitalization = KeyboardCapitalization.None,
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import android.view.HapticFeedbackConstants
|
||||
import androidx.compose.foundation.background
|
||||
@@ -15,8 +15,8 @@ import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.lib3270j.ConnectionState
|
||||
import org.lib3270j.protocol.DS3270Constants.*
|
||||
import haus.nightmare.lib3270j.ConnectionState
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.*
|
||||
|
||||
@Composable
|
||||
fun TwoRowKeyBar(
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.*
|
||||
@@ -13,7 +13,7 @@ import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.lib3270j.ConnectionState
|
||||
import haus.nightmare.lib3270j.ConnectionState
|
||||
|
||||
@Composable
|
||||
fun OiaStatusBar(
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.text.InputType
|
||||
@@ -8,7 +8,7 @@ import android.view.inputmethod.BaseInputConnection
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.view.inputmethod.InputConnection
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import org.lib3270j.protocol.DS3270Constants.AID_ENTER
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.AID_ENTER
|
||||
|
||||
/**
|
||||
* Custom InputConnection for Termux-style terminal keyboard interaction.
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import android.graphics.Paint
|
||||
import android.graphics.Typeface
|
||||
@@ -25,9 +25,9 @@ import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.delay
|
||||
import org.lib3270j.protocol.DS3270Constants.*
|
||||
import org.lib3270j.screen.ExtendedAttribute
|
||||
import org.lib3270j.screen.ScreenBuffer
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.*
|
||||
import haus.nightmare.lib3270j.screen.ExtendedAttribute
|
||||
import haus.nightmare.lib3270j.screen.ScreenBuffer
|
||||
|
||||
// Standard 3279 Host Colors (16-color palette)
|
||||
private val HOST_COLORS = arrayOf(
|
||||
@@ -58,9 +58,9 @@ fun TerminalView(
|
||||
cols: Int,
|
||||
cursorAddr: Int,
|
||||
screenVersion: Long,
|
||||
programSymbolManager: org.lib3270j.graphics.ProgramSymbolManager? = null,
|
||||
graphicsPlane: org.lib3270j.graphics.GraphicsPlane? = null,
|
||||
gocaDecoder: org.lib3270j.graphics.GocaDecoder? = null,
|
||||
programSymbolManager: haus.nightmare.lib3270j.graphics.ProgramSymbolManager? = null,
|
||||
graphicsPlane: haus.nightmare.lib3270j.graphics.GraphicsPlane? = null,
|
||||
gocaDecoder: haus.nightmare.lib3270j.graphics.GocaDecoder? = null,
|
||||
isLightPenMode: Boolean = false,
|
||||
maskHiddenFields: Boolean = true,
|
||||
blinkCursor: Boolean = true,
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.pubvm.a3270.ui
|
||||
package haus.nightmare.a3270.ui
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
+7
-7
@@ -1,13 +1,13 @@
|
||||
package org.pubvm.a3270
|
||||
package haus.nightmare.a3270
|
||||
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.lib3270j.TerminalModel
|
||||
import org.lib3270j.charset.EbcdicTranslator
|
||||
import org.lib3270j.input.InputProcessor
|
||||
import org.lib3270j.protocol.DS3270Constants.*
|
||||
import org.lib3270j.screen.ScreenBuffer
|
||||
import haus.nightmare.lib3270j.TerminalModel
|
||||
import haus.nightmare.lib3270j.charset.EbcdicTranslator
|
||||
import haus.nightmare.lib3270j.input.InputProcessor
|
||||
import haus.nightmare.lib3270j.protocol.DS3270Constants.*
|
||||
import haus.nightmare.lib3270j.screen.ScreenBuffer
|
||||
|
||||
class HardwareKeyboardInputTest {
|
||||
|
||||
@@ -171,7 +171,7 @@ class HardwareKeyboardInputTest {
|
||||
// Field 1 at pos 0: Selectable Unprotected (FA_INT_HIGH)
|
||||
// Designator at pos 1: '?' (EBCDIC 0x6F)
|
||||
val fa = (FA_PRINTABLE or FA_INT_HIGH_SEL).toByte()
|
||||
assertTrue(org.lib3270j.protocol.DS3270Constants.faIsSelectable(fa.toInt() and 0xFF))
|
||||
assertTrue(haus.nightmare.lib3270j.protocol.DS3270Constants.faIsSelectable(fa.toInt() and 0xFF))
|
||||
|
||||
screenBuffer.setCellFA(0, fa)
|
||||
screenBuffer.getCell(1).ucs4 = '?'
|
||||
Reference in New Issue
Block a user