From 1aae039140fcda0424d3e2a4865a023b24361c16 Mon Sep 17 00:00:00 2001 From: Roberta De Viti Date: Tue, 11 Dec 2018 21:19:39 +0100 Subject: [PATCH] test: null wakelock --- ebclibrary/build.gradle | 1 + testapp/src/main/AndroidManifest.xml | 4 ++ .../java/org/mpisws/testapp/MainActivity.java | 8 +++ .../org/mpisws/testapp/simulator/Alarm.java | 63 ++++++++++++++++++- .../testapp/simulator/NullWakelock.java | 44 ++++++++++++- testapp/src/main/res/layout/activity_main.xml | 12 +++- 6 files changed, 127 insertions(+), 5 deletions(-) diff --git a/ebclibrary/build.gradle b/ebclibrary/build.gradle index dd9bf6fc..85740f5b 100644 --- a/ebclibrary/build.gradle +++ b/ebclibrary/build.gradle @@ -3,6 +3,7 @@ apply plugin: 'com.jfrog.bintray' apply plugin: 'maven-publish' repositories { + google() jcenter() } diff --git a/testapp/src/main/AndroidManifest.xml b/testapp/src/main/AndroidManifest.xml index a7be16d8..80712900 100644 --- a/testapp/src/main/AndroidManifest.xml +++ b/testapp/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + + + + diff --git a/testapp/src/main/java/org/mpisws/testapp/MainActivity.java b/testapp/src/main/java/org/mpisws/testapp/MainActivity.java index ddcff608..bbb597fc 100644 --- a/testapp/src/main/java/org/mpisws/testapp/MainActivity.java +++ b/testapp/src/main/java/org/mpisws/testapp/MainActivity.java @@ -23,8 +23,10 @@ import org.mpisws.encounters.EncounterBasedCommunication; import org.mpisws.messaging.ReceivedMessageWrapper; import org.mpisws.testapp.googleauth.GoogleNativeAuthenticator; import org.mpisws.testapp.googleauth.GoogleToken; +import org.mpisws.testapp.simulator.Alarm; import org.mpisws.testapp.simulator.SimulationClientBT; import org.mpisws.testapp.simulator.SimulationServerBT; +import org.mpisws.testapp.simulator.NullWakelock; import java.util.List; @@ -56,6 +58,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe findViewById(R.id.deleteAccount).setOnClickListener(this); findViewById(R.id.testSendMessages).setOnClickListener(this); findViewById(R.id.testReceiveMessages).setOnClickListener(this); + findViewById(R.id.nullWakelock).setOnClickListener(this); findViewById(R.id.simulateEncounterFormationAndConfirmationClient).setOnClickListener(this); findViewById(R.id.simulateEncounterFormationAndConfirmationServer).setOnClickListener(this); findViewById(R.id.testEndToEndES).setOnClickListener(this); @@ -92,6 +95,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe /***************************** ES AND SDDR TESTS **********************/ + case R.id.nullWakelock: + //if (!isSignedIn()) throw new SecurityException("Not signed in"); + Log.d(TAG, "Starting null wakelock test!"); + new Alarm().setAlarm(this); + break; case R.id.simulateEncounterFormationAndConfirmationClient: if (!isSignedIn()) throw new SecurityException("Not signed in"); new SimulationClientBT(this).startClient(); diff --git a/testapp/src/main/java/org/mpisws/testapp/simulator/Alarm.java b/testapp/src/main/java/org/mpisws/testapp/simulator/Alarm.java index 55d50631..0ddefb6f 100644 --- a/testapp/src/main/java/org/mpisws/testapp/simulator/Alarm.java +++ b/testapp/src/main/java/org/mpisws/testapp/simulator/Alarm.java @@ -1,4 +1,65 @@ package org.mpisws.testapp.simulator; -public class Alarm { +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.PowerManager; +import android.util.Log; +import android.widget.Toast; + +import java.io.IOException; + +public class Alarm extends BroadcastReceiver { + public static final long WAKE_INTERVAL = (long) 10; + private static final String TAG = Alarm.class.getSimpleName(); + @Override + public void onReceive(Context context, Intent intent) + { + //PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); + //PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "testapp:blah"); + //wl.acquire(); + + // Put here YOUR code. + //Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example + + //wl.release(); + + Log.d(TAG, "BroadcastReceiver: onReceive(): " + System.currentTimeMillis()); + AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); + Intent i = new Intent(context, Alarm.class); + PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); + try { + long ts = System.currentTimeMillis(); + long triggerAtMillis = (long) (ts + WAKE_INTERVAL); + am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, pi); + } catch (NullPointerException e) { + Log.e(TAG, "BroadcastReceiver: onReceive() Exception" + System.currentTimeMillis() + e.getMessage()); + } + } + + public void setAlarm(Context context) + { + AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); + Intent i = new Intent(context, Alarm.class); + PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); + //am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pi); // Millisec * Second * Minute + long ts = System.currentTimeMillis(); + long triggerAtMillis = (long) (ts + WAKE_INTERVAL); + Log.d(TAG, "BroadcastReceiver: setAlarm(): " + ts + "->" + triggerAtMillis); + try { + am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, pi); + } catch (NullPointerException e) { + Log.e(TAG, "BroadcastReceiver: setAlarm() Exception" + System.currentTimeMillis() + e.getMessage()); + } + } + + //public void cancelAlarm(Context context) + //{ + // Intent intent = new Intent(context, Alarm.class); + // PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0); + // AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); + // alarmManager.cancel(sender); + //} } diff --git a/testapp/src/main/java/org/mpisws/testapp/simulator/NullWakelock.java b/testapp/src/main/java/org/mpisws/testapp/simulator/NullWakelock.java index 257ba6fb..c6d57919 100644 --- a/testapp/src/main/java/org/mpisws/testapp/simulator/NullWakelock.java +++ b/testapp/src/main/java/org/mpisws/testapp/simulator/NullWakelock.java @@ -1,4 +1,44 @@ package org.mpisws.testapp.simulator; -public class NullWakelock { -} +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.content.Context; +import android.content.Intent; +import android.os.IBinder; +import android.util.Log; + +import java.util.UUID; + + +public class NullWakelock extends Service { + + private static final String TAG = Alarm.class.getSimpleName(); + private static final UUID MY_UUID = UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66"); + + Alarm alarm = new Alarm(); + public void onCreate() + { + Log.d(TAG, "onCreate(): " + System.currentTimeMillis()); + super.onCreate(); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) + { + Log.d(TAG, "onStartCommand(): " + System.currentTimeMillis()); + alarm.setAlarm(this); + return START_STICKY; + } + + @Override + public void onStart(Intent intent, int startId) + { + alarm.setAlarm(this); + } + + @Override + public IBinder onBind(Intent intent) + { + return null; + } +} \ No newline at end of file diff --git a/testapp/src/main/res/layout/activity_main.xml b/testapp/src/main/res/layout/activity_main.xml index 73591732..4cc72757 100644 --- a/testapp/src/main/res/layout/activity_main.xml +++ b/testapp/src/main/res/layout/activity_main.xml @@ -48,12 +48,20 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Messaging: Get unread messages" /> -