mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Add an option to use custom brightness
This commit is contained in:
		@@ -57,6 +57,14 @@ public class PreferencesHelper {
 | 
			
		||||
        return rxPrefs.getBoolean(getKey(R.string.pref_keep_screen_on_key), true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Preference<Boolean> customBrightness() {
 | 
			
		||||
        return rxPrefs.getBoolean(getKey(R.string.pref_custom_brightness_key), false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Preference<Float> customBrightnessValue() {
 | 
			
		||||
        return rxPrefs.getFloat(getKey(R.string.pref_custom_brightness_value_key), 0F);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getDefaultViewer() {
 | 
			
		||||
        return Integer.parseInt(prefs.getString(getKey(R.string.pref_default_viewer_key), "1"));
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,7 @@ import eu.kanade.mangafeed.ui.reader.viewer.webtoon.WebtoonReader;
 | 
			
		||||
import eu.kanade.mangafeed.util.ToastUtil;
 | 
			
		||||
import icepick.Icepick;
 | 
			
		||||
import nucleus.factory.RequiresPresenter;
 | 
			
		||||
import rx.Subscription;
 | 
			
		||||
import rx.subscriptions.CompositeSubscription;
 | 
			
		||||
 | 
			
		||||
@RequiresPresenter(ReaderPresenter.class)
 | 
			
		||||
@@ -52,6 +53,7 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
 | 
			
		||||
 | 
			
		||||
    private int uiFlags;
 | 
			
		||||
    private CompositeSubscription subscriptions;
 | 
			
		||||
    private Subscription customBrightnessSubscription;
 | 
			
		||||
 | 
			
		||||
    private static final int LEFT_TO_RIGHT = 1;
 | 
			
		||||
    private static final int RIGHT_TO_LEFT = 2;
 | 
			
		||||
@@ -166,6 +168,10 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
 | 
			
		||||
        subscriptions.add(preferences.keepScreenOn()
 | 
			
		||||
                .asObservable()
 | 
			
		||||
                .subscribe(this::setKeepScreenOn));
 | 
			
		||||
 | 
			
		||||
        subscriptions.add(preferences.customBrightness()
 | 
			
		||||
                .asObservable()
 | 
			
		||||
                .subscribe(this::setCustomBrightness));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setOrientation(boolean locked) {
 | 
			
		||||
@@ -205,6 +211,24 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setCustomBrightness(boolean enabled) {
 | 
			
		||||
        if (enabled) {
 | 
			
		||||
            subscriptions.add(customBrightnessSubscription = preferences.customBrightnessValue()
 | 
			
		||||
                    .asObservable()
 | 
			
		||||
                    .subscribe(this::setCustomBrightnessValue));
 | 
			
		||||
        } else {
 | 
			
		||||
            if (customBrightnessSubscription != null)
 | 
			
		||||
                subscriptions.remove(customBrightnessSubscription);
 | 
			
		||||
            setCustomBrightnessValue(-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setCustomBrightnessValue(float value) {
 | 
			
		||||
        WindowManager.LayoutParams layout = getWindow().getAttributes();
 | 
			
		||||
        layout.screenBrightness = value;
 | 
			
		||||
        getWindow().setAttributes(layout);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setStatusBarVisibility(boolean hidden) {
 | 
			
		||||
        createUiHideFlags(hidden);
 | 
			
		||||
        setSystemUiVisibility();
 | 
			
		||||
 
 | 
			
		||||
@@ -40,12 +40,14 @@ public class ReaderMenu {
 | 
			
		||||
    @Bind(R.id.lock_orientation) ImageButton lockOrientation;
 | 
			
		||||
    @Bind(R.id.reader_selector) ImageButton readerSelector;
 | 
			
		||||
    @Bind(R.id.reader_extra_settings) ImageButton extraSettings;
 | 
			
		||||
    @Bind(R.id.reader_brightness) ImageButton brightnessSettings;
 | 
			
		||||
 | 
			
		||||
    private ReaderActivity activity;
 | 
			
		||||
    private PreferencesHelper preferences;
 | 
			
		||||
 | 
			
		||||
    @State boolean showing;
 | 
			
		||||
    private PopupWindow popupWindow;
 | 
			
		||||
    private PopupWindow settingsPopup;
 | 
			
		||||
    private PopupWindow brightnessPopup;
 | 
			
		||||
 | 
			
		||||
    private DecimalFormat decimalFormat;
 | 
			
		||||
 | 
			
		||||
@@ -99,7 +101,8 @@ public class ReaderMenu {
 | 
			
		||||
        Animation bottomMenuAnimation = AnimationUtils.loadAnimation(activity, R.anim.exit_to_bottom);
 | 
			
		||||
        bottomMenu.startAnimation(bottomMenuAnimation);
 | 
			
		||||
 | 
			
		||||
        popupWindow.dismiss();
 | 
			
		||||
        settingsPopup.dismiss();
 | 
			
		||||
        brightnessPopup.dismiss();
 | 
			
		||||
 | 
			
		||||
        showing = false;
 | 
			
		||||
    }
 | 
			
		||||
@@ -152,14 +155,26 @@ public class ReaderMenu {
 | 
			
		||||
 | 
			
		||||
        // Extra settings menu
 | 
			
		||||
        final View popupView = activity.getLayoutInflater().inflate(R.layout.reader_popup, null);
 | 
			
		||||
        popupWindow = new SettingsPopupWindow(popupView);
 | 
			
		||||
        settingsPopup = new SettingsPopupWindow(popupView);
 | 
			
		||||
 | 
			
		||||
        extraSettings.setOnClickListener(v -> {
 | 
			
		||||
            if (!popupWindow.isShowing())
 | 
			
		||||
                popupWindow.showAtLocation(extraSettings,
 | 
			
		||||
            if (!settingsPopup.isShowing())
 | 
			
		||||
                settingsPopup.showAtLocation(extraSettings,
 | 
			
		||||
                        Gravity.BOTTOM | Gravity.RIGHT, 0, bottomMenu.getHeight());
 | 
			
		||||
            else
 | 
			
		||||
                popupWindow.dismiss();
 | 
			
		||||
                settingsPopup.dismiss();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        // Brightness popup
 | 
			
		||||
        final View brightnessView = activity.getLayoutInflater().inflate(R.layout.reader_brightness, null);
 | 
			
		||||
        brightnessPopup = new BrightnessPopupWindow(brightnessView);
 | 
			
		||||
 | 
			
		||||
        brightnessSettings.setOnClickListener(v -> {
 | 
			
		||||
            if (!brightnessPopup.isShowing())
 | 
			
		||||
                brightnessPopup.showAtLocation(brightnessSettings,
 | 
			
		||||
                        Gravity.BOTTOM | Gravity.LEFT, 0, bottomMenu.getHeight());
 | 
			
		||||
            else
 | 
			
		||||
                brightnessPopup.dismiss();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -208,7 +223,37 @@ public class ReaderMenu {
 | 
			
		||||
 | 
			
		||||
            keepScreenOn.setOnCheckedChangeListener((view, isChecked) ->
 | 
			
		||||
                    preferences.keepScreenOn().set(isChecked));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    class BrightnessPopupWindow extends PopupWindow {
 | 
			
		||||
 | 
			
		||||
        @Bind(R.id.custom_brightness) CheckBox customBrightness;
 | 
			
		||||
        @Bind(R.id.brightness_seekbar) SeekBar brightnessSeekbar;
 | 
			
		||||
 | 
			
		||||
        public BrightnessPopupWindow(View view) {
 | 
			
		||||
            super(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 | 
			
		||||
            setAnimationStyle(R.style.reader_brightness_popup_animation);
 | 
			
		||||
            ButterKnife.bind(this, view);
 | 
			
		||||
            initializePopupMenu();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void initializePopupMenu() {
 | 
			
		||||
            subscriptions.add(preferences.customBrightness()
 | 
			
		||||
                    .asObservable()
 | 
			
		||||
                    .subscribe(isEnabled -> {
 | 
			
		||||
                        customBrightness.setChecked(isEnabled);
 | 
			
		||||
                        brightnessSeekbar.setEnabled(isEnabled);
 | 
			
		||||
                    }));
 | 
			
		||||
 | 
			
		||||
            customBrightness.setOnCheckedChangeListener((view, isChecked) ->
 | 
			
		||||
                    preferences.customBrightness().set(isChecked));
 | 
			
		||||
 | 
			
		||||
            brightnessSeekbar.setMax(100);
 | 
			
		||||
            brightnessSeekbar.setProgress(Math.round(
 | 
			
		||||
                    preferences.customBrightnessValue().get() * brightnessSeekbar.getMax()));
 | 
			
		||||
            brightnessSeekbar.setOnSeekBarChangeListener(new BrightnessSeekBarChangeListener());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
@@ -229,6 +274,26 @@ public class ReaderMenu {
 | 
			
		||||
        public void onStopTrackingTouch(SeekBar seekBar) {}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    class BrightnessSeekBarChangeListener implements SeekBar.OnSeekBarChangeListener {
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 | 
			
		||||
            if (fromUser) {
 | 
			
		||||
                preferences.customBrightnessValue().set((float) progress / seekBar.getMax());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onStartTrackingTouch(SeekBar seekBar) {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onStopTrackingTouch(SeekBar seekBar) {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    class HideMenuAnimationListener implements Animation.AnimationListener {
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ import eu.kanade.mangafeed.data.source.model.Page;
 | 
			
		||||
import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 | 
			
		||||
import eu.kanade.mangafeed.ui.reader.viewer.base.BaseReader;
 | 
			
		||||
import eu.kanade.mangafeed.ui.reader.viewer.common.ViewPagerReaderAdapter;
 | 
			
		||||
import rx.Subscription;
 | 
			
		||||
 | 
			
		||||
public class VerticalReader extends BaseReader {
 | 
			
		||||
 | 
			
		||||
@@ -19,11 +20,17 @@ public class VerticalReader extends BaseReader {
 | 
			
		||||
 | 
			
		||||
    private ViewPagerReaderAdapter adapter;
 | 
			
		||||
 | 
			
		||||
    private boolean transitions;
 | 
			
		||||
    private Subscription transitionsSubscription;
 | 
			
		||||
 | 
			
		||||
    public VerticalReader(ReaderActivity activity) {
 | 
			
		||||
        super(activity);
 | 
			
		||||
        activity.getLayoutInflater().inflate(R.layout.reader_vertical, container);
 | 
			
		||||
        ButterKnife.bind(this, container);
 | 
			
		||||
 | 
			
		||||
        transitionsSubscription = activity.getPreferences().enableTransitions().asObservable()
 | 
			
		||||
                .subscribe(value -> transitions = value);
 | 
			
		||||
 | 
			
		||||
        viewPager.setOffscreenPageLimit(3);
 | 
			
		||||
        viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
 | 
			
		||||
            @Override
 | 
			
		||||
@@ -32,6 +39,33 @@ public class VerticalReader extends BaseReader {
 | 
			
		||||
                updatePageNumber();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        viewPager.setOnChapterBoundariesOutListener(new VerticalViewPager.OnChapterBoundariesOutListener() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void onFirstPageOutEvent() {
 | 
			
		||||
                requestPreviousChapter();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void onLastPageOutEvent() {
 | 
			
		||||
                requestNextChapter();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        viewPager.setOnChapterSingleTapListener(new VerticalViewPager.OnChapterSingleTapListener() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void onCenterTap() {
 | 
			
		||||
                activity.onCenterSingleTap();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void onLeftSideTap() {
 | 
			
		||||
                viewPager.setCurrentItem(viewPager.getCurrentItem() - 1, transitions);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void onRightSideTap() {
 | 
			
		||||
                viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, transitions);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@@ -41,7 +75,7 @@ public class VerticalReader extends BaseReader {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void setSelectedPage(int pageNumber) {
 | 
			
		||||
        viewPager.setCurrentItem(getCurrentPageIndex(pageNumber));
 | 
			
		||||
        viewPager.setCurrentItem(getCurrentPageIndex(pageNumber), false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@@ -53,6 +87,11 @@ public class VerticalReader extends BaseReader {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onImageTouch(MotionEvent motionEvent) {
 | 
			
		||||
        return true;
 | 
			
		||||
        return viewPager.onImageTouch(motionEvent);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void destroy() {
 | 
			
		||||
        transitionsSubscription.unsubscribe();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,17 +3,140 @@ package eu.kanade.mangafeed.ui.reader.viewer.vertical;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.util.AttributeSet;
 | 
			
		||||
import android.view.GestureDetector;
 | 
			
		||||
import android.view.MotionEvent;
 | 
			
		||||
 | 
			
		||||
public class VerticalViewPager extends fr.castorflex.android.verticalviewpager.VerticalViewPager {
 | 
			
		||||
 | 
			
		||||
    private GestureDetector gestureDetector;
 | 
			
		||||
 | 
			
		||||
    private OnChapterBoundariesOutListener mOnChapterBoundariesOutListener;
 | 
			
		||||
    private OnChapterSingleTapListener mOnChapterSingleTapListener;
 | 
			
		||||
 | 
			
		||||
    private static final float LEFT_REGION = 0.33f;
 | 
			
		||||
    private static final float RIGHT_REGION = 0.66f;
 | 
			
		||||
    private static final float SWIPE_TOLERANCE = 0.25f;
 | 
			
		||||
    private float startDragY;
 | 
			
		||||
 | 
			
		||||
    public VerticalViewPager(Context context, AttributeSet attrs) {
 | 
			
		||||
        super(context, attrs);
 | 
			
		||||
        gestureDetector = new GestureDetector(getContext(), new ReaderViewGestureListener());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onInterceptTouchEvent(MotionEvent ev) {
 | 
			
		||||
        try {
 | 
			
		||||
            gestureDetector.onTouchEvent(ev);
 | 
			
		||||
 | 
			
		||||
            if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
 | 
			
		||||
                if (this.getCurrentItem() == 0 || this.getCurrentItem() == this.getAdapter().getCount() - 1) {
 | 
			
		||||
                    startDragY = ev.getY();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return super.onInterceptTouchEvent(ev);
 | 
			
		||||
        } catch (IllegalArgumentException e) {
 | 
			
		||||
            // Do Nothing.
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onTouchEvent(MotionEvent ev) {
 | 
			
		||||
        try {
 | 
			
		||||
            if (mOnChapterBoundariesOutListener != null) {
 | 
			
		||||
                if (this.getCurrentItem() == 0) {
 | 
			
		||||
                    if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) {
 | 
			
		||||
                        float displacement = ev.getY() - startDragY;
 | 
			
		||||
 | 
			
		||||
                        if (ev.getY() > startDragY && displacement > getHeight() * SWIPE_TOLERANCE) {
 | 
			
		||||
                            mOnChapterBoundariesOutListener.onFirstPageOutEvent();
 | 
			
		||||
                            return true;
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        startDragY = 0;
 | 
			
		||||
                    }
 | 
			
		||||
                } else if (this.getCurrentItem() == this.getAdapter().getCount() - 1) {
 | 
			
		||||
                    if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) {
 | 
			
		||||
                        float displacement = startDragY - ev.getY();
 | 
			
		||||
 | 
			
		||||
                        if (ev.getY() < startDragY && displacement > getHeight() * SWIPE_TOLERANCE) {
 | 
			
		||||
                            mOnChapterBoundariesOutListener.onLastPageOutEvent();
 | 
			
		||||
                            return true;
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        startDragY = 0;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return super.onTouchEvent(ev);
 | 
			
		||||
        } catch (IllegalArgumentException e) {
 | 
			
		||||
            // Do Nothing.
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean onImageTouch(MotionEvent event) {
 | 
			
		||||
        return gestureDetector.onTouchEvent(event);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public interface OnChapterBoundariesOutListener {
 | 
			
		||||
        void onFirstPageOutEvent();
 | 
			
		||||
 | 
			
		||||
        void onLastPageOutEvent();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public interface OnChapterSingleTapListener {
 | 
			
		||||
        void onCenterTap();
 | 
			
		||||
        void onLeftSideTap();
 | 
			
		||||
        void onRightSideTap();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOnChapterBoundariesOutListener(OnChapterBoundariesOutListener onChapterBoundariesOutListener) {
 | 
			
		||||
        mOnChapterBoundariesOutListener = onChapterBoundariesOutListener;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOnChapterSingleTapListener(OnChapterSingleTapListener onChapterSingleTapListener) {
 | 
			
		||||
        mOnChapterSingleTapListener = onChapterSingleTapListener;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private class ReaderViewGestureListener extends GestureDetector.SimpleOnGestureListener {
 | 
			
		||||
        // TODO
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public boolean onSingleTapConfirmed(MotionEvent e) {
 | 
			
		||||
            final int position = getCurrentItem();
 | 
			
		||||
            final float positionX = e.getX();
 | 
			
		||||
 | 
			
		||||
            if (positionX < getWidth() * LEFT_REGION) {
 | 
			
		||||
                if (position != 0) {
 | 
			
		||||
                    if (mOnChapterSingleTapListener != null) {
 | 
			
		||||
                        mOnChapterSingleTapListener.onLeftSideTap();
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (mOnChapterBoundariesOutListener != null) {
 | 
			
		||||
                        mOnChapterBoundariesOutListener.onFirstPageOutEvent();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } else if (positionX > getWidth() * RIGHT_REGION) {
 | 
			
		||||
                if (position != getAdapter().getCount() - 1) {
 | 
			
		||||
                    if (mOnChapterSingleTapListener != null) {
 | 
			
		||||
                        mOnChapterSingleTapListener.onRightSideTap();
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (mOnChapterBoundariesOutListener != null) {
 | 
			
		||||
                        mOnChapterBoundariesOutListener.onLastPageOutEvent();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                if (mOnChapterSingleTapListener != null) {
 | 
			
		||||
                    mOnChapterSingleTapListener.onCenterTap();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-hdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-hdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 433 B  | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-ldpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-ldpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 214 B  | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 325 B  | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 570 B  | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 816 B  | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxxhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxxhdpi/ic_brightness_high.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										23
									
								
								app/src/main/res/layout/reader_brightness.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/src/main/res/layout/reader_brightness.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:orientation="vertical"
 | 
			
		||||
    android:layout_width="wrap_content"
 | 
			
		||||
    android:layout_height="match_parent"
 | 
			
		||||
    android:background="#333333"
 | 
			
		||||
    android:paddingRight="10dp"
 | 
			
		||||
    android:paddingLeft="5dp"
 | 
			
		||||
    android:paddingTop="5dp"
 | 
			
		||||
    android:paddingBottom="5dp">
 | 
			
		||||
 | 
			
		||||
    <CheckBox
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        style="@style/grey_text"
 | 
			
		||||
        android:text="@string/pref_custom_brightness"
 | 
			
		||||
        android:id="@+id/custom_brightness" />
 | 
			
		||||
 | 
			
		||||
    <SeekBar
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:id="@+id/brightness_seekbar" />
 | 
			
		||||
</LinearLayout>
 | 
			
		||||
@@ -72,14 +72,16 @@
 | 
			
		||||
                android:layout_width="0dp"
 | 
			
		||||
                android:layout_height="match_parent"
 | 
			
		||||
                android:layout_weight="1"
 | 
			
		||||
                android:id="@+id/lock_orientation"
 | 
			
		||||
                android:src="@drawable/ic_screen_rotation"
 | 
			
		||||
                android:id="@+id/reader_brightness"
 | 
			
		||||
                android:src="@drawable/ic_brightness_high"
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
                android:background="?android:selectableItemBackground" />
 | 
			
		||||
            <ImageButton
 | 
			
		||||
                android:layout_width="0dp"
 | 
			
		||||
                android:layout_height="match_parent"
 | 
			
		||||
                android:layout_weight="1"
 | 
			
		||||
                android:id="@+id/lock_orientation"
 | 
			
		||||
                android:src="@drawable/ic_screen_rotation"
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
                android:background="?android:selectableItemBackground" />
 | 
			
		||||
            <ImageButton
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,8 @@
 | 
			
		||||
    <string name="pref_enable_transitions_key">pref_enable_transitions_key</string>
 | 
			
		||||
    <string name="pref_show_page_number_key">pref_show_page_number_key</string>
 | 
			
		||||
    <string name="pref_keep_screen_on_key">pref_keep_screen_on_key</string>
 | 
			
		||||
    <string name="pref_custom_brightness_key">pref_custom_brightness_key</string>
 | 
			
		||||
    <string name="pref_custom_brightness_value_key">pref_custom_brightness_value_key</string>
 | 
			
		||||
 | 
			
		||||
    <string name="pref_download_directory_key">pref_download_directory_key</string>
 | 
			
		||||
    <string name="pref_download_threads_key">pref_download_threads_key</string>
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,16 @@
 | 
			
		||||
 | 
			
		||||
      <!-- Reader section -->
 | 
			
		||||
    <string name="pref_hide_status_bar">Hide status bar</string>
 | 
			
		||||
    <string name="pref_lock_orientation">Lock orientation</string>
 | 
			
		||||
    <string name="pref_enable_transitions">Enable transitions</string>
 | 
			
		||||
    <string name="pref_show_page_number">Show page number</string>
 | 
			
		||||
    <string name="pref_custom_brightness">Use custom brightness</string>
 | 
			
		||||
    <string name="pref_viewer_type">Default viewer</string>
 | 
			
		||||
    <string name="default_viewer">Default</string>
 | 
			
		||||
    <string name="left_to_right_viewer">Left to right</string>
 | 
			
		||||
    <string name="right_to_left_viewer">Right to left</string>
 | 
			
		||||
    <string name="vertical_viewer">Vertical</string>
 | 
			
		||||
    <string name="webtoon_viewer">Webtoon (experimental)</string>
 | 
			
		||||
    <string name="pref_lock_orientation">Lock orientation</string>
 | 
			
		||||
    <string name="pref_enable_transitions">Enable transitions</string>
 | 
			
		||||
    <string name="pref_show_page_number">Show page number</string>
 | 
			
		||||
 | 
			
		||||
      <!-- Downloads section -->
 | 
			
		||||
    <string name="pref_download_directory">Downloads directory</string>
 | 
			
		||||
 
 | 
			
		||||
@@ -103,6 +103,10 @@
 | 
			
		||||
        <item name="android:windowEnterAnimation">@anim/enter_from_right</item>
 | 
			
		||||
        <item name="android:windowExitAnimation">@anim/exit_to_right</item>
 | 
			
		||||
    </style>
 | 
			
		||||
    <style name="reader_brightness_popup_animation">
 | 
			
		||||
        <item name="android:windowEnterAnimation">@anim/enter_from_left</item>
 | 
			
		||||
        <item name="android:windowExitAnimation">@anim/exit_to_left</item>
 | 
			
		||||
    </style>
 | 
			
		||||
    <style name="grey_text">
 | 
			
		||||
        <item name="android:textColor">#e0e0e0</item>
 | 
			
		||||
    </style>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,10 @@
 | 
			
		||||
        android:key="@string/pref_show_page_number_key"
 | 
			
		||||
        android:defaultValue="true" />
 | 
			
		||||
 | 
			
		||||
    <CheckBoxPreference android:title="@string/pref_custom_brightness"
 | 
			
		||||
        android:key="@string/pref_custom_brightness_key"
 | 
			
		||||
        android:defaultValue="false" />
 | 
			
		||||
 | 
			
		||||
    <ListPreference android:title="@string/pref_viewer_type"
 | 
			
		||||
        android:key="@string/pref_default_viewer_key"
 | 
			
		||||
        android:entries="@array/viewers"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user