/// <summary> /// Search /// </summary> /// <param name="value"></param> /// <param name="tube"></param> /// <param name="items"></param> /// <returns></returns> public static bool DO(string value, string tube, List <ListViewItem> items, DotsLoaderView dotsLoaderView) { try { Log.println("Search, tube: " + tube + ", search string: " + value); ActivityContext.mActivity.RunOnUiThread(() => dotsLoaderView.Show()); switch (tube) { case "YouTube": var ytitems = YouTubeSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in ytitems) { if (!String.IsNullOrEmpty(item.getTitle()) && !String.IsNullOrEmpty(item.getDuration()) && item.getDuration() != " ") { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Author = item.getAuthor(), Url = item.getUrl(), Duration = item.getDuration(), Thumbnail = item.getThumbnail() }); } } break; case "ccMixter": var ccitems = ccMixterSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in ccitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Author = item.getAuthor(), Url = item.getUrl() }); } break; case "Dailymotion": var dmitems = DailymotionSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in dmitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Author = item.getAuthor(), Url = item.getUrl() }); } break; case "Eroprofile": var epitems = EroprofileSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in epitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Url = item.getUrl(), Duration = item.getDuration(), Thumbnail = item.getThumbnail() }); } break; case "Pornhub": var phitems = PornhubSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in phitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Url = item.getUrl(), Duration = item.getDuration(), Thumbnail = item.getThumbnail() }); } break; case "Vimeo": var vmitems = VimeoSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in vmitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Author = item.getAuthor(), Url = item.getUrl(), Duration = item.getDuration(), Thumbnail = item.getThumbnail() }); } break; case "xHamster": var xhitems = xHamsterSearch.Query(value, Convert.ToInt32(Settings.Retrieve("SearchPages"))); foreach (var item in xhitems) { // Add items items.Add(new ListViewItem() { Title = item.getTitle(), Url = item.getUrl(), Duration = item.getDuration(), Thumbnail = item.getThumbnail() }); } break; default: ActivityContext.mActivity.RunOnUiThread(() => dotsLoaderView.Hide()); return(false); } try { items.Sort(); } catch { } ActivityContext.mActivity.RunOnUiThread(() => dotsLoaderView.Hide()); return(true); } catch (Exception ex) { #if DEBUG Console.WriteLine(ex.ToString()); #endif Log.println(ex.ToString()); ActivityContext.mActivity.RunOnUiThread(() => dotsLoaderView.Hide()); return(false); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { /* UI */ var view = inflater.Inflate(Resource.Layout.Search, container, false); this.view = view; // Get layout resources and attach an event to it buttonSearch = view.FindViewById <Button>(Resource.Id.buttonSearch); editText = view.FindViewById <EditText>(Resource.Id.editTextSearch); listView = view.FindViewById <ListView>(Resource.Id.listViewResult); textView = view.FindViewById <TextView>(Resource.Id.textViewPlaying); seekBar = view.FindViewById <SeekBar>(Resource.Id.seekBarPlayer); Button buttonStop = view.FindViewById <Button>(Resource.Id.buttonStop); spinner = view.FindViewById <Spinner>(Resource.Id.spinner); spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(spinner_ItemSelected); var spinneradapter = ArrayAdapter.CreateFromResource( ActivityContext.mActivity, Resource.Array.tubes_array, Android.Resource.Layout.SimpleSpinnerItem); spinneradapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinner.Adapter = spinneradapter; dotsLoaderView = view.FindViewById <DotsLoaderView>(Resource.Id.dotsLoaderView); // Prevent sleeping ActivityContext.mActivity.Window.SetFlags(WindowManagerFlags.KeepScreenOn, WindowManagerFlags.KeepScreenOn); if (items == null) { items = new List <ListViewItem>(); } if (adapter == null) { adapter = new SearchListViewAdapter(ActivityContext.mActivity, items, this); } listView.Adapter = adapter; buttonSearch.Click += delegate { // Clear listView items.Clear(); try { adapter.NotifyDataSetChanged(); } catch { } if (!String.IsNullOrEmpty(spinnerSelected) && !spinnerSelected.Equals("Tube")) { // Search Thread thread = new Thread(() => search(editText.Text, spinnerSelected)); ActivityContext.mActivity.RunOnUiThread(() => thread.Start()); } else { Toast.MakeText(ActivityContext.mActivity, "Please select a tube", ToastLength.Long).Show(); } // Hide keyboard View view_ = ActivityContext.mActivity.CurrentFocus; InputMethodManager manager = (InputMethodManager)ActivityContext.mActivity.GetSystemService(Context.InputMethodService); manager.HideSoftInputFromWindow(view_.WindowToken, 0); }; buttonStop.Click += delegate { if (mp != null) { try { if (mp.IsPlaying) { mp.Stop(); } } catch { } try { mp.Reset(); mp.Release(); } catch { } mp = null; #if DEBUG Console.WriteLine("Player resetted"); #endif Log.println("Player resetted"); } if (mpHandler != null) { if (mpAction != null) { mpHandler.RemoveCallbacks(mpAction); } seekBar.Progress = 0; textView.Text = "-"; #if DEBUG Console.WriteLine("Player stopped"); #endif Log.println("Player stopped"); } }; textView.Text = "-"; // Initialize seekbar seekBar.SetOnSeekBarChangeListener(this); // Request permissions #pragma warning disable CS4014 ActivityContext.mActivity.RunOnUiThread(() => requestPermissionsAsync()); #pragma warning restore CS4014 // Set focus to textview editText.RequestFocus(); #if DEBUG Console.WriteLine("App is loaded"); #endif Log.println("App is loaded"); CreateNotificationChannel(); return(view); }