|
@@ -3,11 +3,15 @@ package com.vpn.fastestvpnservice.screensTV
|
|
import android.content.Context
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.content.Intent
|
|
import android.util.Log
|
|
import android.util.Log
|
|
|
|
+import android.widget.Toast
|
|
import androidx.compose.foundation.BorderStroke
|
|
import androidx.compose.foundation.BorderStroke
|
|
import androidx.compose.foundation.Image
|
|
import androidx.compose.foundation.Image
|
|
import androidx.compose.foundation.background
|
|
import androidx.compose.foundation.background
|
|
import androidx.compose.foundation.border
|
|
import androidx.compose.foundation.border
|
|
|
|
+import androidx.compose.foundation.clickable
|
|
|
|
+import androidx.compose.foundation.focusable
|
|
import androidx.compose.foundation.gestures.detectTapGestures
|
|
import androidx.compose.foundation.gestures.detectTapGestures
|
|
|
|
+import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.Box
|
|
import androidx.compose.foundation.layout.Box
|
|
import androidx.compose.foundation.layout.BoxScope
|
|
import androidx.compose.foundation.layout.BoxScope
|
|
@@ -31,16 +35,27 @@ import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Surface
|
|
import androidx.compose.material3.Surface
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.Composable
|
|
|
|
+import androidx.compose.runtime.LaunchedEffect
|
|
|
|
+import androidx.compose.runtime.getValue
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
|
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
|
+import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
|
|
+import androidx.compose.runtime.setValue
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.draw.alpha
|
|
import androidx.compose.ui.draw.alpha
|
|
import androidx.compose.ui.draw.clip
|
|
import androidx.compose.ui.draw.clip
|
|
import androidx.compose.ui.draw.paint
|
|
import androidx.compose.ui.draw.paint
|
|
|
|
+import androidx.compose.ui.focus.FocusRequester
|
|
|
|
+import androidx.compose.ui.focus.focusRequester
|
|
|
|
+import androidx.compose.ui.focus.onFocusChanged
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.ColorFilter
|
|
import androidx.compose.ui.graphics.ColorFilter
|
|
import androidx.compose.ui.graphics.painter.Painter
|
|
import androidx.compose.ui.graphics.painter.Painter
|
|
|
|
+import androidx.compose.ui.input.key.Key
|
|
|
|
+import androidx.compose.ui.input.key.key
|
|
|
|
+import androidx.compose.ui.input.key.onKeyEvent
|
|
import androidx.compose.ui.input.pointer.pointerInput
|
|
import androidx.compose.ui.input.pointer.pointerInput
|
|
import androidx.compose.ui.layout.ContentScale
|
|
import androidx.compose.ui.layout.ContentScale
|
|
import androidx.compose.ui.platform.LocalContext
|
|
import androidx.compose.ui.platform.LocalContext
|
|
@@ -66,6 +81,7 @@ import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.blueBackground
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.isServerDialog
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.isServerDialog
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.serverObj
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.serverObj
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.vpnConnectionsUtil
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.vpnConnectionsUtil
|
|
|
|
+import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
import com.vpn.fastestvpnservice.ui.theme.customTypography
|
|
import com.vpn.fastestvpnservice.ui.theme.customTypography
|
|
import com.vpn.fastestvpnservice.utils.Utils
|
|
import com.vpn.fastestvpnservice.utils.Utils
|
|
@@ -86,6 +102,14 @@ fun HomeTV(navHostController: NavHostController) {
|
|
}
|
|
}
|
|
var isConnect: Int? = homeViewModel.isConnect.observeAsState().value
|
|
var isConnect: Int? = homeViewModel.isConnect.observeAsState().value
|
|
isConnect = basePreferenceHelper.getConnectState()
|
|
isConnect = basePreferenceHelper.getConnectState()
|
|
|
|
+ val focusRequester1 = remember { FocusRequester() }
|
|
|
|
+ val focusRequester2 = remember { FocusRequester() }
|
|
|
|
+ val focusRequester3 = remember { FocusRequester() }
|
|
|
|
+ var isButtonFocused by remember { mutableStateOf(false) }
|
|
|
|
+
|
|
|
|
+ LaunchedEffect(key1 = Unit) {
|
|
|
|
+ focusRequester1.requestFocus()
|
|
|
|
+ }
|
|
|
|
|
|
Column(
|
|
Column(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
@@ -255,61 +279,93 @@ fun HomeTV(navHostController: NavHostController) {
|
|
}
|
|
}
|
|
.background(Color.Transparent)
|
|
.background(Color.Transparent)
|
|
) {
|
|
) {
|
|
|
|
+ val color = if (isButtonFocused && isConnect == App.CONNECTED) colorResource(id = R.color.blue_text)
|
|
|
|
+ else if (isButtonFocused) colorResource(id = R.color.maroon_text)
|
|
|
|
+ else colorResource(id = R.color.transparent)
|
|
|
|
+
|
|
IconButton(
|
|
IconButton(
|
|
onClick = {
|
|
onClick = {
|
|
- val connectedServer = basePreferenceHelper.getConnectedServer()
|
|
|
|
- val serverObject = basePreferenceHelper.getServerObject()
|
|
|
|
- Log.d("test_conn_ser_obj", "cs = ${connectedServer?.server_name} so = ${serverObject?.server_name}")
|
|
|
|
- Log.d("isConnect_State", "onClick{} -> $isConnect")
|
|
|
|
- Log.d("isConnect_State_vpn", "onClick{} -> $isConnect")
|
|
|
|
- prefHelper.getProduct()?.identifier.let {
|
|
|
|
- val identifier = it
|
|
|
|
-
|
|
|
|
- if (identifier == AppEnum.FREE.key) {
|
|
|
|
- Log.d("isConnect_State", "identifier -> $identifier")
|
|
|
|
- Screen.Subscription.isTrue = true
|
|
|
|
- navHostController.navigate(
|
|
|
|
- Screen.Subscription.route
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
-
|
|
|
|
- prefHelper.getServerObject()?.let {
|
|
|
|
- prefHelper.setConnectedServer(it)
|
|
|
|
- }
|
|
|
|
- Log.d("isConnect_State", "identifier -> $identifier")
|
|
|
|
- if (isConnect == App.CONNECTED || isConnect == App.CONNECTING) {
|
|
|
|
- Log.d("isConnect_State_vpn", "stopVPN")
|
|
|
|
- vpnConnectionsUtil.stopVpn()
|
|
|
|
- homeViewModel.getIp()
|
|
|
|
- } else {
|
|
|
|
- Log.d("isConnect_State_vpn", "startVPN")
|
|
|
|
-
|
|
|
|
- if (basePreferenceHelper.getServerObject() != null) {
|
|
|
|
- vpnConnectionsUtil.startVpn()
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- toChangeServer.value = false
|
|
|
|
- navHostController.navigate(
|
|
|
|
- Screen.ServerList.route
|
|
|
|
- )
|
|
|
|
- Screen.ServerList.isTrue = true
|
|
|
|
- Log.d("button_click_change", "Pressed")
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- val widgetIntent = Intent(context, SimpleAppWidget::class.java)
|
|
|
|
- widgetIntent.action = SimpleAppWidget.ACTION_CHANGE_SERVER
|
|
|
|
- context.sendBroadcast(widgetIntent)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ Toast.makeText(
|
|
|
|
+ context, "Connect onClick{}", Toast.LENGTH_SHORT
|
|
|
|
+ ).show()
|
|
|
|
+// val connectedServer = basePreferenceHelper.getConnectedServer()
|
|
|
|
+// val serverObject = basePreferenceHelper.getServerObject()
|
|
|
|
+// Log.d(
|
|
|
|
+// "test_conn_ser_obj",
|
|
|
|
+// "cs = ${connectedServer?.server_name} so = ${serverObject?.server_name}"
|
|
|
|
+// )
|
|
|
|
+// Log.d("isConnect_State", "onClick{} -> $isConnect")
|
|
|
|
+// Log.d("isConnect_State_vpn", "onClick{} -> $isConnect")
|
|
|
|
+// prefHelper.getProduct()?.identifier.let {
|
|
|
|
+// val identifier = it
|
|
|
|
+//
|
|
|
|
+// if (identifier == AppEnum.FREE.key) {
|
|
|
|
+// Log.d("isConnect_State", "identifier -> $identifier")
|
|
|
|
+// Screen.Subscription.isTrue = true
|
|
|
|
+// navHostController.navigate(
|
|
|
|
+// Screen.Subscription.route
|
|
|
|
+// )
|
|
|
|
+//
|
|
|
|
+// } else {
|
|
|
|
+//
|
|
|
|
+// prefHelper.getServerObject()?.let {
|
|
|
|
+// prefHelper.setConnectedServer(it)
|
|
|
|
+// }
|
|
|
|
+// Log.d("isConnect_State", "identifier -> $identifier")
|
|
|
|
+// if (isConnect == App.CONNECTED || isConnect == App.CONNECTING) {
|
|
|
|
+// Log.d("isConnect_State_vpn", "stopVPN")
|
|
|
|
+// vpnConnectionsUtil.stopVpn()
|
|
|
|
+// homeViewModel.getIp()
|
|
|
|
+// } else {
|
|
|
|
+// Log.d("isConnect_State_vpn", "startVPN")
|
|
|
|
+//
|
|
|
|
+// if (basePreferenceHelper.getServerObject() != null) {
|
|
|
|
+// vpnConnectionsUtil.startVpn()
|
|
|
|
+// } else {
|
|
|
|
+// toChangeServer.value = false
|
|
|
|
+// navHostController.navigate(
|
|
|
|
+// Screen.ServerList.route
|
|
|
|
+// )
|
|
|
|
+// Screen.ServerList.isTrue = true
|
|
|
|
+// Log.d("button_click_change", "Pressed")
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// val widgetIntent = Intent(context, SimpleAppWidget::class.java)
|
|
|
|
+// widgetIntent.action = SimpleAppWidget.ACTION_CHANGE_SERVER
|
|
|
|
+// context.sendBroadcast(widgetIntent)
|
|
|
|
+// }
|
|
|
|
+// }
|
|
},
|
|
},
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.padding(bottom = 0.dp)
|
|
.padding(bottom = 0.dp)
|
|
- .size(200.dp),
|
|
|
|
|
|
+ .size(200.dp)
|
|
|
|
+ .onKeyEvent {
|
|
|
|
+ when (it.key) {
|
|
|
|
+ Key.DirectionDown -> {
|
|
|
|
+ Log.d("test_settings_keys","DirectionDown")
|
|
|
|
+ Toast.makeText(
|
|
|
|
+ context, "DirectionDown", Toast.LENGTH_SHORT
|
|
|
|
+ ).show()
|
|
|
|
+ focusRequester2.requestFocus()
|
|
|
|
+ true
|
|
|
|
+ }
|
|
|
|
+ else -> { false }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .focusRequester(focusRequester1)
|
|
|
|
+ .background(Color.Transparent)
|
|
|
|
+ .onFocusChanged {
|
|
|
|
+ isButtonFocused = it.isFocused
|
|
|
|
+ }
|
|
|
|
+// .clickable { }
|
|
|
|
+// .focusable()
|
|
|
|
+ .border(
|
|
|
|
+ BorderStroke(
|
|
|
|
+ 2.dp, color
|
|
|
|
+ ), shape = CircleShape
|
|
|
|
+ ),
|
|
)
|
|
)
|
|
{
|
|
{
|
|
if (isConnect == App.CONNECTED) {
|
|
if (isConnect == App.CONNECTED) {
|
|
@@ -365,10 +421,17 @@ fun HomeTV(navHostController: NavHostController) {
|
|
)
|
|
)
|
|
.align(Alignment.CenterHorizontally),
|
|
.align(Alignment.CenterHorizontally),
|
|
) {
|
|
) {
|
|
- AddRowSmartTV(navHostController, basePreferenceHelper, context, isTablet())
|
|
|
|
|
|
+ AddRowSmartTV(
|
|
|
|
+ navHostController,
|
|
|
|
+ basePreferenceHelper,
|
|
|
|
+ context,
|
|
|
|
+ isTablet(),
|
|
|
|
+ focusRequester2
|
|
|
|
+ )
|
|
var smartServer = basePreferenceHelper.getSmartServerObject()
|
|
var smartServer = basePreferenceHelper.getSmartServerObject()
|
|
val recommended = basePreferenceHelper.getRecommendedServerObject()
|
|
val recommended = basePreferenceHelper.getRecommendedServerObject()
|
|
val selectedSmartList = basePreferenceHelper.getSmartList()
|
|
val selectedSmartList = basePreferenceHelper.getSmartList()
|
|
|
|
+ var isSmartButtonFocused by remember { mutableStateOf(false) }
|
|
when(selectedSmartList) {
|
|
when(selectedSmartList) {
|
|
smartConnect[0] -> {
|
|
smartConnect[0] -> {
|
|
smartServer = basePreferenceHelper.getRecommendedServerObject()
|
|
smartServer = basePreferenceHelper.getRecommendedServerObject()
|
|
@@ -383,62 +446,66 @@ fun HomeTV(navHostController: NavHostController) {
|
|
}
|
|
}
|
|
Button(
|
|
Button(
|
|
onClick = {
|
|
onClick = {
|
|
- Log.d("test_button", "onClick Smart Connect ${smartServer?.server_name}")
|
|
|
|
- basePreferenceHelper.setSmartServerObject(smartServer)
|
|
|
|
-// basePreferenceHelper.setConnectedServer(smartServer)
|
|
|
|
-
|
|
|
|
- if (isConnect == App.CONNECTED) {
|
|
|
|
- Log.d("isConnect_State_vpn", "stopVPN")
|
|
|
|
- val lastServer = basePreferenceHelper.getConnectedServer()
|
|
|
|
- Log.d("test_conn_ser_obj", "smart => ${lastServer?.server_name} ${smartServer?.server_name}")
|
|
|
|
-
|
|
|
|
- if (lastServer?.id != smartServer?.id) {
|
|
|
|
- isServerDialog.value = true
|
|
|
|
- if (smartServer != null) {
|
|
|
|
- serverObj.value = smartServer
|
|
|
|
- }
|
|
|
|
-// basePreferenceHelper.setConnectedServer(smartServer)
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- vpnConnectionsUtil.stopVpn()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ Toast.makeText(
|
|
|
|
+ context, "Smart onClick{}", Toast.LENGTH_SHORT
|
|
|
|
+ ).show()
|
|
|
|
+// Log.d("test_button", "onClick Smart Connect ${smartServer?.server_name}")
|
|
|
|
+// basePreferenceHelper.setSmartServerObject(smartServer)
|
|
|
|
+// if (isConnect == App.CONNECTED) {
|
|
|
|
+// Log.d("isConnect_State_vpn", "stopVPN")
|
|
|
|
+// val lastServer = basePreferenceHelper.getConnectedServer()
|
|
|
|
+// Log.d("test_conn_ser_obj", "smart => ${lastServer?.server_name} ${smartServer?.server_name}")
|
|
|
|
+//
|
|
|
|
+// if (lastServer?.id != smartServer?.id) {
|
|
|
|
+// isServerDialog.value = true
|
|
|
|
+// if (smartServer != null) {
|
|
|
|
+// serverObj.value = smartServer
|
|
|
|
+// }
|
|
|
|
+//// basePreferenceHelper.setConnectedServer(smartServer)
|
|
|
|
+//
|
|
|
|
+// }
|
|
|
|
+// else {
|
|
|
|
+// vpnConnectionsUtil.stopVpn()
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+//// vpnConnectionsUtil.stopVpn()
|
|
|
|
+//// Handler().postDelayed(Runnable {
|
|
|
|
+//// vpnConnectionsUtil.startVpn()
|
|
|
|
+//// }, 500)
|
|
|
|
+//// homeViewModel.getIp()
|
|
|
|
+// }
|
|
|
|
+// else if (isConnect == App.CONNECTING) {
|
|
// vpnConnectionsUtil.stopVpn()
|
|
// vpnConnectionsUtil.stopVpn()
|
|
-// Handler().postDelayed(Runnable {
|
|
|
|
-// vpnConnectionsUtil.startVpn()
|
|
|
|
-// }, 500)
|
|
|
|
-// homeViewModel.getIp()
|
|
|
|
- }
|
|
|
|
- else if (isConnect == App.CONNECTING) {
|
|
|
|
- vpnConnectionsUtil.stopVpn()
|
|
|
|
- }
|
|
|
|
- else if (isConnect == App.DISCONNECTED) {
|
|
|
|
- Log.d("isConnect_State_vpn", "startVPN")
|
|
|
|
- basePreferenceHelper.setConnectedServer(smartServer)
|
|
|
|
- if (smartServer != null) {
|
|
|
|
-// serverListViewModel.setRecentlyConnectedServer(smartServer)
|
|
|
|
- }
|
|
|
|
- vpnConnectionsUtil.startVpn()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-// navHostController.navigate(
|
|
|
|
-// BottomBarScreen.Settings.route
|
|
|
|
-// )
|
|
|
|
-// BottomBarScreen.Settings.isTrue = true
|
|
|
|
-
|
|
|
|
|
|
+// }
|
|
|
|
+// else if (isConnect == App.DISCONNECTED) {
|
|
|
|
+// Log.d("isConnect_State_vpn", "startVPN")
|
|
|
|
+// basePreferenceHelper.setConnectedServer(smartServer)
|
|
|
|
+// if (smartServer != null) {
|
|
|
|
+//// serverListViewModel.setRecentlyConnectedServer(smartServer)
|
|
|
|
+// }
|
|
|
|
+// vpnConnectionsUtil.startVpn()
|
|
|
|
+// }
|
|
},
|
|
},
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.padding(start = 14.dp, end = 14.dp, bottom = 8.dp, top = 16.dp)
|
|
.padding(start = 14.dp, end = 14.dp, bottom = 8.dp, top = 16.dp)
|
|
.align(Alignment.BottomCenter)
|
|
.align(Alignment.BottomCenter)
|
|
.background(colorResource(id = R.color.transparent))
|
|
.background(colorResource(id = R.color.transparent))
|
|
|
|
+ .onFocusChanged {
|
|
|
|
+ isSmartButtonFocused = it.isFocused
|
|
|
|
+ }
|
|
|
|
+// .focusable()
|
|
|
|
+// .clickable {
|
|
|
|
+// Toast.makeText(
|
|
|
|
+// context, "Smart clickable{}", Toast.LENGTH_SHORT
|
|
|
|
+// ).show()
|
|
|
|
+// }
|
|
.fillMaxWidth()
|
|
.fillMaxWidth()
|
|
.height(40.dp),
|
|
.height(40.dp),
|
|
shape = RoundedCornerShape(16.dp),
|
|
shape = RoundedCornerShape(16.dp),
|
|
colors = ButtonDefaults.buttonColors(
|
|
colors = ButtonDefaults.buttonColors(
|
|
contentColor = colorResource(id = R.color.white),
|
|
contentColor = colorResource(id = R.color.white),
|
|
- containerColor = colorResource(id = R.color.blue_text),
|
|
|
|
|
|
+ containerColor = if (isSmartButtonFocused) colorResource(id = R.color.maroon_text) else colorResource(id = R.color.blue_text),
|
|
),
|
|
),
|
|
) {
|
|
) {
|
|
Text(
|
|
Text(
|
|
@@ -456,14 +523,27 @@ fun HomeTV(navHostController: NavHostController) {
|
|
|
|
|
|
// Spacer(modifier = Modifier.weight(1f))
|
|
// Spacer(modifier = Modifier.weight(1f))
|
|
|
|
|
|
|
|
+ var isLayoutFocused by remember { mutableStateOf(false) }
|
|
|
|
+ val color = if (isLayoutFocused) colorResource(id = R.color.maroon_text) else colorResource(id = R.color.white)
|
|
Box(
|
|
Box(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.fillMaxWidth(fraction = if (isTablet()) 0.5f else 1f)
|
|
.fillMaxWidth(fraction = if (isTablet()) 0.5f else 1f)
|
|
.padding(horizontal = 20.dp, vertical = 5.dp)
|
|
.padding(horizontal = 20.dp, vertical = 5.dp)
|
|
.padding(top = 0.dp)
|
|
.padding(top = 0.dp)
|
|
.height(60.dp)
|
|
.height(60.dp)
|
|
|
|
+ .onFocusChanged {
|
|
|
|
+ isLayoutFocused = it.isFocused
|
|
|
|
+ }
|
|
|
|
+ .focusable()
|
|
|
|
+
|
|
|
|
+ .clickable(
|
|
|
|
+ indication = null,
|
|
|
|
+ interactionSource = remember { MutableInteractionSource() }
|
|
|
|
+ ) {
|
|
|
|
+ Toast.makeText(context, "See All Pressed", Toast.LENGTH_SHORT).show()
|
|
|
|
+ }
|
|
.border(
|
|
.border(
|
|
- border = BorderStroke(2.dp, colorResource(id = R.color.white)),
|
|
|
|
|
|
+ border = BorderStroke(2.dp, color),
|
|
shape = RoundedCornerShape(28.dp)
|
|
shape = RoundedCornerShape(28.dp)
|
|
)
|
|
)
|
|
.background(
|
|
.background(
|
|
@@ -486,35 +566,22 @@ fun BoxScope.AddRowSmartTV(
|
|
navHostController: NavHostController,
|
|
navHostController: NavHostController,
|
|
basePreferenceHelper: BasePreferenceHelper,
|
|
basePreferenceHelper: BasePreferenceHelper,
|
|
context: Context,
|
|
context: Context,
|
|
- isTablet: Boolean
|
|
|
|
|
|
+ isTablet: Boolean,
|
|
|
|
+ focusRequester2: FocusRequester
|
|
) {
|
|
) {
|
|
val smart = basePreferenceHelper.getSmartServerObject()
|
|
val smart = basePreferenceHelper.getSmartServerObject()
|
|
val recommended = basePreferenceHelper.getRecommendedServerObject()
|
|
val recommended = basePreferenceHelper.getRecommendedServerObject()
|
|
val recently = basePreferenceHelper.getConnectedServer()
|
|
val recently = basePreferenceHelper.getConnectedServer()
|
|
val anySpecific = basePreferenceHelper.getSmartServerObject()
|
|
val anySpecific = basePreferenceHelper.getSmartServerObject()
|
|
-
|
|
|
|
val ipInfo = basePreferenceHelper.getIpinfo()
|
|
val ipInfo = basePreferenceHelper.getIpinfo()
|
|
val selectedSmartList = basePreferenceHelper.getSmartList()
|
|
val selectedSmartList = basePreferenceHelper.getSmartList()
|
|
var selectedServer = basePreferenceHelper.getRecommendedServerObject()
|
|
var selectedServer = basePreferenceHelper.getRecommendedServerObject()
|
|
var selectedSmartServer = basePreferenceHelper.getSmartServerObject()
|
|
var selectedSmartServer = basePreferenceHelper.getSmartServerObject()
|
|
|
|
+ var isButtonFocused by remember { mutableStateOf(false) }
|
|
|
|
|
|
Log.d("smartLocationList", "Home:: server = ${selectedServer?.server_name}")
|
|
Log.d("smartLocationList", "Home:: server = ${selectedServer?.server_name}")
|
|
var icon = Utils.getDrawable(context, selectedServer?.iso)
|
|
var icon = Utils.getDrawable(context, selectedServer?.iso)
|
|
|
|
|
|
-// if (MainActivity.isSelectedServersShown) {
|
|
|
|
-// selectedServer = basePreferenceHelper.getServerObject()
|
|
|
|
-// icon = Utils.getDrawable(context, selectedServer?.iso)
|
|
|
|
-//
|
|
|
|
-// when(selectedSmartList) {
|
|
|
|
-// smartConnect[0] -> {
|
|
|
|
-// selectedSmartServer = recommended
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// } else {
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
when(selectedSmartList) {
|
|
when(selectedSmartList) {
|
|
smartConnect[0] -> {
|
|
smartConnect[0] -> {
|
|
icon = Utils.getDrawable(context, recommended?.iso)
|
|
icon = Utils.getDrawable(context, recommended?.iso)
|
|
@@ -534,8 +601,6 @@ fun BoxScope.AddRowSmartTV(
|
|
else -> {}
|
|
else -> {}
|
|
}
|
|
}
|
|
|
|
|
|
-// basePreferenceHelper.setSmartServerObject(selectedSmartServer)
|
|
|
|
-
|
|
|
|
Row(
|
|
Row(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.fillMaxWidth()
|
|
@@ -593,23 +658,39 @@ fun BoxScope.AddRowSmartTV(
|
|
}
|
|
}
|
|
Spacer(modifier = Modifier.weight(1F))
|
|
Spacer(modifier = Modifier.weight(1F))
|
|
Surface(
|
|
Surface(
|
|
- modifier = Modifier.padding(start = 15.dp),
|
|
|
|
|
|
+ modifier = Modifier
|
|
|
|
+ .padding(start = 15.dp),
|
|
color = Color.Transparent
|
|
color = Color.Transparent
|
|
) {
|
|
) {
|
|
ClickableText(
|
|
ClickableText(
|
|
|
|
+ modifier = Modifier
|
|
|
|
+ .focusRequester(focusRequester2)
|
|
|
|
+ .onFocusChanged {
|
|
|
|
+ isButtonFocused = it.isFocused
|
|
|
|
+ }
|
|
|
|
+ .clickable {
|
|
|
|
+ Toast.makeText(
|
|
|
|
+ context, "Change Pressed()", Toast.LENGTH_SHORT
|
|
|
|
+ ).show()
|
|
|
|
+ }
|
|
|
|
+ .focusable()
|
|
|
|
+ ,
|
|
text = AnnotatedString("Change"),
|
|
text = AnnotatedString("Change"),
|
|
style = MaterialTheme.typography.customTypography.headlineMedium.copy(
|
|
style = MaterialTheme.typography.customTypography.headlineMedium.copy(
|
|
// MaterialTheme.colorScheme.surfaceContainerLow,
|
|
// MaterialTheme.colorScheme.surfaceContainerLow,
|
|
- color = colorResource(id = R.color.blue_text),
|
|
|
|
|
|
+ color = if (isButtonFocused) colorResource(id = R.color.maroon_text) else colorResource(id = R.color.blue_text),
|
|
fontSize = if (isTablet()) 20.sp else 14.sp
|
|
fontSize = if (isTablet()) 20.sp else 14.sp
|
|
),
|
|
),
|
|
onClick = {
|
|
onClick = {
|
|
- toChangeServer.value = true
|
|
|
|
- navHostController.navigate(
|
|
|
|
- Screen.ServerList.route
|
|
|
|
- )
|
|
|
|
- Screen.ServerList.isTrue = false
|
|
|
|
- Log.d("button_click_change", "Pressed")
|
|
|
|
|
|
+ Toast.makeText(
|
|
|
|
+ context, "Change Clicked()", Toast.LENGTH_SHORT
|
|
|
|
+ ).show()
|
|
|
|
+// toChangeServer.value = true
|
|
|
|
+// navHostController.navigate(
|
|
|
|
+// Screen.ServerList.route
|
|
|
|
+// )
|
|
|
|
+// Screen.ServerList.isTrue = false
|
|
|
|
+// Log.d("button_click_change", "Pressed")
|
|
},
|
|
},
|
|
)
|
|
)
|
|
}
|
|
}
|
|
@@ -618,24 +699,25 @@ fun BoxScope.AddRowSmartTV(
|
|
|
|
|
|
@Composable
|
|
@Composable
|
|
fun BoxScope.AddRowSelectServerTV(navHostController: NavHostController, isTablet: Boolean) {
|
|
fun BoxScope.AddRowSelectServerTV(navHostController: NavHostController, isTablet: Boolean) {
|
|
|
|
+
|
|
|
|
+ val context = LocalContext.current
|
|
Row(
|
|
Row(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.fillMaxWidth()
|
|
.padding(15.dp)
|
|
.padding(15.dp)
|
|
.background(Color.Transparent)
|
|
.background(Color.Transparent)
|
|
- .pointerInput(Unit) {
|
|
|
|
- detectTapGestures {
|
|
|
|
- toChangeServer.value = false
|
|
|
|
- navHostController.navigate(
|
|
|
|
- Screen.ServerList.route
|
|
|
|
- )
|
|
|
|
- Screen.ServerList.isTrue = true
|
|
|
|
- Log.d("button_click_change", "Pressed")
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-// .clickable {
|
|
|
|
-// Log.d("test_server_button", "ServerTab Clicked")
|
|
|
|
|
|
+
|
|
|
|
+// .pointerInput(Unit) {
|
|
|
|
+// detectTapGestures {
|
|
|
|
+// toChangeServer.value = false
|
|
|
|
+// navHostController.navigate(
|
|
|
|
+// Screen.ServerList.route
|
|
|
|
+// )
|
|
|
|
+// Screen.ServerList.isTrue = true
|
|
|
|
+// Log.d("button_click_change", "Pressed")
|
|
|
|
+// }
|
|
// }
|
|
// }
|
|
|
|
+
|
|
,
|
|
,
|
|
horizontalArrangement = Arrangement.Start,
|
|
horizontalArrangement = Arrangement.Start,
|
|
verticalAlignment = Alignment.CenterVertically
|
|
verticalAlignment = Alignment.CenterVertically
|