Пример #1
0
        public void SetUserData(FirebaseUser user)
        {
            var uid           = user.Uid;
            var name          = user.DisplayName;
            var email         = user.Email;
            var emailVerified = user.IsEmailVerified;
            var photoUrl      = user.PhotoUrl;

            authAccount = new Account
            {
                Uid           = uid,
                Name          = name,
                Email         = email,
                EmailVerified = emailVerified
            };

            dataRef = firData.GetReference($"users/{uid}");

            IDictionary <string, Java.Lang.Object> userData = new Dictionary <string, Java.Lang.Object>
            {
                { "name", name },
                { "email", email }
            };

            dataRef.UpdateChildren(userData);

            if (watchDir == null)
            {
                dataRef.AddChildEventListener(new AcctListener());
                watchDir = dataRef.Child("watchItems");
                watchDir.AddChildEventListener(new WatchListener());
                checkDir = dataRef.Child("checkIns");
                checkDir.AddListenerForSingleValueEvent(new CheckinListener());
            }
        }
Пример #2
0
        public void Observe(Action <ObservationType, T> handler)
        {
            CancelObservation();

            _childEventListener = new ChildEventListener <T>(handler);
            _dbGroupNode.AddChildEventListener(_childEventListener);
        }
        public DatabaseListView(DatabaseReference data, DatabaseReference nameData, Activity context)
        {
            this.context    = context;
            this.data       = data;
            this.SchemaData = nameData;
            this.imageRes   = false;

            mainView = context.LayoutInflater.Inflate(Resource.Layout.DatabaseItemLayout, null);

            textView     = mainView.FindViewById <TextView>(Resource.Id.textViewNameElement);
            nameListener = new SchemaListener(this);

            backgroundShape = new GradientDrawable();
            backgroundShape.SetColor(Color.Black.ToArgb());

            float size = context.Resources.GetDimension(Resource.Dimension.workplace_image_size);

            backgroundShape.SetCornerRadius(size / 8);

            image            = mainView.FindViewById <ImageView>(Resource.Id.imageViewElement);
            image.Background = backgroundShape;
            image.SetColorFilter(Color.White);
            image.SetImageResource(Resource.Drawable.icons_question_mark);

            mainView.SetOnClickListener(this);
            SchemaData.AddChildEventListener(nameListener);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            OverridePendingTransition(Android.Resource.Animation.FadeIn, Android.Resource.Animation.FadeOut);
            SetContentView(Resource.Layout.DatabaseActivity);

            toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarMain);
            if (null != toolbar)
            {
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                toolbar.SetTitleTextColor(Color.White);
            }

            database = FirebaseDatabase.Instance;

            databaseSchemaReference = database.GetReferenceFromUrl(Intent.GetStringExtra("databaseSchema"));
            databaseDataReference   = database.GetReferenceFromUrl(Intent.GetStringExtra("databasePath"));
            sorage = FirebaseStorage.Instance;

            mainLayout = FindViewById <FrameLayout>(Resource.Id.tableFrame);

            model = new DatabaseModel(databaseDataReference, databaseSchemaReference);
            view  = model.GetView(this);

            mainLayout.AddView(view.GetView());
            databaseSchemaReference.AddChildEventListener(schemaListener);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            OverridePendingTransition(Android.Resource.Animation.FadeIn, Android.Resource.Animation.FadeOut);
            SetContentView(Resource.Layout.WorkspaceSchemaEditlayout);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarMain);
            if (null != toolbar)
            {
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                //SupportActionBar.SetTitle(Resource.String.add_new_database_string);
            }

            database  = FirebaseDatabase.Instance;
            schemaRef = database.GetReferenceFromUrl(Intent.GetStringExtra("selfSchema"));

            schemaRef.AddChildEventListener(schemaListener);

            removeButton = FindViewById <RelativeLayout>(Resource.Id.relativeLayoutDelete);
            removeButton.SetOnClickListener(this);

            nameText = FindViewById <EditText>(Resource.Id.editTextWorkspaceName);
            nameText.AddTextChangedListener(namelistener);
        }
Пример #6
0
        public void AddChildEvent <T>(string nodeKey, Action <string, T> OnChildAdded, Action <string, T> OnChildRemoved, Action <string, T> OnChildUpdated)
        {
            DatabaseReference dr = GetDatabaseReference(nodeKey);

            if (dr != null)
            {
                ChildEventListener <T> listener = new ChildEventListener <T>(OnChildAdded);
                dr.AddChildEventListener(listener);

                ChildEventListeners.Add(nodeKey, listener);
            }
        }
