Пример #1
0
 private void SaveCarDetailsToDb(HashMap carMap)
 {
     if (AppDataHelper.GetCurrentUser() != null)
     {
         var vehicleRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}/MyCars");
         vehicleRef.SetValue(carMap)
         .AddOnSuccessListener(new OnSuccessListener(result =>
         {
             var driverRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}/{StringConstants.StageofRegistration}");
             driverRef.SetValue($"{RegistrationStage.Agreement}")
             .AddOnSuccessListener(new OnSuccessListener(result2 =>
             {
                 CarRegComplete.Invoke(this, new EventArgs());
                 OnboardingActivity.CloseProgressDialog();
             })).AddOnFailureListener(new OnFailureListener(e2 =>
             {
                 OnboardingActivity.CloseProgressDialog();
                 Toast.MakeText(Activity, e2.Message, ToastLength.Short).Show();
             }));
         }))
         .AddOnFailureListener(new OnFailureListener(e1 =>
         {
             OnboardingActivity.CloseProgressDialog();
             Toast.MakeText(Activity, e1.Message, ToastLength.Short).Show();
         }));
     }
     else
     {
         return;
     }
 }
Пример #2
0
        public void CreateRequest()
        {
            newTripRef = database.GetReference("RiderRequest").Push();

            HashMap location = new HashMap();

            location.Put("latitude", newTrip.PickupLat);
            location.Put("longitude", newTrip.PickupLng);

            HashMap destination = new HashMap();

            destination.Put("latitude", newTrip.DestinationLat);
            destination.Put("longitude", newTrip.DestinationLng);

            HashMap myTrip = new HashMap();

            newTrip.RideID = newTripRef.Key;

            myTrip.Put("rider_id", AppDataHelper.GetCurrentUser().Uid);
            myTrip.Put("location", location);
            myTrip.Put("destination", destination);
            myTrip.Put("destination_address", newTrip.DestinationAddress);
            myTrip.Put("pickup_address", newTrip.PickupAddress);
            myTrip.Put("payment_method", newTrip.Paymentmethod);
            myTrip.Put("created_at", newTrip.Timestamp.ToString());
            myTrip.Put("driver_id", "waiting");
            myTrip.Put("rider_name", AppDataHelper.GetFullName());
            myTrip.Put("rider_phone", AppDataHelper.GetPhone());
            //myTrip.Put("Imgurl",)

            newTripRef.AddValueEventListener(this);
            newTripRef.SetValue(myTrip);
        }
Пример #3
0
        void ConnectViews()
        {
            goOnlineButton = (Button)FindViewById(Resource.Id.goOnlineButton);      // the go online button
            bnve           = (BottomNavigationViewEx)FindViewById(Resource.Id.bnve);
            bnve.EnableItemShiftingMode(false);
            bnve.EnableShiftingMode(false);


            // ----- CHECK DRIVER APPROVAL STATUS ------
            string driverID = AppDataHelper.GetCurrentUser().Uid;

            FirebaseDatabase.Instance.Reference.Child("driverApplications/" + driverID)
            .AddValueEventListener(new DataValueEventListener());


            goOnlineButton.Click        += GoOnlineButton_Click;
            bnve.NavigationItemSelected += Bnve_NavigationItemSelected;

            BnveToAccentColor(0);

            viewPager = (ViewPager)FindViewById(Resource.Id.viewPager);
            viewPager.OffscreenPageLimit = 3;
            viewPager.BeginFakeDrag();

            SetupViewPager();


            homeFragment.CurrentLocation     += HomeFragment_CurrentLocation;
            homeFragment.TripActionArrived   += HomeFragment_TripActionArrived;
            homeFragment.CallRider           += HomeFragment_CallRider;
            homeFragment.Navigate            += HomeFragment_Navigate;
            homeFragment.TripActionStartTrip += HomeFragment_TripActionStartTrip;
            homeFragment.TripActionEndTrip   += HomeFragment_TripActionEndTrip;
        }
