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; } }; }
public override void OnCreate() { instancia = this; IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName()); foreach (IPAddress ip in localIPs) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { ipadre = ip.ToString(); } } new Thread(() => { if (CheckInternetConnection()) { bool notienenada = false; WebClient cliente = new WebClient(); cliente.DownloadDataAsync(new Uri("https://raw.githubusercontent.com/Gr3gorywolf/Multitube.android/master/Updates/version.gr3v")); cliente.DownloadDataCompleted += (aaa, aaaa) => { string versionsinparsear = Encoding.UTF8.GetString(aaaa.Result); if (!File.Exists(Android.OS.Environment.ExternalStorageDirectory.ToString() + "/.gr3cache/version.gr3v")) { notienenada = true; } if (notienenada) { MultitubeWebHelper.UpdateMultitubeWeb(versionsinparsear); } else { if (versionsinparsear != File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.ToString() + "/.gr3cache/version.gr3v")) { MultitubeWebHelper.UpdateMultitubeWeb(versionsinparsear); } } }; if (Constants.UseFirebase) { meterdata(); } } else { } }).Start(); if (servidor != null) { servidor.Stop(); } servidor = new MultitubeWebServer(Android.OS.Environment.ExternalStorageDirectory.ToString(), 12345, ipadre, this); var pelo = new Thread(() => { checkchange(); }); pelo.IsBackground = true; pelo.Start(); var brandom = new Random(); Intent internado2 = new Intent(this, typeof(serviciointerpreter23)); Intent internado3 = new Intent(this, typeof(serviciointerpreter234)); var pendingIntent3 = PendingIntent.GetService(ApplicationContext, brandom.Next(2000, 50000) + brandom.Next(2000, 50000), internado3, 0); var pendingIntent2 = PendingIntent.GetService(ApplicationContext, brandom.Next(2000, 50000) + brandom.Next(2000, 50000), internado2, 0); Notification.Action accion = new Notification.Action(Resource.Drawable.drwaable, "Parar", pendingIntent2); Notification.Action accion2 = new Notification.Action(Resource.Drawable.drwaable, "Conectarse", pendingIntent3); Notification.BigTextStyle textoo = new Notification.BigTextStyle(); textoo.SetBigContentTitle("Stremeando en " + ipadre + ":12345"); textoo.SetSummaryText("Toque para parar de stremear su media"); textoo.BigText("Para conectarse introduzca " + ipadre + ":12345 " + "en su navegador o entre a multitubeweb.tk y toque conectar luego escanee el codigo que aparece al presionar el boton de + en multitubeweb. al tocar parar se cierrar el servicio de streaming"); #pragma warning disable CS0618 // El tipo o el miembro están obsoletos Notification.Builder nBuilder = new Notification.Builder(this); #pragma warning restore CS0618 // El tipo o el miembro están obsoletos nBuilder.SetContentTitle("Stremeando en " + ipadre + ":12345"); nBuilder.SetContentText("Toque para parar de stremear su media"); nBuilder.SetOngoing(true); // nBuilder.SetContentIntent(pendingIntent2); nBuilder.SetStyle(textoo); nBuilder.SetSmallIcon(Resource.Drawable.antena); nBuilder.SetColor(Android.Graphics.Color.ParseColor("#ce2c2b")); nBuilder.AddAction(accion); nBuilder.AddAction(accion2); Notification notification = nBuilder.Build(); StartForeground(193423456, notification); base.OnCreate(); // descargar(intent.GetStringExtra("path"), intent.GetStringExtra("archivo"), intent.GetStringExtra("titulo"), intent.GetStringExtra("link")); }