/// <summary>
        /// //////////////////////////////////////////////////ignore
        /// </summary>
        /// <param name="path"></param>
        /// <param name="linkarchivo"></param>


        ///



        public void descargame(string nombrearchivo, string linkarchivo, string patharchivo)
        {
            int       notiide = rondon.Next(24, 100000);
            WebClient cliente = new WebClient();

            ///cliente.Encoding = Encoding.UTF8;
            // cliente.Credentials = new NetworkCredential("anonymous", "");



            string titulo  = "Descargando localmente: " + Path.GetFileNameWithoutExtension(nombrearchivo);
            string tituloo = "";

            NotificationManager notificationManager =
                GetSystemService(Context.NotificationService) as NotificationManager;

            if (nombrearchivo.Trim().Length > 40)
            {
                titulo = titulo.Remove(40);
            }
            tituloo = titulo;
#pragma warning disable CS0618 // El tipo o el miembro están obsoletos
            var builder = new Notification.Builder(ApplicationContext);
#pragma warning restore CS0618 // El tipo o el miembro están obsoletos
            builder.SetContentTitle(titulo);
            builder.SetContentText("Espere por favor");
            builder.SetSmallIcon(Resource.Drawable.downloadbutton);
            builder.SetProgress(100, progreso, true);
            notificationManager.Notify(notiide, builder.Build());



            RunOnUiThread(() => Toast.MakeText(this, "Descargando localmente: " + Path.GetFileNameWithoutExtension(nombrearchivo) + " se le notificara de su progreso", ToastLength.Long).Show());



            cliente.DownloadFileCompleted += (aa, aaa) =>
            {
                progreso = 100;
                WebClient cliente2 = new WebClient();
                cliente2.Encoding    = Encoding.UTF8;
                cliente2.Credentials = new NetworkCredential("anonymous", "");

                cliente2.DownloadFileCompleted += delegate
                {
                };
                if (pathimagenesdelotro.StartsWith("/"))
                {
                    cliente2.DownloadFile(new Uri(@"ftp://" + ipdelotro + ":" + puertoarchivosdelotro + pathimagenesdelotro + linkarchivo.Split('=')[1]), Android.OS.Environment.ExternalStorageDirectory + "/.gr3cache/portraits/" + linkarchivo.Split('=')[1]);
                }
                else
                {
                    try {
                        cliente2.DownloadFile(new Uri(@"ftp://" + ipdelotro + ":" + puertoarchivosdelotro + "/" + getteardisco(pathimagenesdelotro) + linkarchivo.Split('=')[1] + ".jpg"), Android.OS.Environment.ExternalStorageDirectory + "/.gr3cache/portraits/" + linkarchivo.Split('=')[1]);
                    }
                    catch (Exception)
                    {
                        try {
                            cliente2.DownloadFile("http://i.ytimg.com/vi/" + linkarchivo.Split('=')[1] + "/mqdefault.jpg", Android.OS.Environment.ExternalStorageDirectory + "/.gr3cache/portraits/" + linkarchivo.Split('=')[1]);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
                // string perruris = "ftp://" + ipdelotro + ":" + puertoarchivosdelotro + "/" + getteardisco(pathimagenesdelotro) + linkarchivo.Split('=')[1] + ".jpg";



                escribirenregistro(Path.Combine(SettingsHelper.GetSetting("rutadescarga"), nombrearchivo), linkarchivo);
                Intent intentssdd = new Intent(this, typeof(actividadadinfooffline));
                intentssdd.PutExtra("nombre", Path.GetFileName(nombrearchivo));
                intentssdd.PutExtra("link", linkarchivo);
                intentssdd.PutExtra("path", Path.Combine(SettingsHelper.GetSetting("rutadescarga"), nombrearchivo));



                PendingIntent intentosd = PendingIntent.GetActivity(this, rondon.Next(24, 100000), intentssdd, PendingIntentFlags.UpdateCurrent);
                string        titulo2   = "Descarga local completada de : " + Path.GetFileNameWithoutExtension(nombrearchivo);
                string        tituloo2  = "";

                if (nombrearchivo.Trim().Length > 40)
                {
                    titulo2 = titulo2.Remove(40);
                }
                tituloo2 = titulo2;

                builder.SetContentTitle(titulo2);
                builder.SetContentText("Toque para abrir");
                builder.SetSmallIcon(Resource.Drawable.downloadbutton);
                builder.SetContentIntent(intentosd);
                builder.SetProgress(1, 1, false);
                notificationManager.Notify(notiide, builder.Build());
                RunOnUiThread(() => Toast.MakeText(this, "Descarga local de: " + Path.GetFileNameWithoutExtension(nombrearchivo) + " completada", ToastLength.Long).Show());
                new Thread(() => {
                    if (selectedtab == "Audios")
                    {
                        playeroffline.gettearinstancia().cargarmp3();
                    }
                    else
                    {
                        playeroffline.gettearinstancia().cargarvideos();
                    }


                    var adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.ToList(), playeroffline.gettearinstancia().linkeses, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);
                    RunOnUiThread(() => listaelementos.Adapter = adaptadol2);
                }).Start();
            };
            if (patharchivo.StartsWith("/"))
            {
                cliente.DownloadFileAsync(new Uri(@"ftp://" + ipdelotro + ":" + puertoarchivosdelotro + patharchivo), Path.Combine(SettingsHelper.GetSetting("rutadescarga"), nombrearchivo));
            }
            else
            {
                cliente.DownloadFileAsync(new Uri(@"ftp://" + ipdelotro + ":" + puertoarchivosdelotro + "/" + getteardisco(patharchivo)), Path.Combine(SettingsHelper.GetSetting("rutadescarga"), nombrearchivo));
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.actsyncoffline);
            botonescaneo    = FindViewById <Button>(Resource.Id.imageView6);
            qr              = FindViewById <ImageView>(Resource.Id.imageView1);
            enviardisco     = FindViewById <ImageView>(Resource.Id.imageView3);
            listaelementos  = FindViewById <ListView>(Resource.Id.listView1);
            mipuertoarchivo = rondon.Next(1024, 9999);
            mipuertoquerry  = rondon.Next(1024, 9999);
#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
            dialogoprogreso.SetCanceledOnTouchOutside(false);
            dialogoprogreso.SetCancelable(false);


            textoedicion = FindViewById <Android.Support.V7.Widget.SearchView>(Resource.Id.searchView);
            listaelementos.Visibility = ViewStates.Gone;
            enviardisco.Visibility    = ViewStates.Gone;
            servidorquerry            = new TcpListener(IPAddress.Any, mipuertoquerry);
            servidorquerry.Start();
            miip                          = gettearip();
            servidorftp                   = new Server();
            servidorftp.LocalPort         = mipuertoarchivo;
            servidorftp.LocalAddress      = IPAddress.Parse(miip);
            servidorftp.LogHandler        = new DefaultLogHandler(false);
            servidorftp.AuthHandler       = new DefaultAuthHandler();
            servidorftp.FileSystemHandler = new DefaultFileSystemHandler();
            servidorftp.BufferSize        = 1000000;
            SetSupportActionBar(FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.my_toolbar));
            SupportActionBar.Title = "Sicronización de medios";
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            tl            = FindViewById <Android.Support.Design.Widget.TabLayout>(Resource.Id.tabs);
            tl.Visibility = ViewStates.Gone;
            tl.AddTab(tl.NewTab().SetText("Audios"));
            tl.AddTab(tl.NewTab().SetText("Videos"));
            textoedicion.Visibility = ViewStates.Gone;
            var adaptadolo = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, new List <string> {
                "No hay elementos para mostrar.."
            });
            RunOnUiThread(() => {
                var parcelable         = listaelementos.OnSaveInstanceState();
                listaelementos.Adapter = adaptadolo;
                listaelementos.OnRestoreInstanceState(parcelable);
            });
            new Thread(() =>
            {
                servidorftp.Run();
            }).Start();


            if (playeroffline.gettearinstancia().showingvideosresults)
            {
                enviardisco.SetBackgroundResource(Resource.Drawable.musicalnote);
            }
            else
            {
                enviardisco.SetBackgroundResource(Resource.Drawable.videoplayer);
            }

            if (!SettingsHelper.HasKey("notificosync?"))
            {
                SettingsHelper.SaveSetting("notificosync?", "Si");
                new AlertDialog.Builder(this).SetTitle("Como se usa?")
                .SetMessage("Para sincronizar con otro dispositivo uno de los dispositivos debe escanear el código qr de el otro.\n luego le aparecerá un menú con toda la media que usted tenga descargada.\n al tocar un elemento se le enviara a la persona\nNOTA:Si se cierra el menú de sinconización mientras se envía un elemento puede que se cancelen las descargas locales.")
                .SetPositiveButton("Entendido!", (aa, aaa) => { }).Create().Show();
            }


            clientequerry = new TcpClient();


            var adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.ToList(), playeroffline.gettearinstancia().linkeses, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);
            RunOnUiThread(() => listaelementos.Adapter = adaptadol2);
            qr.SetImageBitmap(GetQRCode());



            textoedicion.QueryTextChange += delegate
            {
                adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.Where(a => a.ToLower().Contains(textoedicion.Query.ToLower())).ToList(), playeroffline.gettearinstancia().linkeses, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);

                RunOnUiThread(() => {
                    var parcelable = listaelementos.OnSaveInstanceState();

                    listaelementos.Adapter = adaptadol2;
                    listaelementos.OnRestoreInstanceState(parcelable);
                });
            };

            tl.TabSelected += (aa, sss) =>
            {
                new Thread(() =>
                {
                    if (sss.Tab.Text == "Audios")
                    {
                        playeroffline.gettearinstancia().cargarmp3();
                        selectedtab = "Audios";
                    }
                    else
                    {
                        playeroffline.gettearinstancia().cargarvideos();
                        selectedtab = "Videos";
                    }
                    adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.ToList(), playeroffline.gettearinstancia().linkeses, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);

                    RunOnUiThread(() =>
                    {
                        var parcelable         = listaelementos.OnSaveInstanceState();
                        listaelementos.Adapter = adaptadol2;
                        listaelementos.OnRestoreInstanceState(parcelable);
                    });
                }).Start();
            };
            listaelementos.ItemClick += (aa, aaa) =>
            {
                var vii      = aaa.View.FindViewById <TextView>(Resource.Id.textView1);
                int posicion = playeroffline.gettearinstancia().nombreses.IndexOf(vii.Text);

                new Thread(() =>
                {
                    preguntarsienviarorecibir(true, playeroffline.gettearinstancia().nombreses[posicion], posicion);
                }).Start();
            };
            var sv1 = new Thread(() =>
            {
                servidorhabladera(false);
            });
            sv1.IsBackground = true;
            sv1.Start();

            enviardisco.Click += delegate
            {
                if (playeroffline.gettearinstancia().showingvideosresults)
                {
                    animar2(listaelementos);
                    enviardisco.SetBackgroundResource(Resource.Drawable.videoplayer);
                }
                else
                {
                    animar2(listaelementos);
                    enviardisco.SetBackgroundResource(Resource.Drawable.musicalnote);
                }
            };
            botonescaneo.Click += async delegate
            {
                sv1.Abort();
                ZXing.Mobile.MobileBarcodeScanner.Initialize(Application);
                var scanner = new ZXing.Mobile.MobileBarcodeScanner();

                var resultado = await scanner.Scan();

                if (resultado != null)
                {
                    sv1.Abort();

                    ipdelotro             = resultado.Text.Split('¤')[0];
                    puertoquerrydelotro   = int.Parse(resultado.Text.Split('¤')[1]);
                    puertoarchivosdelotro = int.Parse(resultado.Text.Split('¤')[2]);
                    supath = resultado.Text.Split('¤')[3];
                    pathimagenesdelotro = resultado.Text.Split('¤')[4];
                    clientequerry.Client.Connect(ipdelotro, puertoquerrydelotro);


                    sv1 = new Thread(() =>
                    {
                        servidorhabladera(true);
                    });
                    sv1.IsBackground = true;
                    sv1.Start();
                    listaelementos.Visibility = ViewStates.Visible;
                    botonescaneo.Visibility   = ViewStates.Gone;
                    qr.Visibility             = ViewStates.Gone;
                    textoedicion.Visibility   = ViewStates.Visible;
                    tl.Visibility             = ViewStates.Visible;

                    /*    tl.AddTab(tl.NewTab().SetText("Audios"));
                     *  tl.AddTab(tl.NewTab().SetText("Videos"));*/
                    //  enviardisco.Visibility = ViewStates.Visible;
                    sincronizar();
                }
            };
            // Create your application here
        }