Пример #4
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            View view = inflater.Inflate(Resource.Layout.Account, container, false);

            mTxtEmail   = (TextView)view.FindViewById(Resource.Id.profileEmail);
            mTxtName    = (TextView)view.FindViewById(Resource.Id.profileName);
            mTxtPhone   = (TextView)view.FindViewById(Resource.Id.profileNumber);
            mBtnSignOut = (Button)view.FindViewById(Resource.Id.dashboardLogout);



            if (AppDataHelper.GetCurrentUser() != null)
            {
                var user = AppDataHelper.GetCurrentUser();
                mTxtEmail.Text = user.Email;
            }
            ;

            database    = AppDataHelper.GetDatabase();
            mAuth       = AppDataHelper.GetFirebaseAuth();
            currentUser = AppDataHelper.GetCurrentUser();

            string driverID = AppDataHelper.GetCurrentUser().Uid;

            FirebaseDatabase.Instance.Reference.Child("drivers/" + driverID)
            .AddListenerForSingleValueEvent(new DataValueEventListener());

            mBtnSignOut.Click += MBtnSignOut_Click;

            return(view);
        }
Пример #5
0
 public override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     CreateLocationRequest();
     if (AppDataHelper.GetCurrentUser() != null)
     {
         var dbRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}");
         dbRef.AddValueEventListener(new SingleValueListener(snapshot =>
         {
             if (snapshot.Exists())
             {
                 profileUrl = snapshot.Child("profile_img_url").Value.ToString();
                 Glide.With(Context)
                 .Load(profileUrl)
                 .Into(profileImg)
                 .WaitForLayout();
             }
         }, error =>
         {
         }));
     }
     else
     {
         return;
     }
 }
Пример #6
0
        protected override void OnResume()
        {
            base.OnResume();

            FirebaseUser currentUser = AppDataHelper.GetCurrentUser();

            StartActivity(currentUser == null ? typeof(LoginActivity) : typeof(MainActivity));
        }
Пример #7
0
        private void SetDb()
        {
            switch (AppDataHelper.GetCurrentUser())
            {
            case null:
                return;

            default:
            {
                var compliRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}");
                compliRef.AddValueEventListener(new SingleValueListener(
                                                    snapshot =>
                    {
                        if (snapshot.Exists())
                        {
                            fullNameTv.PostDelayed(() =>
                            {
                                fullNameTv.Text = $"{snapshot.Child("fname").Value} {snapshot.Child("lname").Value}";
                            }, 1000);

                            drivingSinceTv.PostDelayed(() =>
                            {
                                drivingSinceTv.Text = $"Driving since {DateTime.Parse(snapshot.Child("created_at").Value.ToString()).Year}";
                            }, 1000);

                            ratingTv.PostDelayed(() =>
                            {
                                ratingTv.Text = snapshot.Child("ratings").Value.ToString();
                            }, 1000);


                            Glide.With(Context)
                            .Load(snapshot.Child("profile_img_url").Value.ToString())
                            .Into(profileIv);

                            string cool_car      = snapshot.Child("compliments").Child("cool_car") == null ? "" : snapshot.Child("compliments").Child("cool_car").Value.ToString();
                            string awesome_music = snapshot.Child("compliments").Child("awesome_music") == null ? "" : snapshot.Child("compliments").Child("awesome_music").Value.ToString();
                            string friendly      = snapshot.Child("compliments").Child("made_me_laugh") == null ? "" : snapshot.Child("compliments").Child("made_me_laugh").Value.ToString();
                            string nav           = snapshot.Child("compliments").Child("expert_navigation") == null ? "" : snapshot.Child("compliments").Child("expert_navigation").Value.ToString();
                            string neat          = snapshot.Child("compliments").Child("neat_and_tidy") == null ? "" : snapshot.Child("compliments").Child("neat_and_tidy").Value.ToString();

                            compliValues = new string[] { awesome_music, cool_car, friendly, neat, nav };
                            compliValuesSwitcher.PostDelayed(() => { compliValuesSwitcher.SetCurrentText(compliValues[0]); }, 1000);
                        }
                        else
                        {
                            return;
                        }
                    },
                                                    error =>
                    {
                        Toast.MakeText(Activity, error.Message, ToastLength.Short).Show();
                    }));
                compliRef.KeepSynced(true);
                break;
            }
            }
        }
