|
||
|
#21
|
||||
|
||||
|
EDITO: Esto que expongo no va a funcionar nunca. Ya estaba muy espeso cuando puse esto. Lo siento.
Creo que puede hacerse si en vez de nombres completos para tareas expresados en regex almacenamos las palabras q utilizamos para las tareas una a una en una variable separadas todas por |. Esto nos permite traducir lo dicho a digamos regex y entonces buscar ese patrón en la variable que contiene todos los nombre de las tareas según están escritos en tasker. Con dos buscar ya obtenemos el nombre de de la tarea. Lo que no encuentre coincidencia al sustituir las palabras es que es la información adicional que se pasa a la tarea en par1. Xej: abrir root explorer. Root explorer no coincide con ninguna palabra del array luego es la información para par1. O sea whatsapp es el Qué de la tarea abrir. Bueno es lo único que se me ha ocurrido.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Última edición por mlesir Día 15/03/15 a las 18:53:49. |
|
|
|
#22
|
||||
|
||||
|
Mlesir, te estás desviando de tu idea inicial y tornando el funcionamiento más complejo.
La idea que te propuse es para tornar el sistema más eficiente sin complicarte mucho. Los problemas que pones con la búsqueda se pueden solucionar, lo que pasa es que regex es muy rastrero y cada flavor tiene también sus reglas. Tasker utiliza javascript flavor, así que hay que limitarse al motor. Por ej.: no puedes utilizar un lookbehind negativo o infinito. Además, todavía no entiendo bien porque vas a tener una tarea abrir whatsapp cuando la tarea abrir ya existe y de ahí puedes abrir whatsapp. A ver si mañana tengo un hueco, miro las cosas que pides y te digo la expresión. Ahora mismo es muy tarde y me voy a enredar. |
| Gracias de parte de: | ||
|
#23
|
||||
|
||||
|
Graphic llevas razón que me he estoy desviando pero es que estoy obsesionado con que sea rápido. Y es que tiene que ser rápido.
El caso es que ya estoy bloqueado. Fíjate que pensaba ya hacerlo con javascript y quitarme de complicaciones. Al fin y al cabo es lo mismo q en tasker, usar un forma e ir comparando pero se supone que con javascript va muchísimo mas rápido. Pues ni eso soy capaz! Escribo esta simple tarea y no soy capaz de tener disponible el array q hace el split en tasker. Jodela! Con esta tarea puedo comprobar q todas las variables salen vacías menos la %estasi. No lo entiendo si son locales se supone q están disponibles en tasker. Total q ya no se ni por donde tirar ni que usar ni nada.... Javascript (333) A1: JavaScriptlet [ Código:var aficiones = "futbol,hockey,natacion"; var aficiones = aficiones.split(","); var ddd = aficiones; var estasi = aficiones[2]; alert (aficiones[1]); Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ] A2: Flash [ Texto:%aficiones %estasi %aficiones() %aficiones3 %ddd %ddd2 Largo:Apagado ] P.D: respecto a lo de abrir y abrir whatsapp te pongo un ejemplo mejor. Pulsar. Es posible que tuviéramos varias tareas con pulsar: 1 Pulsar X ( donde x es el nombre del elemento) 2 Pulsar largo X ( para emular el dejar pulsado en el elemento x) 3 Pulsar dos veces X En definitiva quiero decir que habrá tareas q compartan palabras, o lo q es lo mismo, habrá una palabras que utilicemos para invocar distintas tareas. De todos modos ya digo que con este proyecto estoy atorado, cuanto mas lo pienso mas perdido estoy.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
|
#24
|
||||
|
||||
|
A ver Mlesir, por partes:
Tu último ej. de pulsar, no probé tu proyecto en funcionamiento pero me parece que de como tienes el sistema no te funciona. Para un comando de dos palabras, lo que comentas en el punto 2 de ordenar de mayor a menor no es obligatorio pero yo enfocaría por ahí. Así que ordénalo para hacer esto. Me fijé que tienes una tarea con 3 regex: escrib(e|a|ir), pero yo solo contemplo 2, así que si quieres los 3 tendré que modificar el regex y será menos eficiente. Creo que ni hace falta el perfil Buffer Lleno, lo haría todo por el Comando Universal y solo variables locales. Si te fijas bien, estás copiando constantemente variables locales a globales y viceversa entre los dos perfiles. Yo haría esto: Comando Universal A1 Establecer %tas a %Tas A2 La misma acción pero almacenar en: %comandos A3 For variable: %parametro items: %comandos() A4 Buscar Reemplazar: %parametro buscar: %tas, Una sola coincidencia: encendido, Almacenar en: %tarea, Reemplazar: encendido Con: (nada) Con la A4 ya tienes el nombre de la tarea y del parámetro. De aquí puedes buscar sin regex o unificas todo en la expresión. Ahora coges la primera palabra de la %tarea1 para descomponerla. Yo pensé hacerlo a través de sección de variable con 2 contadores inversos. No sé cuál es tú idea. Para la búsqueda del regex utiliza esta expresión: (%inicio)(\((?:[^|])+?\|(%final)\)|\((%final)\|(?:[^)])+?\))(%tarea1)?(?=\||$) %inicio = inicio de la palabra, %final = las letras que se van separando por el final A ver si no te enfrentas a más problemas. Lo siento pero no tengo mucha disponibilidad. Me equivoqué y puse %parametro en vez de %tarea1 en la última variable. Cambiado. Última edición por GraphicAdventure Día 19/03/15 a las 21:04:48. |
| Gracias de parte de: | ||
|
#25
|
||||
|
||||
|
Me puse con tu proyecto.
Terminé mi idea y está funcionando. Con 1 variable solucioné el juntar las letras, no me hizo falta un contador. Probé tus perfiles, para 2 palabras no te funciona. Tienes que ordenar el array de mayor a menor. Hacerlo en java no estoy seguro que vaya a ser más rápido porque no vas a modificar el array. Haré pruebas y te diré. Las variables de java están disponibles en Tasker pero un array no, tienes que declararlo: var tas = []; var tas = global("Tas").split(","); Lo mejor es que tengas la %Tas como la tienes ahora para la activación del perfil y otra %Tasarray concatenada con "," por ej. para separarla en javascriptlet si quieres probarlo. Si no, voy a ver si es posible separarla con regex, pero lo veo difícil porque hay muchas "|" y no siguen un orden y además incrementaría el tiempo de ejecución. Veo 2 posibilidades: 1- Verificar el comando de voz en %tas 2- Procesar el array %tas() localmente y verificar todos los índices Cualquier una de estas será más rápida que hacerlo globalmente y todo en un perfil. Puedes aprovechar el Buffer Lleno para hacer otras cosas. Así que pueda probaré que todo está funcionando sin fallos y voy a medir el tiempo de ejecución de cada método a través de la %TIMEMS. En la A1 pongo %timems a %TIMEMS, en la última acción pongo %Timems a %TIMEMS-%timems Cuando tenga datos te comento. Por cierto, no te obsesiones porque ya lo tienes hecho, solo cuestión de ir modificando. Última edición por GraphicAdventure Día 21/03/15 a las 18:56:25. |
|
#26
|
||||
|
||||
|
Que tal Graphic?
Pues gracias por tu trabajo. Yo me he decantado por la idea de javascript. El regex siempre le encontraba alguna pega. No cubre todas las posibilidades, limita la manera en que cada uno puede escribir el regex para esa tarea/as. Además java es mas fácil porque es mas comprensible para los taskeros. De momento voy lento pq nunca he utilizado javascript. Por cierto gracias por decirme como hacer lo del array. Totalmente de acuerdo contigo en intentar resolver todo en una sola tarea y así poder utilizar locales. Podrías ponerme el proyecto tal como lo tienes para poder estudiarlo? Es que así lo entiendo mejor. O si quieres ponlo para que lo importe. Como tu veas. Por cierto para separar los comandos he aprendido que se podría usar esta expresión: "(?#comentario)" Es na forma de hacer comentarios en regex. Así separa pero no interfiere.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
|
#27
|
||||
|
||||
|
Puedes escribir el regex de las tareas como quieras, la limitación sería en el número de posibilidades, pero se puede solventar: (%inicio1)(\(.*?(%final1).*?\))(%tarea1)?
No la utilicé inicialmente no vaya a ser que algo se me escape ahora mismo, tendría que analizar. Tienes que tener en cuenta que aunque que pases el array por java necesitas regex para separar los comandos y es necesario ordenar el array. Puedo hacerlo sin ordenar pelo resultaría más trabajoso y menos eficiente por eso te dije para enforcarlo por ahí. El regex no es text-directed y no analiza todos los OR. Pondré el perfil así que verifique que no tiene fallos, a ver si mañana queda listo. Que yo sepa javascript no soporta comentarios, tendré que probarlo. Si funciona perfecto, esa parte está solucionada. |
|
#28
|
||||
|
||||
|
Al final no me dio tiempo de comparar los 2 métodos, simplemente ejecuté unas 7 órdenes seguidas para verificar si funciona y encontré un fallo con un espacio al final del nombre de la tarea y me olvidé de los paréntesis de las tareas sin regex.
Para no perder más tiempo solucioné con una acción. Funciona igual de bien pero ya pondré la solución adecuada. Se pueden utilizar varias órdenes sin limitaciones en regex: escrib(o|es|e|a|ir). Tienes que ordenar el array. Haré el método de descomposición del array y mediré los tiempos. El que menos tiempo consuma será el más eficiente, no hay que dar más vueltas al asunto. Por cierto, el comentario (?#comment) funciona. Yo daba por sentado que en javascript no se podía ya que no soporta free-spacing. Perfil: Tasker - Com Univ.rar EDIT: El problema de los paréntesis está resuelto adecuadamente, además me había olvidado que hay acciones como (esto|aquello). Ví que tienes una tarea llamada (atrás)|(detrás), tienes que utilizar el formato de arriba. Última edición por GraphicAdventure Día 23/03/15 a las 05:46:15. |
| Gracias de parte de: | ||
|
#29
|
||||
|
||||
|
Al fin!
Creo que ya tengo el javascript resuelto. Lo que me ha costado! No sera lo mas elegante ni mas limpio pero funciona. Bueno yo probaré por mi parte con javascript como ya te dije y a ver cuanto tarda. Una vez que lo tenga todo engranado estudiaré tu método y vemos cual es mejor. Te he hecho caso y he intentado hacer todo el proceso en la tarea "InBuffer" para así solucionarlo todo con un solo script y utilizando solo variables y arrays locales. Supongo que mañana lo tengo listo para que le eches un vistazo y yo miro el tuyo.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Los siguientes 4 usuarios han agradecido a mlesir su comentario: | ||
|
#30
|
||||
|
||||
|
Por fin! Mi nueva version del asistente de voz:
https://www.dropbox.com/s/9sz7q845yi...2.prj.xml?dl=0 Arregla fallos e intenta mejorar la velocidad. Además como principal novedad ahora trae lo mismo que con las tareas pero con variables. Respecto al tema de las variables: Se compone de la tarea "Actualizar variables" y la tarea "(decir)". Limitaciones: son dos las limitaciones. La primera es que con la acción probar o test variables globales de tasker no se incluyen las variables vacías. La segunda es que las variables globales no desaparecen aunque la tarea/s que las creó haya sido borrada. Si siguen teniendo un valor siguen estando ahí y por tanto la acción prueba las recoge. La tarea actualizar variables lo que hace es coger todas las variables globales que tenemos en Tasker, todas! Comprueba si tienen la "marca" que le hayamos incluido. En este proyecto es "_v" escrito al final de la variable. Por ejemplo: %Bateria_v. Escribiendo la variable con esta marca hará que el asistente la incluya en su lista de variables disponibles desde el asistente. Resumiendo mucho después lo que hace es generar dos variables que agrupan todos los elementos separados por la expresión "|#|". %Vars contiene las variables, por ejemplo: %Bateria|#|%Hora|#|%Wifi %VarC contiene las expresiónes regex relativas a esas variables: bater(i|í)a|#|horas*|#|Wifi Los elementos de estas variables además se ordenan de mayor longitud a menor longitud. En principio cuando creamos la variable por ejemplo %Mi_ubicacion la expresión regex para esa variable es la variable quitándole el % y la marca _v. Si queremos lo podemos dejar así. Si no, podemos editar la variable %VarC y poner por ejemplo: en vez de Mi_ubicacion, Mi_ubicaci(o|ó)n Una vez que tenemos estas entra en juego la tarea "(decir)": Antes de nada comprueba que lo que ha de decir necesita sustituir variables o es una tarea de decir mandada por ejemplo por que nos leen una notificación que ha entrado con lo cual se saltaría toda esta parte. Mediante Javascript fundamentalmente sustituirá lo que coincida con las expresiones regex de variables por esa coincidencia+la variable. Por ejemplo digo: "decir batería y dime estado del wifi". El resultado será que dirá: "batería %Bateria y dime estado del wifi %wifi". De momento solo se usan las variables en decir. Pero porque no usarlas para poder sumar, establecer,limpiar, etc nuestras variables a lo que queramos? Respecto al tema de las tareas : usa las dos variable también. Esto nos permite a diferencia de antes que si no queremos no tenemos que escribir como regex el nombre de la tarea, porque podemos escribir su expresión regex en %TasC. Seguiré editando este post para hacerlo mas claro y explicar cosas que creo que me he dejado en el tintero. También me queda pendiente examinar tu proyecto Graphic y compararlos. Por cierto Graphic tenias razón. Los comentarios "(?#comentario) no me los acepta en Javascript. Curiosamente en una expresión regex de tasker en otra acción si. Por eso he tenido q usar como separador "|#|".
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Última edición por mlesir Día 09/04/15 a las 06:20:51. |
| Gracias de parte de: | ||
|
#31
|
||||
|
||||
|
Editado el primer post. Ese primer post es el que iré actualizando con las novedades. También esta allí el enlace de descarga de la nueva versión.
Graphic probando mi nueva versión me he dado cuenta de dos cosas: la primera es que realmente donde puede tardar es desde que dices algo hasta que dispara el contexto de AV. En eso no podemos hacer nada. Luego la tarea la hace a toda leche. Por eso me parece que no merece la pena intentar hacer la tarea más rápida para arañar una decima de segundo cuando lo que tarda es realmente el reconocimiento en si no? Por otro lado he notado que el reconocimiento a veces tarda mas y otra menos. Pero vamos que se nota claramente la diferencia. No entiendo la razón ??? A ver tu que opinas pero yo creo que usar javascript y no depender tanto de regex, de la forma que lo he hecho es mejor porque asi permite más flexibilidad. Ahora el que quiera que escriba las tareas directamente como regex, o no. Incluso puedes escribir el nombre de las tareas sin la "marca", pasar de las tareas de actualizar variables y tareas y simplemente editar tu mismo las dos variables que guardan los nombres exactos y sus equivalentes en regex. P.D: utilizando el MiKey de xiaomi y la app que me recomendo Ruco es una gozada. Aprietas el botoncito y Ala! a darle ordenes!
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Los siguientes 3 usuarios han agradecido a mlesir su comentario: | ||
|
#32
|
||||
|
||||
|
La tarea de actualizar comandos o tareas no funciona bien. Falla después de la primera vez, no incorpora las nuevas tareas. Estoy en ello, pero de momento tendréis que incorporarlas manualmente.
Lo siento.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Gracias de parte de: | ||
|
#33
|
||||
|
||||
|
Una duda mlesir... Teniendo GSM activado cuando está conectado al Bluetooth, hay que cambiar alguna opción de su configuración, para compatibilizarlo con los perfiles AUTOVOICE BT (Y BT2) PULSADO?
Por ejemplo, ¿hay que desactivar las opciones "lanzar reconocimiento con botón ppal (o secundario) Bluetooth, y activarlas en autovoice? (Creo recordar que en el manual de GSM decía que en autovoice tenían que estar desmarcadas).
__________________
|
|
#34
|
||||
|
||||
|
Puff!!! Menuda pregunta!! A ver quien se acuerda ahora de GSM!!!jeje
Vamos a ver... Lo que digas en Autovoice lo recoge todo lo que utilice Autovoice. Si dices hola, ese hola lo detectará GSM, un perfil que tengas tu o hasta Google Now si es el caso. Lo mismo pasa con pulsar el botón de bluetooth. El problema entonces es que, si tienes GSM, también marcado en autovoice que se lance el reconocimiento automaticamente al pulsarlo y además tienes un contexto tuyo de boton BT pulsado, los tres lo van a detectar y se puede liar un jaleo. Todo será que lo pruebes pero vamos que en principio no parece buena idea. Es como si tuvieras tres contextos de pantalla encendida pero cada uno con una tarea distinta, te imaginas el lio? Bueno pues dicho esto, lo que yo haría sería utilizar sólo una manera de detectarlo, o bien la que incorpora AV digamos de serie, o GSM o un contexto tuyo. Si utilizas el de GSM puedes utilizarlo para disparar contextos tuyos como los de este asistente, al fin y al cabo GSM lo único que hace es encender el modo continuo eso si la diferencia es que lo hace de un modo controlado, quiero decir que sabes que a los 10 segundos lo apaga o que si no te entiende te lo repite, etc. Si quieres utilizar un contexto tuyo que detecte el botón bluetooth puedes hacerlo pero es mejor entonces que deshabilites las otras opciones ( tanto en GSM como en AV). Y lo mismo. Si en este contexto tu dices "mandar whatsapp a ...." a GSM se lo va chivar AV asi que no hay pproblema. Lo único que es incompatible es tener comandos nuestros que coincidan con los de GSM ( leer, contestar, etc). Por lo demás ya te digo que no creo que haya ningún problema, si lo hay me lo dices y lo pienso con más calma. Por último: lo de AV de botón 1 y 2, en principio no es que sean dos botones, sino dos maneras distintas de detectar el botón por si la otra falla. Pero si tienes la suerte, que yo no, de tener un dispositivo que cuente con dos botones, que AV detecte, uno como el 1 y otro como el 2, entonces si puedes utilizar un contexto propio y GSM por ejemplo. A uno le asocias el botón 1 y al otro el 2.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Gracias de parte de: | ||
|
#35
|
||||
|
||||
|
ACTUALIZACIÓN: He actualizado la tarea "ACTUALIZAR COMANDOS". Si no funciona ya me cargo el móvil a bocaos!!! Esta en el enlace de descarga como tarea suelta con el nombre de "ACTUALIZAR COMANDOS 4". Lo descargais, sustituis la versión vieja por la nueva y listo.
Por otro lado os informo de que AutoInput en su versión Beta trae una nueva característica que es que siempre que detecte que tiene que hacer algo enciende y desbloquea la pantalla automaticamente. Además marcando en la primera acción de AI que use la tarea, el parametro "esta es la primera acción" y luego poniendo la acción system lock al final te deja el móvil como estaba, si tenía la pantalla apagada te la deja apagada y si la tenías encendida pues encendida. Al menos eso es más o menos lo que yo he entendido, el problema es que a mi nunca me paga la pantalla. Me lo tengo que estudiar con más tiempo todo esto. En todo caso para mi lo realmente importante es que cuando le demos una orden al asistente que implique usar AI este automaticamente encenderá la pantalla, genial!!! Bien es cierto que esto tampoco es muy complicado solucionarlo con tasker: basta hacer una tarea para el asistente que sea "encender pantalla" y otra "apagar", o mejor aún como dice Graphic para no llenar todo de tareas, poner en la misma que mediante IF detecte si queremos apagar o encender. Cuando tengamos esto iniciamos el reconocimiento de voz y decimos: " encender pantalla abrir whatsapp pulsar Maria escribir hola pulsar enviar apagar pantalla". Por cierto se me olvidaba que también ha mejorado la acción de escribir para que ya no tengamos que copiarlo al portapapeles lo que decimos.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Los siguientes 3 usuarios han agradecido a mlesir su comentario: | ||
|
#36
|
||||
|
||||
|
Wow, impresionante trabajo y grandes ideas. Muchas gracias por compartirlo, de momento no pero algún día me pondré a configurarlo, se le puede sacar mucho partido
Eso sí, no me ha quedado claro lo de 'si ya lo hace google now, para qué añadirlo', es decir qué pasará con las acciones que ya hace el GN? Se hacen dos veces? Yo por ejemplo uso alguna tarea sencilla como enciende el Bluetooth. Y me pasa que por un lado tasker lo enciende gracias a mi contexto con autovoice, pero GN además abre las opciones de Bluetooth por su cuenta. Cómo llevas tú estas situaciones? Yo tengo unos seis perfiles o asi creados con autovoice. Es decir seis contextos distintos... Lo cual se hace engorroso porque si hago muchos se me llena de perfiles... Ya veo que tú lo haces distinto, me lo tengo que mirar con tiempo porque la idea está muy bien, gracias de nuevo |
|
#37
|
||||
|
||||
|
Subido al primer post un pequeño video para que veáis lo que se puede hacer con el asistente de voz. ( y SIN ROOT!)
Actualizado el asistente (la versión de ahora es la 4) y las tareas ( ahora son la versión 2). He corregido errores, añadido que te avise de cuando una tarea se ha ejecutado con error y también he añadido alguna tarea nueva. Graphic lo he pensado y llevas toda la razón con lo de las tareas. Resultaría mucho mejor meter en una sola tarea varias subtareas. Por ejemplo apagar y encender wifi, mediante IR A ( en etiqueta pondríamos una variable) podríamos hacer que hiciera apagar o encender dependiendo de la variable. O por ejemplo meter en una sola tarea todas las que se refieran a escribir, copiar, borrar texto, etc. Es mucho más claro, ocupa menos etc. Pero no va a ser fácil pasarle a la variable el nombre de lo que debe hacer. Más adelante intentaré solucionarlo. P.D: si alguno nota algún fallo, quiere sugerir algo o lo que sea, comentarmelo por favor. Yo lo he probado un poco y ahora parece que todo está correcto. Por supuesto si alguno se le ocurre alguna tarea nueva para utilizar con el asistente que la comparta, al fin y al cabo las que he creado son sólo un aperitivo de todo lo que se puede hacer. Como veréis además las tareas más simples no pueden ser, son dos o tres acciones, incluso una.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Última edición por mlesir Día 22/04/15 a las 21:47:34. |
| Gracias de parte de: | ||
|
#38
|
||||
|
||||
|
Se me olvidaba, ya está arreglada la tarea de actualizar comandos. A mi me ha pasado que a la hora de incluir una nueva tarea no la incluyo a la primera, sino la segunda vez que ejecuté la tarea actualizar comandos. Quizás sea que Tasker no guarda inmediatamente las nuevas tareas aunque se haya salido de la aplicación.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
|
#39
|
||||
|
||||
|
Genial!!!
Cuales 3 archivos son los mas actuales para descargar, ASISTENTE_VOZ_3 MODULO_BLUE_VOZ y TAREAS_VOZ_2? el que dice actualizar comandos tambien? |
|
|
|
#40
|
||||
|
||||
|
Lo mas actual es el Asistente de voz 4, tareas 2 y Modulo bluetooth no ha cambiado sigue siendo el mismo la de actualizar comandos no hace falta descargarla esta en el asistente.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
| Gracias de parte de: | ||
![]() |
Estás aquí
|
||||||
|
||||||