Пример #1
0
        private async static Task <IEnumerable <TrainPositionData> > GetPositionDatas(IEnumerable <TrainDataFile> trainDataFiles)
        {
            Dictionary <int, TrainDataFile> dict = new Dictionary <int, TrainDataFile>();

            foreach (var tdf in trainDataFiles)
            {
                dict.Add(tdf.Station.StationId, tdf);
            }

            var lines  = Enum.GetValues(typeof(JrhLine)).Cast <JrhLine>();
            var result = new List <TrainPositionData>();

            foreach (var line in lines)
            {
                if (line == JrhLine.Sekisyo)
                {
                    continue;
                }

                try
                {
                    var(arrivalData, departureData) = await TrainInfoReader.GetTrainPositionDataAsync(line, dict);

                    result.Add(arrivalData);
                    result.Add(departureData);
                }
                catch (NotImplementedException ex)
                {
                }
            }

            return(result);
        }
Пример #2
0
        private async void RenderData(JrhLine jrhLine)
        {
            trainPostionLinearLayout.RemoveAllViews();

            var(arrivalData, departureData) = await TrainInfoReader.GetTrainPositionDataAsync(jrhLine);

            for (var i = 0; i < arrivalData.Count; i++)
            {
                var lineRangeLinearLayout = new LinearLayout(this)
                {
                    Orientation = Orientation.Horizontal
                };

                var stationAreaLayout = new LinearLayout(this)
                {
                    Orientation = Orientation.Vertical
                };
                var stationLayoutParams = new LinearLayout.LayoutParams(0, -1)
                {
                    Weight = 2
                };

                if (arrivalData[i].Item1.IsStation)
                {
                    lineRangeLinearLayout.SetBackgroundColor(Android.Graphics.Color.Argb(0xff, 0xea, 0xea, 0xea));

                    var textView = new TextView(this)
                    {
                        Text     = arrivalData[i].Item1.StartPos.Name,
                        TextSize = 16,
                    };
                    textView.SetPadding(30, 20, 0, 0);
                    textView.Typeface = Typeface.DefaultBold;
                    stationAreaLayout.AddView(textView);
                }
                else
                {
                    lineRangeLinearLayout.SetBackgroundColor(Android.Graphics.Color.Argb(0xff, 0xff, 0xff, 0xff));
                }

                lineRangeLinearLayout.AddView(stationAreaLayout, stationLayoutParams);

                var arrLayoutParams = new LinearLayout.LayoutParams(0, -1)
                {
                    Weight = 3
                };
                var arrTrainLinearLayout = new LinearLayout(this)
                {
                    Orientation = Orientation.Vertical
                };

                var depLayoutParams = new LinearLayout.LayoutParams(0, -1)
                {
                    Weight = 3
                };
                var depTrainLinearLayout = new LinearLayout(this)
                {
                    Orientation = Orientation.Vertical
                };

                foreach (var arr in arrivalData[i].Item2)
                {
                    var textView = new TextView(this)
                    {
                        Text = $"↑{arr.Name.TrainType.GetName()} {arr.Destination.Name}行",
                    };
                    arrTrainLinearLayout.AddView(textView);
                }

                foreach (var dep in departureData[i].Item2)
                {
                    var textView = new TextView(this)
                    {
                        Text = $"↓{dep.Name.TrainType.GetName()} {dep.Destination.Name}行",
                    };
                    depTrainLinearLayout.AddView(textView);
                }

                lineRangeLinearLayout.AddView(arrTrainLinearLayout, arrLayoutParams);
                lineRangeLinearLayout.AddView(depTrainLinearLayout, depLayoutParams);

                trainPostionLinearLayout.AddView(lineRangeLinearLayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, 250));
            }

            GettedTimeTextView.Text = $"{ DateTime.Now.ToString()} 現在の情報";
        }