//private void UploadCameraPhoto(object sender, EventArgs e)
        private void UploadCameraPhoto(object sender, OnNewPhotoEventArgs e)
        {
            //System.Diagnostics.Debug.Write("myBitmap is : " + myBitmap);

            System.IO.MemoryStream memStream = new System.IO.MemoryStream();

            //myBitmap.Compress(Bitmap.CompressFormat.Webp, 100, memStream);
            e.CameraPhoto.Compress(Bitmap.CompressFormat.Webp, 100, memStream);


            byte[] picData = memStream.ToArray();
            string bal     = Base64.EncodeToString(picData, Base64.Default);

            System.Diagnostics.Debug.WriteLine("BASE64IS*****: " + bal);

            MySqlConnection con = new MySqlConnection("Server=db4free.net;Port=3307;database=ofsligodb;User Id=ofoley1;Password=pinecone;charset=utf8");

            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                    System.Diagnostics.Debug.WriteLine("CONNECTION OPEN*****: ");
                    //When performing /GET
                    //string query = "SELECT * FROM tblTest";

                    MySqlCommand Readcmd = new MySqlCommand("INSERT INTO tblUserAlbumPhoto(UserID,AlbumID,Base64String,Tags) " +
                                                            "VALUES(@uid,@aid,@base64string,@tags)");
                    //MySqlCommand Readcmd = new MySqlCommand("INSERT INTO tblTest(Name,ContactNumber) VALUES(@Name,@ContactNumber)");
                    Readcmd.Parameters.AddWithValue("@uid", 1);
                    Readcmd.Parameters.AddWithValue("@aid", 1);
                    Readcmd.Parameters.AddWithValue("@base64string", bal);
                    Readcmd.Parameters.AddWithValue("@tags", e.Tags);


                    //Readcmd.Parameters.AddWithValue("@baseString", base64string);
                    //Readcmd.Parameters.AddWithValue("@baseString", "khfdkjndfkhbfjbfdkjjhfdfd");
                    Readcmd.Connection = con;
                    Readcmd.ExecuteNonQuery();

                    System.Diagnostics.Debug.WriteLine("INSERT SHOULD HAVE HAPPENED*****: ");

                    //MySqlCommand cmd = new MySqlCommand(query, con);
                    //MySqlDataReader dataReader = cmd.ExecuteReader();

                    //con.Close();
                }
            }

            catch (MySqlException ex)
            {
                //mTxtImgChoiceInfo.Text = ex.ToString();
            }
            finally
            {
                con.Close();
                System.Diagnostics.Debug.WriteLine("CONN CLOSED*****: ");
                mAdapter.NotifyDataSetChanged();
            }
        }
        private void selectAll(bool isSelected)
        {
            toDoController.setAllItemsCompleted(isSelected);

            closeKeyboard();
            adapter.NotifyDataSetChanged();
        }
Beispiel #3
0
        private void GetAllDBContacts()
        {
            DBRepo dbr = new DBRepo();

            mContacts.AddRange(dbr.GetAllContacts());
            mAdapter.NotifyDataSetChanged();
        }
 //@Override
 public override void NotifyDataSetChanged()
 {
     if (!(mDecoratedBaseAdapter is ArrayAdapter))
     {
         // fix #35 dirty trick !
         // leads to an infinite loop when trying because ArrayAdapter triggers notifyDataSetChanged itself
         // TODO: investigate
         mDecoratedBaseAdapter.NotifyDataSetChanged();
     }
 }
Beispiel #5
0
        private void ChangeSort()
        {
            var sortOrderManager             = new GroupViewSortOrderManager(this);
            IEnumerable <string> sortOptions = sortOrderManager.SortOrders.Select(
                o => GetString(o.ResourceId)
                );

            int selectedBefore = sortOrderManager.GetCurrentSortOrderIndex();

            new AlertDialog.Builder(this)
            .SetSingleChoiceItems(sortOptions.ToArray(), selectedBefore, (sender, args) =>
            {
                int selectedAfter = args.Which;

                sortOrderManager.SetNewSortOrder(selectedAfter);
                // Refresh menu titles
                ActivityCompat.InvalidateOptionsMenu(this);

                // Mark all groups as dirty now to refresh them on load
                Database db = App.Kp2a.GetDb();
                db.MarkAllGroupsAsDirty();
                // We'll manually refresh this group so we can remove it
                db.Dirty.Remove(Group);

                // Tell the adapter to refresh it's list

                BaseAdapter adapter = (BaseAdapter)ListAdapter;
                adapter.NotifyDataSetChanged();
            })
            .SetPositiveButton(Android.Resource.String.Ok, (sender, args) => ((Dialog)sender).Dismiss())
            .Show();
        }
