moisey312

file for helping me

May 13th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 10.16 KB | None | 0 0
  1. package com.merkury.loans.views.activities
  2.  
  3. import android.content.Intent
  4. import android.os.Build
  5. import android.os.Bundle
  6. import android.util.Log
  7. import android.view.View
  8. import android.widget.ImageView
  9. import android.widget.LinearLayout
  10. import android.widget.TextView
  11. import androidx.annotation.RequiresApi
  12. import androidx.appcompat.app.AppCompatActivity
  13. import com.beust.klaxon.json
  14. import com.google.gson.Gson
  15. import com.merkury.loans.R
  16. import com.merkury.loans.models.Language
  17. import com.merkury.loans.parser.JsonParser
  18. import com.merkury.loans.utils.extensions.*
  19. import io.reactivex.android.schedulers.AndroidSchedulers
  20. import io.reactivex.android.*
  21. import io.reactivex.disposables.Disposable
  22. import io.reactivex.rxkotlin.zipWith
  23. import io.reactivex.schedulers.Schedulers
  24. import java.net.URL
  25. import java.util.*
  26. import kotlin.concurrent.thread
  27. import kotlin.random.Random
  28.  
  29. @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")
  30. class MainActivity : AppCompatActivity() {
  31.  
  32.  
  33.     @RequiresApi(Build.VERSION_CODES.N)
  34.     override fun onCreate(savedInstanceState: Bundle?) {
  35.         super.onCreate(savedInstanceState)
  36.         setContentView(R.layout.activity_main)
  37.         val lPrefs = getSharedPreferences("lang", 0);
  38.         if (lPrefs.getString("language", "") == "") {
  39.             LANG = Locale.getDefault().displayLanguage
  40.             LANG = convertLang[LANG].toString()
  41.         } else {
  42.             LANG = lPrefs.getString("lang", "").toString()
  43.         }
  44.         if (lPrefs.getString("country", "") == "") {
  45.             loadCountry()
  46.         } else {
  47.             COUNTRY = lPrefs.getString("country", "").toString()
  48.         }
  49.         Log.d("country", COUNTRY)
  50.         Log.d("lang", LANG)
  51.         if (LANG != "" && COUNTRY != "") {
  52.             if (convertCountry[COUNTRY].toString() == LANG) {
  53.                 loadLanguageAndData()
  54.                 val changePage = Intent(this, StartActivity::class.java)
  55.                 startActivity(changePage)
  56.             } else {
  57.                 val countriesLayout: LinearLayout = findViewById(R.id.countriesLayout)
  58.                 val text: TextView = findViewById(R.id.choouse)
  59.                 countriesLayout.visibility = View.VISIBLE
  60.                 text.visibility = View.VISIBLE
  61.                 val ru: ImageView = findViewById(R.id.countryru)
  62.                 val pl: ImageView = findViewById(R.id.countrypl)
  63.                 ru.setOnClickListener {
  64.                     COUNTRY = "RU"
  65.                     LANG = "ru"
  66.                     val lPrefs = getSharedPreferences("lang", 0);
  67.                     lPrefs.edit().putString("country", "RU").apply()
  68.                     lPrefs.edit().putBoolean("lang", false).apply()
  69.                     lPrefs.edit().putString("language", "ru").apply()
  70.                     loadLanguageAndData()
  71.  
  72.                     val changePage = Intent(this, StartActivity::class.java)
  73.                     startActivity(changePage)
  74.                 }
  75.                 pl.setOnClickListener {
  76.                     COUNTRY = "PL"
  77.                     LANG = "pl"
  78.                     val lPrefs = getSharedPreferences("lang", 0);
  79.                     lPrefs.edit().putString("country", "PL").apply()
  80.                     lPrefs.edit().putString("lang", "pl").apply()
  81.                     lPrefs.edit().putBoolean("lang", false).apply()
  82.                     loadLanguageAndData()
  83.                     val changePage = Intent(this, StartActivity::class.java)
  84.                     startActivity(changePage)
  85.                 }
  86.             }
  87.         }
  88.     }
  89.  
  90.     private fun loadLanguageAndData() {
  91.  
  92.         loadLanguageAndCountry()
  93.         //start loading data
  94.         loadData()
  95.     }
  96.  
  97.     private fun loadCountry() {
  98.         val lPrefs = getSharedPreferences("lang", 0);
  99.         if (lPrefs.getString("country", "") != "") {
  100.             return
  101.         }
  102.         val ip = CreateRequest("https://api.ipify.org/").subscribeOn(
  103.             Schedulers.io()
  104.         ).flatMap {
  105.             CreateRequest("http://ip-api.com/json/$it?fields=countryCode")
  106.         }.subscribe({
  107.             COUNTRY = it.substring(16, 18)
  108.             Log.d("country", COUNTRY)
  109.         }, { Log.e("errorCountry", "", it) })
  110.  
  111.     }
  112.  
  113.     private fun loadLanguageAndCountry() {
  114.         val lPrefs = getSharedPreferences("lang", 0);
  115.         if (lPrefs.getBoolean("lang", false)) {
  116.             Log.d("lang", LANG)
  117.             val url = "$LANGUAGE_URL$LANG.json$LANGUAGE_KEY"
  118.             var data: Language = Language()
  119.             val o = CreateRequest(url).map { Gson().fromJson(it, Language::class.java) }
  120.                 .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
  121.             val response = o.subscribe({
  122.                 data = it
  123.             }, {
  124.                 Log.e("errorLanguageMap", "", it)
  125.             })
  126.             val edittor = lPrefs.edit()
  127.  
  128.             //save data
  129.             Log.d("datalang", data.toString())
  130.             edittor.putString("loans", data.loans)
  131.             edittor.putString("credits", data.credits)
  132.             edittor.putString("chat", data.chat)
  133.             edittor.putString("calculator", data.calculator)
  134.             edittor.putString("help", data.help)
  135.             edittor.putString("apply", data.apply)
  136.             Log.d("datalang", data.apply)
  137.             edittor.putString("conditions", data.conditions)
  138.             edittor.putString("sum", data.sum)
  139.             edittor.putString("rate", data.rate)
  140.             edittor.putString("credit history", data.credit_history)
  141.             edittor.putString("from", data.from)
  142.             edittor.putString("to", data.to)
  143.             edittor.putString("points", data.points)
  144.             edittor.putString("time", data.time)
  145.             edittor.putString("interest rate", data.interest_rate)
  146.             edittor.putString("pay", data.pay)
  147.             edittor.putString("overpayment", data.overpayment)
  148.             edittor.putString("day", data.day)
  149.             edittor.putString("currency", data.currency)
  150.             edittor.putString("text1", data.text1)
  151.             edittor.putString("text2", data.text2)
  152.             edittor.putString("text3", data.text3)
  153.             edittor.putString("text4", data.text4)
  154.             edittor.putString("text5", data.text5)
  155.             edittor.putString("text6", data.text6)
  156.             edittor.putString("text7", data.text7)
  157.             edittor.putBoolean("lang", true)
  158.  
  159.             edittor.apply()
  160.  
  161.  
  162.         }
  163.     }
  164.  
  165.     private fun loadData() {
  166.         val tag = OFFERS_KEY
  167.  
  168.         var loansOffers = ""
  169.         var creditsOffers = ""
  170.         val mPrefs = getSharedPreferences(tag, 0)
  171.         val editor = mPrefs.edit()
  172.  
  173.         //get data from firebase
  174.         editor.putInt("sum_max", 0);
  175.         editor.putInt("sum_min", 1000000000);
  176.         while (true) {
  177.             try {
  178.                 var jsonData: String = ""
  179.                 val o = CreateRequest(URL_FOR_FB_DATA + LANG + KEY_FOR_FB_DATA).map { it }
  180.                     .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
  181.                 val response = o.subscribe({
  182.                     jsonData = it
  183.                 }, {
  184.                     Log.e("errorLanguageMap", "", it)
  185.                 })
  186.                 Log.d("dataurl", URL_FOR_FB_DATA + LANG + KEY_FOR_FB_DATA)
  187.                 val data = JsonParser.parse(jsonData)
  188.  
  189.                 //save data
  190.                 var sumMax: Int = 0
  191.                 var sumMin: Int = 100000000
  192.                 for (offer in data) {
  193.                     when (offer.type) {
  194.                         "bank" -> creditsOffers += offer.id + ","
  195.                         "mfo" -> loansOffers += offer.id + ","
  196.                         "service" -> loansOffers += offer.id + ","
  197.                     }
  198.                     thread {
  199.                         val b = getBitmapFromURL(offer.logo)
  200.                         if (b != null) {
  201.                             saveFile(this, b, offer.id)
  202.                         }
  203.                     }
  204.  
  205.  
  206.                     val sum_max: Int = offer.sumTo.filter { it.isDigit() }.toInt()
  207.                     Log.d("summa", sum_max.toString() + " " + offer.sumTo)
  208.                     val sum_min: Int = offer.sumFrom.filter { it.isDigit() }.toInt()
  209.                     if (sumMax < sum_max)
  210.                         sumMax = sum_max
  211.                     if (sumMin > sum_min)
  212.                         sumMin = sum_min
  213.                     editor.putString(offer.id + "_name", offer.name)
  214.                     editor.putString(offer.id + "_type", offer.type)
  215.                     editor.putString(offer.id + "_cpa", offer.cpa)
  216.                     editor.putString(offer.id + "_logo", offer.logo)
  217.                     editor.putString(offer.id + "_goals", offer.goals)
  218.                     editor.putString(offer.id + "_sum_from", offer.sumFrom)
  219.                     editor.putString(offer.id + "_sum_to", offer.sumTo)
  220.                     editor.putString(offer.id + "_percent_from", offer.percentFrom)
  221.                     editor.putString(offer.id + "_percent_to", offer.percentTo)
  222.                     editor.putString(offer.id + "_age_from", offer.ageFrom)
  223.                     editor.putString(offer.id + "_age_to", offer.ageTo)
  224.                     editor.putString(offer.id + "_ki_from", offer.kiFrom)
  225.                     editor.putString(offer.id + "_rate", offer.rate)
  226.                     editor.putString(offer.id + "_sale", offer.sale)
  227.                     editor.putString(offer.id + "_link", offer.link)
  228.                     try {
  229.                         editor.putBoolean(
  230.                             offer.id + "_in_app",
  231.                             Math.abs(Random.nextInt()) % 100 < offer.inApp.toInt()
  232.                         )
  233.                     } catch (e: NumberFormatException) {
  234.                     }
  235.                 }
  236.                 editor.putInt("sum_min", sumMin)
  237.                 editor.putInt("sum_max", sumMax)
  238.                 editor.putString(LOANS_KEY, loansOffers)
  239.                 editor.putString(CREDITS_KEY, creditsOffers)
  240.                 editor.apply()
  241.                 break
  242.             } catch (e: Exception) {
  243.                 e.printStackTrace()
  244.                 Thread.sleep(100)
  245.             }
  246.         }
  247.     }
  248. }
Add Comment
Please, Sign In to add comment