LectorRss:actualización 1.6.0

Y una nueva actualización. Esta sirve para corregir algunos errores ya existentes que en algunos casos han provocado cierres forzosos de la aplicación y para añadir la función de cambio de idioma, que es la que hace poner la versión a 1.6.0 en vez de 1.5.4. A claro, y el cambio de icono y logo en el market.

Empezando por la versión corta en las explicaciones sólo decir que para cambiar de idioma, entre los tres en los que tengo el programa, no hace falta que lo tengas en tu móvil. En el mío no tengo el catalán y funciona perfectamente. De hecho esta función viene sobre todo por este idioma que no ha entrado en Android hasta la versión 2.3.4, creo.
En los errores hay uno que me ha sacado un poco de mis casillas por ser otro olvido mío. Es el de marcar el estado de las entradas. Se supone que cuando miras una te la ha de marcar como leída, vayas desde la vista del canal o cambiando entre ellas y no lo estaba haciendo. Bien, en un caso es que llamaba demasiado pronto a la función encargada de efectuar el cambio de estado y en el otro ni siquiera llamaba…y no me dí cuenta.
Y ahora la explicación con algo de código, no mucho en esta ocasión.
Primero el cambio de idioma. He guardado el idioma como un entero en una preferencia y, aunque no hace falta, lo comprueba cada vez que se inicia la aplicación.
Para cambiarlo he añadido una opción a la pantalla de opciones generales con un spinner, todavía no los había usado más allá de los ejemplos en los cursos que he seguido, y en esta parte no hay mucho más que explicar. Una vez pulsas en ‘Hacerlo’, vale tendría que haber dejado los típicos ‘Aceptar’ y ‘Cancelar’, pero no me apetecía, volviendo al tema, al pulsar en ‘Hacerlo’ vamos al meollo del asunto que consiste simplemente en este método:

	public void cambiarIdioma(byte idioma){
		String abIdioma = null;
		switch(idioma){
			case CASTELLANO:
				abIdioma = "es";
				break;
			case CATALAN:
				abIdioma = "ca";
				break;
			case INGLES:
				abIdioma = "en";
				break;
		}
		Configuration idConf = new Configuration();
			Locale appLoc = new Locale(abIdioma);
			Locale.setDefault(appLoc);
			idConf.locale = appLoc;
			getBaseContext().getResources().updateConfiguration(idConf,
			    getBaseContext().getResources().getDisplayMetrics());
	}

He de eliminar ese switch y que ya lleguen los indicadores del idioma a través del parámetro del método, pero lo dejo para los momentos de afinar el código.
Al principio trataba de determinar si el idioma elegido era el que ya tenías puesto, si era así no se llamaba a este método. Y es así como ha de estar programado, peeeero, siempre hay un pero, la manera que estaba usando funcionaba de coña en 2.1 y me daba un cierre forzoso en las siguientes. Como no he encontrado una solución a esto todavía, no habré buscado lo suficiente, y me urge subir esta actualización por las otras cosas he decidido dejarlo así ya que no afecta al funcionamiento de la aplicación ni del teléfono.

En los errores que provocan cierres forzosos no sé muy bien que decir ya que creía que los tenía controlados. De nuevo creo que es así. Vienen de actualizar los canales y es como si el adapter.notifyDataSetChanged() se hiciese tarde, o no se hiciese, ya que en los logs es el motivo que da para dar notificar el motivo del fallo. Así que por enésima vez espero haberlo cazado. Por ahora no me ha vuelto a ocurrir, ni en los diverso emuladores ni en el Blade.
Y ya el icono y el logo, espero que os parezcan mejores que los anteriores. Estoy exprimiendo mis posibilidades artísticas….

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s