// Path: src/org/flexlabs/widgets/dualbattery/service/MonitorService.java
// public class MonitorService extends Service {
//     private IntentReceiver batteryReceiver;
// 
//     public IBinder onBind(Intent intent) {
//         return null;
//     }
// 
//     public void onCreate() {
//         super.onCreate();
//         batteryReceiver = new IntentReceiver(this);
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_DOCK_EVENT));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
//     }
//     
//     private void processStartIntent(Intent intent) {
//         if (intent == null)
//             return;
//         final int[] widgetIds = intent.getIntArrayExtra(Constants.EXTRA_WIDGET_IDS);
//         if (widgetIds != null) {
//             // Update our widgets on the non UI thread
//             new Thread(new Runnable() {
//                 @Override
//                 public void run() {
//                     try {
//                         BatteryWidgetUpdater.updateAllWidgets(MonitorService.this, BatteryLevel.getCurrent(), widgetIds);
//                     } catch (Exception ignore) {}
//                 }
//             }).start();
//         }
//     }
// 
//     @Override
//     public void onStart(Intent intent, int startId) { // For compatibility with android 1.6
//         processStartIntent(intent);
//     }
// 
//     @Override
//     public int onStartCommand(Intent intent, int flags, int startId) {
//         processStartIntent(intent);
//         return START_STICKY;
//     }
// 
//     @Override
//     public void onDestroy() {
//         super.onDestroy();
//         unregisterReceiver(batteryReceiver);
//     }
// }


import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.*;
import org.flexlabs.widgets.dualbattery.service.MonitorService;
import java.io.File;

/*
 * Copyright 2011 Artiom Chilaru (http://flexlabs.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.flexlabs.widgets.dualbattery;



public class BatteryWidget extends AppWidgetProvider {
    @Override
    public void onEnabled(Context context) {
        super.onEnabled(context);
        context.startService(new Intent(context, MonitorService.class));
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
        for (int i : appWidgetIds) {
            String file = Constants.SETTINGS_WIDGET_FILE + i;
            context.getSharedPreferences(file, Context.MODE_PRIVATE).edit().clear().commit();
            new File(context.getFilesDir() + "/../shared_prefs/" + file + ".xml").delete();
        }
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // ensuring the service is still running, even if it was killed, and updating the widget

// Path: src/org/flexlabs/widgets/dualbattery/service/MonitorService.java
// public class MonitorService extends Service {
//     private IntentReceiver batteryReceiver;
// 
//     public IBinder onBind(Intent intent) {
//         return null;
//     }
// 
//     public void onCreate() {
//         super.onCreate();
//         batteryReceiver = new IntentReceiver(this);
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_DOCK_EVENT));
//         registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
//     }
//     
//     private void processStartIntent(Intent intent) {
//         if (intent == null)
//             return;
//         final int[] widgetIds = intent.getIntArrayExtra(Constants.EXTRA_WIDGET_IDS);
//         if (widgetIds != null) {
//             // Update our widgets on the non UI thread
//             new Thread(new Runnable() {
//                 @Override
//                 public void run() {
//                     try {
//                         BatteryWidgetUpdater.updateAllWidgets(MonitorService.this, BatteryLevel.getCurrent(), widgetIds);
//                     } catch (Exception ignore) {}
//                 }
//             }).start();
//         }
//     }
// 
//     @Override
//     public void onStart(Intent intent, int startId) { // For compatibility with android 1.6
//         processStartIntent(intent);
//     }
// 
//     @Override
//     public int onStartCommand(Intent intent, int flags, int startId) {
//         processStartIntent(intent);
//         return START_STICKY;
//     }
// 
//     @Override
//     public void onDestroy() {
//         super.onDestroy();
//         unregisterReceiver(batteryReceiver);
//     }
// }


// Path: src/org/flexlabs/widgets/dualbattery/BatteryWidget.java
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.*;
import org.flexlabs.widgets.dualbattery.service.MonitorService;
import java.io.File;

/*
 * Copyright 2011 Artiom Chilaru (http://flexlabs.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.flexlabs.widgets.dualbattery;



public class BatteryWidget extends AppWidgetProvider {
    @Override
    public void onEnabled(Context context) {
        super.onEnabled(context);
        context.startService(new Intent(context, MonitorService.class));
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
        for (int i : appWidgetIds) {
            String file = Constants.SETTINGS_WIDGET_FILE + i;
            context.getSharedPreferences(file, Context.MODE_PRIVATE).edit().clear().commit();
            new File(context.getFilesDir() + "/../shared_prefs/" + file + ".xml").delete();
        }
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // ensuring the service is still running, even if it was killed, and updating the widget

        Intent intent = new Intent(context, MonitorService.class);
