package com.RSen.Commandr.builtincommands; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.os.BatteryManager; import com.RSen.Commandr.R; import com.RSen.Commandr.core.MostWantedCommand; import com.RSen.Commandr.util.SMSUtils; import com.RSen.Commandr.util.SmsMmsMessage; import com.RSen.Commandr.util.TTSService; import java.util.ArrayList; /** * @author Ryan Senanayake * Commandr for Google Now * FlashlightCommand.java * @version 1.0 * 5/28/14 */ public class BatteryCommand extends MostWantedCommand { private static String TITLE; private static String DEFAULT_PHRASE; public BatteryCommand(Context ctx) { DEFAULT_PHRASE = ctx.getString(R.string.battery_status_phrase); TITLE = ctx.getString(R.string.battery_status_title); } /** * Execute this command (turn on flashlight) */ @Override public void execute(Context context, String predicate) { IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = context.registerReceiver(null, ifilter); int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; float batteryPct = level / (float)scale; String toSpeak = Math.round(batteryPct*100) + " percent "; if (isCharging) { toSpeak += "charging"; } else { toSpeak += "left"; } Intent i = new Intent(context, TTSService.class); i.putExtra("toSpeak", toSpeak); context.startService(i); } @Override public boolean isAvailable(Context context) { return true; } @Override public String getTitle() { return TITLE; } @Override public String getDefaultPhrase() { return DEFAULT_PHRASE; } }