Пример #7
0
        public ColumnModelChoice(DataSnapshot data) : base(data)
        {
            choices = new List <string> {
                ""
            };
            choiceKeys = new List <string>();

            this.Data = this.data;
            this.data.Clear();

            updateListener = new ChoiceUpdate(this);

            dataReference = data.Child("data").Ref;
            dataReference.AddChildEventListener(updateListener);
        }
Пример #8
0
        public RowModel(List <ColumnModel> columns, DatabaseReference Ref) : this()
        {
            this.columns = columns;

            foreach (ColumnModel columnCell in columns)
            {
                CellModel m = columnCell.GetCell();
                m.RowReference = Ref;
                cells.Add(m);
            }

            rowReference = Ref;
            rowReference.AddChildEventListener(childListener);
            rowKey = Ref.Key;
        }
Пример #9
0
        public void SetTable(DatabaseReference table, DatabaseReference tableName)
        {
            consume_name_update = false;
            if (databaseTable != null)
            {
                UnbindListeners();
            }
            databaseTable = table;
            tableNameData = tableName;
            this.name     = "somename";

            columnListener  = new ColumnChangeListener(this);
            rowListener     = new RowChangeListener(this);
            nameListener    = new NameChangeListener(this);
            rowDataListener = new RowDataListener(this);

            columns.Clear();

            foreach (RowModel model in rows)
            {
                model.UnbindListeners();
            }
            rows.Clear();

            controller.NotifyViewCleared();

            tableNameData.AddValueEventListener(nameListener);

            tableRowData = databaseTable.Child("row_data").Child("new_row_id");
            tableRowData.AddValueEventListener(rowDataListener);

            //load columns
            databaseColumns =
                databaseTable.Child("columns");
            databaseColumns.AddChildEventListener(columnListener);

            //load rows
            databaseRows =
                databaseTable.Child("rows");
            databaseRows.AddChildEventListener(rowListener);
        }
Пример #10
0
        public DatabaseModel(DatabaseReference dataPlaceReference, DatabaseReference schemaReference)
        {
            selfSchemaRef         = schemaReference.Ref;
            tablesSchemaReference = dataPlaceReference.Child("table_data");
            tableDataReference    = dataPlaceReference.Child("tables");

            schemaListener      = new SchemaListener(this);
            newIdListener       = new NewTableIdListener(this);
            tableSchemaListener = new TableNamesListener(this);

            controller = new DatabaseController(this);

            tableNames = new List <string>();
            tableIds   = new List <string>();

            currentModel = new TableModel();

            consume_name_update = true;
            selfSchemaRef.AddChildEventListener(schemaListener);
            tablesSchemaReference.Child("table_names").AddChildEventListener(tableSchemaListener);
            tablesSchemaReference.Child("new_table_id").AddValueEventListener(newIdListener);
        }
Пример #11
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ItemEditActivity);
            toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarMain);
            if (null != toolbar)
            {
                toolbar.SetBackgroundColor(Color.Gray);
                toolbar.SetTitleTextColor(Color.White);
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                SupportActionBar.SetTitle(Resource.String.item_edit_string);
            }

            database     = FirebaseDatabase.Instance;
            rowDataRef   = database.GetReferenceFromUrl(Intent.GetStringExtra("rowReference"));
            rowSchemaRef = database.GetReferenceFromUrl(Intent.GetStringExtra("tableSource")).Child("columns");
            rowSchemaRef.AddChildEventListener(columnListener);

            colorRef = database.GetReferenceFromUrl(Intent.GetStringExtra("colorSource"));


            deleteButton = FindViewById <RelativeLayout>(Resource.Id.relativeLayoutDelete);
            editButton   = FindViewById <RelativeLayout>(Resource.Id.relativeLayoutCustomize);

            editContentLayout = FindViewById <LinearLayout>(Resource.Id.linearLayoutEditContent);

            if (colorRef != null)
            {
                colorRef.AddValueEventListener(colorListener);
            }

            deleteButton.SetOnClickListener(this);
            editButton.SetOnClickListener(this);

            row = new RowModel(columns, rowDataRef);

            editContentLayout.AddView(row.GetEditView(this).GetView(), 0);
        }