Beispiel #6
0
        public void StartMovingElements()
        {
            ShowInsertElementsButtons();
            BaseAdapter adapter = (BaseAdapter)ListAdapter;

            adapter.NotifyDataSetChanged();
        }
Beispiel #7
0
        public void StopMovingElements()
        {
            try
            {
                MoveElementsTask moveElementsTask = (MoveElementsTask)AppTask;
                foreach (var uuid in moveElementsTask.Uuids)
                {
                    IStructureItem elementToMove = App.Kp2a.GetDb().KpDatabase.RootGroup.FindObject(uuid, true, null);
                    if (elementToMove.ParentGroup != Group)
                    {
                        App.Kp2a.GetDb().Dirty.Add(elementToMove.ParentGroup);
                    }
                }
            }
            catch (Exception e)
            {
                //don't crash if adding to dirty fails but log the exception:
                Kp2aLog.LogUnexpectedError(e);
            }

            AppTask = new NullTask();
            AppTask.SetupGroupBaseActivityButtons(this);
            BaseAdapter adapter = (BaseAdapter)ListAdapter;

            adapter.NotifyDataSetChanged();
        }
 private void UpdateView()
 {
     if (mAdapter != null)
     {
         mAdapter.NotifyDataSetChanged();
     }
 }
        public void PopulateAlbumFeed()
        {
            MySqlConnection con = new MySqlConnection("Server=db4free.net;Port=3307;database=ofsligodb;User Id=ofoley1;Password=pinecone;charset=utf8");

            //List<string> AlbumList;
            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }

                string query = "SELECT * FROM tblUserAlbum HAVING UserID =  '" + Intent.GetStringExtra("UsersID") + "'";
                //Intent.GetStringExtra("UsersID")

                MySqlCommand cmd = new MySqlCommand(query, con);

                System.Diagnostics.Debug.Write("TRYING TO READ");
                MySqlDataReader dataReader = cmd.ExecuteReader();

                while (dataReader.Read())
                {
                    AlbumNameList.Add(dataReader.GetString(2));
                    System.Diagnostics.Debug.Write("image still as base64 string is : " + dataReader.GetString(1));
                    //System.Diagnostics.Debug.Write("image converted from base64 found is : " + Convert.FromBase64String(dataReader.GetString(1)));
                }

                //foreach (string title in AlbumNameList)
                //{
                //    mContacts.Add(new Contact() { Name = title });
                //}

                for (int i = 0; i < AlbumNameList.Count; i++)
                {
                    mContacts.Add(new Contact()
                    {
                        Name = i.ToString(), Number = AlbumNameList[i]
                    });
                }

                //mContacts.Add(new Contact() { Name = "OISIN", Number = "FOLEY", Image = imageslist[0] });
                //System.Diagnostics.Debug.Write("imageslist lentth is: " + imageslist.Count);
                mAdapter.NotifyDataSetChanged();

                //System.Diagnostics.Debug.Write("image ID found is : " + imageslist[0]);
                //System.Diagnostics.Debug.Write("image ID found is : " + imageslist[1]);
            }


            catch (MySqlException ex)
            {
                //mTxtBase64String.Text = ex.ToString();
            }
            finally
            {
                con.Close();
                System.Diagnostics.Debug.Write("CONN CLOSED");
                System.Diagnostics.Debug.Write("Album ID count found is : " + AlbumNameList.Count);
            }
        }
 void dialog_OnCreateUser(object sender, CreateUserEventArgs e)
 {
     mUsers.Add(new User()
     {
         ID = e.ID, Name = e.Name, Number = e.Number, CreateUserEmail = e.CreateUserEmail
     });
     mAdapter.NotifyDataSetChanged();
 }
