Skip to content

Commit

Permalink
Merge pull request #6 from ibraude/master
Browse files Browse the repository at this point in the history
Subscribe to Google Fit Activity
  • Loading branch information
Francesco-Voto authored Aug 16, 2019
2 parents 2a3fcd8 + 19b6fbc commit ffa40e6
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 3 deletions.
20 changes: 19 additions & 1 deletion android/src/main/java/com/ovalmoney/fitness/RNFitnessModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,24 @@ public void requestPermissions(Promise promise){
promise.reject(new Throwable());
}
}

@ReactMethod
public void subscribeToActivity(Promise promise){
try {
manager.subscribeToActivity(getCurrentActivity(), promise);
}catch(Error e){
promise.reject(e);
}
}

@ReactMethod
public void subscribeToSteps(Promise promise){
try {
manager.subscribeToSteps(getCurrentActivity(), promise);
}catch(Error e){
promise.reject(e);
}
}

@ReactMethod
public void getSteps(double startDate, double endDate, Promise promise){
Expand All @@ -67,4 +85,4 @@ public void getDistance(double startDate, double endDate, Promise promise){
promise.reject(e);
}
}
}
}
49 changes: 47 additions & 2 deletions android/src/main/java/com/ovalmoney/fitness/manager/Manager.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.fitness.data.Subscription;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
Expand Down Expand Up @@ -58,8 +59,10 @@ private static boolean isGooglePlayServicesAvailable(final Activity activity) {
public boolean isAuthorized(final Activity activity){
if(isGooglePlayServicesAvailable(activity)) {
FitnessOptions fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
.addDataType(DataType.TYPE_DISTANCE_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_ACTIVITY_SAMPLES, FitnessOptions.ACCESS_WRITE)
.addDataType(DataType.TYPE_STEP_COUNT_CUMULATIVE, FitnessOptions.ACCESS_WRITE)
.build();
return GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(activity), fitnessOptions);
}
Expand All @@ -69,8 +72,10 @@ public boolean isAuthorized(final Activity activity){
public void requestPermissions(@NonNull Activity currentActivity, Promise promise) {
this.promise = promise;
FitnessOptions fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
.addDataType(DataType.TYPE_DISTANCE_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_ACTIVITY_SAMPLES, FitnessOptions.ACCESS_WRITE)
.addDataType(DataType.TYPE_STEP_COUNT_CUMULATIVE, FitnessOptions.ACCESS_WRITE)
.build();
GoogleSignIn.requestPermissions(
currentActivity,
Expand All @@ -91,6 +96,46 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,

@Override
public void onNewIntent(Intent intent) { }

public void subscribeToActivity(Context context, final Promise promise){

Fitness.getRecordingClient(context, GoogleSignIn.getLastSignedInAccount(context))
.subscribe(DataType.TYPE_ACTIVITY_SAMPLES)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
promise.resolve(true);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
promise.resolve(false);
}
});

}

public void subscribeToSteps(Context context, final Promise promise){



Fitness.getRecordingClient(context, GoogleSignIn.getLastSignedInAccount(context))
.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
promise.resolve(true);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
promise.resolve(false);
}
});

}

public void getSteps(Context context, double startDate, double endDate, final Promise promise){
DataSource ESTIMATED_STEP_DELTAS = new DataSource.Builder()
Expand Down

0 comments on commit ffa40e6

Please sign in to comment.