protected RecordingServiceCapabilities GetRecordingServiceCapabilities() { RecordingServiceCapabilities response = null; RunStep(() => { response = RecordingClient.GetServiceCapabilities(); }, "Get Recording service capabilities"); DoRequestDelay(); return(response); }
protected GetRecordingsResponseItem[] GetRecordings() { RecordingPortClient client = RecordingClient; GetRecordingsResponseItem[] response = null; RunStep(() => { response = RecordingClient.GetRecordings(); }, "Get Recordings"); DoRequestDelay(); return(response); }
public void CreateGoogleFitClient() { if (_activity == null || isWaitingForConnectivity) { return; } if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Q) { if (!_activity.HasActivityRecognition) { _activity.ActivityRecognitionPermissionUpdated += OnActivityRecognitionPermissionUpdated; isWaitingForConnectivity = true; _activity.RequestActivityRecognition(); return; } } if (!_activity.HasAccessFineLocation) { _activity.AccessFineLocationPermissionUpdated += OnAccessFineLocationPermissionUpdated; isWaitingForConnectivity = true; _activity.RequestAccessFineLocation(); return; } if (!_activity.HasGoogleFitnessPermissions) { _activity.GoogleFitnessPermissionsUpdated += OnFitnessPermissionsUpdated; isWaitingForConnectivity = true; _activity.RequestFitnessPermissions(); return; } GoogleSignInAccount googleAccount = GoogleSignIn.GetLastSignedInAccount(_activity); fitnessHistoryClient = FitnessClass.GetHistoryClient(_activity, googleAccount); fitnessRecordingClient = FitnessClass.GetRecordingClient(_activity, googleAccount); if (checkSubscriptionsTask == null) { checkSubscriptionsTask = Task.Run( async() => { bool hasSubscribedToSpeedData = await SubscribeToSpeedData(); if (hasSubscribedToSpeedData) { _isConnected = true; } }); } //create FitnessApi client, needs an activity //_client = new GoogleApiClient.Builder(_activity) // .AddApi(FitnessClass.RECORDING_API) // .AddApi(FitnessClass.HISTORY_API) // .AddScope(FitnessClass.ScopeLocationReadWrite) // .AddScope(FitnessClass.ScopeActivityReadWrite) // .AddConnectionCallbacks( // async bundle => // { // if (Mvx.IoCProvider != null) // { // Mvx.IoCProvider.Resolve<IMissingPermissionService>().ResolvedMissingPermission(MissingPermission.AndroidFitnessAccountLink); // } // var isSubscribed = await SubscribeToSpeedData(); // if (!isSubscribed) // { // Analytics.TrackEvent(TrackingEvents.Error, new TrackingEvents.ErrorArgs(TrackingEvents.ErrorData.SpeedDataSubscriptionFailed)); // } // _isConnected = true; // CrossLocalNotifications.Current.Cancel(Config.NotificationIdConnectivity); // OnConnected(); // await RequestUpdate(); // }, // suspensionReason => // { // if (suspensionReason == GoogleApiClient.ConnectionCallbacks.CauseNetworkLost) // { // Crashes.TrackError(new Exception("Connection to Google Fitness lost due to Network Lost")); // } // else if (suspensionReason == GoogleApiClient.ConnectionCallbacks.CauseServiceDisconnected) // { // Crashes.TrackError(new Exception("Connection to Google Fitness lost due to Service Disconnected")); // } // else // { // Crashes.TrackError(new Exception("Connection to Google Fitness lost: " + suspensionReason)); // } // }) // .AddOnConnectionFailedListener( // async result => // { // _isConnected = false; // if (UpdateService.Current.GetUpdateMode() == UpdateMode.Foreground && !isWaitingForConnectivity) // { // lastConnectionResult = result; // bool canReachGoogle = await CrossConnectivity.Current.IsRemoteReachable("http://www.google.com", 80, 1000); // if (!canReachGoogle) // { // bool hasCellular = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.Cellular); // bool hasWifi = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi); // CrossConnectivity.Current.ConnectivityTypeChanged += ConnectivityTypeChanged; // isWaitingForConnectivity = true; // await UserDialogs.Instance.AlertAsync( // "Du må ha en internett-forbindelse for å kunne hente ut dine gangdata fra Google Fit", // "Trenger nettforbindelse"); // if (!hasWifi) // { // var intent = new Intent(Android.Provider.Settings.ActionWifiSettings); // intent.SetFlags(ActivityFlags.NewTask); // _activity.StartActivity(intent); // } // else if (!hasCellular) // { // var intent = new Intent(Android.Provider.Settings.ActionDataUsageSettings); // intent.SetFlags(ActivityFlags.NewTask); // _activity.StartActivity(intent); // } // } // else // { // _activity.GoogleFitnessAuthenticationUpdated -= OnGoogleFitnessAuthenticationUpdated; // _activity.GoogleFitnessAuthenticationUpdated += OnGoogleFitnessAuthenticationUpdated; // _activity.RequestGoogleFitnessAuthentication(lastConnectionResult); // } // } // else // { // CrossLocalNotifications.Current.Show(AppText.notification_title, AppText.notification_google_fit_auth_failed, Config.NotificationIdConnectivity); // } // }) // .Build(); //ConnectGoogleFitClient(); }