Пример #8
0
 void Accept()
 {
     tripRef.Child("status").SetValue("accepted");
     tripRef.Child("driver_name").SetValue(AppDataHelper.GetFullName());
     tripRef.Child("driver_phone").SetValue(AppDataHelper.GetPhone());
     tripRef.Child("driver_location").Child("latitude").SetValue(mLastlocation.Latitude);
     tripRef.Child("driver_location").Child("longitude").SetValue(mLastlocation.Longitude);
     tripRef.Child("driver_id").SetValue(AppDataHelper.GetCurrentUser().Uid);
 }
        public void Create()
        {
            _editor = _preferences.Edit();
            FirebaseDatabase  database  = AppDataHelper.GetDatabase();
            string            driverId  = AppDataHelper.GetCurrentUser().Uid;
            DatabaseReference driverRef = database.GetReference("drivers/" + driverId);

            driverRef.AddValueEventListener(this);
        }
Пример #10
0
        public void Create()
        {
            editor = preferences.Edit();
            FirebaseDatabase  database         = AppDataHelper.GetDatabase();
            string            userId           = AppDataHelper.GetCurrentUser().Uid;
            DatabaseReference profileReference = database.GetReference("users/" + userId);

            profileReference.AddValueEventListener(this);
        }
        private void SaveImage()
        {
            picDisplayFragment.DismissAllowingStateLoss();
            var storeRef = FirebaseStorage.Instance.GetReferenceFromUrl("gs://taxiproject-185a4.appspot.com");

            if (AppDataHelper.GetCurrentUser() != null)
            {
                var stream = new MemoryStream();
                bitmap.Compress(Bitmap.CompressFormat.Webp, 80, stream);
                byte[] bitmapArray = stream.ToArray();

                imageRef = storeRef.Child("driverProfilePics/" + AppDataHelper.GetCurrentUser().Uid);
                imageRef.PutBytes(bitmapArray).ContinueWithTask(new ContinuationTask(t =>
                {
                    if (!t.IsSuccessful)
                    {
                        OnboardingActivity.CloseProgressDialog();
                        Toast.MakeText(Activity, t.Exception.Message, ToastLength.Long).Show();
                    }
                })).AddOnCompleteListener(new OnCompleteListener(t =>
                {
                    if (t.IsSuccessful)
                    {
                        var driverRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}");
                        driverRef.Child("profile_img_url").SetValue(t.Result.ToString()).AddOnCompleteListener(new OnCompleteListener(t3 =>
                        {
                            if (!t3.IsSuccessful)
                            {
                                Toast.MakeText(Activity, t3.Exception.Message, ToastLength.Long).Show();
                            }
                            OnboardingActivity.CloseProgressDialog();

                            driverRef.Child(StringConstants.StageofRegistration).SetValue($"{RegistrationStage.CarRegistering}")
                            .AddOnSuccessListener(new OnSuccessListener(r2 =>
                            {
                                ProfileCaptured.Invoke(this, new EventArgs());
                                UpdateUiOnCpture(CaptureType.ProfilePic);
                                OnboardingActivity.CloseProgressDialog();
                            })).AddOnFailureListener(new OnFailureListener(e2 =>
                            {
                                OnboardingActivity.CloseProgressDialog();
                                OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
                            }));
                        }));
                    }
                    else
                    {
                        OnboardingActivity.CloseProgressDialog();
                        OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
                    }
                }));
            }
            else
            {
                return;
            }
        }
Пример #12
0
        // on create method where we initialize the event handler
        public void Create()
        {
            editor = preferences.Edit();  // initialize the editor
            FirebaseDatabase  database  = AppDataHelper.GetDatabase();
            string            driverID  = AppDataHelper.GetCurrentUser().Uid;
            DatabaseReference driverRef = database.GetReference("drivers/" + driverID);

            driverRef.AddValueEventListener(this);
        }
