package com.android.systemui.statusbar.toggles; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.util.Log; import com.android.systemui.R; public class FChargeToggle extends Toggle { public static final String FAST_CHARGE_DIR = "/sys/kernel/fast_charge"; public static final String FAST_CHARGE_FILE = "force_fast_charge"; public FChargeToggle(Context context) { super(context); setLabel(R.string.toggle_fcharge); IntentFilter f = new IntentFilter(); f.addAction("com.aokp.romcontrol.FCHARGE_CHANGED"); context.registerReceiver(mIntentReceiver, f); updateState(); } @Override protected boolean updateInternalToggleState() { mToggle.setChecked(isFastChargeOn()); if (mToggle.isChecked()) setIcon(R.drawable.toggle_fcharge); else setIcon(R.drawable.toggle_fcharge_off); return mToggle.isChecked(); } @Override protected void onCheckChanged(boolean isChecked) { updateFastCharge(isChecked); updateState(); } @Override protected boolean onLongPress() { return false; } public boolean isFastChargeOn() { try { File fastcharge = new File(FAST_CHARGE_DIR, FAST_CHARGE_FILE); FileReader reader = new FileReader(fastcharge); BufferedReader breader = new BufferedReader(reader); return (breader.readLine().equals("1")); } catch (IOException e) { Log.e("FChargeToggle", "Couldn't read fast_charge file"); return false; } } public void updateFastCharge(boolean on) { try { File fastcharge = new File(FAST_CHARGE_DIR, FAST_CHARGE_FILE); FileWriter fwriter = new FileWriter(fastcharge); BufferedWriter bwriter = new BufferedWriter(fwriter); bwriter.write(on ? "1" : "0"); bwriter.close(); } catch (IOException e) { Log.e("FChargeToggle", "Couldn't write fast_charge file"); } } private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("com.aokp.romcontrol.FCHARGE_CHANGED")) { updateState(); } } }; }