Skip to content

Commit

Permalink
workaround for kitkat stupidity
Browse files Browse the repository at this point in the history
  • Loading branch information
adrian-bl committed Jan 1, 2014
1 parent e7ed955 commit 8333067
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 8 deletions.
4 changes: 2 additions & 2 deletions AndroidManifest.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ch.blinkenlights.battery"
android:versionCode="1335983644"
android:versionCode="1388575106"
android:versionName="@string/app_vers">

<application android:label="@string/app_name" android:icon="@drawable/icon">
Expand Down Expand Up @@ -31,7 +31,7 @@

<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="4"
android:targetSdkVersion="10"
/>

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Expand Down
2 changes: 1 addition & 1 deletion README
Expand Up @@ -2,7 +2,7 @@ How to compile:


Run
$ android update project --path . --target "android-4"
$ android update project --path . --target "android-10"
$ make refresh

then:
Expand Down
2 changes: 1 addition & 1 deletion res/values/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<resources>
<string name="app_vers">1.81</string>
<string name="app_vers">1.85</string>
<string name="app_name">Battery Circle</string>
<string name="about">About</string>
<string name="settings">Settings</string>
Expand Down
27 changes: 23 additions & 4 deletions src/ch/blinkenlights/battery/BlinkenlightsBatteryService.java
Expand Up @@ -13,13 +13,15 @@
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.AlarmManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;
import android.content.Intent;
import android.text.format.DateFormat;
Expand All @@ -32,7 +34,6 @@ public class BlinkenlightsBatteryService extends Service {
private final static String T = "BlinkenlightsBatteryService.class: "; // Log Token
private final IBinder bb_binder = new LocalBinder();
private int[] battery_state = new int[4];

private NotificationManager notify_manager;
private ConfigUtil bconfig;

Expand All @@ -59,10 +60,29 @@ public void onCreate() {
Log.d(T,"+++++ onCreate() finished - broadcaster registered +++++");
}

public void onDestory() {
@Override
public void onDestroy() {
unregisterReceiver(bb_bcreceiver);
}


@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (android.os.Build.VERSION.SDK_INT >= 19) {
/*
* KitKat is pretty stupid: It doesn't allow us to register the recevier via AndroidManifest
* and will silently kill the service because we are considered as 'idle' and then
* fails to re-start us on the next battery event.
* Well: We can be stupid too and simply trigger an alarm each ~26 minutest to let
* android think we are doing something + restart ourselfs if we are killed
* (android triggers the kill each 30 minutes
*/
long triggerAt = SystemClock.elapsedRealtime() + 1600000; // 26.6 minutes
AlarmManager am = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.ELAPSED_REALTIME, triggerAt, PendingIntent.getService(this, 0, (new Intent(this, BlinkenlightsBatteryService.class)), PendingIntent.FLAG_ONE_SHOT) );
}
return START_REDELIVER_INTENT;
}

/* Receives battery_changed events */
private final BroadcastReceiver bb_bcreceiver = new BroadcastReceiver() {
@Override
Expand Down Expand Up @@ -200,7 +220,6 @@ private boolean isICS() {

public void harakiri() {
Log.d(T, "terminating myself - unregistering receiver");
unregisterReceiver(bb_bcreceiver);
notify_manager.cancelAll();
}

Expand Down

0 comments on commit 8333067

Please sign in to comment.