NTP-54031 | Pulkit | added wificalling check (#1127)

This commit is contained in:
Pulkit Barwal
2025-04-09 16:19:57 +05:30
committed by GitHub
parent 89644d1180
commit c9137d33ed
2 changed files with 39 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
package="com.avapp"
>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />

View File

@@ -1,8 +1,13 @@
package com.avapp;
import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.telephony.TelephonyManager;
import android.telecom.TelecomManager;
import android.util.Log;
@@ -16,6 +21,7 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import androidx.core.app.ActivityCompat;
public class CallReceiver extends BroadcastReceiver {
@@ -46,6 +52,35 @@ public class CallReceiver extends BroadcastReceiver {
// Handle call in progress (OFFHOOK state for both incoming and outgoing)
if (state != null && TelephonyManager.EXTRA_STATE_OFFHOOK.equals(state)) {
Log.d("CALL_RECEIVER", "Call in progress (OFFHOOK event detected)");
boolean voiceNetworkType = false;
boolean dataNetworkType = false;
boolean connectivityManagerIsVoWiFi = false;
if (ActivityCompat.checkSelfPermission(context,
Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {
voiceNetworkType = telephonyManager.getVoiceNetworkType() == TelephonyManager.NETWORK_TYPE_IWLAN;
dataNetworkType = telephonyManager.getDataNetworkType() == TelephonyManager.NETWORK_TYPE_IWLAN;
}
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null
&& android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network activeNetwork = connectivityManager.getActiveNetwork();
if (activeNetwork != null) {
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
if (capabilities != null) {
connectivityManagerIsVoWiFi = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
&& capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS);
}
}
}
}
// Proceed only if we have a valid phone number
if (lastNumber != null && !lastNumber.isEmpty()) {
@@ -55,6 +90,9 @@ public class CallReceiver extends BroadcastReceiver {
callData.put("number", lastNumber);
callData.put("timestamp", timestamp);
callData.put("defaultDialer", defaultDialer);
callData.put("VoiceNetworkIsVoWiFi", voiceNetworkType);
callData.put("DataNetworkIsVoWiFi", dataNetworkType);
callData.put("ConnectivityManagerIsVoWiFi", connectivityManagerIsVoWiFi);
// Save the call data
if (!isDuplicateCall(lastNumber)) {