Exemplo n.º 1
0
 private bool TryGetStationId(string text, out int result)
 {
     if (!int.TryParse(text, out var n))
     {
         var station = StationReader.GetStationByName(text);
         if (station is null)
         {
             result = default;
             return(false);
         }
         else
         {
             result = station.StationId;
             return(true);
         }
     }
     if (n > 0 && n < 5)
     {
         result = n;
         return(true);
     }
     else if (StationReader.GetStationById(n) is null)
     {
         result = default;
         return(false);
     }
     else
     {
         result = n;
         return(true);
     }
 }
Exemplo n.º 2
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.TrainTime);
            InitializeLayoutParams();
            Window.SetStatusBarColor(new Android.Graphics.Color(Android.Support.V4.Content.ContextCompat.GetColor(this, Resource.Color.colorPrimary)));

            mainLinearLayout   = FindViewById <LinearLayout>(Resource.Id.MainLinearLayout);
            backButton         = FindViewById <ImageView>(Resource.Id.BackButton);
            favoriteButton     = FindViewById <ImageView>(Resource.Id.FavoriteButton);
            swipeRefreshLayout = FindViewById <SwipeRefreshLayout>(Resource.Id.swipe_refresh);
            toolBarText        = FindViewById <TextView>(Resource.Id.ToolbarText);
            GettedTimeTextView = FindViewById <TextView>(Resource.Id.GetedTimeTextView);

            backButton.Click           += BackButton_Click;
            favoriteButton.Click       += FavoriteButton_Click;
            swipeRefreshLayout.Refresh += SwipeRefreshLayout_Refresh;

            station = StationReader.GetStationByName(Intent.GetStringExtra("station"));
            if (station is null)
            {
                throw new NotSupportedException();
            }
            else
            {
                IsFavorited = UserConfigManager.IsFavoriteStation(station);
                await ShowData();

                toolBarText.Text = station.Name;
                favoriteButton.SetImageResource(IsFavorited ? Resource.Drawable.FavoritedIcon : Resource.Drawable.AddFavoriteIcon);
            }
        }
Exemplo n.º 3
0
        public static bool TryGetIdInFileName(string fileName, out int id)
        {
            var str = fileName.GetRangeWithEnd(' ');

            if (int.TryParse(str, out var n))
            {
                id = n;
                return(true);
            }
            var res = StationReader.GetStationByName(str);

            id = res?.StationId ?? default;
            return(res != null);
        }
Exemplo n.º 4
0
        private async void SearchButton_Click(object sender, RoutedEventArgs e)
        {
            var station = StationReader.GetStationByName(StationSerchTextBox.Text);

            if (station is null)
            {
                MessageBox.Show($"{StationSerchTextBox.Text}は見つかりませんでした");
            }
            else
            {
                SelectedSource = await TrainInfoReader.GetTrainDataAsync(station.StationId);

                this.Close();
            }
        }
Exemplo n.º 5
0
        /*
         * 函館線 小樽方面の位置計算
         * ・札幌方面はすべて札幌到着データを利用。
         * ・小樽方面のうち…
         *   札幌-手稲は手稲到着データ利用
         *   ほしみ到着データ(普通列車)のうち手稲-ほしみ間にある列車は反映
         *    小樽到着データはほしみ-小樽間の列車及び、ほしみ通過の快速列車については手稲-小樽間で利用。
         */
        private static async Task <(TrainPositionData, TrainPositionData)> GetOtaruData(JrhLine jrhLine, Dictionary <int, TrainDataFile> dataFile)
        {
            var sapporoData = GetPosition(dataFile[91].ArrivalTrainDatas[JrhDestType.Hakodate_Otaru], jrhLine);

            var teineData = GetPosition(dataFile[85].ArrivalTrainDatas[JrhDestType.Sapporo_Hakodate], jrhLine)
                            .Where(tuple => tuple.position >= 0 && tuple.position <= 11);

            var hoshimiData = GetPosition(dataFile[82].ArrivalTrainDatas[JrhDestType.Sapporo_Hakodate], jrhLine)
                              .Where(tuple => tuple.position >= 12 && tuple.position <= 17);

            var otaruData = GetPosition(dataFile[76].ArrivalTrainDatas[JrhDestType.Sapporo_Hakodate], jrhLine)
                            .Where(tuple => (tuple.position >= 18 && tuple.position <= 28) ||
                                   (tuple.trainData.Name.GetTypesByStation(StationReader.GetStationByName("ほしみ")) == TrainData.TrainTypes.Rapid && tuple.position >= 12 && tuple.position <= 28));

            var sapporoArrData = new TrainPositionData(jrhLine, new[] { sapporoData });
            var sapporoDepData = new TrainPositionData(jrhLine, new[] { teineData, hoshimiData, otaruData });

            return(sapporoArrData, sapporoDepData);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 「検索」ボタンが押されたときの処理。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SearchButton_Click(object sender, EventArgs e)
        {
            var editText = View.FindViewById <EditText>(Resource.Id.StaionNameEditText);
            var textView = View.FindViewById <TextView>(Resource.Id.StationSearchErrorText);
            var name     = editText.Text;

            if (name.EndsWith("駅"))
            {
                name = name.Substring(0, name.Length - 1);
            }

            var station = StationReader.GetStationByName(name);

            if (station == null)
            {
                textView.Text = $"駅名「{name}」が見つかりません。";
            }
            else
            {
                var intent = new Intent(Context, new TrainTimeActivity().Class);
                intent.PutExtra("station", station.Name);
                StartActivity(intent);
            }
        }
Exemplo n.º 7
0
 public IEnumerable <Station> GetFavoriteStations()
 {
     return(FavoriteStationString.Select(str => StationReader.GetStationByName(str)));
 }