Пример #13
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);
            var AccountTypeTGroup = view.FindViewById <MaterialButtonToggleGroup>(Resource.Id.drv_part_tggl_grp);
            var InfoImgSwitcher   = view.FindViewById <ImageSwitcher>(Resource.Id.drv_part_img_swtchr1);
            var InfoTSwitcher     = view.FindViewById <TextSwitcher>(Resource.Id.drv_part_txt_swtchr1);
            var ContinueBtn       = view.FindViewById <MaterialButton>(Resource.Id.drv_part_cnt_btn);

            InitSwitchers(InfoImgSwitcher, InfoTSwitcher);

            AccountTypeTGroup.AddOnButtonCheckedListener(new OnButtonChecked(id =>
            {
                switch (id)
                {
                case Resource.Id.drv_tggl_partner_btn:
                    partner = true;
                    InfoTSwitcher.SetText(GetString(Resource.String.partner_desc_txt));
                    InfoImgSwitcher.SetImageResource(Resource.Drawable.driver_pablo);
                    break;

                case Resource.Id.drv_tggl_driver_btn:
                    partner = false;
                    InfoTSwitcher.SetText(GetString(Resource.String.driving_desc_txt));
                    InfoImgSwitcher.SetImageResource(Resource.Drawable.driver_pablo);
                    break;
                }
            }));


            ContinueBtn.Click += (s1, e1) =>
            {
                if (AppDataHelper.GetCurrentUser() != null)
                {
                    OnboardingActivity.ShowProgressDialog();
                    var driverRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}");
                    driverRef.Child("isPartner").SetValue(partner.ToString())
                    .AddOnSuccessListener(new OnSuccessListener(r1 =>
                    {
                        driverRef.Child(StringConstants.StageofRegistration).SetValue(RegistrationStage.Capturing.ToString())
                        .AddOnSuccessListener(new OnSuccessListener(r2 =>
                        {
                            PartnerTypeComplete.Invoke(this, new PartnerEventArgs {
                                IsPartnerComplete = true
                            });
                            OnboardingActivity.CloseProgressDialog();
                        }))
                        .AddOnFailureListener(new OnFailureListener(e1 => { OnboardingActivity.CloseProgressDialog(); }));
                    }))
                    .AddOnFailureListener(new OnFailureListener(e1 => { OnboardingActivity.CloseProgressDialog(); }));
                }
                else
                {
                    Toast.MakeText(Activity, "Something aint right", ToastLength.Short).Show();
                }
            };
        }
Пример #14
0
 void Accept()
 {
     statusEnum = RideStatusEnum.Accepted;
     tripRef.Child("status").SetValue($"{statusEnum}");
     tripRef.Child("driver_name").SetValue(AppDataHelper.Firstname);
     tripRef.Child("driver_phone").SetValue(AppDataHelper.Phone);
     tripRef.Child("driver_location").Child("latitude").SetValue(mLastlocation.Latitude);
     tripRef.Child("driver_location").Child("longitude").SetValue(mLastlocation.Longitude);
     tripRef.Child("driver_id").SetValue(AppDataHelper.GetCurrentUser().Uid);
 }
Пример #15
0
        void InitializeFirebase()
        {
            //Firebase Init
            database    = AppDataHelper.GetDatabase();
            mAuth       = AppDataHelper.GetFirebaseAuth();
            currentUser = AppDataHelper.GetCurrentUser();

            FirebaseApp.InitializeApp(this);
            //storage = FirebaseStorage.Instance;
        }
Пример #16
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            var logoutBtn = view.FindViewById <MaterialButton>(Resource.Id.logout_btn);

            logoutBtn.Click += (s1, e1) =>
            {
                if (AppDataHelper.GetCurrentUser() != null)
                {
                    ShowDialog();
                }
            };
        }
Пример #17
0
        public void UpdateLocation(Android.Locations.Location mylocation)
        {
            string DriverId = AppDataHelper.GetCurrentUser().Uid;

            if (availablityRef != null)
            {
                DatabaseReference locationref = database.GetReference("driversAvailable/" + DriverId + "/location");
                HashMap           locationMap = new HashMap();
                locationMap.Put("latitude", mylocation.Latitude);
                locationMap.Put("longitude", mylocation.Longitude);
                locationref.SetValue(locationMap);
            }
        }
