protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_main); StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.SetVmPolicy(builder.Build()); builder.DetectFileUriExposure(); ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateRemoteCertificate); // se selecciona la version de el protocolo de seguridad a la versiond e tls 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.my_toolbar); SetSupportActionBar(toolbar); sidem = FindViewById <Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawer_layout); itemsm = FindViewById <NavigationView>(Resource.Id.content_frame); searchview = FindViewById <Android.Support.V7.Widget.SearchView>(Resource.Id.searchView); listin = FindViewById <ListView>(Resource.Id.listView1); actividad = this; ////////////////////////////////////////////////// SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.hambur); SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.Title = ""; SupportActionBar.SetBackgroundDrawable(new ColorDrawable(Color.ParseColor("#2b2e30"))); online = Intent.GetBooleanExtra("online", false); TextView titleTextView = null; try { var f = toolbar.Class.GetDeclaredField("mTitleTextView"); f.Accessible = true; titleTextView = (TextView)f.Get(toolbar); titleTextView.Ellipsize = Android.Text.TextUtils.TruncateAt.Marquee; titleTextView.Focusable = true; titleTextView.FocusableInTouchMode = true; titleTextView.RequestFocus(); titleTextView.SetSingleLine(true); titleTextView.Selected = true; titleTextView.SetMarqueeRepeatLimit(-1); } catch { } if (!Directory.Exists(directoriocache)) { Directory.CreateDirectory(directoriocache); } listin.ItemClick += async(aa, aaa) => { var texto = aaa.View.FindViewById <TextView>(Resource.Id.textView).Text; if (estado == 0) { var link = listaelementos.First(aax => aax.Name == texto).InfoLink; Intent intento = new Intent(this, typeof(actbiginfo)); intento.PutExtra("link", link); intento.PutExtra("consoleindex", selectedconsole); intento.PutExtra("placeholder", idimagen); StartActivity(intento); Console.WriteLine(""); } else if (estado == 1) { var seleccion = listaelementos.First(aax => aax.Name == texto); new Thread(() => { miselaneousmethods.abriremulador(this, miselaneousmethods.consolelist[miselaneousmethods.consolelistformal.ToList().IndexOf(seleccion.Region)], Android.Net.Uri.Parse(seleccion.InfoLink), dialogoprogreso); }).Start(); } else if (estado == 2) { var consoleindex = miselaneousmethods.consolelist.ToList().IndexOf(listaelementos.First(aax => aax.Name == texto).InfoLink); selectedconsole = consoleindex; SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.home); new Thread(() => { cargarconsola(consoleindex); }).Start(); } else if (estado == 3) { var seleccion = listaelementos.First(aax => aax.Name == texto); var indice = miselaneousmethods.consolelistformal.ToList().IndexOf(seleccion.Name); if (diccionarioemuladores.ContainsKey(miselaneousmethods.consolelist[indice])) { new Thread(() => { cargaremulador(indice); }).Start(); } else { Toast.MakeText(this, "No se han añadido emuladores para esta consola aún", ToastLength.Long).Show(); } } if (estado == 4) { var seleccion = listaelementos.First(aax => aax.Name == texto); var uri = Android.Net.Uri.Parse(seleccion.InfoLink); var intent = new Intent(Intent.ActionView, uri); StartActivity(intent); } if (estado == 5) { var seleccion = listaelementos.First(aax => aax.Name == texto); SimpleFileDialog sfd = new SimpleFileDialog(this, SimpleFileDialog.FileSelectionMode.FolderChooseRoot); var rutula = await sfd.GetFileOrDirectoryAsync(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath); miselaneousmethods.cambiarruta(this, miselaneousmethods.consolelist[miselaneousmethods.consolelistformal.ToList().IndexOf(seleccion.Name)], rutula); new Thread(() => { cargarrutas(); }).Start(); } }; new Thread(() => { ///idimagen = Resource.Drawable.gameboy; /// if (online) { llenarlistas(); cargarconsolas(); } else { cargardescargas(); } // cargarconsola(0); }).Start(); new Thread(() => { alertifnewdowload(); }).Start(); new Thread(() => infoserverstatus()).Start(); //////////////////////////////// itemsm.NavigationItemSelected += (sender, e) => { e.MenuItem.SetChecked(true); e.MenuItem.SetChecked(true); var nombreconsola = e.MenuItem.TitleFormatted.ToString().Trim(); SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.hambur); if (nombreconsola == "Acerca de") { StartActivity(new Intent(this, typeof(actacercade))); } else if (nombreconsola == "Deja un feedback") { if (online) { StartActivity(new Intent(this, typeof(actsugerencias))); } else { Toast.MakeText(this, "Solo disponible en modo online", ToastLength.Long).Show(); } } if (nombreconsola == "Roms descargados") { if (File.Exists(miselaneousmethods.archivoregistro)) { searchview.SetQuery("", true); new Thread(() => { cargardescargas(); }).Start(); } else { Toast.MakeText(this, "Usted no ha descargado ningun rom", ToastLength.Long).Show(); } } else if (nombreconsola == "Roms") { if (online) { searchview.SetQuery("", true); new Thread(() => { cargarconsolas(); }).Start(); } else { Toast.MakeText(this, "Solo disponible en modo online", ToastLength.Long).Show(); } } if (nombreconsola == "Emuladores") { if (online) { searchview.SetQuery("", true); new Thread(() => { cargaremuladores(); }).Start(); } else { Toast.MakeText(this, "Solo disponible en modo online", ToastLength.Long).Show(); } } if (nombreconsola == "Carpetas de descargas") { searchview.SetQuery("", true); new Thread(() => { cargarrutas(); }).Start(); } e.MenuItem.SetChecked(false); e.MenuItem.SetChecked(false); sidem.CloseDrawers(); }; //////////////////////////////////////////////////////////////////////////////filter /// searchview.QueryTextSubmit += (aa, aaa) => { Console.WriteLine("klkprro"); if (estado == 0 || estado == 4) { adaptadorroms adaptadolllll = null; adaptadolllll = new adaptadorroms(this, listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains(aaa.Query.ToLower())).ToList(), idimagen); RunOnUiThread(() => listin.Adapter = adaptadolllll); } }; searchview.QueryTextChange += (aa, aaa) => { try { if (aaa.NewText != null) { adaptadorroms adaptadolllll = null; adaptadorromsdownloaded adaptadolllll2 = null; if (estado == 0 || estado == 4) { if (romcounts[selectedconsole] <= 500) { adaptadolllll = new adaptadorroms(this, listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains(aaa.NewText.ToLower())).ToList(), idimagen); } else if (aaa.NewText.Length <= 1) { adaptadolllll = new adaptadorroms(this, listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains("")).ToList(), idimagen); } } else if (estado == 1) { var selector = listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains(aaa.NewText.ToLower()) || aaxx.Region.ToLower().Contains(aaa.NewText.ToLower())).ToList(); var links = new List <string>(); foreach (var axx in selector) { links.Add(downloadlinks[listaelementos.IndexOf(axx)]); } adaptadolllll2 = new adaptadorromsdownloaded(this, selector, Resource.Drawable.download, null, links); RunOnUiThread(() => listin.Adapter = adaptadolllll2); // links.Clear(); } else { var selector = listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains(aaa.NewText.ToLower())).ToList(); var portraits = new List <int>(); foreach (var axx in selector) { portraits.Add(resourceids[listaelementos.IndexOf(axx)]); } adaptadolllll = new adaptadorroms(this, listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains(aaa.NewText.ToLower())).ToList(), idimagen, portraits.ToArray(), true); } if (estado != 1 && romcounts[selectedconsole] <= 500) { RunOnUiThread(() => listin.Adapter = adaptadolllll); } } else { if (estado == 0 || estado == 4) { if (romcounts[selectedconsole] >= 500) { adaptadorroms adaptadolllll = null; adaptadolllll = new adaptadorroms(this, listaelementos.Where(aaxx => aaxx.Name.ToLower().Contains("")).ToList(), idimagen); } } } } catch { } /*var adaptadol2 = new adapterlistaoffline(this, nombreses.Where(a => a.ToLower().Contains(aaa.NewText.ToLower())).ToList(), portadases, "", nombreses, diccionario, patheses); * * RunOnUiThread(() => lista.Adapter = adaptadol2);*/ }; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.Configuraciones); ISharedPreferences prefs = Application.Context.GetSharedPreferences("Settings", FileCreationMode.Private); ISharedPreferencesEditor prefEditor = prefs.Edit(); botonseleccionarcarpeta = FindViewById <Button>(Resource.Id.imageView1); localizacion = FindViewById <TextView>(Resource.Id.textView3); // botonguardar = FindViewById<ImageView>(Resource.Id.imageView2); var colormuestra = FindViewById <ImageView>(Resource.Id.imageView3); colormuestra.SetBackgroundColor(Color.ParseColor(SettingsHelper.GetSetting("color"))); color = SettingsHelper.GetSetting("color"); reprodautomatica = SettingsHelper.GetSetting("automatica"); var ll1 = FindViewById <LinearLayout>(Resource.Id.linearLayout3); var ll2 = FindViewById <LinearLayout>(Resource.Id.linearLayout4); var ll3 = FindViewById <LinearLayout>(Resource.Id.linearLayout5); var ll4 = FindViewById <LinearLayout>(Resource.Id.linearLayout7); var ll5 = FindViewById <LinearLayout>(Resource.Id.linearLayout23); var fondo = FindViewById <ImageView>(Resource.Id.fondo1); var toggle1 = FindViewById <Android.Support.V7.Widget.SwitchCompat>(Resource.Id.toggleButton1); var toggle2 = FindViewById <Android.Support.V7.Widget.SwitchCompat>(Resource.Id.toggleButton2); var automatica = FindViewById <Android.Support.V7.Widget.SwitchCompat>(Resource.Id.automatico); var botonclearcache = FindViewById <LinearLayout>(Resource.Id.linearLayout8); calidades = FindViewById <Spinner>(Resource.Id.spinner1); var action = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.my_toolbar); //////////////////////////////////////coloreselector mappings #pragma warning disable CS0618 // El tipo o el miembro están obsoletos dialogoprogreso = new ProgressDialog(this); #pragma warning restore CS0618 // El tipo o el miembro están obsoletos /////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// /// if (reprodautomatica == "si") { automatica.Checked = true; } else { automatica.Checked = false; } SetSupportActionBar(action); SupportActionBar.Title = "Preferencias"; SupportActionBar.SetDisplayHomeAsUpEnabled(true); var adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem); adapter.AddAll(new string[] { "Audio", "360p", "720p" }.ToList()); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); calidades.Adapter = adapter; color = SettingsHelper.GetSetting("color"); calidad = int.Parse(SettingsHelper.GetSetting("video")); switch (calidad) { case -1: calidades.SetSelection(0); break; case 360: calidades.SetSelection(1); break; case 720: calidades.SetSelection(2); break; } if (SettingsHelper.HasKey("abrirserver")) { abrirserver = SettingsHelper.GetSetting("abrirserver"); } if (abrirserver == "no") { toggle2.Checked = false; } else { toggle2.Checked = true; } if (SettingsHelper.HasKey("ordenalfabeto")) { ordenalfabeto = SettingsHelper.GetSetting("ordenalfabeto"); if (ordenalfabeto == "si") { toggle1.Checked = true; } else { toggle1.Checked = false; } } if (SettingsHelper.HasKey("rutadescarga")) { klk = prefs.GetString("rutadescarga", null); } else { if (Directory.Exists(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/YTDownloads")) { klk = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/YTDownloads"; prefEditor.PutString("rutadescarga", klk); prefEditor.Commit(); } else { Directory.CreateDirectory(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/YTDownloads"); klk = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/YTDownloads"; prefEditor.PutString("rutadescarga", klk); prefEditor.Commit(); } } localizacion.Text = klk; fondo.SetImageBitmap(CreateBlurredImageoffline(this, 20, 0)); ////////////////////////////////clicks//////////////////////////// calidades.ItemSelected += (axx, ssd) => { switch (ssd.Position) { case 0: calidad = -1; break; case 1: calidad = 360; break; case 2: calidad = 720; break; } }; automatica.Click += delegate { if (automatica.Checked) { reprodautomatica = "si"; Toast.MakeText(this, "Si no hay mas elementos en cola se reproducira el primer elemento de las sugerencias", ToastLength.Long).Show(); } else { reprodautomatica = "no"; Toast.MakeText(this, "Si no hay mas elementos en cola no se ejecutara ninguna accion", ToastLength.Long).Show(); } }; toggle2.Click += delegate { if (toggle2.Checked) { new Thread(() => { if (PlaylistsHelper.HasMediaElements) { if (File.Exists(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/.gr3cache/version.gr3v")) { abrirserver = "si"; StartService(new Intent(this, typeof(serviciostreaming))); } else { AlertDialog dialogo = null; RunOnUiThread(() => { var progresox = new ProgressBar(this); progresox.Indeterminate = true; dialogo = new AlertDialog.Builder(this) .SetTitle("Buscando actualizaciones") .SetMessage("Por favor espere...") .SetCancelable(false) .SetView(progresox) .Show(); }); if (CheckInternetConnection()) { abrirserver = "si"; AlertDialog alerta = null; RunOnUiThread(() => { dialogo.Dismiss(); var progreso = new ProgressBar(this); progreso.Indeterminate = true; alerta = new AlertDialog.Builder(this) .SetTitle("Descargando archivos necesarios") .SetMessage("Por favor espere...") .SetCancelable(false) .SetView(progreso) .Show(); }); new Thread(() => { WebClient cliente = new WebClient(); var version = cliente.DownloadString("https://raw.githubusercontent.com/Gr3gorywolf/Multitube.android/master/Updates/version.gr3v"); using (var file = File.CreateText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/.gr3cache/version.gr3v")) { file.Write(version); file.Close(); } MultitubeWebHelper.UpdateMultitubeWeb(version); RunOnUiThread(() => { alerta.Dismiss(); StartService(new Intent(this, typeof(serviciostreaming))); new AlertDialog.Builder(this) .SetTitle("Informacion") .SetMessage("El servidor de streaming le permitirara reproducir su contenido previamente descargado desde cualquier navegador de cualquier dispositivo conectado a su misma red. Puede consultar el estado de este en la barra de notificaciones") .SetPositiveButton("Entendido!", (aa, fff) => { }) .Create() .Show(); }); }).Start(); } else { RunOnUiThread(() => { dialogo.Dismiss(); Toast.MakeText(this, "Debe tener una conexion a internet para abrir el servicio por primera vez", ToastLength.Long).Show(); toggle2.Checked = false; }); } } } else { RunOnUiThread(() => { toggle2.Checked = false; Toast.MakeText(this, "Debe tener almenos 1 elemento descargado", ToastLength.Long).Show(); }); } }).Start(); } else { if (serviciostreaming.gettearinstancia() != null) { StopService(new Intent(this, typeof(serviciostreaming))); } toggle2.Checked = false; abrirserver = "no"; } }; botonclearcache.Click += delegate { AlertDialog.Builder ad = new AlertDialog.Builder(this); ad.SetCancelable(false); ad.SetTitle("Advertencia"); ad.SetIcon(Resource.Drawable.alert); ad.SetMessage("Limpiar el cache puede provocar cierta realentizacion a la hora de entrar al reproductor offline y tambien volvera a descargar los datos por lo cual necesitara internet ¿¿quiere borrar cache??"); ad.SetNegativeButton("No", no); ad.SetPositiveButton("Si", si); ad.Create(); ad.Show(); }; toggle1.Click += delegate { if (toggle1.Checked == true) { ordenalfabeto = "si"; Toast.MakeText(this, "Los elementos se organizaran alfabeticamente", ToastLength.Long).Show(); } else { ordenalfabeto = "no"; Toast.MakeText(this, "Los elementos se por fecha de descarga", ToastLength.Long).Show(); } }; botonseleccionarcarpeta.Click += async delegate { SimpleFileDialog sfd = new SimpleFileDialog(this, SimpleFileDialog.FileSelectionMode.FolderChooseRoot); klk = await sfd.GetFileOrDirectoryAsync(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath); if (probarpath(klk)) { pathvalido = true; localizacion.Text = klk; } else { Toast.MakeText(this, "Ruta invalida seleccione otra", ToastLength.Short).Show(); klk = localizacion.Text; pathvalido = false; } }; }