Skip to content

Commit 051f865

Browse files
committed
Add fallback website to check spam: www.responderono.es
1 parent 010f60a commit 051f865

File tree

2 files changed

+33
-4
lines changed

2 files changed

+33
-4
lines changed

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

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.content.pm.PackageManager
1010
import android.os.Build
1111
import android.telephony.TelephonyManager
1212
import android.widget.Toast
13+
import androidx.annotation.RequiresApi
1314
import androidx.core.app.ActivityCompat
1415
import androidx.core.app.NotificationCompat
1516
import androidx.core.app.NotificationManagerCompat
@@ -23,10 +24,12 @@ class MyCallReceiver : BroadcastReceiver() {
2324
private const val SPAM_PREFS = "SPAM_PREFS"
2425
private const val BLOCK_NUMBERS_KEY = "BLOCK_NUMBERS"
2526
private const val SPAM_URL_TEMPLATE = "https://www.listaspam.com/busca.php?Telefono=%s"
27+
private const val RESPONDERONO_URL_TEMPLATE = "https://www.responderono.es/numero-de-telefono/%s"
2628
private const val NOTIFICATION_CHANNEL_ID = "NOTIFICATION_CHANNEL"
2729
private const val NOTIFICATION_ID = 1
2830
}
2931

32+
@RequiresApi(Build.VERSION_CODES.CUPCAKE)
3033
override fun onReceive(context: Context, intent: Intent) {
3134
val state = intent.getStringExtra(TelephonyManager.EXTRA_STATE)
3235
val incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
@@ -48,7 +51,7 @@ class MyCallReceiver : BroadcastReceiver() {
4851
OkHttpClient().newCall(request).enqueue(object : Callback {
4952
override fun onFailure(call: Call, e: IOException) {
5053
// Handle error gracefully
51-
showToast(context, "Failed to check spam number", Toast.LENGTH_LONG)
54+
showToast(context, "Failed to check number in www.responderono.es", Toast.LENGTH_LONG)
5255
}
5356

5457
override fun onResponse(call: Call, response: Response) {
@@ -58,13 +61,39 @@ class MyCallReceiver : BroadcastReceiver() {
5861
saveSpamNumber(context, number)
5962
sendNotification(context, number)
6063
} else {
61-
removeSpamNumber(context, number)
64+
checkResponderono(context, number, spamData)
65+
if (spamData.responderONoNegative) {
66+
saveSpamNumber(context, number)
67+
sendNotification(context, number)
68+
} else {
69+
removeSpamNumber(context, number)
70+
showToast(context, "Incoming call is not spam", Toast.LENGTH_LONG)
71+
}
6272
}
6373
}
6474
}
6575
})
6676
}
6777

78+
private fun checkResponderono(context: Context, number: String, spamData: SpamData) {
79+
val url = RESPONDERONO_URL_TEMPLATE.format(number)
80+
val request = Request.Builder().url(url).build()
81+
82+
OkHttpClient().newCall(request).enqueue(object : Callback {
83+
override fun onFailure(call: Call, e: IOException) {
84+
// Handle error gracefully
85+
showToast(context, "Failed to check number in www.responderono.es", Toast.LENGTH_LONG)
86+
}
87+
88+
override fun onResponse(call: Call, response: Response) {
89+
response.body?.string()?.let { body ->
90+
val isResponderONoNegative = body.contains(".scoreContainer .score.negative")
91+
spamData.responderONoNegative = isResponderONoNegative
92+
}
93+
}
94+
})
95+
}
96+
6897
private fun saveSpamNumber(context: Context, number: String) {
6998
val sharedPreferences = context.getSharedPreferences(SPAM_PREFS, Context.MODE_PRIVATE)
7099
val blockedNumbers = sharedPreferences.getStringSet(BLOCK_NUMBERS_KEY, mutableSetOf())?.toMutableSet()
@@ -131,6 +160,6 @@ class MyCallReceiver : BroadcastReceiver() {
131160
val reports = elementReports?.text()?.toIntOrNull() ?: 0
132161
val searches = elementSearches?.text()?.toIntOrNull() ?: 0
133162

134-
return SpamData(reports, searches)
163+
return SpamData(reports, searches, false)
135164
}
136165
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package com.addev.listaspam
22

3-
class SpamData(val reports: Int, val searches: Int)
3+
class SpamData(val reports: Int, val searches: Int, var responderONoNegative: Boolean)

0 commit comments

Comments
 (0)