Ejemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Bundle itemBundle = this.Intent.GetBundleExtra("currentUserBundle");
            current_user = itemBundle.GetString("username") ?? "pos";
            age = itemBundle.GetInt("age", 40);
            weight = itemBundle.GetInt("weight", 90);
            height = itemBundle.GetInt("height", 200);
            BMI = weight / (height * weight);

            // Creating instance of NotificationJandler
            NotificationHandler.Initialize(60, 30);
            notifyHandler = NotificationHandler.getInstance();


            //Layout related
            SetContentView(Resource.Layout.activity_user_page);
            txtStatus = (TextView)FindViewById(Id.txtStatus);
            txtStep = (TextView)FindViewById(Id.txtStep);
            currentHB = (TextView)FindViewById(Id.bpm);
            btnStop = (Button)FindViewById(Id.btnStop);
            btnConsent = (Button)FindViewById(Id.btnConsent);
            modeBtn = (Button)FindViewById(Id.modeBtn);
            dateBtn = (Button)FindViewById(Id.dateBtn);
            fromDatePckr = (DatePicker)FindViewById(Id.fromDatePicker);
            toDatePckr = (DatePicker)FindViewById(Id.toDatePicker);
            statistics = (TextView)FindViewById(Id.statistics);
            DatePickerInit(fromDatePckr);
            DatePickerInit(toDatePckr);
            chartView = FindViewById<Microcharts.Droid.ChartView>(Resource.Id.chartView);
            chartViewPie = FindViewById<Microcharts.Droid.ChartView>(Resource.Id.chartViewPie);
            historyChartView = FindViewById<Microcharts.Droid.ChartView>(Resource.Id.HistorychartView);
            
            //set UI elements Default Visiblity
            txtStep.Visibility = ViewStates.Visible;
            btnConsent.Visibility = ViewStates.Visible;
            vfromDatePckr = ViewStates.Visible;
            vtoDatePckr = ViewStates.Visible;
            vdateBtn = ViewStates.Visible;
            vhistoryChartView = ViewStates.Gone;
            vstatistics = ViewStates.Gone;
            vchartViewPie = ViewStates.Visible;

            reference = new WeakReference<Activity>(this);  //used to declared as "final" in java
            mHeartRateEventListener = new HeartRateEventListener(this);
            new HeartRateConsentTask(this).Execute(reference);

            btnStop.Click += async (sender, e) => {
                try
                {
                    client.SensorManager.UnregisterHeartRateEventListener(mHeartRateEventListener);
                }
                catch (BandIOException be)
                {
                    appendToUI(be.Message);
                }
            };

            btnConsent.Click += async (sender, e) => {
                try
                {
                    new HeartRateConsentTask(this).Execute(reference);
                }
                catch (BandIOException be)
                {
                    appendToUI(be.Message);
                }
            };

            new RetrieveSingleTableEntry(this).Execute(current_user, Variance, Variance, storageConnectionString);
            new RetrieveSingleTableEntry(this).Execute(current_user, Average, Average, storageConnectionString);
            new RetrieveSingleTableEntry(this).Execute(current_user, Total_count, Total_count, storageConnectionString);


            


            dateBtn.Click += async (sender, e) => {
                try
                {
                    if (dateBtn.Text.Equals(GetString(Resource.String.render))) {
                        new DisplayRangeOfEntries(this).Execute(current_user,
                            "PartitionKey", Convert.ToDateTime(fromDatePckr.DateTime.ToString()).ToString(dateFormat_day),
                            "PartitionKey", Convert.ToDateTime(toDatePckr.DateTime.ToString()).ToString(dateFormat_day),
                            storageConnectionString);
                        //if retrieval is succesful, the graph visibility will change to visible and dateBtn mode to clean                               
                    }
                    else
                    {
                        historyChartView.Chart = null;
                        historyChartView.Visibility = ViewStates.Gone;
                        fromDatePckr.Visibility = ViewStates.Visible;
                        toDatePckr.Visibility = ViewStates.Visible;
                        dateBtn.Text = GetString(Resource.String.render);
                    }
                }
                catch (System.Exception se)
                {
                    appendToUI(se.Message);
                }
            };

            modeBtn.Click += async (sender, e) => {
                try
                {
                    if (modeBtn.Text.Equals(GetString(Resource.String.history_view)))
                    {
                        //save current live view UI element's visiblity mode
                        vtxtStep = txtStep.Visibility;
                        vtxtStatus = txtStatus.Visibility;
                        vbtnConsent = btnConsent.Visibility;
                        vchartView = chartView.Visibility;
                        vchartViewPie = chartViewPie.Visibility;
                        vcurrentHB = currentHB.Visibility;
                        //hide live view UI elements
                        txtStep.Visibility = ViewStates.Gone;
                        txtStatus.Visibility = ViewStates.Gone;
                        btnConsent.Visibility = ViewStates.Gone;
                        chartView.Visibility = ViewStates.Gone;
                        chartViewPie.Visibility = ViewStates.Gone;
                        currentHB.Visibility = ViewStates.Gone;
                        liveUpdate = false;
                        //make history view UI elements visible (if they were before)
                        historyChartView.Visibility = vhistoryChartView;
                        fromDatePckr.Visibility = vfromDatePckr;
                        toDatePckr.Visibility = vtoDatePckr;
                        dateBtn.Visibility = vdateBtn;
                        statistics.Visibility = ViewStates.Visible;
                        modeBtn.Text = GetString(Resource.String.live_view);
                    }
                    else   //go back to live view
                    {
                        //save current history view UI element's visiblity mode
                        vfromDatePckr = fromDatePckr.Visibility;
                        vtoDatePckr = toDatePckr.Visibility;
                        vdateBtn = dateBtn.Visibility;
                        vhistoryChartView = historyChartView.Visibility;
                        //hide history view UI elements
                        fromDatePckr.Visibility = ViewStates.Gone;
                        toDatePckr.Visibility = ViewStates.Gone;
                        dateBtn.Visibility = ViewStates.Gone;
                        historyChartView.Visibility = ViewStates.Gone;
                        //make live view UI elements visible
                        txtStep.Visibility = vtxtStep;
                        txtStatus.Visibility = vtxtStatus;
                        currentHB.Visibility = vcurrentHB;
                        btnConsent.Visibility = vbtnConsent;
                        chartView.Visibility = vchartView;
                        chartViewPie.Visibility = vchartView;
                        statistics.Visibility = ViewStates.Gone;
                        liveUpdate = true;
                        modeBtn.Text = GetString(Resource.String.history_view);
                    }
                }
                catch (System.Exception se)
                {
                    appendToUI(se.Message);
                }
            };

        }