Exemplo n.º 1
0
        void LoadTabIconForItem(ActivityItem view, TabType type, int versionNumber)
        {
            ImageView itemPicture = view.FindViewById <ImageView> (Resource.Id.ItemPicture);

            if (view.CurrentTabType != type.Name)
            {
                itemPicture.SetImageBitmap(type.Image);
            }
        }
Exemplo n.º 2
0
        void LoadMapForItem(ActivityItem view, Tuple <double, double> latLng, int versionNumber)
        {
            FadeImageView mapView = view.FindViewById <FadeImageView> (Resource.Id.MapPicture);
            string        url     = BuildMapUrl(latLng, mapWidth, MapHeight);

            if (url == view.CurrentMapUri)
            {
                return;
            }

            Bitmap map = null;

            if (cache.TryGet(url, out map))
            {
                mapView.SetImageBitmap(map, true);
                view.CurrentMapUri         = url;
                view.CurrentMapCoordinates = latLng;
            }
            else
            {
                mapView.SetImageBitmap(NoMapPicture);
                Action doMapSetting = () => {
                    if (view.VersionNumber != versionNumber)
                    {
                        return;
                    }
                    activity.RunOnUiThread(() => {
                        if (view.VersionNumber != versionNumber)
                        {
                            return;
                        }
                        if (map == null)
                        {
                            cache.TryGet(url, out map);
                        }
                        mapView.SetImageBitmap(map, true);
                        view.CurrentMapUri         = url;
                        view.CurrentMapCoordinates = latLng;
                    });
                };
                if (pendingFetch.ContainsKey(url))
                {
                    pendingFetch [url].ContinueWith(t => doMapSetting(), TaskContinuationOptions.ExecuteSynchronously);
                }
                else
                {
                    pendingFetch[url] = SerialScheduler.Factory.StartNew(() => {
                        map = DownloadoCacher(url);
                        doMapSetting();
                    });
                }
            }
        }
Exemplo n.º 3
0
        ActivityItem EnsureView(ViewGroup root, View convertView)
        {
            if (convertView != null)
            {
                return((ActivityItem)convertView);
            }
            var activityView = new ActivityItem(activity);

            activityView.ItemExpanded += (v, expanded) => {
                if (expanded)
                {
                    LoadMapForItem(v, v.CurrentMapCoordinates, v.VersionNumber);
                }
            };
            return(activityView);
        }
Exemplo n.º 4
0
        ActivityItem GetActivityItemFromChildView(View v)
        {
            if (v == null)
            {
                return(null);
            }
            ActivityItem item = v as ActivityItem;

            if (item != null)
            {
                return(item);
            }
            var parent = v.Parent;

            while (parent != null && (item = parent as ActivityItem) == null)
            {
                parent = parent.Parent;
            }
            return(item);
        }
Exemplo n.º 5
0
 void LoadTabIconForItem(ActivityItem view, TabType type, int versionNumber)
 {
     ImageView itemPicture = view.FindViewById<ImageView> (Resource.Id.ItemPicture);
     if (view.CurrentTabType != type.Name)
         itemPicture.SetImageBitmap (type.Image);
 }
Exemplo n.º 6
0
        void LoadMapForItem(ActivityItem view, Tuple<double, double> latLng, int versionNumber)
        {
            FadeImageView mapView = view.FindViewById<FadeImageView> (Resource.Id.MapPicture);
            string url = BuildMapUrl (latLng, mapWidth, MapHeight);

            if (url == view.CurrentMapUri)
                return;

            Bitmap map = null;
            if (cache.TryGet (url, out map)) {
                mapView.SetImageBitmap (map, true);
                view.CurrentMapUri = url;
                view.CurrentMapCoordinates = latLng;
            } else {
                mapView.SetImageBitmap (NoMapPicture);
                Action doMapSetting = () => {
                    if (view.VersionNumber != versionNumber)
                    return;
                    activity.RunOnUiThread (() => {
                        if (view.VersionNumber != versionNumber)
                            return;
                        if (map == null)
                            cache.TryGet (url, out map);
                        mapView.SetImageBitmap (map, true);
                        view.CurrentMapUri = url;
                        view.CurrentMapCoordinates = latLng;
                    });
                };
                if (pendingFetch.ContainsKey (url))
                    pendingFetch [url].ContinueWith (t => doMapSetting (), TaskContinuationOptions.ExecuteSynchronously);
                else
                    pendingFetch[url] = SerialScheduler.Factory.StartNew (() => {
                        map = DownloadoCacher (url);
                        doMapSetting ();
                    });
            }
        }
Exemplo n.º 7
0
 ActivityItem EnsureView(ViewGroup root, View convertView)
 {
     if (convertView != null)
         return (ActivityItem)convertView;
     var activityView = new ActivityItem (activity);
     activityView.ItemExpanded += (v, expanded) => {
         if (expanded)
             LoadMapForItem (v, v.CurrentMapCoordinates, v.VersionNumber);
     };
     return activityView;
 }