From a3c4f5fa7fd88dfd03cec60df32a9ae97053f70e Mon Sep 17 00:00:00 2001 From: Alexandre Lision <alexandre.lision@savoirfairelinux.com> Date: Tue, 7 Jan 2014 17:22:22 -0500 Subject: [PATCH] * #38141: added wifi receiver during call. We now have a feedback on wifi strength during a call in application log. Some testing should be done but it seems reliable. It should be integrated in the user interface in the future. --- AndroidManifest.xml | 1 + src/org/sflphone/fragments/CallFragment.java | 30 ++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9082930c7..624b98067 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -60,6 +60,7 @@ as that of the covered work. <uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.VIBRATE" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> diff --git a/src/org/sflphone/fragments/CallFragment.java b/src/org/sflphone/fragments/CallFragment.java index 56cbba16f..0a098f600 100644 --- a/src/org/sflphone/fragments/CallFragment.java +++ b/src/org/sflphone/fragments/CallFragment.java @@ -34,6 +34,10 @@ package org.sflphone.fragments; import java.util.ArrayList; import java.util.Locale; +import android.content.BroadcastReceiver; +import android.content.IntentFilter; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; import org.sflphone.R; import org.sflphone.model.Attractor; import org.sflphone.model.Bubble; @@ -104,6 +108,16 @@ public class CallFragment extends Fragment implements Callback { private Bitmap call_icon; TransferDFragment editName; + private WifiManager wifiManager; + private BroadcastReceiver wifiReceiver = new BroadcastReceiver() { + + @Override + public void onReceive(Context context, Intent intent) { + WifiInfo info = wifiManager.getConnectionInfo(); + Log.i(TAG, "Level of wifi " +info.getRssi()); + } + + }; @Override public void onCreate(Bundle savedBundle) { @@ -123,7 +137,21 @@ public class CallFragment extends Fragment implements Callback { if (wakeLock != null && !wakeLock.isHeld()) { wakeLock.acquire(); } + } + + private void initializeWiFiListener(){ + Log.i(TAG, "executing initializeWiFiListener"); + + String connectivity_context = Context.WIFI_SERVICE; + wifiManager = (WifiManager) getActivity().getSystemService(connectivity_context); + + if(!wifiManager.isWifiEnabled()){ + if(wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLING){ + wifiManager.setWifiEnabled(true); + } + } + getActivity().registerReceiver(wifiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION)); } /** @@ -211,11 +239,13 @@ public class CallFragment extends Fragment implements Callback { @Override public void onResume() { super.onResume(); + initializeWiFiListener(); } @Override public void onPause() { super.onPause(); + getActivity().unregisterReceiver(wifiReceiver); if (wakeLock != null && wakeLock.isHeld()) { wakeLock.release(); } -- GitLab