@Override public void onClick(View v) { int colorMode = PrefUtils.getInt(_context, R.string.pref_foreground_color, 0); colorMode = (colorMode + 1) % 2; int color; if (colorMode == 0) { color = TEXT_COLOR_DARK; } else { color = TEXT_COLOR_LIGHT; } setTextColorConfiguration(_panelView, panelTextIds, color); TextView text = (TextView) _panelView.findViewById(R.id.text_title); text.setTextColor(color); text = (TextView) _panelView.findViewById(R.id.text_artist); text.setTextColor(color); StickyListHeadersListView list = (StickyListHeadersListView) _panelView.findViewById(R.id.list_current_songs); OverlaySongInfoListAdapter adapter = (OverlaySongInfoListAdapter) list.getAdapter(); if (adapter != null) { adapter.setTextColor(color); adapter.notifyDataSetChanged(); } PrefUtils.setInt(_context, R.string.pref_foreground_color, colorMode); startTimeoutTimer(); }
public OverlayViewManager(Context context) { _context = context; _windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); _timeoutHandler = new Handler(); Resources resources = _context.getResources(); TEXT_COLOR_DARK = resources.getColor(R.color.overlay_title_dark); TEXT_COLOR_LIGHT = resources.getColor(R.color.overlay_title_light); _panelParams = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT); _panelParams.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL; _openParams = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT); _openParams.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); final int[] panelButtonIds = new int[] { R.id.image_artwork, R.id.button_hide, R.id.button_track_down, R.id.button_play_or_pause, R.id.button_track_up, R.id.button_stop, R.id.button_open_close_list, }; final View.OnClickListener[] panelListeners = new View.OnClickListener[] { _onArtworkClickListener, _onHideClickListener, _onTrackDownClickListener, _onPlayPauseClickListener, _onTrackUpClickListener, _onStopClickListener, _onOpenCloseListClickListener, }; _panelView = inflater.inflate(R.layout.overlay_play_panel, null); setupButtonListener(_panelView, panelButtonIds, panelListeners); setupPlayPauseButton(_panelView, false); View layout = _panelView.findViewById(R.id.layout_panel); layout.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { startTimeoutTimer(); return false; } }); int defaultColor = _context.getResources().getColor(R.color.overlay_panel_background); int color = PrefUtils.getInt(_context, R.string.pref_background_color, defaultColor); layout.setBackgroundColor(color); StickyListHeadersListView list = (StickyListHeadersListView) _panelView.findViewById(R.id.list_current_songs); list.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { startTimeoutTimer(); return false; } }); list.setDrawingListUnderStickyHeader(false); SeekBar bar = (SeekBar) _panelView.findViewById(R.id.seekbar_position); bar.setTag(R.id.tag_is_dragging, false); bar.setOnSeekBarChangeListener( new SeekBar.OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { seekBar.setTag(R.id.tag_is_dragging, false); startTimeoutTimer(); Intent intent = new Intent(_context, OverlayMusicPlayerService.class); intent.setAction(OverlayMusicPlayerService.ACTION_SEEK); intent.putExtra(OverlayMusicPlayerService.PRM_SEEK_TIME, seekBar.getProgress()); _context.startService(intent); } @Override public void onStartTrackingTouch(SeekBar seekBar) { seekBar.setTag(R.id.tag_is_dragging, true); stopTimeoutTimer(); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { TextView time = (TextView) _panelView.findViewById(R.id.text_position); time.setText(TimecodeUtils.format(progress)); } } }); int colorMode = PrefUtils.getInt(_context, R.string.pref_foreground_color, 0); if (colorMode == 0) { color = TEXT_COLOR_DARK; } else { color = TEXT_COLOR_LIGHT; } setTextColorConfiguration(_panelView, panelTextIds, color); final int[] openButtonIds = new int[] { R.id.button_open, }; final View.OnClickListener[] openlListeners = new View.OnClickListener[] { _onOpenClickListener, }; _openView = inflater.inflate(R.layout.overlay_open_button, null); setupButtonListener(_openView, openButtonIds, openlListeners); layout = _openView.findViewById(R.id.layout_open); layout.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { View view = _openView.findViewById(R.id.button_open); int visiblity = view.getVisibility(); if (visiblity != View.VISIBLE) { view.setVisibility(View.VISIBLE); } startTimeoutTimer(); return false; } }); }