Пример #18
0
        protected override void OnResume()
        {
            base.OnResume();
            FirebaseUser currentUser = AppDataHelper.GetCurrentUser();

            if (currentUser == null)
            {
                StartActivity(typeof(LoginActivity));
            }
            else
            {
                StartActivity(typeof(LoginActivity));
            }
        }
        private void SaveDriverToDb()
        {
            var DriverRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{ AppDataHelper.GetCurrentUser().Uid}");

            HashMap compliments = new HashMap();

            compliments.Put("cool_car", "0");
            compliments.Put("neat_and_tidy", "0");
            compliments.Put("expert_navigation", "0");
            compliments.Put("awesome_music", "0");
            compliments.Put("made_me_laugh", "0");

            HashMap driverMap = new HashMap();

            driverMap.Put("fname", fname);
            driverMap.Put("lname", lname);
            driverMap.Put("email", email);
            driverMap.Put("phone", phone);
            driverMap.Put("city", city);
            driverMap.Put("invitecode", code);
            driverMap.Put("ratings", "0");
            driverMap.Put("compliments", compliments);
            driverMap.Put("created_at", DateTime.UtcNow.ToString());



            DriverRef.SetValue(driverMap)
            .AddOnSuccessListener(new OnSuccessListener(r =>
            {
                DriverRef.Child(StringConstants.StageofRegistration).SetValue(RegistrationStage.Partnering.ToString())
                .AddOnSuccessListener(new OnSuccessListener(r2 =>
                {
                    OnboardingActivity.CloseProgressDialog();
                    SignUpSuccess.Invoke(this, new SignUpSuccessArgs {
                        IsCompleted = true
                    });
                }))
                .AddOnFailureListener(new OnFailureListener(e1 =>
                {
                    OnboardingActivity.CloseProgressDialog();
                    Toast.MakeText(Activity, e1.Message, ToastLength.Short).Show();
                }));
            }))
            .AddOnFailureListener(new OnFailureListener(e =>
            {
                OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
            }));
        }
Пример #20
0
        protected override void OnResume()
        {
            base.OnResume();

            // set user sepcifications
            FirebaseUser currentUser = AppDataHelper.GetCurrentUser();

            if (currentUser == null)
            {
                StartActivity(typeof(LoginActivity));
            }
            else
            {
                StartActivity(typeof(RegistrationActivity));
            }
        }
Пример #21
0
        public void Create()
        {
            editor = preferences.Edit();
            FirebaseDatabase database = AppDataHelper.GetDatabase();

            var currentUser = AppDataHelper.GetCurrentUser();

            if (currentUser != null)
            {
                DatabaseReference driverRef = database.GetReference("Drivers/" + currentUser.Uid);
                driverRef.AddValueEventListener(this);
            }
            else
            {
                return;
            }
        }
Пример #22
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            string firstRun = preferences.GetString("firstRun", "");

            if (firstRun != "" && firstRun != "reg")
            {
                StartActivity(typeof(MainActivity));
                Finish();
            }
            else
            {
                editor = preferences.Edit();
                editor.PutString("firstRun", "reg");
                editor.Commit();
                RouteToAppropriatePage(AppDataHelper.GetCurrentUser());
            }
        }
Пример #23
0
        private void InitControls(View view)
        {
            var visit_btn = view.FindViewById <MaterialButton>(Resource.Id.visit_site_btn);
            var skip_btn  = view.FindViewById <MaterialButton>(Resource.Id.skip_btn);

            skip_btn.Click += (s1, e1) =>
            {
                if (AppDataHelper.GetCurrentUser().Uid == null)
                {
                    return;
                }
                else
                {
                    OnboardingActivity.ShowProgressDialog();
                    var dataRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}/{StringConstants.StageofRegistration}");
                    dataRef.SetValue(RegistrationStage.RegistrationDone.ToString())
                    .AddOnSuccessListener(new OnSuccessListener(r =>
                    {
                        editor = preferences.Edit();
                        editor.PutString("firstRun", "regd");
                        editor.Commit();

                        OnboardingActivity.CloseProgressDialog();
                        var intent = new Intent(Context, typeof(MainActivity));
                        intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.ClearTop | ActivityFlags.NewTask);
                        StartActivity(intent);
                    })).AddOnFailureListener(new OnFailureListener(e =>
                    {
                        OnboardingActivity.CloseProgressDialog();
                        OnboardingActivity.ShowErrorDialog(e.Message);
                    }));
                }
            };

            visit_btn.Click += (s2, e2) =>
            {
                string url = "https://www.google.com";
                Intent i   = new Intent(Intent.ActionView);
                i.SetData(Android.Net.Uri.Parse(url));
                StartActivity(i);
            };
        }
