@@ -35,6 +35,7 @@ import android.nfc.NfcManager
3535import android.os.*
3636import android.os.storage.StorageManager
3737import android.print.PrintManager
38+ import android.support.annotation.RequiresApi
3839import android.telecom.TelecomManager
3940import android.telephony.CarrierConfigManager
4041import android.telephony.SubscriptionManager
@@ -165,6 +166,8 @@ interface ServiceExtensions {
165166
166167 val Context .systemServices: Services get() = Services (this )
167168
169+ // WindowManager Extensions
170+
168171 val WindowManager .screenHeight: Int
169172 get() = DisplayMetrics ().apply { defaultDisplay.getRealMetrics(this ) }.heightPixels
170173
@@ -213,6 +216,23 @@ interface ServiceExtensions {
213216 return dpi
214217 }
215218
219+ // BatteryManager Extensions
220+
221+ val BatteryManager .capacity: Int
222+ @RequiresApi(Build .VERSION_CODES .LOLLIPOP ) get() = getIntProperty(BatteryManager .BATTERY_PROPERTY_CAPACITY )
223+
224+ val BatteryManager .chargeCounter: Int
225+ @RequiresApi(Build .VERSION_CODES .LOLLIPOP ) get() = getIntProperty(BatteryManager .BATTERY_PROPERTY_CHARGE_COUNTER )
226+
227+ val BatteryManager .currentAverage: Int
228+ @RequiresApi(Build .VERSION_CODES .LOLLIPOP ) get() = getIntProperty(BatteryManager .BATTERY_PROPERTY_CURRENT_AVERAGE )
229+
230+ val BatteryManager .currentNow: Int
231+ @RequiresApi(Build .VERSION_CODES .LOLLIPOP ) get() = getIntProperty(BatteryManager .BATTERY_PROPERTY_CURRENT_NOW )
232+
233+ val BatteryManager .energyCounter: Long
234+ @RequiresApi(Build .VERSION_CODES .LOLLIPOP ) get() = getLongProperty(BatteryManager .BATTERY_PROPERTY_ENERGY_COUNTER )
235+
216236 class Services (private val context : Context ) {
217237
218238 operator fun <T > get (serviceName : String ): T = context.getSystemService(serviceName) as T
0 commit comments