Merge remote-tracking branch 'origin/master'

This commit is contained in:
Karim Abou Zeid 2015-07-25 21:27:34 +02:00
commit 8f6e03f742
6 changed files with 323 additions and 295 deletions

View file

@ -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 {

View file

@ -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);
}
}

View file

@ -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 {

View file

@ -14,125 +14,139 @@
~ limitations under the License
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!--This FrameLayout IS necessary in order tp prevent fucking TouchWiz to interpret the "background="#00000000" as making the whole notification transparent-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:internal="http://schemas.android.com/apk/prv/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="64dp"
android:background="#00000000"
android:orientation="horizontal"
internal:layout_maxHeight="64dp"
internal:layout_minHeight="64dp"
tools:ignore="DisableBaselineAlignment">
internal:layout_minHeight="64dp">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
android:id="@+id/root"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:internal="http://schemas.android.com/apk/prv/res/android"
android:id="@+id/icon_group"
android:layout_width="@dimen/notification_large_icon_width"
android:layout_height="@dimen/notification_large_icon_height"
android:layout_weight="0">
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="12dp"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:scaleType="centerInside"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
android:minHeight="@dimen/notification_large_icon_height"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:gravity="bottom"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification.Title"
android:textColor="@color/notification_content_color"
tools:ignore="NestedWeights" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
</LinearLayout>
<LinearLayout
android:id="@+id/media_actions"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:layoutDirection="ltr"
android:background="#00000000"
android:baselineAligned="false"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<!-- media buttons will be added here -->
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_prev"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_previous_white_36dp"
tools:ignore="ContentDescription" />
tools:ignore="UselessParent">
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_play_pause"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_play_arrow_white_36dp"
tools:ignore="ContentDescription" />
<FrameLayout
android:id="@+id/icon_group"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:internal="http://schemas.android.com/apk/prv/res/android"
android:layout_width="@dimen/notification_large_icon_width"
android:layout_height="@dimen/notification_large_icon_height"
android:layout_weight="0">
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_next"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="12dp"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:scaleType="centerInside"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_next_white_36dp"
tools:ignore="ContentDescription" />
android:minHeight="@dimen/notification_large_icon_height"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:gravity="bottom"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification.Title"
android:textColor="@color/notification_content_color"
tools:ignore="NestedWeights" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
</LinearLayout>
<LinearLayout
android:id="@+id/media_actions"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:layoutDirection="ltr"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<!-- media buttons will be added here -->
<ImageButton
android:id="@+id/action_prev"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_previous_white_36dp"
tools:ignore="ContentDescription" />
<ImageButton
android:id="@+id/action_play_pause"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_play_arrow_white_36dp"
tools:ignore="ContentDescription" />
<ImageButton
android:id="@+id/action_next"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_next_white_36dp"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>

View file

@ -15,142 +15,154 @@
-->
<!-- Layout to be used with only max 3 actions. It has a much larger picture at the left side-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!--This FrameLayout IS necessary in order tp prevent fucking TouchWiz to interpret the "background="#00000000" as making the whole notification transparent-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:background="#00000000"
android:layout_width="match_parent"
android:layout_height="128dp">
<ImageView
android:id="@+id/icon"
android:layout_width="@dimen/notification_big_image_size"
android:layout_height="@dimen/notification_big_image_size"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" />
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_quit"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:layout_marginTop="2dp"
android:background="@drawable/notification_selector"
android:src="@drawable/ic_close_white_24dp"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/text_container"
<RelativeLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="8dp"
android:layout_toEndOf="@id/icon"
android:layout_toLeftOf="@id/action_quit"
android:layout_toRightOf="@id/icon"
android:layout_toStartOf="@id/action_quit"
android:minHeight="@dimen/notification_large_icon_height"
android:orientation="vertical">
android:layout_height="match_parent"
android:background="#00000000"
tools:ignore="UselessParent">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification.Title"
android:textColor="@color/notification_content_color" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="-1dp"
android:layout_marginTop="-1dp"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
</LinearLayout>
<LinearLayout
android:id="@+id/media_actions"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@+id/text_container"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_toEndOf="@id/icon"
android:layout_toRightOf="@id/icon"
android:layoutDirection="ltr"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<!-- media buttons will be added here -->
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_prev"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_previous_white_36dp"
<ImageView
android:id="@+id/icon"
android:layout_width="@dimen/notification_big_image_size"
android:layout_height="@dimen/notification_big_image_size"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" />
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_play_pause"
<ImageButton
android:id="@+id/action_quit"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:layout_marginTop="2dp"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_play_arrow_white_36dp"
android:src="@drawable/ic_close_white_24dp"
tools:ignore="ContentDescription" />
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_next"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_next_white_36dp"
tools:ignore="ContentDescription" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/text_container"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="8dp"
android:layout_toEndOf="@id/icon"
android:layout_toLeftOf="@id/action_quit"
android:layout_toRightOf="@id/icon"
android:layout_toStartOf="@id/action_quit"
android:minHeight="@dimen/notification_large_icon_height"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification.Title"
android:textColor="@color/notification_content_color" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="-1dp"
android:layout_marginTop="-1dp"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="@style/Theme.MaterialMusic.Notification"
android:textColor="@color/notification_secondary_content_color" />
</LinearLayout>
<LinearLayout
android:id="@+id/media_actions"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@+id/text_container"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_toEndOf="@id/icon"
android:layout_toRightOf="@id/icon"
android:layoutDirection="ltr"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<!-- media buttons will be added here -->
<ImageButton
android:id="@+id/action_prev"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_previous_white_36dp"
tools:ignore="ContentDescription" />
<ImageButton
android:id="@+id/action_play_pause"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_play_arrow_white_36dp"
tools:ignore="ContentDescription" />
<ImageButton
android:id="@+id/action_next"
style="@style/Widget.AppCompat.Button.Borderless"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="@drawable/notification_selector"
android:gravity="center"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_skip_next_white_36dp"
tools:ignore="ContentDescription" />
</LinearLayout>
</RelativeLayout>
</FrameLayout>

View file

@ -4,13 +4,13 @@
<string name="currently_listening_to_x_by_x">Reproduciendo %1$s de %2$s</string>
<string name="the_audio_file">Archivo de audio</string>
<string name="do_you_want_to_set_x_as_ringtone">¿Quieres establecer %1$s como tono de llamada?</string>
<string name="x_has_been_set_as_ringtone">%1$s se establecio como tono de llamada</string>
<string name="x_has_been_set_as_ringtone">%1$s se ha establecido como tono de llamada</string>
<string name="action_set_as_ringtone">Establecer como tono de llamada</string>
<string name="action_share">Compartir</string>
<string name="action_settings">"Ajustes"</string>
<string name="action_about">Acerca de</string>
<string name="action_now_playing">Reproduciendo ahora</string>
<string name="action_clear_playlist">Limpiar lista de reproducción</string>
<string name="action_now_playing">Reproduciendo</string>
<string name="action_clear_playlist">Vaciar lista de reproducción</string>
<string name="action_playing_queue">Cola de reproducción</string>
<string name="action_add_to_favorites">Agregar a favoritos</string>
<string name="action_remove_from_favorites">Eliminar de favoritos</string>
@ -27,9 +27,9 @@
<string name="artists">Artistas</string>
<string name="songs">Canciones</string>
<string name="playlists">Listas de reproducción</string>
<string name="playing_queue_empty">Lista de reproduccion vacia</string>
<string name="nothing_playing">Nada se está reproduciendo</string>
<string name="unplayable_file">Ocurrió un error al reproducir esta canción.</string>
<string name="playing_queue_empty">Lista de reproducción vacía</string>
<string name="nothing_playing">No se está reproduciendo nada</string>
<string name="unplayable_file">Ocurrió un error al reproducir esta canción</string>
<string name="biography_unavailable">Lo sentimos, no encontramos una biografía correspondiente a éste artista</string>
<string name="biography">Biografía</string>
<string name="audio_focus_denied">No podemos encontrar el foco de audio</string>
@ -42,7 +42,7 @@
<string name="track">Pista</string>
<string name="track_hint">"Pista (2 para pista 2 ó 3004 para CD3 pista 4)"</string>
<string name="album_or_artist_empty">El título del álbum o el artista del álbum está vacío.</string>
<string name="writing_file_number">Escribiendo archivo</string>
<string name="writing_file_number">Escribiendo archivo...</string>
<string name="saving_changes">Guardando cambios...</string>
<string name="label_details">Detalles</string>
<string name="label_file_name">Nombre del archivo</string>
@ -50,7 +50,7 @@
<string name="label_file_size">Tamaño</string>
<string name="label_file_format">Formato</string>
<string name="label_track_length">Duración</string>
<string name="label_bit_rate">Bitrate</string>
<string name="label_bit_rate">Tasa de bits</string>
<string name="label_sampling_rate">Frecuencia de muestreo</string>
<string name="action_go_to_artist">Ir al artista</string>
<string name="action_go_to_album">Ir al álbum</string>
@ -60,43 +60,41 @@
<string name="credits_1">"Phonograph es un reproductor de música gratuito basado en Material Design hecho por"</string>
<string name="no_results">Sin resultados</string>
<string name="action_re_download_artist_image">Actualizar imagen del artista</string>
<string name="updated_artist_image">Imagen de artista actualizada.</string>
<string name="could_not_update_artist_image">No se puedo subir la imagen del artista.</string>
<string name="updated_artist_image">Imagen de artista actualizada</string>
<string name="could_not_update_artist_image">No se puedo subir la imagen del artista</string>
<string name="updating">Actualizando...</string>
<string name="added_title_to_playing_queue">"1 título añadido a la cola de reproducción"</string>
<string name="added_x_titles_to_playing_queue">Añadir %1$d a la cola de reproducción</string>
<string name="action_remove_from_playlist">Eliminar de la lista de reproducción</string>
<string name="action_grid_columns">Columnas de la cuadrícula</string>
<string name="action_grid_columns_land">Columnas de la cuadrícula (apaisado)</string>
<string name="action_view_as">Vista</string>
<string name="action_grid_columns_land">Columnas de cuadrícula (apaisado)</string>
<string name="action_view_as">Ver como</string>
<string name="inserted_x_songs_into_playlist">%1$d canciones añadidas a la lista de reproducción</string>
<string name="created_playlist_x">Lista de reproducción %1$s creada</string>
<string name="deleted_playlist_x">Lista de reproducción %1$s borrada</string>
<string name="deleted_x_songs">%1$d canciones eliminadas.</string>
<string name="deleted_playlist_x">Lista de reproducción %1$s eliminada</string>
<string name="deleted_x_songs">%1$d canciones eliminadas</string>
<string name="could_not_create_playlist">No se pudo crear la lista de reproducción</string>
<string name="delete_playlist_x"><![CDATA[¿Seguro que quiere borrar la lista de reproducción <b>%1$s</b>?]]></string>
<string name="clear_playlist_x"><![CDATA[Realmente quieres limpiar la lista de reproducción {<b>} {</b>} {%1$s} ? ¡Esto no se puede deshacer!]]></string>
<string name="delete_x_playlists"><![CDATA[
¿Quieres eliminar la lista de reproducción <b>%1$d</b> ?
]]></string>
<string name="delete_song_x"><![CDATA[¿Seguro que deseas eliminar la canción <b>%1$s</b>?]]></string>
<string name="delete_x_songs"><![CDATA[¿Seguro que desea borrar <b>%1$d</b> canciones?]]></string>
<string name="remove_song_x_from_playlist"><![CDATA[Quiere remover la canción </b>%1$s<b> de la lista de reproducción?]]></string>
<string name="remove_x_songs_from_playlist"><![CDATA[Quiere remover </b>%1$d<b> canciones de la lista de reproducción?]]></string>
<string name="clear_playlist_x"><![CDATA[¿Seguro que quieres vaciar la lista de reproducción {<b>} {</b>} {%1$s}? ¡Esto no se puede deshacer!]]></string>
<string name="delete_x_playlists"><![CDATA[¿Quieres eliminar la lista de reproducción <b>%1$d</b>?]]></string>
<string name="delete_song_x"><![CDATA[¿Seguro que quieres eliminar la canción <b>%1$s</b>?]]></string>
<string name="delete_x_songs"><![CDATA[¿Seguro que quieres borrar <b>%1$d</b> canciones?]]></string>
<string name="remove_song_x_from_playlist"><![CDATA[¿Seguro que quieres eliminar la canción </b>%1$s<b> de la lista de reproducción?]]></string>
<string name="remove_x_songs_from_playlist"><![CDATA[¿Seguro que quieres eliminar </b>%1$d<b> canciones de la lista de reproducción?]]></string>
<string name="delete_song_title">Borrar canción</string>
<string name="delete_songs_title">Borrar canciones</string>
<string name="remove_song_from_playlist_title">Remover canción de la lista de reproducción?</string>
<string name="remove_song_from_playlist_title">Eliminar canción de la lista de reproducción</string>
<string name="remove_songs_from_playlist_title">¿Eliminar canciones de la lista de reproducción?</string>
<string name="rename_playlist_title">Renombrar lista de reproducción</string>
<string name="delete_playlist_title">Borrar lista de reproducción</string>
<string name="delete_playlists_title">Eliminar listas de reproducción</string>
<string name="clear_playlist_title">Limpiar lista de reproducción</string>
<string name="add_playlist_title">"Agregar a la lista de reproducción"</string>
<string name="delete_warning">"Advertencia: Esta operación no se puede deshacer"</string>
<string name="action_shuffle_all">Reproducción aleatoria</string>
<string name="delete_warning">"Advertencia: ¡Esta operación no se puede deshacer!"</string>
<string name="action_shuffle_all">Modo aleatorio</string>
<string name="action_shuffle_album">Reproducción aleatoria del Álbum</string>
<string name="action_shuffle_artist">Reproducción aleatoria del Artista</string>
<string name="action_shuffle_playlist">Reproducción aleatoria de la lista de reproducción</string>
<string name="action_shuffle_playlist">Reproducción aleatoria de la Lista de reproducción</string>
<string name="last_opened">Última abierta</string>
<string name="light_theme_name">Claro</string>
<string name="dark_theme_name">Oscuro</string>
@ -119,7 +117,7 @@
<string name="pref_title_colored_navigation_bar_other_screens">Cualquier lugar</string>
<string name="pref_title_album_art_on_lockscreen">Caratula en la pantalla de bloqueo</string>
<string name="pref_title_colored_notification">Notificación coloreada</string>
<string name="pref_title_ignore_media_store_artwork">Ignorar arte proveniente de almacenamiento</string>
<string name="pref_title_ignore_media_store_artwork">Ignorar ilustraciones provenientes de la tarjeta de memoria</string>
<string name="pref_title_gapless_playback">Quitar silencio entre canciones</string>
<string name="pref_title_force_square_album_art">Forzar portada de álbum a cuadrado</string>
<string name="pref_title_opaque_toolbar_now_playing">Barra de Reproducción Actual opaca</string>
@ -139,9 +137,9 @@
<string name="x_selected">%1$d seleccionado</string>
<string name="select">Seleccionar</string>
<string name="default_str">Por defecto</string>
<string name="primary_color">Color Primario</string>
<string name="primary_color">Color primario</string>
<string name="accent_color">Color de énfasis</string>
<string name="primary_color_desc">El color principal por defecto es índigo.</string>
<string name="primary_color_desc">El color principal por defecto es índigo</string>
<string name="accent_color_desc">El color de énfasis es rosado</string>
<string name="update_image">Actualizar imagen</string>
<string name="playlist_empty_text">La lista de reproducción está vacía</string>
@ -154,23 +152,23 @@
<string name="song">Canción</string>
<string name="pref_only_lollipop">"Disponible sólo en Lollipop"</string>
<string name="pref_summary_album_art_on_lockscreen">La carátula del álbum se muestra en la pantalla de bloqueo. Quizás tengas que reiniciar Phonograph para que los cambios se apliquen.</string>
<string name="pref_summary_colored_notification">"La notificación es coloreada basándose en el color principal de la tapa del álbum."</string>
<string name="pref_summary_colored_notification">"La notificación es coloreada basándose en el color principal de la carátula del álbum."</string>
<string name="pref_summary_gapless_playback">"Elimina el silencio entre dos canciones. Esto podría causar problemas durante la reproducción en algunos dispositivos."</string>
<string name="pref_summary_force_square_album_art">La portada del álbum en reproduciendo es forzada a ser cuadrada.</string>
<string name="pref_summary_force_square_album_art">Forzar la carátula del álbum en Reproduciendo a ser cuadrada.</string>
<string name="pref_summary_opaque_toolbar_now_playing">La barra en Reproducción Actual es opaca y no tapa la portada del álbum.</string>
<string name="pref_summary_opaque_statusbar_now_playing">La barra de estado es opaca y no cubre la tapa del álbum.</string>
<string name="pref_summary_larger_title_box_now_playing">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.</string>
<string name="pref_summary_larger_title_box_now_playing">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.</string>
<string name="pref_summary_alternative_progress_slider_now_playing">Usa una barra de progreso que no cubre la tapa del álbum en vez de la barra normal de progreso.</string>
<string name="pref_summary_playback_controller_card_now_playing">Mostrar tarjeta detrás de los botones de control de reproducción (reproducir/pausar, etc).</string>
<string name="pref_summary_playback_controller_card_now_playing">Mostrar tarjeta detrás de los botones de control de reproducción (reproducir/pausar, etc.)</string>
<string name="pref_summary_ignore_media_store_artwork">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.</string>
<string name="could_not_download_album_cover">"No se puede descargar una tapa de álbum coincidente."</string>
<string name="search_hint">Buscar en librería...</string>
<string name="search_hint">Buscar en la biblioteca...</string>
<string name="rescanning_media">Escaneando contenido...</string>
<string name="favorites">Favoritos</string>
<string name="last_added">Ultima agregada</string>
<string name="last_added">Última agregada</string>
<string name="recently_played">Reproducido recientemente</string>
<string name="my_top_tracks">Mis mejores pistas</string>
<string name="remove_cover">Remover portada</string>
<string name="remove_cover">Eliminar portada</string>
<string name="download_from_last_fm">Descargar desde Last.fm</string>
<string name="pick_from_local_storage">Seleccionar de almacenamiento interno</string>
<string name="web_search">Buscar en Internet</string>
@ -178,6 +176,10 @@
<string name="action_set">Fijar</string>
<string name="cancel_current_timer">Cancelar</string>
<string name="sleep_timer_canceled">Temporizador desactivado</string>
<string name="sleep_timer_set">La música se parará dentro de {%d} minutos a partir de ahora</string>
<string name="action_new_playlist">Nueva lista de reproducción...</string>
<string name="new_playlist_title">Nueva lista de reproducción</string>
<string name="grid">Cuadricula</string>
<string name="list">Lista</string>
<string name="colored_footers">Colorear el Pie de página</string>
</resources>