Android Open Source - Dual-Battery-Widget Battery Level Adapter






From Project

Back to project page Dual-Battery-Widget.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions f...

If you think the Android project Dual-Battery-Widget listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2011 Artiom Chilaru (http://flexlabs.org)
 *//from  w w  w.j ava  2 s .c o  m
 * 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.storage;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.text.TextUtils;

import java.util.Date;

public class BatteryLevelAdapter {
    private static final String DB_NAME = "BatteryLevels.db";
    private static final String DB_TABLE = "BatteryLevels";
    private static final int DB_VERSION = 2;

    public static final String KEY_ID = "_id";
    public static final int ORD_ID = 0;
    public static final String KEY_TIME = "Time";
    public static final int ORD_TIME = 1;
    public static final String KEY_STATUS = "Status";
    public static final int ORD_STATUS = 2;
    public static final String KEY_LEVEL = "Level";
    public static final int ORD_LEVEL = 3;
    public static final String KEY_DOCK_STATUS = "DockStatus";
    public static final int ORD_DOCK_STATUS = 4;
    public static final String KEY_DOCK_LEVEL = "DockLevel";
    public static final int ORD_DOCK_LEVEL = 5;
    public static final String KEY_SCREEN_STATE = "ScreenState";
    public static final int ORD_SCREEN_STATE = 6;

    private static final String DB_CREATE = "CREATE TABLE " + DB_TABLE + " (" +
            KEY_ID + " integer PRIMARY KEY AUTOINCREMENT, " +
            KEY_TIME + " LONG NOT NULL, " +
            KEY_STATUS + " INT NOT NULL, " +
            KEY_LEVEL + " INT NOT NULL, " +
            KEY_DOCK_STATUS + " INT NOT NULL, " +
            KEY_DOCK_LEVEL + " INT, " +
            KEY_SCREEN_STATE + " INT NOT NULL);";

    private SQLiteDatabase db;
    private final Context context;
    private DBHelper dbHelper;

    public BatteryLevelAdapter(Context context) {
        this.context = context;
        dbHelper = new DBHelper(context, DB_NAME, null, DB_VERSION);
    }

    public BatteryLevelAdapter open() {
        db = dbHelper.getWritableDatabase();
        return this;
    }
    
    public BatteryLevelAdapter openRead() {
        db = dbHelper.getReadableDatabase();
        return this;
    }

    public void close() {
        db.close();
    }

    public long insertEntry(Entry entry) {
        ContentValues values = new ContentValues();
        values.put(KEY_TIME, entry.date.getTime());
        values.put(KEY_STATUS, entry.status);
        values.put(KEY_LEVEL, entry.level);
        values.put(KEY_DOCK_STATUS, entry.dock_status);
        values.put(KEY_DOCK_LEVEL, entry.dock_level);
        values.put(KEY_SCREEN_STATE, entry.screenOff ? 0 : 1);

        return db.insert(DB_TABLE, null, values);
    }

    public boolean removeEntry(long index) {
        return db.delete(DB_TABLE, KEY_ID + " = " + index, null) > 0;
    }

    public Cursor getAllEntries() {
        return db.query(
                DB_TABLE,
                new String[] { KEY_ID, KEY_TIME, KEY_STATUS, KEY_LEVEL, KEY_DOCK_STATUS, KEY_DOCK_LEVEL, KEY_SCREEN_STATE },
                null, null, null, null, null);
    }

    public Cursor getRecentEntries(int days) {
        return db.query(
                DB_TABLE,
                new String[] { KEY_ID, KEY_TIME, KEY_STATUS, KEY_LEVEL, KEY_DOCK_STATUS, KEY_DOCK_LEVEL, KEY_SCREEN_STATE },
                KEY_TIME + " > ?",
                new String[] { String.valueOf(new Date().getTime() - (long)1000 * 60 * 60 * 24 * days) }, null, null, null);
    }

    public Cursor query(String[] projection, String selection, String[] selectionArgs, String sort) {
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        qb.setTables(DB_TABLE);

        String orderBy = TextUtils.isEmpty(sort) ? KEY_TIME : sort;

        Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, orderBy);
        return c;
    }

    public Entry getEntry(long index) {
        return null;
    }

    public static class Entry {
        public Date date;
        public int status, level, dock_status;
        public Integer dock_level;
        public boolean screenOff;

        public Entry(int status, int level, int dock_status, Integer dock_level, boolean screenOff) {
            this.status = status;
            this.level = level;
            this.dock_status = dock_status;
            this.dock_level = dock_level;
            this.date = new Date();
            this.screenOff = screenOff;
        }
    }

    private static class DBHelper extends SQLiteOpenHelper {
        public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            sqLiteDatabase.execSQL(DB_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
            sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
            onCreate(sqLiteDatabase);
        }
    }
}




