Add toggle to control call bandwidth.

This commit is contained in:
Alex Hart
2021-01-12 17:40:47 -04:00
committed by Greyson Parrelli
parent 8724d904b7
commit be91f2396c
20 changed files with 347 additions and 100 deletions

View File

@@ -82,29 +82,10 @@ public class AttachmentUtil {
}
private static @NonNull Set<String> getAllowedAutoDownloadTypes(@NonNull Context context) {
if (isConnectedWifi(context)) return TextSecurePreferences.getWifiMediaDownloadAllowed(context);
else if (isConnectedRoaming(context)) return TextSecurePreferences.getRoamingMediaDownloadAllowed(context);
else if (isConnectedMobile(context)) return TextSecurePreferences.getMobileMediaDownloadAllowed(context);
else return Collections.emptySet();
}
private static NetworkInfo getNetworkInfo(@NonNull Context context) {
return ServiceUtil.getConnectivityManager(context).getActiveNetworkInfo();
}
private static boolean isConnectedWifi(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI;
}
private static boolean isConnectedMobile(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_MOBILE;
}
private static boolean isConnectedRoaming(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.isRoaming() && info.getType() == ConnectivityManager.TYPE_MOBILE;
if (NetworkUtil.isConnectedWifi(context)) return TextSecurePreferences.getWifiMediaDownloadAllowed(context);
else if (NetworkUtil.isConnectedRoaming(context)) return TextSecurePreferences.getRoamingMediaDownloadAllowed(context);
else if (NetworkUtil.isConnectedMobile(context)) return TextSecurePreferences.getMobileMediaDownloadAllowed(context);
else return Collections.emptySet();
}
@WorkerThread

View File

@@ -0,0 +1,44 @@
package org.thoughtcrime.securesms.util;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
public final class NetworkUtil {
private NetworkUtil() {}
public static boolean isConnectedWifi(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI;
}
public static boolean isConnectedMobile(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_MOBILE;
}
public static boolean isConnectedRoaming(@NonNull Context context) {
final NetworkInfo info = getNetworkInfo(context);
return info != null && info.isConnected() && info.isRoaming() && info.getType() == ConnectivityManager.TYPE_MOBILE;
}
public static boolean useLowBandwidthCalling(@NonNull Context context) {
switch (SignalStore.settings().getCallBandwidthMode()) {
case HIGH_ON_WIFI:
return !NetworkUtil.isConnectedWifi(context);
case HIGH_ALWAYS:
return false;
default:
return true;
}
}
private static NetworkInfo getNetworkInfo(@NonNull Context context) {
return ServiceUtil.getConnectivityManager(context).getActiveNetworkInfo();
}
}

View File

@@ -113,6 +113,8 @@ public class TextSecurePreferences {
public static final String MEDIA_DOWNLOAD_WIFI_PREF = "pref_media_download_wifi";
public static final String MEDIA_DOWNLOAD_ROAMING_PREF = "pref_media_download_roaming";
public static final String CALL_BANDWIDTH_PREF = "pref_data_call_bandwidth";
public static final String SYSTEM_EMOJI_PREF = "pref_system_emoji";
private static final String MULTI_DEVICE_PROVISIONED_PREF = "pref_multi_device";
public static final String DIRECT_CAPTURE_CAMERA_ID = "pref_direct_capture_camera_id";