Skip to content

Commit 833bf49

Browse files
committed
MainActivity.kt: Add method for setting API language if not setted yet
1 parent 9a2bf7d commit 833bf49

File tree

1 file changed

+43
-11
lines changed

1 file changed

+43
-11
lines changed

app/src/main/java/com/addev/listaspam/MainActivity.kt

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.addev.listaspam
22

33
import android.Manifest
4-
import android.app.Activity
54
import android.app.AlertDialog
65
import android.app.role.RoleManager
76
import android.content.Context
@@ -11,15 +10,13 @@ import android.net.Uri
1110
import android.os.Build
1211
import android.os.Bundle
1312
import android.provider.Settings
14-
import android.telecom.TelecomManager
1513
import android.text.InputType
1614
import android.view.Menu
1715
import android.view.MenuItem
1816
import android.widget.EditText
1917
import android.widget.Toast
2018
import androidx.activity.result.ActivityResultLauncher
2119
import androidx.activity.result.contract.ActivityResultContracts
22-
import androidx.annotation.RequiresApi
2320
import androidx.appcompat.app.AppCompatActivity
2421
import androidx.core.app.ActivityCompat
2522
import androidx.core.content.ContextCompat
@@ -28,27 +25,28 @@ import androidx.core.view.WindowInsetsCompat
2825
import androidx.recyclerview.widget.LinearLayoutManager
2926
import androidx.recyclerview.widget.RecyclerView
3027
import 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
3529
import com.addev.listaspam.util.SpamUtils
36-
import com.addev.listaspam.util.WHITELIST_NUMBERS_KEY
3730
import com.addev.listaspam.util.getBlockedNumbers
31+
import com.addev.listaspam.util.getCallLogs
3832
import com.addev.listaspam.util.getWhitelistNumbers
33+
import com.addev.listaspam.util.setListaSpamApiLang
34+
import java.util.Locale
3935

4036
class 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

Comments
 (0)