Пример #12
0
        public WorkspaceModel(DatabaseReference baseData, DataSnapshot schemaData)
        {
            selfSchemaRef = schemaData.Ref;

            databasesSchemaRef = baseData.Child("database_data");
            databasesDataRef   = baseData.Child("databases");

            schemaListener       = new SchemaListener(this);
            databaseDataListener = new DatabaseDataListener(this);

            controller = new WorkspaceController(this);

            databases = new List <string>();
            databasesDataReferences   = new List <DatabaseReference>();
            databasesSchemaReferences = new List <DatabaseReference>();

            modelId = schemaData.Key;
            name    = schemaData.Child("name").Value.ToString();

            consume_name_update = true;
            selfSchemaRef.AddChildEventListener(schemaListener);
            databasesSchemaRef.Child("databases").AddChildEventListener(databaseDataListener);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ColumnsEditActivity);

            toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarMain);
            if (null != toolbar)
            {
                toolbar.SetBackgroundColor(Color.LightGray);
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                SupportActionBar.SetTitle(Resource.String.columns_edit_string);
                toolbar.SetTitleTextColor(Color.White);
            }

            database = FirebaseDatabase.Instance;

            tableRef    = database.GetReferenceFromUrl(Intent.GetStringExtra("tableSource"));
            columnsRef  = tableRef.Child("columns");
            columnsData = tableRef.Child("column_data");
            colorRef    = database.GetReferenceFromUrl(Intent.GetStringExtra("colorSource"));

            columnsEditView = FindViewById <LinearLayout>(Resource.Id.linearLayoutEditContent);

            addButtonView = FindViewById(Resource.Id.relativeLayoutActionButtons);
            addButtonView.SetOnClickListener(this);
            addButtonView = FindViewById(Resource.Id.imageViewAdd);
            addButtonView.SetOnClickListener(this);

            if (colorRef != null)
            {
                colorRef.AddValueEventListener(colorListener);
            }

            columnsData.Child("new_column_id").AddValueEventListener(columnIdListener);
            columnsRef.AddChildEventListener(columnsDataListener);
        }
Пример #14
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.DatabaseSchemaEditActivity);

            database          = FirebaseDatabase.Instance;
            databaseSchemaRef = database.GetReferenceFromUrl(Intent.GetStringExtra("databaseSchema"));
            databaseDataRef   = database.GetReferenceFromUrl(Intent.GetStringExtra("databaseDataPath"));

            toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarMain);
            if (null != toolbar)
            {
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                toolbar.SetTitleTextColor(Color.White.ToArgb());
            }

            nameText = FindViewById <EditText>(Resource.Id.editTextDatabaseName);
            nameText.AddTextChangedListener(nameListener);

            RelativeLayout
                deleteButton = FindViewById <RelativeLayout>(Resource.Id.relativeLayoutDelete);

            deleteButton.SetOnClickListener(this);

            imagePicker = FindViewById <LinearLayout>(Resource.Id.linearLayoutImagePicker);
            colorPicker = FindViewById <LinearLayout>(Resource.Id.linearlayoutColorPicker);

            imageSize = Resources.GetDimension(Resource.Dimension.workplace_image_size);

            foreach (Color c in DatabaseController.colors)
            {
                ImageView newView = new ImageView(this)
                {
                    Id = Resource.Id.linearlayoutColorPicker
                };
                newView.SetOnClickListener(this);
                newView.SetImageResource(Resource.Drawable.icons_checkmark);
                newView.SetBackgroundColor(c);
                newView.SetColorFilter(c);
                colorPicker.AddView(newView);
            }
            selectedcolor = -1;

            foreach (int res in DatabaseController.imageResources)
            {
                ImageView newView = new ImageView(this)
                {
                    Id = Resource.Id.linearLayoutImagePicker
                };

                newView.SetImageResource(res);
                int padding = (int)imageSize / 8;
                newView.SetPadding(padding, padding, padding, padding);

                newView.SetMaxHeight((int)imageSize);
                newView.SetMaxWidth((int)imageSize);
                newView.SetMinimumHeight((int)imageSize);
                newView.SetMinimumHeight((int)imageSize);

                newView.SetScaleType(ImageView.ScaleType.FitXy);

                newView.SetOnClickListener(this);
                imagePicker.AddView(newView);
            }
            selecteddrawable = -1;

            databaseSchemaRef.AddChildEventListener(databaseListener);
        }