use of javax.microedition.rms.RecordStore in project CodenameOne by codenameone.
the class BlackBerryImplementation method resaveFat.
private void resaveFat() {
RecordStore r = null;
RecordEnumeration e = null;
try {
r = RecordStore.openRecordStore("FAT", true);
Vector keys = new Vector();
Enumeration fatKeys = fat.keys();
while (fatKeys.hasMoreElements()) {
keys.addElement(fatKeys.nextElement());
}
e = r.enumerateRecords(null, null, false);
while (e.hasNextElement()) {
int recordId = e.nextRecordId();
byte[] rec = r.getRecord(recordId);
ByteArrayInputStream bi = new ByteArrayInputStream(rec);
DataInputStream di = new DataInputStream(bi);
String name = di.readUTF();
short key = di.readShort();
di.close();
bi.close();
Short fatKey = (Short) fat.get(name);
if (fatKey == null) {
// we need to remove this record...
r.deleteRecord(recordId);
} else {
// we need to update the record
if (fatKey.shortValue() != key) {
byte[] bd = toRecord(name, fatKey.shortValue());
r.setRecord(recordId, bd, 0, bd.length);
}
}
keys.removeElement(name);
}
e.destroy();
e = null;
Enumeration remainingKeys = keys.elements();
while (remainingKeys.hasMoreElements()) {
String name = (String) remainingKeys.nextElement();
Short key = (Short) fat.get(name);
byte[] bd = toRecord(name, key.shortValue());
r.addRecord(bd, 0, bd.length);
}
r.closeRecordStore();
} catch (Exception err) {
// This might be a valid exception and some platforms (e..g. RIM) don't respond well to PST
// err.printStackTrace();
cleanup(e);
cleanup(r);
}
}
use of javax.microedition.rms.RecordStore in project CodenameOne by codenameone.
the class BlackBerryImplementation method createStorageOutputStream.
/**
* @inheritDoc
*/
public OutputStream createStorageOutputStream(String name) throws IOException {
RecordStore r = null;
RMSOutputStream os = null;
DataOutputStream out = null;
try {
Short key = (Short) fat.get(name);
if (key == null) {
// need to add a key to the FAT
key = new Short(currentKey);
fat.put(name, key);
r = RecordStore.openRecordStore("FAT", true);
byte[] data = toRecord(name, currentKey);
currentKey++;
r.addRecord(data, 0, data.length);
r.closeRecordStore();
r = null;
}
os = new RMSOutputStream(key.shortValue());
return os;
} catch (Exception err) {
cleanup(r);
cleanup(os);
cleanup(out);
throw new IOException(err.getMessage());
}
}
use of javax.microedition.rms.RecordStore in project CodenameOne by codenameone.
the class BlackBerryImplementation method init.
public void init(Object m) {
instance = this;
app = (CodenameOneUiApplication) m;
if (askForPermission) {
app.invokeAndWait(new Runnable() {
public void run() {
ApplicationPermissions permRequest = new ApplicationPermissions();
permRequest.addPermission(ApplicationPermissions.PERMISSION_EMAIL);
permRequest.addPermission(ApplicationPermissions.PERMISSION_FILE_API);
permRequest.addPermission(ApplicationPermissions.PERMISSION_WIFI);
try {
// ApplicationPermissions.PERMISSION_CROSS_APPLICATION_COMMUNICATION
permRequest.addPermission(11);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_MEDIA
permRequest.addPermission(21);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_INPUT_SIMULATION
permRequest.addPermission(6);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_LOCATION_DATA
permRequest.addPermission(14);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_ORGANIZER_DATA
permRequest.addPermission(16);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_INTERNET
permRequest.addPermission(7);
} catch (Exception e) {
}
try {
// ApplicationPermissions.PERMISSION_RECORDING
permRequest.addPermission(17);
} catch (Exception e) {
}
ApplicationPermissionsManager apm = ApplicationPermissionsManager.getInstance();
if (!apm.invokePermissionsRequest(permRequest)) {
exitApplication();
return;
}
}
});
}
app.enableKeyUpEvents(true);
if (!app.isHandlingEvents()) {
new Thread() {
public void run() {
app.enterEventDispatcher();
}
}.start();
}
Dialog.setCommandsAsButtons(true);
UIManager.getInstance().addThemeRefreshListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Hashtable themeProps = new Hashtable();
themeProps.put("SoftButton.margin", "0,0,0,0");
themeProps.put("SoftButton.padding", "0,0,0,0");
UIManager.getInstance().addThemeProps(themeProps);
}
});
RecordEnumeration e = null;
RecordStore r = null;
try {
r = RecordStore.openRecordStore("FAT", true);
if (r.getNumRecords() > 0) {
e = r.enumerateRecords(null, null, false);
while (e.hasNextElement()) {
byte[] rec = e.nextRecord();
ByteArrayInputStream bi = new ByteArrayInputStream(rec);
DataInputStream di = new DataInputStream(bi);
String name = di.readUTF();
short key = di.readShort();
di.close();
bi.close();
fat.put(name, new Short(key));
if (key >= currentKey) {
currentKey += key;
}
}
e.destroy();
e = null;
}
r.closeRecordStore();
r = null;
} catch (Exception ex) {
ex.printStackTrace();
cleanup(r);
cleanup(e);
}
}
use of javax.microedition.rms.RecordStore in project CodenameOne by codenameone.
the class GameCanvasImplementation method resaveFat.
private void resaveFat() {
RecordStore r = null;
RecordEnumeration e = null;
try {
r = RecordStore.openRecordStore("FAT", true);
Vector keys = new Vector();
Enumeration fatKeys = fat.keys();
while (fatKeys.hasMoreElements()) {
keys.addElement(fatKeys.nextElement());
}
e = r.enumerateRecords(null, null, false);
while (e.hasNextElement()) {
int recordId = e.nextRecordId();
byte[] rec = r.getRecord(recordId);
ByteArrayInputStream bi = new ByteArrayInputStream(rec);
DataInputStream di = new DataInputStream(bi);
String name = di.readUTF();
short key = di.readShort();
di.close();
bi.close();
Short fatKey = (Short) fat.get(name);
if (fatKey == null) {
// we need to remove this record...
r.deleteRecord(recordId);
} else {
// we need to update the record
if (fatKey.shortValue() != key) {
byte[] bd = toRecord(name, fatKey.shortValue());
r.setRecord(recordId, bd, 0, bd.length);
}
}
keys.removeElement(name);
}
e.destroy();
e = null;
Enumeration remainingKeys = keys.elements();
while (remainingKeys.hasMoreElements()) {
String name = (String) remainingKeys.nextElement();
Short key = (Short) fat.get(name);
byte[] bd = toRecord(name, key.shortValue());
r.addRecord(bd, 0, bd.length);
}
r.closeRecordStore();
} catch (Exception err) {
// This might be a valid exception and some platforms (e..g. RIM) don't respond well to PST
// err.printStackTrace();
cleanup(e);
cleanup(r);
}
}
use of javax.microedition.rms.RecordStore in project CodenameOne by codenameone.
the class GameCanvasImplementation method init.
/**
* @inheritDoc
*/
public void init(Object m) {
canvas = createCanvas();
canvas.setTitle(null);
if (!disableFullScreen) {
canvas.setFullScreenMode(!com.codename1.ui.Display.getInstance().isNativeCommands());
}
// disable the flashGraphics bug on Nokia phones
String platform = System.getProperty("microedition.platform");
if (platform != null && platform.toUpperCase().indexOf("NOKIA") >= 0) {
flushGraphicsBug = false;
NOKIA = true;
// Symbian devices should yield a bit to let the paint thread complete its work
// problem is we can't differentiate S40 from S60...
Display.getInstance().setTransitionYield(1);
// nokia devices cannot use OutputStreamWriter flush when using
// MultipartRequest
MultipartRequest.setCanFlushStream(false);
} else {
flushGraphicsBug = true;
Display.getInstance().setTransitionYield(-1);
}
mid = (MIDlet) m;
display = javax.microedition.lcdui.Display.getDisplay(mid);
setSoftKeyCodes(mid);
if (mid.getAppProperty("forceBackCommand") != null) {
canvas.setCommandListener((CommandListener) canvas);
canvas.addCommand(MIDP_BACK_COMMAND);
}
RecordEnumeration e = null;
RecordStore r = null;
try {
r = RecordStore.openRecordStore("FAT", true);
if (r.getNumRecords() > 0) {
e = r.enumerateRecords(null, null, false);
while (e.hasNextElement()) {
byte[] rec = e.nextRecord();
ByteArrayInputStream bi = new ByteArrayInputStream(rec);
DataInputStream di = new DataInputStream(bi);
String name = di.readUTF();
short key = di.readShort();
di.close();
bi.close();
fat.put(name, new Short(key));
if (key >= currentKey) {
currentKey += key;
}
}
e.destroy();
e = null;
}
r.closeRecordStore();
r = null;
} catch (Exception ex) {
ex.printStackTrace();
cleanup(r);
cleanup(e);
}
}
Aggregations