From b04bd12d3e211d9e15bd611125fbeb93a353ab04 Mon Sep 17 00:00:00 2001 From: Peter De Jonckheere <peter.de-jonckheere.2014@uni.strath.ac.uk> Date: Thu, 28 Jun 2018 15:15:04 +0100 Subject: [PATCH] Added more awareness api stuff. --- src/main/AndroidManifest.xml | 2 + .../sedentary/frontEnd/RequestPermission.java | 37 +++++++++++++++++++ .../stimulusStrategy/Accelerometer.java | 28 ++++++++++++-- .../stimulusStrategy/SigMotionDetect.java | 33 ++++++++++++++++- 4 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/notificationFramework/sedentary/frontEnd/RequestPermission.java diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index fabde00..3bf6cb4 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -28,6 +28,8 @@ </activity> <activity android:name="com.notificationFramework.sedentary.frontEnd.NotificationClicked"> </activity> + <activity android:name="com.notificationFramework.sedentary.frontEnd.RequestPermission"> + </activity> <activity android:name="com.notificationFramework.sedentary.frontEnd.AdvancedSettings"> </activity> <service android:name="com.notificationFramework.notification.SedentaryNotification"> diff --git a/src/main/java/com/notificationFramework/sedentary/frontEnd/RequestPermission.java b/src/main/java/com/notificationFramework/sedentary/frontEnd/RequestPermission.java new file mode 100644 index 0000000..22a781c --- /dev/null +++ b/src/main/java/com/notificationFramework/sedentary/frontEnd/RequestPermission.java @@ -0,0 +1,37 @@ +package com.notificationFramework.sedentary.frontEnd; + +import android.Manifest; +import android.os.Bundle; +import android.support.v4.app.ActivityCompat; +import android.support.v7.app.AppCompatActivity; + +/** + * Created by pharmacy on 28/06/2018. + */ + +public class RequestPermission extends AppCompatActivity{ + + /** + * + * @param savedInstanceState contains information pertaining to previous states of the activity + * if it has been used before + * @see android.support.v7.app.AppCompatActivity + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } + + /** + * When this activity is started regardless of whether it has been created a clicked + * notification is recorded. + */ + @Override + protected void onStart() { + super.onStart(); + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, + 0); + } +} diff --git a/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java b/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java index dc2bf74..407200b 100644 --- a/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java +++ b/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java @@ -16,10 +16,15 @@ import android.support.annotation.Nullable; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; +import com.google.android.gms.awareness.Awareness; +import com.google.android.gms.awareness.state.Weather; +import com.google.android.gms.location.places.PlaceLikelihood; import com.notificationFramework.sedentary.frontEnd.R; +import com.notificationFramework.sedentary.frontEnd.RequestPermission; import com.notificationFramework.sedentary.frontEnd.SaveFile; import java.util.Calendar; +import java.util.List; /** @@ -165,7 +170,7 @@ public class Accelerometer extends Service implements StimulusStrategy, SensorEv PendingIntent pi = PendingIntent.getBroadcast(getBaseContext(), R.integer.alarm_rc, i, PendingIntent.FLAG_UPDATE_CURRENT); am.cancel(pi); - collectData(); + getExtraData(); SaveFile.recordNotification(0, 0, 1,0, this); setUpClock(); } @@ -235,8 +240,25 @@ public class Accelerometer extends Service implements StimulusStrategy, SensorEv } - private void collectData(){ - + private void getExtraData(){ + try { + double latitude = Awareness.getSnapshotClient(this).getLocation() + .getResult().getLocation().getLatitude(); + double longitude = Awareness.getSnapshotClient(this).getLocation() + .getResult().getLocation().getLongitude(); + List<PlaceLikelihood> placeLikelihoods = Awareness.getSnapshotClient(this) + .getPlaces().getResult().getPlaceLikelihoods(); + Weather weather = Awareness.getSnapshotClient(this).getWeather().getResult() + .getWeather(); + SharedPreferences.Editor editor = preferences.edit(); + editor.putLong("",Double.doubleToLongBits(latitude)); + editor.putLong("",Double.doubleToLongBits(longitude)); + //editor.putString("", ) place names + //editor.putInt("",) weather so temperature + }catch(SecurityException e){ + Intent i = new Intent(this, RequestPermission.class); + startActivity(i); + } } /** diff --git a/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java b/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java index 7365b88..40cbf21 100644 --- a/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java +++ b/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java @@ -1,11 +1,13 @@ package com.notificationFramework.stimulusStrategy; +import android.Manifest; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorManager; import android.hardware.TriggerEvent; @@ -13,15 +15,23 @@ import android.hardware.TriggerEventListener; import android.os.IBinder; import android.os.SystemClock; import android.support.annotation.Nullable; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import com.google.android.gms.awareness.Awareness; +import com.google.android.gms.awareness.state.Weather; import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.places.PlaceLikelihood; +import com.notificationFramework.sedentary.frontEnd.MainActivity; import com.notificationFramework.sedentary.frontEnd.R; +import com.notificationFramework.sedentary.frontEnd.RequestPermission; import com.notificationFramework.sedentary.frontEnd.SaveFile; +import java.util.ArrayList; import java.util.Calendar; +import java.util.List; /** * Created by Peter De Jonckheere on 17/01/2018. @@ -79,6 +89,8 @@ public class SigMotionDetect extends Service implements StimulusStrategy { */ private int prevMinutes; + private GoogleApiClient client; + /** * The method which is called when the SigMotionDetect service is started. Sets up a number of @@ -95,8 +107,9 @@ public class SigMotionDetect extends Service implements StimulusStrategy { */ @Override public int onStartCommand(Intent intent, int flags, int startId) { - GoogleApiClient client = new GoogleApiClient.Builder(this) - .addApi(Awareness.API).build(); + client = new GoogleApiClient.Builder(this) + .addApi(Awareness.getSnapshotClient(this).getApi()).build(); + client.connect(); am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); setUpClock(); setUpDailyProgress(); @@ -154,6 +167,7 @@ public class SigMotionDetect extends Service implements StimulusStrategy { R.integer.alarm_rc, i, 0); am.cancel(pi); SaveFile.recordNotification(0, 0, 1, 0, this); + getExtraData(); setUpClock(); prevSeconds = seconds; } @@ -259,6 +273,21 @@ public class SigMotionDetect extends Service implements StimulusStrategy { } + private void getExtraData(){ + try { + double latitude = Awareness.getSnapshotClient(this).getLocation() + .getResult().getLocation().getLatitude(); + double longitude = Awareness.getSnapshotClient(this).getLocation() + .getResult().getLocation().getLongitude(); + List<PlaceLikelihood> placeLikelihoods = Awareness.getSnapshotClient(this) + .getPlaces().getResult().getPlaceLikelihoods(); + Weather weather = Awareness.getSnapshotClient(this).getWeather().getResult() + .getWeather(); + }catch(SecurityException e){ + Intent i = new Intent(this, RequestPermission.class); + startActivity(i); + } + } /** * The method which reponds to a bind request for this service. * -- GitLab