protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            ContactsController.instance.CreateTable();
            contacts = ContactsController.instance.GetItems().ToList();

            SetContentView(Resource.Layout.contacts);

            search       = FindViewById <MaterialButton>(Resource.Id.searchUser);
            list         = FindViewById <ListView>(Resource.Id.contactList);
            adapter      = new ContactItemAdapter(fillList());
            list.Adapter = adapter;

            search.Click += delegate
            {
                search_click();
            };

            list.ItemClick += (sender, e) =>
            {
                item_click(sender, e);
            };

            tb = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.tooolbarCommon);

            drawer = FindViewById <DrawerLayout>(Resource.Id.drawerLayout1);

            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, Resource.String.openDrawer, Resource.String.closeDrawer);

            toggle.SyncState();

            SetSupportActionBar(tb);
            Android.Support.V7.App.ActionBar abar = SupportActionBar;

            navigation = FindViewById <NavigationView>(Resource.Id.navigationMain);
            navigation.SetNavigationItemSelectedListener(this);
            var      header = navigation.GetHeaderView(0);
            TextView name   = header.FindViewById <TextView>(Resource.Id.nav_bar_name);

            name.Text = AccountsController.mainAccP.loginP;
            TextView ml = header.FindViewById <TextView>(Resource.Id.nav_bar_addr);

            ml.Text = AccountsController.mainAccP.emailP;

            abar.SetHomeButtonEnabled(true);
            abar.SetDisplayShowTitleEnabled(true);
            abar.SetHomeAsUpIndicator(Resource.Drawable.menu);
            abar.SetDisplayHomeAsUpEnabled(true);
        }
        protected override void OnRestart()
        {
            base.OnResume();

            if (ContactsController.currContP != null)
            {
                list = FindViewById <ListView>(Resource.Id.contactList);
                var temp = contacts.Where(x => x.Id == ContactsController.currContP.Id).ToList()[0];
                contacts.Remove(temp);
                if (ContactsController.currContP.deletedP == false)
                {
                    contacts.Add(ContactsController.currContP);
                }
                else
                {
                    ContactsController.currContP = null;
                }
                adapter      = new ContactItemAdapter(fillList());
                list.Adapter = adapter;
            }
        }
Example #3
0
        private async void search_user()
        {
            try
            {
                pb.Visibility  = ViewStates.Visible;
                email.Enabled  = false;
                search.Enabled = false;

                if (email.Text == AccountsController.mainAccP.emailP)
                {
                    throw new SystemException("Данный адрес электронной почты совпадает с адресом вашего аккаунта!");
                }
                string v1 = (AccountsController.mainAccP.emailP + "+" + email.Text).Replace(".", ",");
                string v2 = (email.Text + "+" + AccountsController.mainAccP.emailP).Replace(".", ",");

                Task <bool> isExists = FirebaseController.instance.IsDialogExists(v1, v2);
                bool        answer   = await isExists;

                if (answer)
                {
                    throw new SystemException("У вас уже есть контакт с таким электронным ящиком! Проверьте запросы на диалоги!");
                }

                if (FirebaseController.instance.app == null)
                {
                    FirebaseController.instance.initFireBaseAuth();
                }
                string s = await FirebaseController.instance.LoginUser(email.Text, "1");
            }
            catch (FirebaseAuthInvalidCredentialsException ex1)
            {
                if (ex1.Message.Contains("password is invalid"))
                {
                    Contact fnd = new Contact {
                        contactAddressP = email.Text
                    };
                    var list = new List <Contact>();
                    list.Add(fnd);
                    adapter          = new ContactItemAdapter(list);
                    found.Adapter    = adapter;
                    found.Visibility = ViewStates.Visible;
                    Utils.MessageBox("Пользователь найден! Нажмите на появившийся элемент, чтобы отправить запрос на диалог", this);
                }
                else
                {
                    if (ex1.Message.Contains("email address is badly formatted"))
                    {
                        Utils.MessageBox("Некорректный адрес электронной почты!", this);
                    }
                    else
                    {
                        Utils.MessageBox("Непредвиденная ошибка, повторите попытку позже", this);
                    }
                }
            }
            catch (FirebaseAuthInvalidUserException ex2)
            {
                if (ex2.Message.Contains("no user record"))
                {
                    Utils.MessageBox("Пользователя с таким электронным адресом не существует", this);
                }
            }
            catch (SystemException ex3)
            {
                Utils.MessageBox(ex3.Message, this);
            }

            pb.Visibility  = ViewStates.Invisible;
            email.Enabled  = true;
            search.Enabled = true;
        }