Beispiel #11
0
 private void Dialog_OnCreateTrip(object sender, CreateTripEventArgs e)
 {
     mTrips.Add(new Trip()
     {
         Name = e.TripName, Description = e.TripDescription, When = e.TripWhen, TripId = e.TripId
     });
     mAdapter.NotifyDataSetChanged();
 }
Beispiel #12
0
 void dialog_OnCreatePost(object sender, CreatePostEventArgs e)
 {
     mPosts.Add(new Post()
     {
         Name = e.Name, Message = e.Message
     });
     mAdapter.NotifyDataSetChanged();
 }
Beispiel #13
0
 //@Override
 public void notifyDataSetChanged()
 {
     base.NotifyDataSetChanged();
     if (mDataSetChangedSlavedAdapter != null)
     {
         mDataSetChangedSlavedAdapter.NotifyDataSetChanged();
     }
 }
 void dialog_OnCreateContact(object sender, CreateContactEventArgs e)
 {
     mContacts.Add(new Contact()
     {
         Name = e.Name, Number = e.Number
     });
     mAdapter.NotifyDataSetChanged();
 }
 void dialog_OnCreateContact(object sender, CreateContactEventArgs e)
 {
     //Create a new contact and update the UI
     mContacts.Add(new Contact()
     {
         ID = e.ID, Name = e.Name, Number = e.Number
     });
     mAdapter.NotifyDataSetChanged();
 }
Beispiel #16
0
        void dialog_OnDodajCwiczenie(object sender, DodajCwiczenieEventArgs e)
        {
            mCwiczenia.Add(new Cwiczenie()
            {
                Cwiczenie_v = e.Cwiczenie, IloscSerii_v = e.IloscSerii, IloscPowtorzen_v = e.IloscPowtorzen
            });

            mAdapter.NotifyDataSetChanged();
        }
        public void RefreshView()
        {
            BaseAdapter adapter = Adapter as BaseAdapter;

            if (adapter != null)
            {
                adapter.NotifyDataSetChanged();
            }
        }
        public bool OnDrag(Android.Views.View v, Android.Views.DragEvent e)
        {
            switch (e.Action)
            {
            case  Android.Views.DragAction.Started:
                break;

            case  Android.Views.DragAction.Entered:
                //v.SetBackgroundColor(Android.Graphics.Color.Blue);
                break;

            case  Android.Views.DragAction.Exited:
                //v.SetBackgroundColor(Android.Graphics.Color.Transparent);
                break;

            case  Android.Views.DragAction.Drop:
                //v.SetBackgroundColor(Android.Graphics.Color.Transparent);
                TemporalObject          passObj    = (TemporalObject)e.LocalState;
                Android.Views.View      view       = passObj.View;
                object                  passedItem = passObj.Item;
                Android.Widget.ListView oldParent  = (Android.Widget.ListView)view.Parent;

                BaseAdapter sourceAdapter = (oldParent.Adapter is IWrapperListAdapter)?((IWrapperListAdapter)oldParent.Adapter).WrappedAdapter as BaseAdapter:((BaseAdapter)oldParent.Adapter);


                Android.Widget.ListView newParent          = Control;
                BaseAdapter             destinationAdapter = (oldParent.Adapter is IWrapperListAdapter)?((IWrapperListAdapter)newParent.Adapter).WrappedAdapter as BaseAdapter:((BaseAdapter)oldParent.Adapter);


                if (DragAndDropListViewRenderer.ListMap.ContainsKey(oldParent.Id.ToString()) && DragAndDropListViewRenderer.ListMap.ContainsKey(newParent.Id.ToString()))
                {
                    var sourceList      = (IList)DragAndDropListViewRenderer.ListMap [oldParent.Id.ToString()];
                    var destinationList = (IList)DragAndDropListViewRenderer.ListMap [newParent.Id.ToString()];

                    if (sourceList.Contains(passedItem))
                    {
                        sourceList.Remove(passedItem);
                        destinationList.Add(passedItem);
                    }

                    destinationAdapter.NotifyDataSetChanged();
                    sourceAdapter.NotifyDataSetChanged();
                }


                break;

            case  Android.Views.DragAction.Ended:
                break;
            }
            return(true);
        }
Beispiel #19
0
        private void Dialog_OnCreateDriver(object sender, CreateDriverEventArgs e)
        {
            mDrivers.Add(new Driver()
            {
                Name = e.DriverName, DriverId = e.DriverId
            });

            if (driverRepository == null)
            {
                driverRepository = new DriverRepository();
            }

            mAdapter.NotifyDataSetChanged();
        }
