public IObservable <PowerStatus> WhenPowerStatusChanged() { return(AndroidObservables .WhenIntentReceived(Intent.ActionBatteryChanged) //.WhenIntentReceived(Intent.ActionPowerConnected, Intent.ActionPowerDisconnected) .Select(intent => { var status = (BatteryStatus)intent.GetIntExtra(BatteryManager.ExtraStatus, -1); switch (status) { case BatteryStatus.Discharging: case BatteryStatus.NotCharging: return PowerStatus.Discharging; case BatteryStatus.Charging: return PowerStatus.Charging; case BatteryStatus.Full: return PowerStatus.Charged; default: return PowerStatus.Unknown; } })); }
public IObservable <int> WhenBatteryPercentageChanged() => AndroidObservables .WhenIntentReceived(Intent.ActionBatteryChanged) .Select(intent => { var level = intent.GetIntExtra(BatteryManager.ExtraLevel, -1); var scale = intent.GetIntExtra(BatteryManager.ExtraScale, -1); var value = (int)Math.Floor(level * 100D / scale); return(value); });
public static IObservable <BluetoothDevice> WhenDeviceEventReceived(string action) { return(AndroidObservables .WhenIntentReceived(action) .Select(intent => { var device = (BluetoothDevice)intent.GetParcelableExtra(BluetoothDevice.ExtraDevice); return device; })); }
public IObservable <CultureInfo> WhenCultureChanged() { return(AndroidObservables .WhenIntentReceived(Intent.ActionLocaleChanged) .Select(x => this.GetCurrentCulture())); }
public IObservable <NetworkReachability> WhenStatusChanged() { return(AndroidObservables .WhenIntentReceived(ConnectivityManager.ConnectivityAction) .Select(intent => this.InternetReachability)); }
public IObservable <NetworkType> WhenNetworkTypeChanged() => AndroidObservables .WhenIntentReceived(ConnectivityManager.ConnectivityAction) .Select(intent => this.InternetNetworkType);
public static IObservable <object> WhenAdapterDiscoveryFinished() { return(AndroidObservables.WhenIntentReceived(BluetoothAdapter.ActionDiscoveryFinished)); }
public static IObservable <object> WhenAdapterStatusChanged() { return(AndroidObservables.WhenIntentReceived(BluetoothAdapter.ActionStateChanged)); }