Приложение не запоминает обращение к серверу и делает это повторно

Не понимаю в чем ошибка (Приложение не запоминает обращение к серверу и делает это повторно) При первом запуске происходит обращение на сервер Firebase, где я получаю ссылку на сайт. Далее я перехожу на этот сайт и снова получаю ссылку. И если все корректно сохраняю ее в pref. При запуске определяем сохранена ли ссылка(то есть корректная ли она) и запускаем google custom tab. Но мне говорят, что я повторно обращаюсь к серверу.

class LoadingActivity : AppCompatActivity() {
val APP_PREFERENCES = "FIRST_OPEN"
val save_link = "link"
val rediscovery = "rediscovery"

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_loading)

    val pref:SharedPreferences = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE)
    var rediscoveryBool = pref.getBoolean(rediscovery,false)
    var link = pref.getString(save_link,"")!!

    val connectionDetector = ConnectionDetector(applicationContext).ConnectingToInternet()//check the Internet connection
    if (!connectionDetector && !rediscoveryBool){
        Log.d("debugApp", "no internet connection")
        Intent(this@LoadingActivity, MainActivity::class.java).also {
            startActivity(it)
        }
    }


    if (rediscoveryBool){
        actionWithLink(link)
    }
    else{
        lifecycleScope.launch(Dispatchers.IO) {
            if (connectionDetector) {
                Log.d("debugApp", "internet connection correct")
                if (!rediscoveryBool) {
                    Log.d("debugApp", "first open")
                    pref.edit().putBoolean(rediscovery, true).apply()
                    var domenFromFirebase = getLinkFromDb()
                    link = if (domenFromFirebase != "") {
                        getRequestToURL(makeURl(domenFromFirebase))
                    } else ""
                    pref.edit().putString(save_link, link).apply()
                }
                actionWithLink(link)
            }
        }
    }



}


fun makeURl(domenFromFirebase: String): String { //корректирую ссылку полученную с firebase 
    Log.d("debugApp", "make url")
    val packageName = BuildConfig.APPLICATION_ID
    val timeZone: String = TimeZone.getDefault().id
    val uuid = UUID.randomUUID().toString()
    var url:String = "${domenFromFirebase}/?packageid=${packageName}&usserid=${uuid}&getz=${timeZone}&getr=utm_source=google-play&utm_medium=organic"
    Log.d("debugApp",url)
    return url
}

private suspend fun getLinkFromDb():String{
    Log.d("debugApp", "getLinkFromDb")
    val db = Firebase.firestore
    var dblink:String = ""
    db.collection("database")
        .get()
        .addOnSuccessListener { result ->
            for (document in result) {
                dblink = document.data.getValue("link").toString()
                Log.d("debugApp",dblink)
            }
        }
        .addOnFailureListener {
            dblink = ""
        }.await()
    return dblink
}



fun actionWithLink(link:String){
    Log.d("debugApp", "actionWithLink")
    Log.d("debugApp", link)
    if (link != "") {
        intent = Intent(this@LoadingActivity, WebActivity::class.java)
        intent.putExtra("urlStr",link)
        startActivity(intent)
    } else {
        Log.d("debugApp", "uncorret link")
        Intent(this@LoadingActivity, MainActivity::class.java).also {
            startActivity(it)
        }
    }
}

override fun onBackPressed() {
    // do nothing
}

private fun getRequestToURL(urlStr:String):String{
    Log.d("debugApp", "getRequestToURL")
    val url = URL(urlStr)
    val urlConnection: HttpURLConnection = url.openConnection() as HttpURLConnection
    return try {
        val data = urlConnection.inputStream.bufferedReader().use { it.readText() }
        data
    } catch (e:Exception){
        ""
    } finally {
        urlConnection.disconnect()
    }

}

}


Ответы (0 шт):