/* * Copyright © 2013 Nokia Corporation. All rights reserved. Nokia and Nokia * Connecting People are registered trademarks of Nokia Corporation. Oracle and * Java are trademarks or registered trademarks of Oracle and/or its affiliates. * Other product and company names mentioned herein may be trademarks or trade * names of their respective owners. See LICENSE.TXT for license information. */ package com.nokia.example.satsa; import javax.microedition.lcdui.List; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; import javax.microedition.rms.RecordStoreException; // 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 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 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()); } } }