Skip to content

Commit

Permalink
android studio code optimization, lets hope for the best ;-)
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterHasse committed Jul 17, 2024
1 parent 987138c commit 5abe55d
Show file tree
Hide file tree
Showing 21 changed files with 223 additions and 307 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@

package de.fraunhofer.fokus.OpenMobileNetworkToolkit.DataProvider;

import static androidx.core.content.ContextCompat.getSystemService;
import static androidx.core.content.ContextCompat.registerReceiver;

import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
Expand All @@ -28,7 +25,6 @@
import android.net.NetworkRequest;
import android.net.TrafficStats;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Looper;
Expand All @@ -45,7 +41,6 @@
import android.telephony.CellSignalStrengthGsm;
import android.telephony.CellSignalStrengthLte;
import android.telephony.CellSignalStrengthNr;
import android.telephony.PhoneStateListener;
import android.telephony.PhysicalChannelConfig;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
Expand Down Expand Up @@ -86,30 +81,23 @@ public class DataProvider extends TelephonyCallback implements LocationListener,
private static final String TAG = "DataProvider";
private final Context ct;
private final SharedPreferences sp;
private boolean permission_phone_state;
private final boolean permission_phone_state;
private final DeviceInformation di = new DeviceInformation();
private final BatteryInformation bi = new BatteryInformation();
private final LocationCallback locationCallback;
private ConnectivityManager cm;
private boolean cp;
private TelephonyManager tm;

private SubscriptionManager sm;

// internal data caches
private List<CellInformation> ci = new ArrayList<>();
private DeviceInformation di = new DeviceInformation();
private FeatureInformation fi = new FeatureInformation();
private LocationInformation li = new LocationInformation();
private BatteryInformation bi = new BatteryInformation();
private NetworkInformation ni = new NetworkInformation();
private List<NetworkInterfaceInformation> nii = new ArrayList<>();
private ArrayList<SignalStrengthInformation> ssi = new ArrayList<>();
private SliceInformation si = new SliceInformation();
private WifiInfo wi = null;


private LocationManager lm;
// Time stamp, should be updated on each update of internal data caches
private long ts = System.currentTimeMillis();
private LocationCallback locationCallback;

