This class handles the record store. It stores and retrieves the encrypted messages using the local RMS.
To create the class:
Assign the
class to the package satsa
and import the required classes.
package satsa; import javax.microedition.lcdui.List; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; import javax.microedition.rms.RecordStoreException;
Create the
class and open the MessageStore
.
// Stores the messages as byte arrays in the RMS class MessageStore { private final SATSAMIDlet midlet; private RecordStore recordStore; private RecordEnumeration recordEnumeration; private int[] messageIdArray; private int numberOfMessages; MessageStore(SATSAMIDlet midlet) { this.midlet = midlet; openMessageStore(); } void close() { try { recordStore.closeRecordStore(); } catch (RecordStoreException rse) { // Ignore, since the application is closing anyway. } }
List all messages in Record Store.
// List all messages in Record Store void fillList(List list) { list.deleteAll(); try { numberOfMessages = recordStore.getNumRecords(); messageIdArray = new int[numberOfMessages+1]; recordEnumeration = recordStore.enumerateRecords(null, null, false); int i=0; while (recordEnumeration.hasNextElement()) { i++; int id=recordEnumeration.nextRecordId(); list.append("Message " + id, null); messageIdArray[i]=id; } } catch (RecordStoreException rse) { midlet.showError("Record Store Exception. " + rse.getMessage()); } }
Add a record to Record Store.
// Add a record to Record Store void addMessage(byte[] messageData) { try { recordStore.addRecord(messageData, 0, messageData.length); } catch (RecordStoreException rse) { midlet.showError("Record Store Exception. " + rse.getMessage()); } } // Get message from Record Store byte[] getMessage(int index) { try { byte[] messageData = recordStore.getRecord(messageIdArray[index]); return messageData; } catch (RecordStoreException rse) { midlet.showError("Record Store Exception. " + rse.getMessage()); return null; } } // Delete a record from Record Store void deleteMessage(int index) { try { recordStore.deleteRecord(messageIdArray[index]); } catch (RecordStoreException rse) { midlet.showError("Record Store Exception. " + rse.getMessage()); } } private void openMessageStore() { try { recordStore = RecordStore.openRecordStore("SATSA_test", true); } catch (RecordStoreException rse) { midlet.showError("Record Store Exception. " + rse.getMessage()); } } }