diff --git a/app/build.gradle b/app/build.gradle index 34535b96..112536ea 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -50,8 +50,8 @@ android { applicationId "com.kabouzeid.gramophone" minSdkVersion 16 targetSdkVersion 22 - versionCode 59 - versionName "0.9.42b dev-1" + versionCode 60 + versionName "0.9.43b dev-1" } buildTypes { release { diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java index 89accaac..88ad1c5c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java @@ -48,7 +48,7 @@ public class PlayingNotificationHelper { private int notificationId = hashCode(); private RemoteViews notificationLayout; - private RemoteViews notificationLayoutExpanded; + private RemoteViews notificationLayoutBig; private Song currentSong; private boolean isPlaying; @@ -82,7 +82,7 @@ public class PlayingNotificationHelper { this.isPlaying = service.isPlaying(); notificationLayout = new RemoteViews(service.getPackageName(), R.layout.notification); - notificationLayoutExpanded = new RemoteViews(service.getPackageName(), R.layout.notification_big); + notificationLayoutBig = new RemoteViews(service.getPackageName(), R.layout.notification_big); notification = new NotificationCompat.Builder(service) .setSmallIcon(R.drawable.ic_notification) @@ -93,7 +93,7 @@ public class PlayingNotificationHelper { .setContent(notificationLayout) .build(); - notification.bigContentView = notificationLayoutExpanded; + notification.bigContentView = notificationLayoutBig; setUpCollapsedLayout(); setUpExpandedLayout(); @@ -109,19 +109,19 @@ public class PlayingNotificationHelper { } private void setUpExpandedPlaybackActions() { - notificationLayoutExpanded.setOnClickPendingIntent(R.id.action_play_pause, + notificationLayoutBig.setOnClickPendingIntent(R.id.action_play_pause, retrievePlaybackActions(1)); - notificationLayoutExpanded.setOnClickPendingIntent(R.id.action_next, + notificationLayoutBig.setOnClickPendingIntent(R.id.action_next, retrievePlaybackActions(2)); - notificationLayoutExpanded.setOnClickPendingIntent(R.id.action_prev, + notificationLayoutBig.setOnClickPendingIntent(R.id.action_prev, retrievePlaybackActions(3)); - notificationLayoutExpanded.setOnClickPendingIntent(R.id.action_quit, + notificationLayoutBig.setOnClickPendingIntent(R.id.action_quit, retrievePlaybackActions(4)); - notificationLayoutExpanded.setImageViewResource(R.id.action_play_pause, getPlayPauseRes()); + notificationLayoutBig.setImageViewResource(R.id.action_play_pause, getPlayPauseRes()); } private void setUpPlaybackActions() { @@ -178,9 +178,9 @@ public class PlayingNotificationHelper { private void setUpExpandedLayout() { if (currentSong != null) { - notificationLayoutExpanded.setTextViewText(R.id.title, currentSong.title); - notificationLayoutExpanded.setTextViewText(R.id.text, currentSong.artistName); - notificationLayoutExpanded.setTextViewText(R.id.text2, currentSong.albumName); + notificationLayoutBig.setTextViewText(R.id.title, currentSong.title); + notificationLayoutBig.setTextViewText(R.id.text, currentSong.artistName); + notificationLayoutBig.setTextViewText(R.id.text2, currentSong.albumName); } } @@ -216,7 +216,7 @@ public class PlayingNotificationHelper { boolean backgroundColorSet = false; if (albumArt != null) { notificationLayout.setImageViewBitmap(R.id.icon, albumArt); - notificationLayoutExpanded.setImageViewBitmap(R.id.icon, albumArt); + notificationLayoutBig.setImageViewBitmap(R.id.icon, albumArt); if (isColored) { Palette.Swatch vibrantSwatch = Palette.from(albumArt).resizeBitmapSize(100).generate().getVibrantSwatch(); if (vibrantSwatch != null) { @@ -228,7 +228,7 @@ public class PlayingNotificationHelper { } } else { notificationLayout.setImageViewResource(R.id.icon, R.drawable.default_album_art); - notificationLayoutExpanded.setImageViewResource(R.id.icon, R.drawable.default_album_art); + notificationLayoutBig.setImageViewResource(R.id.icon, R.drawable.default_album_art); } if (!backgroundColorSet) { @@ -243,7 +243,7 @@ public class PlayingNotificationHelper { private void setBackgroundColor(int color) { notificationLayout.setInt(R.id.root, "setBackgroundColor", color); - notificationLayoutExpanded.setInt(R.id.root, "setBackgroundColor", color); + notificationLayoutBig.setInt(R.id.root, "setBackgroundColor", color); } public void killNotification() { @@ -261,8 +261,8 @@ public class PlayingNotificationHelper { if (notificationLayout != null) { notificationLayout.setImageViewResource(R.id.action_play_pause, playPauseRes); } - if (notificationLayoutExpanded != null) { - notificationLayoutExpanded.setImageViewResource(R.id.action_play_pause, playPauseRes); + if (notificationLayoutBig != null) { + notificationLayoutBig.setImageViewResource(R.id.action_play_pause, playPauseRes); } notificationManager.notify(notificationId, notification); } @@ -270,7 +270,7 @@ public class PlayingNotificationHelper { private void setNotificationTextDark(boolean setDark) { isDark = setDark; - if (notificationLayout != null && notificationLayoutExpanded != null) { + if (notificationLayout != null && notificationLayoutBig != null) { int darkContentColor = service.getResources().getColor(R.color.notification_dark_text_content_color); int darkContentSecondaryColor = service.getResources().getColor(R.color.notification_dark_text_secondary_content_color); int contentColor = service.getResources().getColor(R.color.notification_content_color); @@ -282,13 +282,13 @@ public class PlayingNotificationHelper { notificationLayout.setImageViewResource(R.id.action_play_pause, getPlayPauseRes()); notificationLayout.setImageViewResource(R.id.action_next, setDark ? R.drawable.ic_skip_next_black_36dp : R.drawable.ic_skip_next_white_36dp); - notificationLayoutExpanded.setTextColor(R.id.title, setDark ? darkContentColor : contentColor); - notificationLayoutExpanded.setTextColor(R.id.text, setDark ? darkContentSecondaryColor : contentSecondaryColor); - notificationLayoutExpanded.setTextColor(R.id.text2, setDark ? darkContentSecondaryColor : contentSecondaryColor); - notificationLayoutExpanded.setImageViewResource(R.id.action_prev, setDark ? R.drawable.ic_skip_previous_black_36dp : R.drawable.ic_skip_previous_white_36dp); - notificationLayoutExpanded.setImageViewResource(R.id.action_play_pause, getPlayPauseRes()); - notificationLayoutExpanded.setImageViewResource(R.id.action_next, setDark ? R.drawable.ic_skip_next_black_36dp : R.drawable.ic_skip_next_white_36dp); - notificationLayoutExpanded.setImageViewResource(R.id.action_quit, setDark ? R.drawable.ic_close_black_24dp : R.drawable.ic_close_white_24dp); + notificationLayoutBig.setTextColor(R.id.title, setDark ? darkContentColor : contentColor); + notificationLayoutBig.setTextColor(R.id.text, setDark ? darkContentSecondaryColor : contentSecondaryColor); + notificationLayoutBig.setTextColor(R.id.text2, setDark ? darkContentSecondaryColor : contentSecondaryColor); + notificationLayoutBig.setImageViewResource(R.id.action_prev, setDark ? R.drawable.ic_skip_previous_black_36dp : R.drawable.ic_skip_previous_white_36dp); + notificationLayoutBig.setImageViewResource(R.id.action_play_pause, getPlayPauseRes()); + notificationLayoutBig.setImageViewResource(R.id.action_next, setDark ? R.drawable.ic_skip_next_black_36dp : R.drawable.ic_skip_next_white_36dp); + notificationLayoutBig.setImageViewResource(R.id.action_quit, setDark ? R.drawable.ic_close_black_24dp : R.drawable.ic_close_white_24dp); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java index b5c65fe0..c3cfdbdd 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java @@ -39,9 +39,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicStateActivity } private void setUpPlayPauseButton() { - if (playPauseDrawable == null) { - playPauseDrawable = new PlayPauseDrawable(this); - } + updateFabState(false); getPlayPauseFab().setImageDrawable(playPauseDrawable); final int accentColor = ThemeSingleton.get().positiveColor; @@ -52,7 +50,6 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicStateActivity getPlayPauseFab().getDrawable().clearColorFilter(); } - updateFabState(false); final GestureDetector gestureDetector = new GestureDetector(this, new SmallOnGestureListener() { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { @@ -99,6 +96,9 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicStateActivity } protected void updateFabState(boolean animate) { + if (playPauseDrawable == null) { + playPauseDrawable = new PlayPauseDrawable(this); + } if (MusicPlayerRemote.isPlaying()) { playPauseDrawable.setPause(animate); } else { diff --git a/app/src/main/res/layout/notification.xml b/app/src/main/res/layout/notification.xml index 9d2a7a71..c338ece1 100644 --- a/app/src/main/res/layout/notification.xml +++ b/app/src/main/res/layout/notification.xml @@ -14,125 +14,139 @@ ~ limitations under the License --> - + + internal:layout_minHeight="64dp"> - - - - - - - - - - - - - - - + tools:ignore="UselessParent"> - + - + + + + android:minHeight="@dimen/notification_large_icon_height" + android:orientation="vertical"> + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/notification_big.xml b/app/src/main/res/layout/notification_big.xml index 93f8d49e..9d52593c 100644 --- a/app/src/main/res/layout/notification_big.xml +++ b/app/src/main/res/layout/notification_big.xml @@ -15,142 +15,154 @@ --> - + - - - - - + android:layout_height="match_parent" + android:background="#00000000" + tools:ignore="UselessParent"> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index cc157039..40efa8e1 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -4,13 +4,13 @@ Reproduciendo %1$s de %2$s Archivo de audio ¿Quieres establecer %1$s como tono de llamada? - %1$s se establecio como tono de llamada + %1$s se ha establecido como tono de llamada Establecer como tono de llamada Compartir "Ajustes" Acerca de - Reproduciendo ahora - Limpiar lista de reproducción + Reproduciendo + Vaciar lista de reproducción Cola de reproducción Agregar a favoritos Eliminar de favoritos @@ -27,9 +27,9 @@ Artistas Canciones Listas de reproducción - Lista de reproduccion vacia - Nada se está reproduciendo - Ocurrió un error al reproducir esta canción. + Lista de reproducción vacía + No se está reproduciendo nada + Ocurrió un error al reproducir esta canción Lo sentimos, no encontramos una biografía correspondiente a éste artista Biografía No podemos encontrar el foco de audio @@ -42,7 +42,7 @@ Pista "Pista (2 para pista 2 ó 3004 para CD3 pista 4)" El título del álbum o el artista del álbum está vacío. - Escribiendo archivo + Escribiendo archivo... Guardando cambios... Detalles Nombre del archivo @@ -50,7 +50,7 @@ Tamaño Formato Duración - Bitrate + Tasa de bits Frecuencia de muestreo Ir al artista Ir al álbum @@ -60,43 +60,41 @@ "Phonograph es un reproductor de música gratuito basado en Material Design hecho por" Sin resultados Actualizar imagen del artista - Imagen de artista actualizada. - No se puedo subir la imagen del artista. + Imagen de artista actualizada + No se puedo subir la imagen del artista Actualizando... "1 título añadido a la cola de reproducción" Añadir %1$d a la cola de reproducción Eliminar de la lista de reproducción Columnas de la cuadrícula - Columnas de la cuadrícula (apaisado) - Vista + Columnas de cuadrícula (apaisado) + Ver como %1$d canciones añadidas a la lista de reproducción Lista de reproducción %1$s creada - Lista de reproducción %1$s borrada - %1$d canciones eliminadas. + Lista de reproducción %1$s eliminada + %1$d canciones eliminadas No se pudo crear la lista de reproducción %1$s?]]> - } {} {%1$s} ? ¡Esto no se puede deshacer!]]> - %1$d ? - ]]> - %1$s?]]> - %1$d canciones?]]> - %1$s de la lista de reproducción?]]> - %1$d canciones de la lista de reproducción?]]> + } {} {%1$s}? ¡Esto no se puede deshacer!]]> + %1$d?]]> + %1$s?]]> + %1$d canciones?]]> + %1$s de la lista de reproducción?]]> + %1$d canciones de la lista de reproducción?]]> Borrar canción Borrar canciones - Remover canción de la lista de reproducción? + Eliminar canción de la lista de reproducción ¿Eliminar canciones de la lista de reproducción? Renombrar lista de reproducción Borrar lista de reproducción Eliminar listas de reproducción Limpiar lista de reproducción "Agregar a la lista de reproducción" - "Advertencia: Esta operación no se puede deshacer" - Reproducción aleatoria + "Advertencia: ¡Esta operación no se puede deshacer!" + Modo aleatorio Reproducción aleatoria del Álbum Reproducción aleatoria del Artista - Reproducción aleatoria de la lista de reproducción + Reproducción aleatoria de la Lista de reproducción Última abierta Claro Oscuro @@ -119,7 +117,7 @@ Cualquier lugar Caratula en la pantalla de bloqueo Notificación coloreada - Ignorar arte proveniente de almacenamiento + Ignorar ilustraciones provenientes de la tarjeta de memoria Quitar silencio entre canciones Forzar portada de álbum a cuadrado Barra de Reproducción Actual opaca @@ -139,9 +137,9 @@ %1$d seleccionado Seleccionar Por defecto - Color Primario + Color primario Color de énfasis - El color principal por defecto es índigo. + El color principal por defecto es índigo El color de énfasis es rosado Actualizar imagen La lista de reproducción está vacía @@ -154,23 +152,23 @@ Canción "Disponible sólo en Lollipop" La carátula del álbum se muestra en la pantalla de bloqueo. Quizás tengas que reiniciar Phonograph para que los cambios se apliquen. - "La notificación es coloreada basándose en el color principal de la tapa del álbum." + "La notificación es coloreada basándose en el color principal de la carátula del álbum." "Elimina el silencio entre dos canciones. Esto podría causar problemas durante la reproducción en algunos dispositivos." - La portada del álbum en reproduciendo es forzada a ser cuadrada. + Forzar la carátula del álbum en Reproduciendo a ser cuadrada. La barra en Reproducción Actual es opaca y no tapa la portada del álbum. La barra de estado es opaca y no cubre la tapa del álbum. - La caja detrás de la tapa del álbum donde se encuentra el título de la canción y el artista es mas largo que su altura. + La caja detrás de la tapa del álbum donde se encuentra el título de la canción y el artista es más largo que su altura. Usa una barra de progreso que no cubre la tapa del álbum en vez de la barra normal de progreso. - Mostrar tarjeta detrás de los botones de control de reproducción (reproducir/pausar, etc). + Mostrar tarjeta detrás de los botones de control de reproducción (reproducir/pausar, etc.) Si bien la calidad del arte de tapa del almacenamiento tiene mejor calidad, puede tardar más en cargar. Sólo activar si no se quieren artes de tapa de baja resolución. "No se puede descargar una tapa de álbum coincidente." - Buscar en librería... + Buscar en la biblioteca... Escaneando contenido... Favoritos - Ultima agregada + Última agregada Reproducido recientemente Mis mejores pistas - Remover portada + Eliminar portada Descargar desde Last.fm Seleccionar de almacenamiento interno Buscar en Internet @@ -178,6 +176,10 @@ Fijar Cancelar Temporizador desactivado + La música se parará dentro de {%d} minutos a partir de ahora + Nueva lista de reproducción... Nueva lista de reproducción Cuadricula + Lista + Colorear el Pie de página