public ScreenTab() { super(); OptionSlider scale = new OptionSlider( Messages.get(this, "scale"), (int) Math.ceil(2 * Game.density) + "X", PixelScene.maxDefaultZoom + "X", (int) Math.ceil(2 * Game.density), PixelScene.maxDefaultZoom) { @Override protected void onChange() { if (getSelectedValue() != ShatteredPixelDungeon.scale()) { ShatteredPixelDungeon.scale(getSelectedValue()); ShatteredPixelDungeon.switchNoFade( (Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() { @Override public void beforeCreate() { // do nothing } @Override public void afterCreate() { Game.scene().add(new WndSettings()); } }); } } }; scale.setSelectedValue(PixelScene.defaultZoom); scale.setRect(0, 0, WIDTH, SLIDER_HEIGHT); if ((int) Math.ceil(2 * Game.density) < PixelScene.maxDefaultZoom) add(scale); OptionSlider brightness = new OptionSlider( Messages.get(this, "brightness"), Messages.get(this, "dark"), Messages.get(this, "bright"), -2, 2) { @Override protected void onChange() { ShatteredPixelDungeon.brightness(getSelectedValue()); } }; brightness.setSelectedValue(ShatteredPixelDungeon.brightness()); brightness.setRect(0, scale.bottom() + GAP_TINY, WIDTH, SLIDER_HEIGHT); add(brightness); CheckBox chkImmersive = new CheckBox(Messages.get(this, "soft_keys")) { @Override protected void onClick() { super.onClick(); ShatteredPixelDungeon.immerse(checked()); } }; chkImmersive.setRect(0, brightness.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); chkImmersive.checked(ShatteredPixelDungeon.immersed()); chkImmersive.enable(android.os.Build.VERSION.SDK_INT >= 19); add(chkImmersive); CheckBox chkSaver = new CheckBox(Messages.get(this, "saver")) { @Override protected void onClick() { super.onClick(); if (checked()) { checked(!checked()); ShatteredPixelDungeon.scene() .add( new WndOptions( Messages.get(ScreenTab.class, "saver"), Messages.get(ScreenTab.class, "saver_desc"), Messages.get(ScreenTab.class, "okay"), Messages.get(ScreenTab.class, "cancel")) { @Override protected void onSelect(int index) { if (index == 0) { checked(!checked()); ShatteredPixelDungeon.powerSaver(checked()); } } }); } else { ShatteredPixelDungeon.powerSaver(checked()); } } }; chkSaver.setRect(0, chkImmersive.bottom() + GAP_TINY, WIDTH, BTN_HEIGHT); chkSaver.checked(ShatteredPixelDungeon.powerSaver()); if (PixelScene.maxScreenZoom >= 2) add(chkSaver); RedButton btnOrientation = new RedButton( ShatteredPixelDungeon.landscape() ? Messages.get(this, "portrait") : Messages.get(this, "landscape")) { @Override protected void onClick() { ShatteredPixelDungeon.landscape(!ShatteredPixelDungeon.landscape()); } }; btnOrientation.setRect(0, chkSaver.bottom() + GAP_SML, WIDTH, BTN_HEIGHT); add(btnOrientation); }