Пример #24
0
        public void Create(Android.Locations.Location myLocation)
        {
            database = AppDataHelper.GetDatabase();
            string driverID = AppDataHelper.GetCurrentUser().Uid;

            availablityRef = database.GetReference("driversAvailable/" + driverID);

            HashMap location = new HashMap();

            location.Put("latitude", myLocation.Latitude);
            location.Put("longitude", myLocation.Longitude);

            HashMap driverInfo = new HashMap();

            driverInfo.Put("location", location);
            driverInfo.Put("ride_id", "waiting");

            availablityRef.AddValueEventListener(this);
            availablityRef.SetValue(driverInfo);
        }
Пример #25
0
        private async void GetDbAsync()
        {
            await Task.Run(() =>
            {
                var earnRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}/earnings");
                earnRef.AddValueEventListener(new SingleValueListener(
                                                  snapshot =>
                {
                    if (snapshot.Exists())
                    {
                        var rides    = snapshot.Child("rides").Children.ToEnumerable <DataSnapshot>();
                        tot_earnings = snapshot.Child("tot_earnings").Value.ToString();

                        earningList.Clear();
                        earningList.AddRange(from ride in rides
                                             let earnModel = new EarnModel
                        {
                            ID   = ride.Key,
                            Fare = ride.Child("fare").Value.ToString(),
                            Date = ride.Child("date").Value.ToString()
                        }
                                             select earnModel);

                        totBalanceTxt.PostDelayed(() => { totBalanceTxt.Text = $"Gh¢{tot_earnings}.00"; }, 1000);

                        totalTripTxt.PostDelayed(() => { totalTripTxt.Text = earningList.Count.ToString(); }, 1000);
                        isDataLoaded = true;
                        DrawChartAsync(0);
                    }
                    else
                    {
                        earnRef.Child("tot_earnings").SetValue("0");
                    }
                },
                                                  error =>
                {
                    Toast.MakeText(Activity, error.Message, ToastLength.Short).Show();
                }));
            });
        }
        public void Create(Android.Locations.Location myLocation)
        {
            var currUser = AppDataHelper.GetCurrentUser();

            if (currUser != null)
            {
                availablityRef = AppDataHelper.GetAvailDrivRef().Child(currUser.Uid);

                HashMap location = new HashMap();
                location.Put("latitude", myLocation.Latitude);
                location.Put("longitude", myLocation.Longitude);

                HashMap driverInfo = new HashMap();
                driverInfo.Put("location", location);
                driverInfo.Put("ride_id", "waiting");

                availablityRef.AddValueEventListener(this);
                availablityRef.SetValue(driverInfo);
            }
            else
            {
                return;
            }
        }
 void SetupFirebase()
 {
     database    = AppDataHelper.GetDatabase();
     mAuth       = AppDataHelper.GetFirebaseAuth();
     currentUser = AppDataHelper.GetCurrentUser();
 }
 void InitializeFirebase()
 {
     mAuth       = AppDataHelper.GetFirebaseAuth();
     currentUser = AppDataHelper.GetCurrentUser();
     database    = AppDataHelper.GetDatabase();
 }
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);
            var emailText     = view.FindViewById <TextInputLayout>(Resource.Id.drv_signin_email_et);
            var passText      = view.FindViewById <TextInputLayout>(Resource.Id.drv_signin_pass_et);
            var forgotPassBtn = view.FindViewById <MaterialButton>(Resource.Id.btn_forgot_pass);

            forgotPassBtn.Click += (s1, e1) =>
            {
                ForgotPassFragment passFragment = new ForgotPassFragment();
                AndroidX.Fragment.App.FragmentTransaction ft = ChildFragmentManager.BeginTransaction();
                ft.Add(passFragment, "forgot_pass_fragment");
                ft.CommitAllowingStateLoss();
            };

            var continueFab = view.FindViewById <FloatingActionButton>(Resource.Id.fab1);

            continueFab.Click += (s2, e2) =>
            {
                bool enabled = !(!Patterns.EmailAddress.Matcher(emailText.EditText.Text).Matches() || passText.EditText.Text.Length < 8);
                switch (enabled)
                {
                case false:
                    Toast.MakeText(Activity, "A valid email and password is required", ToastLength.Short).Show();
                    break;

                default:
                {
                    //showProgress
                    OnboardingActivity.ShowProgressDialog();
                    AppDataHelper.GetFirebaseAuth().SignInWithEmailAndPassword(emailText.EditText.Text, passText.EditText.Text)
                    .AddOnCompleteListener(new OnCompleteListener(t =>
                        {
                            if (t.IsSuccessful)
                            {
                                var dataRef = AppDataHelper.GetDatabase().GetReference("Drivers/" + AppDataHelper.GetCurrentUser().Uid);
                                dataRef.AddValueEventListener(new SingleValueListener(d =>
                                {
                                    if (!d.Exists())
                                    {
                                        return;
                                    }

                                    var stage = (d.Child(StringConstants.StageofRegistration) != null) ? d.Child(StringConstants.StageofRegistration).Value.ToString() : "";
                                    if (stage != $"{RegistrationStage.RegistrationDone}")
                                    {
                                        editor = preferences.Edit();
                                        editor.PutString("firstRun", "reg");
                                        editor.Commit();
                                        OnboardingActivity.CloseProgressDialog();
                                        onRegUncompleteListener?.Invoke(this, new RegUncompleteArgs {
                                            StageReached = stage
                                        });
                                    }
                                    else
                                    {
                                        editor = preferences.Edit();
                                        editor.PutString("firstRun", "regd");
                                        editor.Commit();

                                        var intent = new Intent(Context, typeof(MainActivity));
                                        intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.ClearTop | ActivityFlags.NewTask);
                                        StartActivity(intent);
                                    }
                                }, e =>
                                {
                                    try
                                    {
                                        OnboardingActivity.CloseProgressDialog();
                                        throw t.Exception;
                                    }
                                    catch (DatabaseException)
                                    {
                                        OnboardingActivity.ShowErrorDialog("Database exeption");
                                    }
                                    catch (FirebaseNetworkException)
                                    {
                                        OnboardingActivity.ShowNoNetDialog(false);
                                    }
                                    catch (Exception)
                                    {
                                        OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
                                    }
                                }));
                            }
                            else
                            {
                                try
                                {
                                    OnboardingActivity.CloseProgressDialog();
                                    throw t.Exception;
                                }
                                catch (FirebaseAuthInvalidCredentialsException)
                                {
                                    OnboardingActivity.ShowErrorDialog("Your email or password is incorrect. Please try again.");
                                }
                                catch (FirebaseAuthInvalidUserException)
                                {
                                    OnboardingActivity.ShowErrorDialog("We can't find an account with this email address. Please try again or create a new account.");
                                }
                                catch (FirebaseNetworkException)
                                {
                                    OnboardingActivity.ShowNoNetDialog(false);
                                }
                                catch (Exception)
                                {
                                    OnboardingActivity.ShowErrorDialog("We couldn't sign you in at this time. Please retry");
                                }
                            }
                        }));

                    break;
                }
                }
            };
        }