@SuppressLint("ObsoleteSdkInt")
public DataProvider(Context context) {
Expand All @@ -122,7 +110,6 @@ public DataProvider(Context context) {
if (gv.isFeature_telephony()) {
cm = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE);
tm = gv.getTm();
cp = tm.hasCarrierPrivileges();
sm = (SubscriptionManager) ct.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
}

Expand Down Expand Up @@ -166,6 +153,7 @@ public void onLocationResult(@NonNull LocationResult locationResult) {
}

// ### Network Information ###
@SuppressLint("MissingPermission")
public void refreshNetworkInformation() {
if (permission_phone_state) {
updateTimestamp();
Expand Down Expand Up @@ -205,6 +193,7 @@ public Point getNetworkInformationPoint() {


// ## Device Information
@SuppressLint({"MissingPermission", "HardwareIds", "ObsoleteSdkInt"})
public void refreshDeviceInformation() {
updateTimestamp();
di.setTimeStamp(ts);
Expand Down Expand Up @@ -302,6 +291,7 @@ public List<Point> getNetworkInterfaceInformationPoints() {

/**
* Callback to receive current cell information
*
* @param list is the list of currently visible cells.
*/
@SuppressLint("ObsoleteSdkInt")
Expand Down Expand Up @@ -549,59 +539,55 @@ public Point getNetworkCapabilitiesPoint() {
// ### Signal Strength Information ###
@SuppressLint("ObsoleteSdkInt")
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
public void onSignalStrengthsChanged(@NonNull SignalStrength signalStrength) {
updateTimestamp();
long ts_ = ts;
if (signalStrength != null) {
List<android.telephony.CellSignalStrength> css = signalStrength.getCellSignalStrengths();
ArrayList<SignalStrengthInformation> signalStrengthInformations = new ArrayList<SignalStrengthInformation>();
for (CellSignalStrength ss : css) {
SignalStrengthInformation signalStrengthInformation = new SignalStrengthInformation(ts_);
if (ss instanceof CellSignalStrengthNr) {
CellSignalStrengthNr ssnr = (CellSignalStrengthNr) ss;
signalStrengthInformation.setLevel(ssnr.getLevel());
signalStrengthInformation.setCsiRSRP(ssnr.getCsiRsrp());
signalStrengthInformation.setCsiRSRQ(ssnr.getCsiRsrq());
signalStrengthInformation.setCsiSINR(ssnr.getCsiSinr());
signalStrengthInformation.setSSRSRP(ssnr.getSsRsrp());
signalStrengthInformation.setSSRSRQ(ssnr.getSsRsrq());
signalStrengthInformation.setSSSINR(ssnr.getSsSinr());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.NR);
}
if (ss instanceof CellSignalStrengthLte) {
CellSignalStrengthLte ssLTE = (CellSignalStrengthLte) ss;
signalStrengthInformation.setLevel(ssLTE.getLevel());
signalStrengthInformation.setCQI(ssLTE.getCqi());

signalStrengthInformation.setRSRQ(ssLTE.getRsrq());
signalStrengthInformation.setRSRQ(ssLTE.getRsrp());
signalStrengthInformation.setRSSI(ssLTE.getRssi());
signalStrengthInformation.setRSSNR(ssLTE.getRssnr());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.LTE);
}
if (ss instanceof CellSignalStrengthCdma) {
CellSignalStrengthCdma ssCdma = (CellSignalStrengthCdma) ss;
signalStrengthInformation.setLevel(ssCdma.getLevel());
signalStrengthInformation.setEvoDbm(ssCdma.getEvdoDbm());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.CDMA);
}
if (ss instanceof CellSignalStrengthGsm) {
CellSignalStrengthGsm ssGSM = (CellSignalStrengthGsm) ss;
signalStrengthInformation.setLevel(ssGSM.getLevel());
signalStrengthInformation.setAsuLevel(ssGSM.getAsuLevel());
signalStrengthInformation.setDbm(ssGSM.getDbm());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
signalStrengthInformation.setRSSI(ssGSM.getRssi());
}
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.GSM);
List<CellSignalStrength> css = signalStrength.getCellSignalStrengths();
ArrayList<SignalStrengthInformation> signalStrengthInformations = new ArrayList<>();
for (CellSignalStrength ss : css) {
SignalStrengthInformation signalStrengthInformation = new SignalStrengthInformation(ts_);
if (ss instanceof CellSignalStrengthNr) {
CellSignalStrengthNr ssnr = (CellSignalStrengthNr) ss;
signalStrengthInformation.setLevel(ssnr.getLevel());
signalStrengthInformation.setCsiRSRP(ssnr.getCsiRsrp());
signalStrengthInformation.setCsiRSRQ(ssnr.getCsiRsrq());
signalStrengthInformation.setCsiSINR(ssnr.getCsiSinr());
signalStrengthInformation.setSSRSRP(ssnr.getSsRsrp());
signalStrengthInformation.setSSRSRQ(ssnr.getSsRsrq());
signalStrengthInformation.setSSSINR(ssnr.getSsSinr());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.NR);
}
if (ss instanceof CellSignalStrengthLte) {
CellSignalStrengthLte ssLTE = (CellSignalStrengthLte) ss;
signalStrengthInformation.setLevel(ssLTE.getLevel());
signalStrengthInformation.setCQI(ssLTE.getCqi());

signalStrengthInformation.setRSRQ(ssLTE.getRsrq());
signalStrengthInformation.setRSRQ(ssLTE.getRsrp());
signalStrengthInformation.setRSSI(ssLTE.getRssi());
signalStrengthInformation.setRSSNR(ssLTE.getRssnr());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.LTE);
}
if (ss instanceof CellSignalStrengthCdma) {
CellSignalStrengthCdma ssCdma = (CellSignalStrengthCdma) ss;
signalStrengthInformation.setLevel(ssCdma.getLevel());
signalStrengthInformation.setEvoDbm(ssCdma.getEvdoDbm());
signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.CDMA);
}
if (ss instanceof CellSignalStrengthGsm) {
CellSignalStrengthGsm ssGSM = (CellSignalStrengthGsm) ss;
signalStrengthInformation.setLevel(ssGSM.getLevel());
signalStrengthInformation.setAsuLevel(ssGSM.getAsuLevel());
signalStrengthInformation.setDbm(ssGSM.getDbm());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
signalStrengthInformation.setRSSI(ssGSM.getRssi());
}
signalStrengthInformations.add(signalStrengthInformation);

signalStrengthInformation.setConnectionType(SignalStrengthInformation.connectionTypes.GSM);
}
ssi = signalStrengthInformations;
} else {
ssi = new ArrayList<>();
signalStrengthInformations.add(signalStrengthInformation);

}
ssi = signalStrengthInformations;
}

public ArrayList<SignalStrengthInformation> getSignalStrengthInformation() {
Expand Down Expand Up @@ -666,6 +652,7 @@ public Point getSignalStrengthPoint() {

/**
* get location object if available
*
* @return LocationInformation object
*/
public LocationInformation getLocation() {
Expand All @@ -674,6 +661,7 @@ public LocationInformation getLocation() {

/**
* return the location as influx point
*
* @return influx point of current location
*/
public Point getLocationPoint() {
Expand Down Expand Up @@ -749,16 +737,6 @@ public void refreshBatteryInfo() {
bi.setCharge_type(batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1) : -1);
}

/**
* Return an BatteryInformation object
*
* @return BatteryInformation object
*/
public BatteryInformation getBatteryInformation() {
refreshBatteryInfo();
return bi;
}

/**
* Build an influx point from the BatteryInformation object
*
Expand Down Expand Up @@ -825,19 +803,6 @@ public void onPhysicalChannelConfigChanged(@NonNull List<PhysicalChannelConfig>
Log.d(TAG, list.toString());
}

/**
* get the phone IMEI if accessible
*
* @return String of IMEI if available
*/
public String getIMEI() {
if (tm.hasCarrierPrivileges()) {
return tm.getImei();
} else {
return "N/A";
}
}

/**
* get the SIMs IMSI if accessible
* We suppress the linter warning as we need IMSI even that not recommended for most apps.
Expand Down Expand Up @@ -980,7 +945,7 @@ public void onUnavailable() {
}
};
cm.registerNetworkCallback(request, networkCallback);
cm.requestNetwork(request,networkCallback);
cm.requestNetwork(request, networkCallback);
}
} catch (Exception e) {
Log.d("Network Callback: Exception in registerNetworkCallback", "Catch exception");
Expand Down
Loading

0 comments on commit 5abe55d

Please sign in to comment.