NTP-54031 | Pulkit | added wificalling check (#1127)
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user