Beispiel #20
0
 private void MinimizeRows(List <ExpandListModel> children, List <ExpandListModel> expandList, BaseAdapter adapter)
 {
     foreach (var data in children)
     {
         var indexToRemove = expandList.IndexOf(data);
         var arrInner      = data.Children;
         if (arrInner != null && arrInner.Count > 0)
         {
             MinimizeRows(arrInner, expandList, adapter);
         }
         if (expandList.IndexOf(data) > -1)
         {
             expandList.Remove(data);
         }
     }
     adapter.NotifyDataSetChanged();
 }
Beispiel #21
0
        public void SynchronizeDatabase(Action runAfterSuccess)
        {
            var filestorage = App.Kp2a.GetFileStorage(App.Kp2a.CurrentDb.Ioc);
            RunnableOnFinish task;
            OnFinish         onFinish = new ActionOnFinish(_activity, (success, message, activity) =>
            {
                if (!String.IsNullOrEmpty(message))
                {
                    Toast.MakeText(activity, message, ToastLength.Long).Show();
                }

                // Tell the adapter to refresh it's list
                BaseAdapter adapter = (activity as GroupBaseActivity)?.ListAdapter;
                adapter?.NotifyDataSetChanged();

                if (App.Kp2a.CurrentDb?.OtpAuxFileIoc != null)
                {
                    var task2           = new SyncOtpAuxFile(_activity, App.Kp2a.CurrentDb.OtpAuxFileIoc);
                    task2.OnFinishToRun = new ActionOnFinish(_activity, (b, s, activeActivity) =>
                    {
                        runAfterSuccess();
                    });
                    new ProgressTask(App.Kp2a, activity, task2).Run(true);
                }
                else
                {
                    runAfterSuccess();
                }
            });

            if (filestorage is CachingFileStorage)
            {
                task = new SynchronizeCachedDatabase(_activity, App.Kp2a, onFinish);
            }
            else
            {
                task = new CheckDatabaseForChanges(_activity, App.Kp2a, onFinish);
            }



            var progressTask = new ProgressTask(App.Kp2a, _activity, task);

            progressTask.Run();
        }
Beispiel #22
0
        protected override void PublishResults(ICharSequence constraint, FilterResults results)
        {
            if (results.Count > 0)
            {
                var pairs = results.Values.JavaCast <JavaList>().ToArray();
                placesMap = new Dictionary <string, string>();
                foreach (Pair p in pairs)
                {
                    placesMap.Add(p.First.ToString(), p.Second.ToString());
                }

                //var pairs2 = results.Values.JavaCast<JavaList>();
                //placesMap = results.Values.JavaCast<JavaList>().ToArray<Pair>().ToDictionary(x => x.First.ToString(), x => x.Second.ToString());
                adapter.NotifyDataSetChanged();
            }
            else
            {
                adapter.NotifyDataSetInvalidated();
            }
        }
Beispiel #23
0
        public void ExpandRows(List <ExpandListModel> expandList, int position, BaseAdapter adapter)
        {
            var newCellId = expandList.ElementAt(position);

            //if (!string.IsNullOrEmpty(newCellId.Field) && !string.IsNullOrEmpty(newCellId.Value)))
            //{
            //    AppHelper.clinicalDocsList.Add(newCellId);
            //}
            if (newCellId != null && newCellId.Children != null && newCellId.Children.Count > 0)
            {
                bool isAlreadyInserted = false;

                foreach (var mdata in newCellId.Children)
                {
                    var mIndex = expandList.IndexOf(mdata);
                    if (mIndex > 0)
                    {
                        isAlreadyInserted = true;
                    }
                }

                if (isAlreadyInserted)
                {
                    MinimizeRows(newCellId.Children, expandList, adapter);
                }
                else
                {
                    var count      = expandList.IndexOf(newCellId) + 1;
                    var indexPaths = new List <int>();
                    foreach (var data in newCellId.Children)
                    {
                        expandList.Insert(count++, data);
                    }
                    adapter.NotifyDataSetChanged();
                }
            }
        }
