[feat] Server Configure& Https
This commit is contained in:
@@ -32,6 +32,8 @@ class HomeScreenViewModel(application: Application) : AndroidViewModel(applicati
|
||||
private val dataStore = application.dataStore
|
||||
private val USER_NAME_KEY = stringPreferencesKey("user_name")
|
||||
private val PRIVATE_KEY = stringPreferencesKey("private_key")
|
||||
private val URL_KEY = stringPreferencesKey("url")
|
||||
private val CERT_KEY = stringPreferencesKey("cert")
|
||||
|
||||
val userNameFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[USER_NAME_KEY] ?: ""
|
||||
@@ -41,6 +43,14 @@ class HomeScreenViewModel(application: Application) : AndroidViewModel(applicati
|
||||
preferences[PRIVATE_KEY] ?: ""
|
||||
}
|
||||
|
||||
val urlFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[URL_KEY] ?: ""
|
||||
}
|
||||
|
||||
val certFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[CERT_KEY] ?: ""
|
||||
}
|
||||
|
||||
var _init = false
|
||||
|
||||
@Composable
|
||||
@@ -60,13 +70,16 @@ class HomeScreenViewModel(application: Application) : AndroidViewModel(applicati
|
||||
viewModelScope.launch {
|
||||
val u = userNameFlow.first()
|
||||
val p = privateKeyFlow.first()
|
||||
val ur = urlFlow.first()
|
||||
val c = certFlow.first()
|
||||
|
||||
if(u=="" || p=="") return@launch
|
||||
if(u=="" || p=="" || ur=="" || c=="") return@launch
|
||||
|
||||
try{
|
||||
ApiClient.apply(ur, c)
|
||||
|
||||
if (MediaManager.token == "null")
|
||||
MediaManager.token = AuthManager.fetchToken(
|
||||
ApiClient.base,
|
||||
u,
|
||||
p
|
||||
)!!
|
||||
@@ -74,6 +87,7 @@ class HomeScreenViewModel(application: Application) : AndroidViewModel(applicati
|
||||
Global.loggedIn = true
|
||||
}catch(e: Exception)
|
||||
{
|
||||
Global.loggedIn = false
|
||||
print(e.message)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,23 +24,70 @@ import kotlinx.coroutines.launch
|
||||
class MeScreenViewModel(application: Application) : AndroidViewModel(application) {
|
||||
private val dataStore = application.dataStore
|
||||
private val USER_NAME_KEY = stringPreferencesKey("user_name")
|
||||
private val PRIVATE_KEY = stringPreferencesKey("private_key")
|
||||
private val PRIVATE_KEY = stringPreferencesKey("private_key")
|
||||
private val URL_KEY = stringPreferencesKey("url")
|
||||
private val CERT_KEY = stringPreferencesKey("cert")
|
||||
|
||||
val userNameFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[USER_NAME_KEY] ?: ""
|
||||
}
|
||||
|
||||
val privateKeyFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
val privateKeyFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[PRIVATE_KEY] ?: ""
|
||||
}
|
||||
|
||||
val urlFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[URL_KEY] ?: ""
|
||||
}
|
||||
|
||||
val certFlow: Flow<String> = dataStore.data.map { preferences ->
|
||||
preferences[CERT_KEY] ?: ""
|
||||
}
|
||||
|
||||
val username = mutableStateOf("");
|
||||
val privateKey = mutableStateOf("")
|
||||
val url = mutableStateOf("");
|
||||
val cert = mutableStateOf("")
|
||||
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
username.value = userNameFlow.first()
|
||||
privateKey.value = if (privateKeyFlow.first() == "") "" else "******"
|
||||
url.value = urlFlow.first()
|
||||
cert.value = certFlow.first()
|
||||
}
|
||||
}
|
||||
|
||||
fun updateServer(u: String, c: String, context: Context)
|
||||
{
|
||||
viewModelScope.launch {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[URL_KEY] = u
|
||||
preferences[CERT_KEY] = c
|
||||
}
|
||||
|
||||
Global.loggedIn = false
|
||||
|
||||
val us = userNameFlow.first()
|
||||
val u = urlFlow.first()
|
||||
val c = certFlow.first()
|
||||
val p = privateKeyFlow.first()
|
||||
|
||||
if (u == "" || c == "" || p == "") return@launch
|
||||
|
||||
try {
|
||||
ApiClient.apply(u, c)
|
||||
MediaManager.token = AuthManager.fetchToken(
|
||||
us,
|
||||
p
|
||||
)!!
|
||||
|
||||
Global.loggedIn = true
|
||||
Toast.makeText(context, "Server Updated", Toast.LENGTH_SHORT).show()
|
||||
} catch (e: Exception) {
|
||||
print(e.message)
|
||||
Toast.makeText(context, "Invalid Account or Server Information", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +109,6 @@ class MeScreenViewModel(application: Application) : AndroidViewModel(application
|
||||
|
||||
try {
|
||||
MediaManager.token = AuthManager.fetchToken(
|
||||
ApiClient.base,
|
||||
u,
|
||||
p
|
||||
)!!
|
||||
|
||||
Reference in New Issue
Block a user