Implemented RepeatModeButton widget (#408)
Its main purpose is to enable testing the repeat mode functionality.
This commit is contained in:
parent
85bcd846f2
commit
eb8accb8fe
|
@ -57,6 +57,7 @@ import org.xbmc.kore.ui.generic.GenericSelectDialog;
|
|||
import org.xbmc.kore.ui.sections.video.AllCastActivity;
|
||||
import org.xbmc.kore.ui.widgets.MediaProgressIndicator;
|
||||
import org.xbmc.kore.ui.widgets.VolumeLevelIndicator;
|
||||
import org.xbmc.kore.ui.widgets.RepeatModeButton;
|
||||
import org.xbmc.kore.utils.LogUtils;
|
||||
import org.xbmc.kore.utils.UIUtils;
|
||||
import org.xbmc.kore.utils.Utils;
|
||||
|
@ -137,7 +138,7 @@ public class NowPlayingFragment extends Fragment
|
|||
|
||||
@InjectView(R.id.volume_mute) ImageButton volumeMuteButton;
|
||||
@InjectView(R.id.shuffle) ImageButton shuffleButton;
|
||||
@InjectView(R.id.repeat) ImageButton repeatButton;
|
||||
@InjectView(R.id.repeat) RepeatModeButton repeatButton;
|
||||
@InjectView(R.id.overflow) ImageButton overflowButton;
|
||||
|
||||
@InjectView(R.id.info_panel) RelativeLayout infoPanel;
|
||||
|
@ -780,16 +781,9 @@ public class NowPlayingFragment extends Fragment
|
|||
R.attr.iconRepeat,
|
||||
R.attr.iconRepeatOne});
|
||||
int accentDefaultColor = getResources().getColor(R.color.accent_default);
|
||||
if (getPropertiesResult.repeat.equals(PlayerType.Repeat.OFF)) {
|
||||
repeatButton.setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(1), R.drawable.ic_repeat_white_24dp));
|
||||
repeatButton.clearColorFilter();
|
||||
} else if (getPropertiesResult.repeat.equals(PlayerType.Repeat.ONE)) {
|
||||
repeatButton.setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(2), R.drawable.ic_repeat_one_white_24dp));
|
||||
repeatButton.setColorFilter(styledAttributes.getColor(styledAttributes.getIndex(0), accentDefaultColor));
|
||||
} else {
|
||||
repeatButton.setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(1), R.drawable.ic_repeat_white_24dp));
|
||||
repeatButton.setColorFilter(styledAttributes.getColor(styledAttributes.getIndex(0), accentDefaultColor));
|
||||
}
|
||||
|
||||
UIUtils.setRepeatButton(repeatButton, getPropertiesResult.repeat);
|
||||
|
||||
if (!getPropertiesResult.shuffled) {
|
||||
shuffleButton.clearColorFilter();
|
||||
} else {
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* Copyright 2017 Martijn Brekhof. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.xbmc.kore.ui.widgets;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.support.v7.widget.AppCompatImageButton;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import org.xbmc.kore.R;
|
||||
|
||||
public class RepeatModeButton extends AppCompatImageButton {
|
||||
public enum MODE {
|
||||
OFF,
|
||||
ONE,
|
||||
ALL
|
||||
}
|
||||
|
||||
private MODE mode;
|
||||
private static TypedArray styledAttributes;
|
||||
private static int accentDefaultColor;
|
||||
|
||||
public RepeatModeButton(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
styledAttributes = context.getTheme().obtainStyledAttributes(new int[]{
|
||||
R.attr.colorAccent,
|
||||
R.attr.iconRepeat,
|
||||
R.attr.iconRepeatOne});
|
||||
accentDefaultColor = getContext().getResources().getColor(R.color.accent_default);
|
||||
}
|
||||
|
||||
public void setMode(MODE mode) {
|
||||
this.mode = mode;
|
||||
|
||||
switch (mode) {
|
||||
case OFF:
|
||||
setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(1), R.drawable.ic_repeat_white_24dp));
|
||||
clearColorFilter();
|
||||
break;
|
||||
case ONE:
|
||||
setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(2), R.drawable.ic_repeat_one_white_24dp));
|
||||
setColorFilter(styledAttributes.getColor(styledAttributes.getIndex(0), accentDefaultColor));
|
||||
break;
|
||||
case ALL:
|
||||
setImageResource(styledAttributes.getResourceId(styledAttributes.getIndex(1), R.drawable.ic_repeat_white_24dp));
|
||||
setColorFilter(styledAttributes.getColor(styledAttributes.getIndex(0), accentDefaultColor));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public MODE getMode() {
|
||||
return mode;
|
||||
}
|
||||
}
|
|
@ -46,8 +46,10 @@ import org.xbmc.kore.Settings;
|
|||
import org.xbmc.kore.host.HostInfo;
|
||||
import org.xbmc.kore.host.HostManager;
|
||||
import org.xbmc.kore.jsonrpc.type.GlobalType;
|
||||
import org.xbmc.kore.jsonrpc.type.PlayerType;
|
||||
import org.xbmc.kore.jsonrpc.type.VideoType;
|
||||
import org.xbmc.kore.ui.sections.remote.RemoteActivity;
|
||||
import org.xbmc.kore.ui.widgets.RepeatModeButton;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
@ -580,4 +582,14 @@ public class UIUtils {
|
|||
view.clearColorFilter();
|
||||
}
|
||||
}
|
||||
|
||||
public static void setRepeatButton(RepeatModeButton button, String repeatType) {
|
||||
if (repeatType.equals(PlayerType.Repeat.OFF)) {
|
||||
button.setMode(RepeatModeButton.MODE.OFF);
|
||||
} else if (repeatType.equals(PlayerType.Repeat.ONE)) {
|
||||
button.setMode(RepeatModeButton.MODE.ONE);
|
||||
} else {
|
||||
button.setMode(RepeatModeButton.MODE.ALL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -175,7 +175,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_weight="2"
|
||||
android:orientation="vertical"/>
|
||||
<ImageButton
|
||||
<org.xbmc.kore.ui.widgets.RepeatModeButton
|
||||
android:id="@+id/repeat"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
|
|
Loading…
Reference in New Issue