Пример #30
0
        private void InitBottomSheets()
        {
            var notifRoot      = (ConstraintLayout)FindViewById(Resource.Id.notifs_root);
            var qrRoot         = (ConstraintLayout)FindViewById(Resource.Id.qr_root);
            var closeBottomBtn = FindViewById <TextView>(Resource.Id.notifs_hdr);
            var qrImageView    = FindViewById <ImageView>(Resource.Id.qr_iv);

            qrImageView.PostDelayed(async() =>
            {
                qrImageView.SetImageBitmap(await Task.Run(() => new QrGenUtil().TextToImageEncode(AppDataHelper.GetCurrentUser().Uid)));
            }, 1000);
            NotifBehavior          = BottomSheetBehavior.From(notifRoot);
            NotifBehavior.Hideable = true;
            NotifBehavior.State    = BottomSheetBehavior.StateHidden;
            NotifBehavior.AddBottomSheetCallback(new BottomSheetCallback());

            closeBottomBtn.Click += delegate
            {
                NotifBehavior.State = BottomSheetBehavior.StateHidden;
            };

            QrBehavior          = BottomSheetBehavior.From(qrRoot);
            QrBehavior.Hideable = true;
            QrBehavior.State    = BottomSheetBehavior.StateHidden;
            QrBehavior.AddBottomSheetCallback(new BottomSheetCallback());
        }