11package com.addev.listaspam
22
33import android.Manifest
4- import android.app.Activity
54import android.app.AlertDialog
65import android.app.role.RoleManager
76import android.content.Context
@@ -11,15 +10,13 @@ import android.net.Uri
1110import android.os.Build
1211import android.os.Bundle
1312import android.provider.Settings
14- import android.telecom.TelecomManager
1513import android.text.InputType
1614import android.view.Menu
1715import android.view.MenuItem
1816import android.widget.EditText
1917import android.widget.Toast
2018import androidx.activity.result.ActivityResultLauncher
2119import androidx.activity.result.contract.ActivityResultContracts
22- import androidx.annotation.RequiresApi
2320import androidx.appcompat.app.AppCompatActivity
2421import androidx.core.app.ActivityCompat
2522import androidx.core.content.ContextCompat
@@ -28,27 +25,28 @@ import androidx.core.view.WindowInsetsCompat
2825import androidx.recyclerview.widget.LinearLayoutManager
2926import androidx.recyclerview.widget.RecyclerView
3027import com.addev.listaspam.adapter.CallLogAdapter
31- import com.addev.listaspam.adapter.CallLogAdapter.Companion.REPORT_URL_TEMPLATE
32- import com.addev.listaspam.util.BLOCK_NUMBERS_KEY
33- import com.addev.listaspam.util.SPAM_PREFS
34- import com.addev.listaspam.util.getCallLogs
28+ import com.addev.listaspam.service.UpdateChecker
3529import com.addev.listaspam.util.SpamUtils
36- import com.addev.listaspam.util.WHITELIST_NUMBERS_KEY
3730import com.addev.listaspam.util.getBlockedNumbers
31+ import com.addev.listaspam.util.getCallLogs
3832import com.addev.listaspam.util.getWhitelistNumbers
33+ import com.addev.listaspam.util.setListaSpamApiLang
34+ import java.util.Locale
3935
4036class MainActivity : AppCompatActivity (), CallLogAdapter.OnItemChangedListener {
4137
4238 private lateinit var intentLauncher: ActivityResultLauncher <Intent >
4339 private var permissionDeniedDialog: AlertDialog ? = null
44- private var callLogAdapter: CallLogAdapter ? = null
40+ private var callLogAdapter: CallLogAdapter ? = null
4541 private var recyclerView: RecyclerView ? = null
4642
4743 private val spamUtils = SpamUtils ()
4844
4945 companion object {
5046 private const val REQUEST_CODE_PERMISSIONS = 1
51- private const val ABOUT_LINK = " https://github.com/adamff-dev/spain-spam-call-blocker-app" ;
47+ private const val GITHUB_USER = " adamff-dev"
48+ private const val GITHUB_REPO = " spam-call-blocker-app"
49+ private const val ABOUT_LINK = " https://github.com/$GITHUB_USER /$GITHUB_REPO "
5250 }
5351
5452 override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -59,6 +57,9 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
5957
6058 recyclerView = findViewById(R .id.recyclerView)
6159 recyclerView?.layoutManager = LinearLayoutManager (this )
60+
61+ setLanguage()
62+ checkUpdates()
6263 }
6364
6465 override fun onCreateOptionsMenu (menu : Menu ? ): Boolean {
@@ -73,19 +74,49 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
7374 startActivity(intent)
7475 true
7576 }
77+
7678 R .id.action_about -> {
7779 val intent = Intent (Intent .ACTION_VIEW , Uri .parse(ABOUT_LINK ))
7880 this .startActivity(intent)
7981 true
8082 }
83+
8184 R .id.test_number -> {
8285 showNumberInputDialog()
8386 true
8487 }
88+
8589 else -> super .onOptionsItemSelected(item)
8690 }
8791 }
8892
93+ private fun checkUpdates () {
94+ Thread {
95+ val checker = UpdateChecker (
96+ context = this ,
97+ githubUser = GITHUB_USER ,
98+ githubRepo = GITHUB_REPO
99+ )
100+ checker.checkForUpdateSync()
101+ }.start()
102+ }
103+
104+ private fun setLanguage () {
105+ val systemLanguage = Locale .getDefault().language
106+ val supportedLanguages = setOf (
107+ " EN" , " ES" , " FR" , " DE" , " IT" , " RU" , " SV" , " PL" , " PT" ,
108+ " NL" , " NO" , " CZ" , " ID" , " ZH" , " JA" , " HE" , " TR" , " HU" ,
109+ " FI" , " DA" , " TH" , " GK" , " SK" , " RO"
110+ )
111+
112+ val finalLang = if (supportedLanguages.contains(systemLanguage)) {
113+ systemLanguage
114+ } else {
115+ " EN"
116+ }
117+
118+ setListaSpamApiLang(this , finalLang)
119+ }
89120
90121 private fun showNumberInputDialog () {
91122 val builder = AlertDialog .Builder (this )
@@ -228,7 +259,8 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
228259
229260 private fun showPermissionToastAndRequest (missingPermissions : List <String >) {
230261 val permissionNames = missingPermissions.map { " • " + getPermissionName(it) }
231- val message = getString(R .string.permissions_required_message, permissionNames.joinToString(" \n " ))
262+ val message =
263+ getString(R .string.permissions_required_message, permissionNames.joinToString(" \n " ))
232264
233265 if (permissionDeniedDialog?.isShowing == true ) {
234266 return
0 commit comments