22// Licensed under the MIT License.
33
44import React , { Component } from 'react' ;
5- import { Image , View , Text , Switch , SectionList , TouchableOpacity } from 'react-native' ;
5+ import { Image , View , Text , Switch , SectionList , NativeModules , TouchableOpacity } from 'react-native' ;
66import Toast from 'react-native-simple-toast' ;
77
88import Analytics from 'appcenter-analytics' ;
@@ -25,10 +25,15 @@ export default class AnalyticsScreen extends Component {
2525 }
2626
2727 state = {
28- analyticsEnabled : false
28+ analyticsEnabled : false ,
29+ isManualSessionEnabled : false
2930 }
3031
3132 async componentDidMount ( ) {
33+ NativeModules . DemoAppNative . getManualSessionTrackerState ( ) . then ( ( isEnabled ) => {
34+ const isManualSessionEnabled = isEnabled === 1 ;
35+ this . setState ( { isManualSessionEnabled } ) ;
36+ } ) ;
3237 await this . refreshToggle ( ) ;
3338
3439 this . props . navigation . setParams ( {
@@ -76,6 +81,15 @@ export default class AnalyticsScreen extends Component {
7681 this . setState ( { analyticsEnabled } ) ;
7782 }
7883 } ,
84+ {
85+ title : 'Manual Session Tracking Enabled' ,
86+ value : 'isManualSessionEnabled' ,
87+ toggle : async ( ) => {
88+ const isManualSessionEnabled = ! this . state . isManualSessionEnabled ;
89+ await NativeModules . DemoAppNative . saveManualSessionTrackerState ( isManualSessionEnabled ) ;
90+ this . setState ( { isManualSessionEnabled } ) ;
91+ }
92+ } ,
7993 ] ,
8094 renderItem : switchRenderItem
8195 } ,
@@ -106,6 +120,12 @@ export default class AnalyticsScreen extends Component {
106120 showEventToast ( eventName ) ;
107121 }
108122 } ,
123+ {
124+ title : 'Start session' ,
125+ action : ( ) => {
126+ Analytics . startSession ( ) ;
127+ }
128+ } ,
109129 ] ,
110130 renderItem : actionRenderItem
111131 } ,
0 commit comments