2018-08-18 07:04:31 +02:00
|
|
|
package org.libre.agosto.p2play
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.SharedPreferences
|
|
|
|
import android.os.AsyncTask
|
|
|
|
import android.support.v7.app.AppCompatActivity
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.os.Looper
|
|
|
|
import android.preference.PreferenceManager
|
|
|
|
import android.util.Log
|
|
|
|
import kotlinx.android.synthetic.main.activity_host.*
|
2018-09-15 22:41:50 +02:00
|
|
|
import org.libre.agosto.p2play.ajax.Auth
|
2018-08-18 07:04:31 +02:00
|
|
|
import org.libre.agosto.p2play.ajax.Client
|
|
|
|
|
|
|
|
class HostActivity : AppCompatActivity() {
|
|
|
|
lateinit var settings: SharedPreferences
|
|
|
|
lateinit var editor: SharedPreferences.Editor
|
2018-09-15 22:41:50 +02:00
|
|
|
val client:Auth = Auth()
|
2018-08-18 07:04:31 +02:00
|
|
|
val _db = Database(this)
|
|
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
setContentView(R.layout.activity_host)
|
2018-09-04 05:17:31 +02:00
|
|
|
settings = PreferenceManager.getDefaultSharedPreferences(this)
|
|
|
|
|
2018-08-18 07:04:31 +02:00
|
|
|
editor = settings.edit()
|
|
|
|
ManagerSingleton.context = this
|
2018-09-04 05:17:31 +02:00
|
|
|
button.setOnClickListener {
|
|
|
|
getKeys(hostText.text.toString())
|
|
|
|
}
|
2018-08-18 07:04:31 +02:00
|
|
|
|
|
|
|
val host = settings.getString("hostP2play","")
|
2018-09-04 05:17:31 +02:00
|
|
|
val lastHost = settings.getString("last_host","")
|
2018-08-18 07:04:31 +02:00
|
|
|
if(host!=""){
|
2018-09-04 05:17:31 +02:00
|
|
|
if(lastHost!=host){
|
|
|
|
_db.logout()
|
|
|
|
getKeys(host)
|
|
|
|
}else{
|
|
|
|
ManagerSingleton.url=host
|
|
|
|
checkUser()
|
|
|
|
}
|
2018-08-18 07:04:31 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fun checkUser(){
|
|
|
|
val token = _db.getToken()
|
|
|
|
val user = _db.getUser()
|
2018-09-15 22:41:50 +02:00
|
|
|
AsyncTask.execute {
|
|
|
|
if (Looper.myLooper() == null)
|
|
|
|
Looper.prepare()
|
2018-09-16 08:12:42 +02:00
|
|
|
|
|
|
|
startApp()
|
2018-09-15 22:41:50 +02:00
|
|
|
if (token.status == 1 && user.status == 1) {
|
|
|
|
val client_id = settings.getString("client_id", "")
|
|
|
|
val client_secret = settings.getString("client_secret", "")
|
|
|
|
|
|
|
|
val newToken = client.refreshToken(token, client_id, client_secret)
|
2018-09-04 05:17:31 +02:00
|
|
|
|
2018-09-15 22:41:50 +02:00
|
|
|
when (token.status.toString()) {
|
|
|
|
"1" -> {
|
|
|
|
_db.newToken(newToken)
|
|
|
|
ManagerSingleton.token = newToken
|
|
|
|
ManagerSingleton.user = user
|
|
|
|
}
|
|
|
|
else -> _db.logout()
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
_db.logout()
|
|
|
|
}
|
|
|
|
|
|
|
|
this.finish()
|
|
|
|
}
|
2018-08-18 07:04:31 +02:00
|
|
|
}
|
|
|
|
|
2018-09-04 05:17:31 +02:00
|
|
|
fun saveHost(host: String){
|
|
|
|
editor.putString("last_host",host)
|
2018-08-18 07:04:31 +02:00
|
|
|
editor.putString("hostP2play",host)
|
|
|
|
editor.apply()
|
2018-09-04 05:17:31 +02:00
|
|
|
ManagerSingleton.Toast(getString(R.string.finallyMsg))
|
|
|
|
ManagerSingleton.url=host
|
|
|
|
checkUser()
|
2018-08-18 07:04:31 +02:00
|
|
|
}
|
|
|
|
|
2018-09-04 05:17:31 +02:00
|
|
|
private fun getKeys(hostText: String){
|
2018-08-18 07:04:31 +02:00
|
|
|
button.isEnabled = false
|
2018-09-04 05:17:31 +02:00
|
|
|
var host = hostText.toString()
|
2018-08-18 07:04:31 +02:00
|
|
|
host = host.replace("http://","")
|
|
|
|
host = host.replace("https://","")
|
|
|
|
host = host.replace("/","")
|
|
|
|
ManagerSingleton.url = host
|
|
|
|
AsyncTask.execute {
|
2018-09-06 05:04:40 +02:00
|
|
|
if (Looper.myLooper()==null)
|
|
|
|
Looper.prepare()
|
|
|
|
|
2018-08-18 07:04:31 +02:00
|
|
|
val keys = client.getKeys()
|
|
|
|
if(keys.client_id!=""){
|
|
|
|
editor.putString("client_id",keys.client_id)
|
|
|
|
editor.putString("client_secret",keys.client_secret)
|
|
|
|
editor.apply()
|
2018-09-04 05:17:31 +02:00
|
|
|
saveHost(host)
|
2018-08-18 07:04:31 +02:00
|
|
|
}
|
|
|
|
else{
|
|
|
|
runOnUiThread {
|
|
|
|
ManagerSingleton.Toast(getString(R.string.errorMsg))
|
|
|
|
button.isEnabled = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-04 05:17:31 +02:00
|
|
|
private fun startApp(){
|
2018-08-18 07:04:31 +02:00
|
|
|
runOnUiThread {
|
|
|
|
val intent = Intent(ManagerSingleton.context,MainActivity::class.java)
|
|
|
|
startActivity(intent)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|