Beispiel #24
0
        private void Synchronize()
        {
            var filestorage = App.Kp2a.GetFileStorage(App.Kp2a.GetDb().Ioc);
            RunnableOnFinish task;
            OnFinish         onFinish = new ActionOnFinish(this, (success, message, activity) =>
            {
                if (!String.IsNullOrEmpty(message))
                {
                    Toast.MakeText(activity, message, ToastLength.Long).Show();
                }

                // Tell the adapter to refresh it's list
                BaseAdapter adapter = (BaseAdapter)((GroupBaseActivity)activity)?.ListAdapter;
                adapter?.NotifyDataSetChanged();

                if (App.Kp2a.GetDb().OtpAuxFileIoc != null)
                {
                    var task2 = new SyncOtpAuxFile(this, App.Kp2a.GetDb().OtpAuxFileIoc);
                    new ProgressTask(App.Kp2a, activity, task2).Run(true);
                }
            });

            if (filestorage is CachingFileStorage)
            {
                task = new SynchronizeCachedDatabase(this, App.Kp2a, onFinish);
            }
            else
            {
                task = new CheckDatabaseForChanges(this, App.Kp2a, onFinish);
            }



            var progressTask = new ProgressTask(App.Kp2a, this, task);

            progressTask.Run();
        }
 protected override void PublishResults(ICharSequence constraint, FilterResults results)
 {
     _adapter.NotifyDataSetChanged();
 }
 public void OnGlobalLayout()
 {
     lv.ViewTreeObserver.RemoveOnGlobalLayoutListener(this);
     adaptor.NotifyDataSetChanged();
 }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.userAlbums);

            string text = Intent.GetStringExtra("UsersID") ?? "No user available";

            System.Diagnostics.Debug.Write("EXTRA INTENT DATA IS  : " + Intent.GetStringExtra("UsersID"));

            mAlbumList = FindViewById <ListView>(Resource.Id.listAlbums);
            mContacts  = new List <Contact>();

            Action <ImageView> action = PicSelected;

            //try to make another ctor later which doesnt need an actionimage button a the last param
            mAdapter = new ContactListAdapter(this, Resource.Layout.row_contact, mContacts, action);

            mBtnAddAlbum = FindViewById <Button>(Resource.Id.btnAddAlbum);


            //problem here...
            mAlbumList.Adapter = mAdapter;

            PopulateAlbumFeed();
            //mContacts.Add(new Contact() { Name = "OISIN", Number = "FOLEY" });
            mContacts.Add(new Contact()
            {
                Name = "OISIN"
            });

            mAdapter.NotifyDataSetChanged();

            mBtnAddAlbum.Click += (object sender, EventArgs e) =>
            {
                //pull up dialog
                //this is used to pull up the dialog from the activity
                FragmentTransaction transaction    = FragmentManager.BeginTransaction();
                dialogue_AddAlbum   addAlbumDialog = new dialogue_AddAlbum();
                addAlbumDialog.Show(transaction, "dialog fragment");
                addAlbumDialog.mAddAlbumComplete += AddAlbumToDb;
                //dialogue_SignUp signUpDialog = new dialogue_SignUp();
                //signUpDialog.Show(transaction, "dialog fragment");

                ////signUpDialog.mOnSignUpComplete += signUpDialog_mOnSignUpComplete;
                //signUpDialog.mOnSignUpComplete += SignUpDialog_mOnSignUpComplete;
            };

            //setup some sort of click listener

            /*
             * .click+=(object sender, EventAgs e)=>
             * {
             *      intent i = new Intent(typeof(HomeNoScrollView));
             *      i.PutStringExtra("UserID",Intent.GetStringExtra("UsersID"));
             *      i.PutStringExtra("AlbumID", somehow grab e.albumid from listener );
             *      StartActivity(i);
             * }
             *
             */
        }
