From 1b7e73cfc9485a6bd002e48855e61e35aaad6eca Mon Sep 17 00:00:00 2001 From: Dmytro Voronkevych Date: Mon, 21 Sep 2015 18:53:18 +0100 Subject: [PATCH] Pacemaker now can be used in several apps without loss in battery life --- .gitignore | 2 +- demo/build.gradle | 18 +- demo/src/demo1/res/values/strings.xml | 3 + demo/src/demo2/res/values/strings.xml | 3 + demo/src/demo3/res/values/strings.xml | 3 + .../raveesh/pacemaker/demo/MainActivity.java | 25 +- demo/src/main/res/layout/activity_main.xml | 12 +- .../in/raveesh/pacemaker/SchedulerTest.java | 69 ++++ pacemaker/src/main/AndroidManifest.xml | 23 ++ .../raveesh/pacemaker/HeartbeatReceiver.java | 43 --- .../java/in/raveesh/pacemaker/Pacemaker.java | 72 ++--- .../raveesh/pacemaker/PacemakerReceiver.java | 44 +++ .../raveesh/pacemaker/PacemakerService.java | 295 ++++++++++++++++++ .../java/in/raveesh/pacemaker/Scheduler.java | 180 +++++++++++ .../in/raveesh/pacemaker/TimeProvider.java | 8 + 15 files changed, 687 insertions(+), 113 deletions(-) create mode 100644 demo/src/demo1/res/values/strings.xml create mode 100644 demo/src/demo2/res/values/strings.xml create mode 100644 demo/src/demo3/res/values/strings.xml create mode 100644 pacemaker/src/androidTest/java/in/raveesh/pacemaker/SchedulerTest.java delete mode 100644 pacemaker/src/main/java/in/raveesh/pacemaker/HeartbeatReceiver.java create mode 100644 pacemaker/src/main/java/in/raveesh/pacemaker/PacemakerReceiver.java create mode 100644 pacemaker/src/main/java/in/raveesh/pacemaker/PacemakerService.java create mode 100644 pacemaker/src/main/java/in/raveesh/pacemaker/Scheduler.java create mode 100644 pacemaker/src/main/java/in/raveesh/pacemaker/TimeProvider.java diff --git a/.gitignore b/.gitignore index 9419f7d..0fc6896 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ pacemaker/pacemaker.iml gradlew gradlew.bat local.properties -Pacemaker.iml \ No newline at end of file +*.iml diff --git a/demo/build.gradle b/demo/build.gradle index 30097ae..bbcddc0 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -11,6 +11,21 @@ android { versionCode 1 versionName "1.0" } + + productFlavors { + demo1 { + applicationId "in.raveesh.pacemaker1" + } + + demo2 { + applicationId "in.raveesh.pacemaker2" + } + + demo3 { + applicationId "in.raveesh.pacemaker3" + } + } + buildTypes { release { minifyEnabled false @@ -24,5 +39,6 @@ repositories { } dependencies { - compile 'in.raveesh:pacemaker:0.1.0-SNAPSHOT' +// compile 'in.raveesh:pacemaker:0.2.0-SNAPSHOT' + compile project(':pacemaker') } diff --git a/demo/src/demo1/res/values/strings.xml b/demo/src/demo1/res/values/strings.xml new file mode 100644 index 0000000..c5d9119 --- /dev/null +++ b/demo/src/demo1/res/values/strings.xml @@ -0,0 +1,3 @@ + + Pacemaker1 + diff --git a/demo/src/demo2/res/values/strings.xml b/demo/src/demo2/res/values/strings.xml new file mode 100644 index 0000000..7d2857f --- /dev/null +++ b/demo/src/demo2/res/values/strings.xml @@ -0,0 +1,3 @@ + + Pacemaker2 + diff --git a/demo/src/demo3/res/values/strings.xml b/demo/src/demo3/res/values/strings.xml new file mode 100644 index 0000000..309628c --- /dev/null +++ b/demo/src/demo3/res/values/strings.xml @@ -0,0 +1,3 @@ + + Pacemaker3 + diff --git a/demo/src/main/java/in/raveesh/pacemaker/demo/MainActivity.java b/demo/src/main/java/in/raveesh/pacemaker/demo/MainActivity.java index 7e981e4..cc0f2ed 100644 --- a/demo/src/main/java/in/raveesh/pacemaker/demo/MainActivity.java +++ b/demo/src/main/java/in/raveesh/pacemaker/demo/MainActivity.java @@ -2,34 +2,31 @@ import android.app.Activity; import android.os.Bundle; +import android.support.annotation.NonNull; import android.view.View; -import android.widget.Button; import in.raveesh.pacemaker.Pacemaker; import in.raveesh.pacemaker.R; public class MainActivity extends Activity { - boolean beginOrStop = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - final Button set = (Button)findViewById(R.id.begin); - set.setOnClickListener(new View.OnClickListener() { + findViewById(R.id.begin).setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v) { - if (!beginOrStop) { - Pacemaker.scheduleLinear(MainActivity.this, 5); - set.setText(R.string.stop); - } - else{ - Pacemaker.cancelLinear(MainActivity.this, 5); - set.setText(R.string.begin); - } - beginOrStop = !beginOrStop; + public void onClick(@NonNull View v) { + Pacemaker.scheduleLinear(MainActivity.this, 5); } }); + findViewById(R.id.stop).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(@NonNull View v) { + Pacemaker.cancelLinear(MainActivity.this); + } + }); + } } diff --git a/demo/src/main/res/layout/activity_main.xml b/demo/src/main/res/layout/activity_main.xml index ce42566..e173ade 100644 --- a/demo/src/main/res/layout/activity_main.xml +++ b/demo/src/main/res/layout/activity_main.xml @@ -1,14 +1,20 @@ - + tools:context="in.raveesh.in.raveesh.pacemaker.demo.MainActivity">