From b31241fa9f04791e5b2646ab815d5a009e5676f0 Mon Sep 17 00:00:00 2001 From: Nishant Srivastava Date: Thu, 21 Dec 2017 16:07:27 +0530 Subject: [PATCH] refactor: code refactor and bug fixes --- .../projecteasydeviceinfo/MainActivity.java | 33 ++-- .../easydeviceinfo/base/EasyBatteryMod.java | 5 +- .../easydeviceinfo/base/EasyConfigMod.java | 29 +-- .../easydeviceinfo/base/EasyDeviceMod.java | 7 +- .../easydeviceinfo/base/EasyDisplayMod.java | 25 ++- .../easydeviceinfo/base/EasyMemoryMod.java | 7 +- .../easydeviceinfo/base/EasyNetworkMod.java | 169 ++++++++++-------- 7 files changed, 159 insertions(+), 116 deletions(-) diff --git a/app/src/main/java/github/nisrulz/projecteasydeviceinfo/MainActivity.java b/app/src/main/java/github/nisrulz/projecteasydeviceinfo/MainActivity.java index 6ed13fe..4d725ca 100644 --- a/app/src/main/java/github/nisrulz/projecteasydeviceinfo/MainActivity.java +++ b/app/src/main/java/github/nisrulz/projecteasydeviceinfo/MainActivity.java @@ -17,12 +17,14 @@ package github.nisrulz.projecteasydeviceinfo; import android.Manifest; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.hardware.Sensor; import android.os.Build; import android.os.Bundle; import android.support.v4.util.ArrayMap; import android.support.v7.app.AppCompatActivity; +import android.support.v7.appcompat.BuildConfig; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.widget.ArrayAdapter; @@ -58,6 +60,7 @@ public class MainActivity extends AppCompatActivity { private ArrayAdapter adapter; + @SuppressLint("MissingPermission") @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) @Override protected void onCreate(Bundle savedInstanceState) { @@ -141,21 +144,21 @@ public void onSuccess(String adIdentifier, boolean adDonotTrack) { List list = easySensorMod.getAllSensors(); for (Sensor s : list) { if (s != null) { - StringBuilder stringBuilder = new StringBuilder().append("\nVendor : ") - .append(s.getVendor()) - .append("\n") - .append("Version : ") - .append(s.getVersion()) - .append("\n") - .append("Power : ") - .append(s.getPower()) - .append("\n") - .append("Resolution : ") - .append(s.getResolution()) - .append("\n") - .append("Max Range : ") - .append(s.getMaximumRange()); - deviceDataMap.put("Sensor Name - " + s.getName(), stringBuilder.toString()); + String stringBuilder = "\nVendor : " + + s.getVendor() + + "\n" + + "Version : " + + s.getVersion() + + "\n" + + "Power : " + + s.getPower() + + "\n" + + "Resolution : " + + s.getResolution() + + "\n" + + "Max Range : " + + s.getMaximumRange(); + deviceDataMap.put("Sensor Name - " + s.getName(), stringBuilder); } else { deviceDataMap.put("Sensor", "N/A"); } diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyBatteryMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyBatteryMod.java index 3596fc6..855cb1b 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyBatteryMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyBatteryMod.java @@ -99,7 +99,7 @@ public final int getBatteryHealth() { */ public final String getBatteryTechnology() { return CheckValidityUtil.checkValidData( - getBatteryStatusIntent().getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY)); + getBatteryStatusIntent().getStringExtra(BatteryManager.EXTRA_TECHNOLOGY)); } /** @@ -158,6 +158,7 @@ public final int getChargingSource() { * @return the boolean */ public final boolean isBatteryPresent() { - return getBatteryStatusIntent().getExtras().getBoolean(BatteryManager.EXTRA_PRESENT); + return getBatteryStatusIntent().getExtras() != null && getBatteryStatusIntent().getExtras() + .getBoolean(BatteryManager.EXTRA_PRESENT); } } \ No newline at end of file diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyConfigMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyConfigMod.java index 070251c..5d11241 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyConfigMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyConfigMod.java @@ -82,20 +82,23 @@ public final boolean isRunningOnEmulator() { public final int getDeviceRingerMode() { int ringerMode = RingerMode.NORMAL; AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - switch (audioManager.getRingerMode()) { - case RINGER_MODE_NORMAL: - ringerMode = RingerMode.NORMAL; - break; - case RINGER_MODE_SILENT: - ringerMode = RingerMode.SILENT; - break; - case RINGER_MODE_VIBRATE: - ringerMode = RingerMode.VIBRATE; - break; - default: - //do nothing - break; + if (audioManager != null) { + switch (audioManager.getRingerMode()) { + case RINGER_MODE_NORMAL: + ringerMode = RingerMode.NORMAL; + break; + case RINGER_MODE_SILENT: + ringerMode = RingerMode.SILENT; + break; + case RINGER_MODE_VIBRATE: + ringerMode = RingerMode.VIBRATE; + break; + default: + //do nothing + break; + } } + return ringerMode; } diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDeviceMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDeviceMod.java index d4da0e3..5a0c816 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDeviceMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDeviceMod.java @@ -292,8 +292,11 @@ public final String getBuildVersionRelease() { */ public final String getScreenDisplayID() { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - Display display = wm.getDefaultDisplay(); - return CheckValidityUtil.checkValidData(String.valueOf(display.getDisplayId())); + if (wm != null) { + Display display = wm.getDefaultDisplay(); + return CheckValidityUtil.checkValidData(String.valueOf(display.getDisplayId())); + } + return CheckValidityUtil.checkValidData(""); } /** diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDisplayMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDisplayMod.java index f2a53db..6993544 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDisplayMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyDisplayMod.java @@ -40,7 +40,11 @@ public EasyDisplayMod(final Context context) { this.context = context; WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - display = wm.getDefaultDisplay(); + if (wm != null) { + display = wm.getDefaultDisplay(); + } else { + display = null; + } } /** @@ -109,8 +113,11 @@ public final int[] getDisplayXYCoordinates(final MotionEvent event) { */ public final String getResolution() { DisplayMetrics metrics = new DisplayMetrics(); - display.getMetrics(metrics); - return CheckValidityUtil.checkValidData(metrics.heightPixels + "x" + metrics.widthPixels); + if (display != null) { + display.getMetrics(metrics); + return CheckValidityUtil.checkValidData(metrics.heightPixels + "x" + metrics.widthPixels); + } + return CheckValidityUtil.checkValidData(""); } public final float getRefreshRate() { @@ -119,9 +126,13 @@ public final float getRefreshRate() { public final float getPhysicalSize() { DisplayMetrics metrics = new DisplayMetrics(); - display.getMetrics(metrics); - float x = (float) Math.pow(metrics.widthPixels / metrics.xdpi, 2); - float y = (float) Math.pow(metrics.heightPixels / metrics.ydpi, 2); - return (float) Math.sqrt(x + y); + + if (display != null) { + display.getMetrics(metrics); + float x = (float) Math.pow(metrics.widthPixels / metrics.xdpi, 2); + float y = (float) Math.pow(metrics.heightPixels / metrics.ydpi, 2); + return (float) Math.sqrt(x + y); + } + return 0f; } } diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyMemoryMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyMemoryMod.java index a959dc3..f76f32f 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyMemoryMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyMemoryMod.java @@ -66,8 +66,10 @@ public final long getTotalRAM() { MemoryInfo mi = new MemoryInfo(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE); - activityManager.getMemoryInfo(mi); - totalMemory = mi.totalMem; + if (activityManager != null) { + activityManager.getMemoryInfo(mi); + totalMemory = mi.totalMem; + } } else { RandomAccessFile reader = null; String load; @@ -230,6 +232,7 @@ public float convertToGb(long valInBytes) { * * @return the float */ + @SuppressWarnings("NumericOverflow") public float convertToTb(long valInBytes) { return (float) valInBytes / (BYTEFACTOR * BYTEFACTOR * BYTEFACTOR * BYTEFACTOR); } diff --git a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyNetworkMod.java b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyNetworkMod.java index 490c1ee..8177e9c 100644 --- a/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyNetworkMod.java +++ b/easydeviceinfo-base/src/main/java/github/nisrulz/easydeviceinfo/base/EasyNetworkMod.java @@ -90,8 +90,10 @@ public final boolean isNetworkAvailable() { && PermissionUtil.hasPermission(context, Manifest.permission.ACCESS_NETWORK_STATE)) { ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext() .getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = cm.getActiveNetworkInfo(); - return netInfo != null && netInfo.isConnected(); + if (cm != null) { + NetworkInfo netInfo = cm.getActiveNetworkInfo(); + return netInfo != null && netInfo.isConnected(); + } } return false; } @@ -175,49 +177,52 @@ public final int getNetworkType() { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); - if (activeNetwork == null) { - result = NetworkType.UNKNOWN; - } else if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI - || activeNetwork.getType() == ConnectivityManager.TYPE_WIMAX) { - result = NetworkType.WIFI_WIFIMAX; - } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { - TelephonyManager manager = - (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (manager.getSimState() == TelephonyManager.SIM_STATE_READY) { - switch (manager.getNetworkType()) { + if (cm != null) { + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + if (activeNetwork == null) { + result = NetworkType.UNKNOWN; + } else if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI + || activeNetwork.getType() == ConnectivityManager.TYPE_WIMAX) { + result = NetworkType.WIFI_WIFIMAX; + } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { + TelephonyManager manager = + (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + + if (manager != null && manager.getSimState() == TelephonyManager.SIM_STATE_READY) { + switch (manager.getNetworkType()) { - // Unknown - case TelephonyManager.NETWORK_TYPE_UNKNOWN: - result = NetworkType.CELLULAR_UNKNOWN; - break; - // Cellular Data 2G - case TelephonyManager.NETWORK_TYPE_EDGE: - case TelephonyManager.NETWORK_TYPE_GPRS: - case TelephonyManager.NETWORK_TYPE_CDMA: - case TelephonyManager.NETWORK_TYPE_IDEN: - case TelephonyManager.NETWORK_TYPE_1xRTT: - result = NetworkType.CELLULAR_2G; - break; - // Cellular Data 3G - case TelephonyManager.NETWORK_TYPE_UMTS: - case TelephonyManager.NETWORK_TYPE_HSDPA: - case TelephonyManager.NETWORK_TYPE_HSPA: - case TelephonyManager.NETWORK_TYPE_HSPAP: - case TelephonyManager.NETWORK_TYPE_HSUPA: - case TelephonyManager.NETWORK_TYPE_EVDO_0: - case TelephonyManager.NETWORK_TYPE_EVDO_A: - case TelephonyManager.NETWORK_TYPE_EVDO_B: - result = NetworkType.CELLULAR_3G; - break; - // Cellular Data 4G - case TelephonyManager.NETWORK_TYPE_LTE: - result = NetworkType.CELLULAR_4G; - break; - // Cellular Data Unknown Generation - default: - result = NetworkType.CELLULAR_UNIDENTIFIED_GEN; - break; + // Unknown + case TelephonyManager.NETWORK_TYPE_UNKNOWN: + result = NetworkType.CELLULAR_UNKNOWN; + break; + // Cellular Data 2G + case TelephonyManager.NETWORK_TYPE_EDGE: + case TelephonyManager.NETWORK_TYPE_GPRS: + case TelephonyManager.NETWORK_TYPE_CDMA: + case TelephonyManager.NETWORK_TYPE_IDEN: + case TelephonyManager.NETWORK_TYPE_1xRTT: + result = NetworkType.CELLULAR_2G; + break; + // Cellular Data 3G + case TelephonyManager.NETWORK_TYPE_UMTS: + case TelephonyManager.NETWORK_TYPE_HSDPA: + case TelephonyManager.NETWORK_TYPE_HSPA: + case TelephonyManager.NETWORK_TYPE_HSPAP: + case TelephonyManager.NETWORK_TYPE_HSUPA: + case TelephonyManager.NETWORK_TYPE_EVDO_0: + case TelephonyManager.NETWORK_TYPE_EVDO_A: + case TelephonyManager.NETWORK_TYPE_EVDO_B: + result = NetworkType.CELLULAR_3G; + break; + // Cellular Data 4G + case TelephonyManager.NETWORK_TYPE_LTE: + result = NetworkType.CELLULAR_4G; + break; + // Cellular Data Unknown Generation + default: + result = NetworkType.CELLULAR_UNIDENTIFIED_GEN; + break; + } } } } @@ -279,7 +284,9 @@ public final String getWifiMAC() { } else { WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); - result = wm.getConnectionInfo().getMacAddress(); + if (wm != null) { + result = wm.getConnectionInfo().getMacAddress(); + } } } return CheckValidityUtil.checkValidData(result); @@ -303,17 +310,21 @@ public final String getWifiSSID() { if (PermissionUtil.hasPermission(context, Manifest.permission.ACCESS_WIFI_STATE)) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = cm.getActiveNetworkInfo(); - if (networkInfo == null) { - result = null; - } + if (cm != null) { + NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + if (networkInfo == null) { + result = null; + } - if (networkInfo != null && networkInfo.isConnected()) { - final WifiManager wifiManager = - (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); - final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); - if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { - result = connectionInfo.getSSID(); + if (networkInfo != null && networkInfo.isConnected()) { + final WifiManager wifiManager = + (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); + if (wifiManager != null) { + final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); + if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { + result = connectionInfo.getSSID(); + } + } } } } @@ -338,17 +349,21 @@ public final String getWifiBSSID() { if (PermissionUtil.hasPermission(context, Manifest.permission.ACCESS_WIFI_STATE)) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = cm.getActiveNetworkInfo(); - if (networkInfo == null) { - result = null; - } + if (cm != null) { + NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + if (networkInfo == null) { + result = null; + } - if (networkInfo != null && networkInfo.isConnected()) { - final WifiManager wifiManager = - (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); - final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); - if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { - result = connectionInfo.getBSSID(); + if (networkInfo != null && networkInfo.isConnected()) { + final WifiManager wifiManager = + (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); + if (wifiManager != null) { + final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); + if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { + result = connectionInfo.getBSSID(); + } + } } } } @@ -373,17 +388,21 @@ public final String getWifiLinkSpeed() { if (PermissionUtil.hasPermission(context, Manifest.permission.ACCESS_WIFI_STATE)) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = cm.getActiveNetworkInfo(); - if (networkInfo == null) { - result = null; - } + if (cm != null) { + NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + if (networkInfo == null) { + result = null; + } - if (networkInfo != null && networkInfo.isConnected()) { - final WifiManager wifiManager = - (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); - final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); - if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { - result = connectionInfo.getLinkSpeed() + " Mbps"; + if (networkInfo != null && networkInfo.isConnected()) { + final WifiManager wifiManager = + (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); + if (wifiManager != null) { + final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); + if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { + result = connectionInfo.getLinkSpeed() + " Mbps"; + } + } } } }