UniFM/other/image/ImageOptions.java
2018-11-14 19:08:56 +02:00

112 lines
2.5 KiB
Java

package modules.image;
import com.one.ModuleRegistry;
import com.one.OptionStorage;
import com.vmx.Locale;
import filemanager.main;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
public class ImageOptions implements CommandListener, OptionStorage
{
public static int rotateMode = 0;
public static boolean scaleImages = true;
public static boolean useAccelerometer = false;
protected Object parent;
protected ChoiceGroup cgPlayer;
public void showEditor(Object parent)
{
this.parent = parent;
restoreOptions();
Form form = new Form(ModuleRegistry.getModuleName(getClass().getName()));
// *** Настройки плеера ***
cgPlayer = new ChoiceGroup(null, Choice.MULTIPLE);
// Использовать акселерометр
cgPlayer.append(Locale.getString(this, Locale.PREF_USE_ACCELEROMETER), null);
cgPlayer.setSelectedIndex(0, useAccelerometer);
form.append(cgPlayer);
form.addCommand(new Command(Locale.getString(this, Locale.OK_CMD), Command.OK, 1));
form.addCommand(new Command(Locale.getString(this, Locale.CANCEL_CMD), Command.BACK, 2));
form.setCommandListener(this);
main.dsp.setCurrent(form);
}
public void commandAction(Command c, Displayable d)
{
if(c.getCommandType() == Command.OK)
{
useAccelerometer = cgPlayer.isSelected(0);
saveOptions();
}
main.dsp.setCurrent(parent);
}
public void restoreOptions()
{
try
{
byte[] data = ModuleRegistry.getModuleData(getClass().getName());
if(data == null || data.length == 0)
{
return;
}
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data));
rotateMode = dis.readInt();
scaleImages = dis.readBoolean();
useAccelerometer = dis.readBoolean();
dis.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void saveOptions()
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(rotateMode);
dos.writeBoolean(scaleImages);
dos.writeBoolean(useAccelerometer);
byte[] data = baos.toByteArray();
dos.close();
ModuleRegistry.setModuleData(getClass().getName(), data);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}