Beispiel #28
0
        //public override bool HasStableIds => WrappedAdapter.HasStableIds;

        //public override bool IsEmpty => WrappedAdapter.IsEmpty;

        //public override int ViewTypeCount => WrappedAdapter.ViewTypeCount;

        //public override bool AreAllItemsEnabled() => WrappedAdapter.AreAllItemsEnabled();

        public bool OnDrag(View v, DragEvent e)
        {
            var dragItem = (DragItem)e.LocalState;

            switch (e.Action)
            {
            case DragAction.Started:
                break;

            case DragAction.Entered:
                System.Diagnostics.Debug.WriteLine($"DragAction.Entered from {v.GetType()}");

                if (!(v is ListView))
                {
                    //var dragItem = (DragItem)e.LocalState;

                    var targetPosition = InsertOntoView(v, dragItem);

                    dragItem.Index = targetPosition;

                    // Keep a list of items that has translation so we can reset
                    // them once the drag'n'drop is finished.
                    _translatedItems.Add(v);
                    _listView.Invalidate();
                }
                break;

            case DragAction.Location:

                var currentPosition = (int)e.GetX();

                var point = GetTouchPositionFromDragEvent(v, e);

                System.Diagnostics.Debug.WriteLine($"DragAction.Location from {v.GetType()} => {currentPosition}");
                System.Diagnostics.Debug.WriteLine($"DragAction.GLOBAL   from {v.GetType()} => {point.X}");

                int y           = Java.Lang.Math.Round(e.GetY());
                int translatedY = y - 50;
                int threshold   = 50;
                // make a scrolling up due the y has passed the threshold
                if (translatedY < threshold)
                {
                    // make a scroll up by 30 px
                    _hostScrollView.ScrollBy(0, -30);
                }
                // make a autoscrolling down due y has passed the 500 px border
                if (translatedY + threshold > 500)
                {
                    // make a scroll down by 30 px
                    _hostScrollView.ScrollBy(0, 30);
                }

                //if (point.X > App.AppScreenWidth - 50)
                //{
                //    //_hostScrollView.ScrollToAsync(_hostScrollView.ScrollX + 30, 0, true);
                //    _hostScrollView.StartScroll(50);
                //}

                //if (point.X < 50)
                //{
                //    //_hostScrollView.ScrollToAsync(_hostScrollView.ScrollX - 30, 0, true);
                //    _hostScrollView.StartScroll(-50);
                //}

                //if (currentPosition > _element.Width - 40)
                //{
                //    _hostScrollView.ScrollToAsync(_hostScrollView.ScrollX + 30, 0, true);
                //}
                //else if (currentPosition < 40)
                //{
                //    _hostScrollView.ScrollToAsync(_hostScrollView.ScrollX - 30, 0, true);
                //}

                //if (v.Right < (_hostScrollView.ScrollX + _hostScrollView.Width - 100))
                //{
                //    _hostScrollView.ScrollToAsync(_hostScrollView.ScrollX + 30, 0, true);
                //}

                //if (v.Left > (_hostScrollView.ScrollX + _hostScrollView.Width - 100))
                //{
                //    _hostScrollView.ScrollToAsync(_hostScrollView.ScrollX - 30, 0, true);
                //}

                break;

            case DragAction.Exited:
                System.Diagnostics.Debug.WriteLine($"DragAction.Entered from {v.GetType()}");

                _lastPosition = _listView.GetPositionForView(v);

                if (!(v is ListView))
                {
                    var positionEntered = GetListPositionForView(v);
                    //var item1 = _listAdapter.GetItem(positionEntered);

                    System.Diagnostics.Debug.WriteLine($"DragAction.Exited index {positionEntered}");
                }
                break;

            case DragAction.Drop:

                System.Diagnostics.Debug.WriteLine($"DragAction.Drop from {v.GetType()}");

                if (v is ListView)
                {
                    bool isDropped      = true;
                    int  positionSource = -1;
                    int  insertLocation = -1;

                    var dropItem                  = (DragItem)e.LocalState;
                    Android.Views.View view       = dropItem.View;
                    object             passedItem = dropItem.Item;

                    Android.Widget.ListView oldParent = (Android.Widget.ListView)view.Parent;

                    //DragListAdapter oldParentAdapter = (DragListAdapter)oldParent.;
                    BaseAdapter sourceAdapter = (oldParent.Adapter is IWrapperListAdapter)
                            ? ((IWrapperListAdapter)oldParent.Adapter).WrappedAdapter as BaseAdapter
                            : ((BaseAdapter)oldParent.Adapter);
                    DragAndDropListViewAdapter sourceDragListAdaptor = sourceAdapter as DragAndDropListViewAdapter;

                    //positionSource = (int)view.Tag;

                    Console.WriteLine(v.Parent.Parent);
                    Android.Widget.ListView newParent = _listView;

                    //Person customList = (Person)sourceAdapter.Collection[positionSource];
                    ObservableListCollection <Item> sourceList = sourceDragListAdaptor.Collection;
                    //customListSource.RemoveAt(positionSource);



                    //Android.Widget.ListView target = this.Element.
                    //DragListAdapter adapterTarget = (DragListAdapter)_listView.Adapter;
                    BaseAdapter destinationAdapter = (oldParent.Adapter is IWrapperListAdapter)
                            ? ((IWrapperListAdapter)newParent.Adapter).WrappedAdapter as BaseAdapter
                            : ((BaseAdapter)oldParent.Adapter);
                    DragAndDropListViewAdapter destinationDragListAdaptor = destinationAdapter as DragAndDropListViewAdapter;

                    ObservableListCollection <Item> targetList = destinationDragListAdaptor.Collection;

                    int removeLocation = oldParent.GetPositionForView(view);
                    insertLocation = newParent.GetPositionForView(dropItem.View);

                    var item = dropItem.Item as Item;

                    //if (sourceList.Contains(dropItem.Item as Item) && sourceList != targetList)
                    if (sourceList != targetList)
                    {
                        if (insertLocation >= 0)
                        {
                            targetList.Insert(insertLocation, item);
                            targetList.ItemAdded(item);
                        }
                        else
                        {
                            targetList.Add(dropItem.Item as Item);
                            targetList.ItemAdded(item);
                        }

                        sourceList.Remove(item);


                        sourceAdapter.NotifyDataSetChanged();
                        destinationAdapter.NotifyDataSetChanged();
                        v.Visibility = ViewStates.Visible;     //(View.VISIBLE);
                    }
                    else
                    {
                        if (_element.ItemsSource is IOrderable orderable)
                        {
                            if (((IList)_element.ItemsSource).Contains(dropItem.Item))
                            {
                                orderable.ChangeOrdinal(dropItem.OriginalIndex, dropItem.Index);
                            }
                        }
                    }

                    //foreach (var viewTrans in _translatedItems)
                    //{
                    //    viewTrans.TranslationY = 0;
                    //}

                    //_translatedItems.Clear();
                }

                break;

            case DragAction.Ended:
                if (!(v is ListView))
                {
                    return(false);
                }

                //System.Diagnostics.Debug.WriteLine($"DragAction.Ended from {v.GetType()}");

                var mobileItem = (DragItem)e.LocalState;

                mobileItem.View.Visibility = ViewStates.Visible;

                foreach (var view in _translatedItems)
                {
                    view.TranslationY = 0;
                }

                _translatedItems.Clear();

                //if (_element.ItemsSource is IOrderable orderable)
                //{
                //    if (((IList)_element.ItemsSource).Contains(mobileItem.Item))
                //    {
                //        orderable.ChangeOrdinal(mobileItem.OriginalIndex, mobileItem.Index);
                //    }
                //    else
                //    {
                //        orderable.ItemAdded(mobileItem.Item);
                //    }
                //}

                break;
            }

            return(true);
        }