Java Source Code List

org.achartengine.ChartFactory.java
org.achartengine.GraphicalActivity.java
org.achartengine.GraphicalView.java
org.achartengine.ITouchHandler.java
org.achartengine.TouchHandlerOld.java
org.achartengine.TouchHandler.java
org.achartengine.chart.AbstractChart.java
org.achartengine.chart.BarChart.java
org.achartengine.chart.BubbleChart.java
org.achartengine.chart.ClickableArea.java
org.achartengine.chart.CombinedXYChart.java
org.achartengine.chart.CubicLineChart.java
org.achartengine.chart.DialChart.java
org.achartengine.chart.DoughnutChart.java
org.achartengine.chart.LineChart.java
org.achartengine.chart.PieChart.java
org.achartengine.chart.PieMapper.java
org.achartengine.chart.PieSegment.java
org.achartengine.chart.PointStyle.java
org.achartengine.chart.RangeBarChart.java
org.achartengine.chart.RangeStackedBarChart.java
org.achartengine.chart.RoundChart.java
org.achartengine.chart.ScatterChart.java
org.achartengine.chart.TimeChart.java
org.achartengine.chart.XYChart.java
org.achartengine.model.CategorySeries.java
org.achartengine.model.MultipleCategorySeries.java
org.achartengine.model.Point.java
org.achartengine.model.RangeCategorySeries.java
org.achartengine.model.SeriesSelection.java
org.achartengine.model.TimeSeries.java
org.achartengine.model.XYMultipleSeriesDataset.java
org.achartengine.model.XYSeries.java
org.achartengine.model.XYValueSeries.java
org.achartengine.renderer.BasicStroke.java
org.achartengine.renderer.DefaultRenderer.java
org.achartengine.renderer.DialRenderer.java
org.achartengine.renderer.SimpleSeriesRenderer.java
org.achartengine.renderer.XYMultipleSeriesRenderer.java
org.achartengine.renderer.XYSeriesRenderer.java
org.achartengine.tools.AbstractTool.java
org.achartengine.tools.FitZoom.java
org.achartengine.tools.PanListener.java
org.achartengine.tools.Pan.java
org.achartengine.tools.ZoomEvent.java
org.achartengine.tools.ZoomListener.java
org.achartengine.tools.Zoom.java
org.achartengine.util.IndexXYMap.java
org.achartengine.util.MathHelper.java
org.achartengine.util.XYEntry.java
org.flexlabs.widgets.dualbattery.BatteryApplication.java
org.flexlabs.widgets.dualbattery.BatteryLevel.java
org.flexlabs.widgets.dualbattery.BatteryWidget1x1.java
org.flexlabs.widgets.dualbattery.BatteryWidget2x2.java
org.flexlabs.widgets.dualbattery.BatteryWidget3x4.java
org.flexlabs.widgets.dualbattery.BatteryWidgetUpdater.java
org.flexlabs.widgets.dualbattery.BatteryWidget.java
org.flexlabs.widgets.dualbattery.BillingObserver.java
org.flexlabs.widgets.dualbattery.Constants.java
org.flexlabs.widgets.dualbattery.app.AboutFragment.java
org.flexlabs.widgets.dualbattery.app.BatteryHistoryActivity.java
org.flexlabs.widgets.dualbattery.app.DonateFragment.java
org.flexlabs.widgets.dualbattery.app.FeedbackFragment.java
org.flexlabs.widgets.dualbattery.app.SettingsActivity.java
org.flexlabs.widgets.dualbattery.app.SettingsContainer.java
org.flexlabs.widgets.dualbattery.app.SettingsFragment.java
org.flexlabs.widgets.dualbattery.service.BootUpReceiver.java
org.flexlabs.widgets.dualbattery.service.IntentReceiver.java
org.flexlabs.widgets.dualbattery.service.MonitorService.java
org.flexlabs.widgets.dualbattery.service.NotificationManager.java
org.flexlabs.widgets.dualbattery.storage.BatteryLevelAdapter.java
org.flexlabs.widgets.dualbattery.ui.IntegerListPreference.java
org.flexlabs.widgets.dualbattery.ui.PreferenceListFragment.java
org.flexlabs.widgets.dualbattery.ui.SeekBarPreference.java
org.flexlabs.widgets.dualbattery.widgetsettings.BatteryInfoFragment.java
org.flexlabs.widgets.dualbattery.widgetsettings.PropertiesFragment.java
org.flexlabs.widgets.dualbattery.widgetsettings.WidgetActivity.java
org.flexlabs.widgets.dualbattery.widgetsettings.WidgetSettingsContainer.java