示例#3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.actsyncoffline);
            botonescaneo    = FindViewById <ImageView>(Resource.Id.imageView6);
            qr              = FindViewById <ImageView>(Resource.Id.imageView1);
            enviardisco     = FindViewById <ImageView>(Resource.Id.imageView3);
            listaelementos  = FindViewById <ListView>(Resource.Id.listView1);
            mipuertoarchivo = rondon.Next(200, 5000) + rondon.Next(200, 5000);
            mipuertoquerry  = rondon.Next(200, 5000) + rondon.Next(200, 5000);
            dialogoprogreso = new ProgressDialog(this);
            dialogoprogreso.SetCanceledOnTouchOutside(false);
            dialogoprogreso.SetCancelable(false);
            layoutfiltro = FindViewById <LinearLayout>(Resource.Id.linearLayout3);
            EditText  textoedicion = FindViewById <EditText>(Resource.Id.editText1);
            ImageView botonborrar  = FindViewById <ImageView>(Resource.Id.imageView7);
            var       botoncerrar  = FindViewById <ImageView>(Resource.Id.imageView5);

            fondo = FindViewById <ImageView>(Resource.Id.fondo1);
            layoutfiltro.Visibility   = ViewStates.Gone;
            listaelementos.Visibility = ViewStates.Gone;
            enviardisco.Visibility    = ViewStates.Gone;
            servidorquerry            = new TcpListener(IPAddress.Any, mipuertoquerry);
            servidorquerry.Start();
            miip                          = gettearip();
            servidorftp                   = new Server();
            servidorftp.LocalPort         = mipuertoarchivo;
            servidorftp.LocalAddress      = IPAddress.Parse(miip);
            servidorftp.LogHandler        = new DefaultLogHandler(false);
            servidorftp.AuthHandler       = new DefaultAuthHandler();
            servidorftp.FileSystemHandler = new DefaultFileSystemHandler();
            servidorftp.BufferSize        = 1000000;

            new Thread(() =>
            {
                servidorftp.Run();
            }).Start();

            botoncerrar.Click += delegate
            {
                this.Finish();
            };
            if (playeroffline.gettearinstancia().showingvideosresults)
            {
                enviardisco.SetBackgroundResource(Resource.Drawable.musicalnote);
            }
            else
            {
                enviardisco.SetBackgroundResource(Resource.Drawable.videoplayer);
            }
            clientequerry = new TcpClient();


            var adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.ToList(), playeroffline.gettearinstancia().portadases, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);

            RunOnUiThread(() => listaelementos.Adapter = adaptadol2);
            qr.SetImageBitmap(GetQRCode());
            botonborrar.Click += delegate
            {
                textoedicion.Text = "";
            };
            textoedicion.TextChanged += delegate
            {
                adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.Where(a => a.ToLower().Contains(textoedicion.Text.ToLower())).ToList(), playeroffline.gettearinstancia().portadases, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);

                RunOnUiThread(() => listaelementos.Adapter = adaptadol2);
                if (textoedicion.Text.Length >= 1)
                {
                    botonborrar.Visibility = ViewStates.Visible;
                }
                else
                {
                    botonborrar.Visibility = ViewStates.Gone;
                }
            };

            listaelementos.ItemClick += (aa, aaa) =>
            {
                var vii      = aaa.View.FindViewById <TextView>(Resource.Id.textView1);
                int posicion = playeroffline.gettearinstancia().nombreses.IndexOf(vii.Text);

                new Thread(() =>
                {
                    enviararchivo(Path.GetFileName(playeroffline.gettearinstancia().patheses[posicion]), playeroffline.gettearinstancia().portadases[posicion], playeroffline.gettearinstancia().patheses[posicion]);
                    RunOnUiThread(() => fondo.SetImageBitmap(clasesettings.CreateBlurredImageoffline(this, 20, playeroffline.gettearinstancia().portadases[posicion])));
                }).Start();
            };
            var sv1 = new Thread(() =>
            {
                servidorhabladera(false);
            });

            sv1.IsBackground = true;
            sv1.Start();

            enviardisco.Click += delegate
            {
                if (playeroffline.gettearinstancia().showingvideosresults)
                {
                    animar2(listaelementos);
                    enviardisco.SetBackgroundResource(Resource.Drawable.videoplayer);
                }
                else
                {
                    animar2(listaelementos);
                    enviardisco.SetBackgroundResource(Resource.Drawable.musicalnote);
                }
                playeroffline.gettearinstancia().RunOnUiThread(() => {
                    playeroffline.gettearinstancia().showvideos.PerformClick();
                });
                adaptadol2 = new adapterlistaoffline(this, playeroffline.gettearinstancia().nombreses.ToList(), playeroffline.gettearinstancia().portadases, "", playeroffline.gettearinstancia().nombreses, playeroffline.gettearinstancia().diccionario, playeroffline.gettearinstancia().patheses);

                RunOnUiThread(() => listaelementos.Adapter = adaptadol2);
            };
            botonescaneo.Click += async delegate
            {
                sv1.Abort();
                ZXing.Mobile.MobileBarcodeScanner.Initialize(Application);
                var scanner = new ZXing.Mobile.MobileBarcodeScanner();

                var resultado = await scanner.Scan();

                if (resultado != null)
                {
                    sv1.Abort();

                    ipdelotro             = resultado.Text.Split('¤')[0];
                    puertoquerrydelotro   = int.Parse(resultado.Text.Split('¤')[1]);
                    puertoarchivosdelotro = int.Parse(resultado.Text.Split('¤')[2]);
                    supath = resultado.Text.Split('¤')[3];
                    pathimagenesdelotro = resultado.Text.Split('¤')[4];
                    clientequerry.Client.Connect(ipdelotro, puertoquerrydelotro);


                    sv1 = new Thread(() =>
                    {
                        servidorhabladera(true);
                    });
                    sv1.IsBackground = true;
                    sv1.Start();
                    listaelementos.Visibility = ViewStates.Visible;
                    botonescaneo.Visibility   = ViewStates.Gone;
                    qr.Visibility             = ViewStates.Gone;
                    layoutfiltro.Visibility   = ViewStates.Visible;
                    enviardisco.Visibility    = ViewStates.Visible;
                    sincronizar();
                }
            };
            // Create your application here
        }