WaveUp crashes if no proximity sensor is available

If a device doesn't have a proximity sensor (or maybe if it can't get ahold of it), WaveUp will unavoidably crash. Strangely only happens on some devices.

Although WaveUp is completely useless without the proximity sensor, it would be nicer to show a message instead of crashing.

11-05 06:37:52.001  3623  3623 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jarsilio.android.waveup/com.jarsilio.android.waveup.MainActivity}: java.lang.IllegalStateException: sensorManager.getDefault…or(Sensor.TYPE_PROXIMITY) must not be null
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:193)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6669)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: Caused by: java.lang.IllegalStateException: sensorManager.getDefault…or(Sensor.TYPE_PROXIMITY) must not be null
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.service.ProximitySensorHandler.<init>(ProximitySensorHandler.kt:34)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.service.ProximitySensorHandler.<init>(ProximitySensorHandler.kt:32)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.service.ProximitySensorHandler$Companion$1.invoke(ProximitySensorHandler.kt:157)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.service.ProximitySensorHandler$Companion$1.invoke(ProximitySensorHandler.kt:157)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.model.SingletonHolder.getInstance(SingletonHolder.kt:23)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.prefs.Settings.setPreference(Settings.kt:103)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.prefs.Settings.setInitialDialogShown(Settings.kt:74)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.MainActivity.showInitialDialog(MainActivity.kt:83)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at com.jarsilio.android.waveup.MainActivity.onCreate(MainActivity.kt:69)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:7136)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:7127)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
11-05 06:37:52.001  3623  3623 E AndroidRuntime: 	... 11 more
11-05 06:37:52.004  1411  1736 W ActivityManager:   Force finishing activity com.jarsilio.android.waveup/.MainActivity
Edited by juanitobananas