react-native-jw-media-player icon indicating copy to clipboard operation
react-native-jw-media-player copied to clipboard

Can't change the player control colour on Android

Open vipinjoshiMeta opened this issue 1 year ago • 0 comments

i can't be able to change player control colours through config due to bad design of SDK. & my requirement is like i have different modules in my app & each module i have to show player controls differently for the IOS i can change through the config props for the Android i can change only the progress thumb colour.

i have looked through the Android SDK code & found on the player control usage, there is some viewmodel observers in there SDK guys hardcoded to changing back to the default colour.

Can't you guys simply implement in some way like if we set colours on config or some other place & according to that player pick up that saved colour otherwise used default colour, in order to change dynamically.

Pls check the usage reference of R.id.center_next_playlist_item_btn on ui_center_controls_view.xml layout file inside the JWPlayer Core Module.

See this is how i'm changing the control colours

private void setUpControls() {

	CueMarkerSeekbar seekBar = findViewById(R.id.controlbar_seekbar);
	Log.e(TAG, "onCreate-Seekbar: " + seekBar);

// Controls Button

	int controlColor = Color.parseColor("#00FF00");
	ImageView playListBtn = findViewById(R.id.controlbar_playlist_btn);
	playListBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView captionBtn = findViewById(R.id.controlbar_captions_btn);
	captionBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView fullScreenBtn = findViewById(R.id.controlbar_enter_fullscreen_btn);
	fullScreenBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView fullScreenExitBtn = findViewById(R.id.controlbar_exit_fullscreen_btn);
	fullScreenExitBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView menuBtn = findViewById(R.id.controlbar_menu_btn);
	menuBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView castBtn = findViewById(R.id.center_cast_img);
	castBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);

	ImageView currentNextItemBtn = findViewById(R.id.center_next_playlist_item_btn); //works on portrait mode.
	currentNextItemBtn.setColorFilter(ContextCompat.getColor(this, R.color.jw_icons_inactive));
	/*Drawable drawable = menuBtn.getDrawable();
	drawable.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	currentNextItemBtn.setImageDrawable(drawable);*/

// currentNextItemBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);

	ImageView centerPreviousItemBtn = findViewById(R.id.center_previous_playlist_item_btn); //works on portrait mode.
	centerPreviousItemBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);

	ImageView centerForwardBtn = findViewById(R.id.center_forward_btn); //#sec forward button.
	centerForwardBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView centerRewindBtn = findViewById(R.id.center_rewind_btn); //#sec forward button.
	centerRewindBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView centerRepeatBtn = findViewById(R.id.center_repeat_btn); //Repeat button visible on ending of last playlist item.
	centerRepeatBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView centerPauseBtn = findViewById(R.id.center_pause_btn); //Center Pause Button.
	centerPauseBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView centerPlayBtn = findViewById(R.id.center_play_btn); //Center Play Button.
	centerPlayBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ProgressBar centerBufferProgress = findViewById(R.id.center_buffer_icon); //Center Buffer Progress.
	centerBufferProgress.getIndeterminateDrawable().setColorFilter(controlColor, PorterDuff.Mode.MULTIPLY);
	ImageView centerCloseBtn = findViewById(R.id.center_close_img); //Close X Button.
	centerCloseBtn.setColorFilter(controlColor, PorterDuff.Mode.MULTIPLY);

// ImageView pipBtn = findViewById(R.id.center_pip_btn); // pipBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);

	ImageView centerFullScreenBtn = findViewById(R.id.center_enter_fullscreen_btn);
	centerFullScreenBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	ImageView centerExitFullScreenBtn = findViewById(R.id.center_exit_fullscreen_btn);
	centerExitFullScreenBtn.setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);



	seekBar.getThumb().setColorFilter(controlColor, PorterDuff.Mode.SRC_IN);
	seekBar.getIndeterminateDrawable().setColorFilter(controlColor, PorterDuff.Mode.MULTIPLY);
	seekBar.getProgressDrawable().setColorFilter(controlColor, PorterDuff.Mode.MULTIPLY);

	LayerDrawable progressLayerDrawable = (LayerDrawable) seekBar.getProgressDrawable();

// Drawable progressDrawable = progressLayerDrawable.findDrawableByLayerId(android.R.id.progress); // Drawable progressDrawable = progressLayerDrawable.getDrawable(2); // progressDrawable.setColorFilter(Color.parseColor("#00FF00"), PorterDuff.Mode.SRC_IN); // progressDrawable.setTint(Color.parseColor("#00FF00")); // progressDrawable.setTintMode(PorterDuff.Mode.SRC_IN);

}

vipinjoshiMeta avatar Jan 03 '23 09:01 vipinjoshiMeta