Beispiel #29
0
        public bool OnDrag(Android.Views.View v, Android.Views.DragEvent e)
        {
            switch (e.Action)
            {
            case Android.Views.DragAction.Started:
                break;

            case Android.Views.DragAction.Entered:
                v.SetBackgroundColor(Android.Graphics.Color.Blue);
                break;

            case Android.Views.DragAction.Exited:
                v.SetBackgroundColor(Android.Graphics.Color.Transparent);
                break;

            case Android.Views.DragAction.Drop:
                v.SetBackgroundColor(Android.Graphics.Color.Transparent);
                SwapObject         tmpObj        = (SwapObject)e.LocalState;
                Android.Views.View view          = tmpObj.View;
                object             passedItem    = tmpObj.Item;
                ListView           oldParent     = (ListView)view.Parent;
                BaseAdapter        sourceAdapter = (oldParent.Adapter is IWrapperListAdapter) ? ((IWrapperListAdapter)oldParent.Adapter).WrappedAdapter as BaseAdapter : ((BaseAdapter)oldParent.Adapter);


                Console.WriteLine(v.Parent.Parent);
                ListView newParent = (ListView)v.Parent.Parent;


                BaseAdapter destinationAdapter = (oldParent.Adapter is IWrapperListAdapter) ? ((IWrapperListAdapter)newParent.Adapter).WrappedAdapter as BaseAdapter : ((BaseAdapter)oldParent.Adapter);


                int removeLocation = oldParent.GetPositionForView(view);
                int insertLocation = newParent.GetPositionForView(associatedView);


                /*
                 * If drag and drop on the same list, same position, ignore
                 */
                if (DragDropListRenderer.ListMap.ContainsKey(oldParent.Id.ToString()) && DragDropListRenderer.ListMap.ContainsKey(newParent.Id.ToString()))
                {
                    var sourceList      = (IList)DragDropListRenderer.ListMap[oldParent.Id.ToString()];
                    var destinationList = (IList)DragDropListRenderer.ListMap[newParent.Id.ToString()];
                    if (!oldParent.Equals(newParent) || removeLocation != insertLocation)
                    {
                        if (sourceList.Contains(passedItem))
                        {
                            //sourceList.Remove(passedItem);
                            destinationList.Insert(insertLocation, passedItem);
                            sourceList.Remove(passedItem);
                        }
                        destinationAdapter.NotifyDataSetChanged();
                        sourceAdapter.NotifyDataSetChanged();
                    }
                }


                break;

            case Android.Views.DragAction.Ended:
                break;
            }
            return(true);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.homeNoScrollView);

            string text = Intent.GetStringExtra("MyData") ?? "Data not available";

            System.Diagnostics.Debug.Write("DATA WE PASSED HERE IS : " + text);

            mListView   = FindViewById <ListView>(Resource.Id.listView);
            mContacts   = new List <Contact>();
            mBtnAddPics = FindViewById <Button>(Resource.Id.btnAdd);


            //ItemClickEventArgs

            Action <ImageView> action = PicSelected;

            //mAdapter = new ContactListAdapter(this, Resource.Layout.pager_item, mContacts, action);
            mAdapter = new ContactListAdapter(this, Resource.Layout.row_contact, mContacts);



            //mListView.chil


            mListView.ItemClick += lv_ItemClick;

            void lv_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
            {
                System.Diagnostics.Debug.Write("LISTVIEW CLICKED AT  : " + e.Position);
            }

            mListView.Adapter = mAdapter;
            //mListView.NotifyDataSetChanged();

            //mListView.ItemClick += MListView_ItemClick;


            mListView.ItemSelected += (sender, e) =>
            {
                System.Diagnostics.Debug.Write("LISTVIEW CLICKED AT  : " + e.Position);
                //ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleExpandableListItem1, items);
                //lv1.Adapter = adapter;
                string str = mListView.GetItemAtPosition(e.Position).ToString();
                System.Diagnostics.Debug.Write("LISTVIEW CLICKED AT  : " + str);
                //tv1.Text = str;
            };

            mListView.ItemClick += (sender, e) =>
            {
                System.Diagnostics.Debug.Write("LISTVIEW CLICKED AT  : " + e.Position);
                //ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleExpandableListItem1, items);
                //lv1.Adapter = adapter;
                string str = mListView.GetItemAtPosition(e.Position).ToString();
                System.Diagnostics.Debug.Write("LISTVIEW CLICKED AT  : " + str);
                //tv1.Text = str;
            };

            mAdapter.NotifyDataSetChanged();



            Button button = FindViewById <Button>(Resource.Id.myButton);

            _imageView    = FindViewById <ImageView>(Resource.Id.imageView1);
            button.Click += (object sender, EventArgs e) =>
            {
                FragmentTransaction     transaction    = FragmentManager.BeginTransaction();
                dialogue_AddCameraPhoto addCameraPhoto = new dialogue_AddCameraPhoto();
                //dialogue_Login signInDialog = new dialogue_Login();

                addCameraPhoto.Show(transaction, "dialog fragment");

                //addCameraPhoto.mAddCameraPhotoComplete += AddCameraPhoto_mAddCameraPhotoComplete;
                addCameraPhoto.mAddCameraPhotoComplete += UploadCameraPhoto;



                //StartActivity(new Intent(this, typeof(dialogue_AddCameraPhoto)));
            };



            mBtnAddPics.Click += MBtnAddPics_Click;


            //mBtnSaveImgInfo.Click += UploadCameraPhoto;
        }