Skip to content

Commit 1618041

Browse files
committed
incremented databse version number to include receive_time for messages
1 parent 22baec5 commit 1618041

5 files changed

Lines changed: 50 additions & 21 deletions

File tree

rapidandroid/org.rapidandroid/src/org/rapidandroid/content/translation/MessageTranslator.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,21 @@ public static synchronized Message GetMessage(Context context, int messageID) {
120120
try {
121121
String datestring = msgCursor.getString(Message.COL_TIME);
122122
Date msgDate = Message.SQLDateFormatter.parse(datestring);
123+
124+
String recvstring = msgCursor.getString(Message.COL_RECEIVE_TIME);
125+
Date recvDate = msgDate; //for old entries, should we set it to null or just copy it?
126+
if(recvstring == null || recvstring == "") {
127+
recvDate = Message.SQLDateFormatter.parse(datestring);
128+
}
129+
123130

124131
Message newMessage = new Message(
125132
msgCursor.getInt(Message.COL_ID),
126133
msgCursor.getString(Message.COL_MESSAGE),
127134
msgDate,
128-
mMonitorHash
129-
.get(Integer
130-
.valueOf(msgCursor
131-
.getInt(Message.COL_MONITOR))));
135+
mMonitorHash.get(Integer.valueOf(msgCursor.getInt(Message.COL_MONITOR))),
136+
recvDate
137+
);
132138
msgCursor.close();
133139
return newMessage;
134140
} catch (Exception ex) {
@@ -158,19 +164,24 @@ public static synchronized Message[] GetMessages(Context context, int[] messages
158164

159165
msgCursor.moveToFirst();
160166
for (int i = 0; i < retlen; i++) {
161-
// public Message(int id, String message, Date timestamp, Monitor
162-
// mMonitorString) {
163-
164167
try {
168+
String datestring = msgCursor.getString(Message.COL_TIME);
169+
Date msgDate = Message.SQLDateFormatter.parse(datestring);
170+
171+
String recvstring = msgCursor.getString(Message.COL_RECEIVE_TIME);
172+
Date recvDate = msgDate; //for old entries, should we set it to null or just copy it?
173+
174+
if(recvstring == null || recvstring == "") {
175+
recvDate = Message.SQLDateFormatter.parse(datestring);
176+
}
177+
165178
Message newMessage = new Message(
166179
msgCursor.getInt(Message.COL_ID),
167180
msgCursor.getString(Message.COL_MESSAGE),
168-
DateFormat.getInstance()
169-
.parse(msgCursor.getString(Message.COL_TIME)),
170-
mMonitorHash
171-
.get(Integer
172-
.valueOf(msgCursor
173-
.getInt(Message.COL_MONITOR))));
181+
msgDate,
182+
mMonitorHash.get(Integer.valueOf(msgCursor.getInt(Message.COL_MONITOR))),
183+
recvDate
184+
);
174185
ret[i] = newMessage;
175186
} catch (Exception ex) {
176187
// unable to parse datetime format

rapidandroid/org.rapidandroid/src/org/rapidandroid/data/RapidSmsDBConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public static final class Message implements BaseColumns {
5151
public static final String TIME = "time";
5252
public static final String IS_OUTGOING = "is_outgoing";
5353
public static final String IS_VIRTUAL = "is_virtual";
54+
public static final String RECEIVE_TIME = "receive_time";
5455
}
5556

5657
/**

rapidandroid/org.rapidandroid/src/org/rapidandroid/data/SmsDbHelper.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public class SmsDbHelper extends SQLiteOpenHelper {
3636
private String dbPathToUse = DATABASE_PATH_EXTERNAL;
3737

3838
// private static final String DATABASE_NAME = "rapidandroid.db";
39-
private static final int DATABASE_VERSION = 1;
39+
//private static final int DATABASE_VERSION = 1; //version 1: initial version 1/22/2009
40+
private static final int DATABASE_VERSION = 2; //2/6/2007, add receive_time column to message table
4041

4142
// Sections lifted from the originating class SqliteOpenHelper.java
4243
private SQLiteDatabase mDatabase = null;
@@ -236,10 +237,20 @@ public synchronized SQLiteDatabase getWritableDatabase() {
236237

237238
@Override
238239
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
239-
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion
240-
+ ", which will destroy all old data");
240+
// Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion
241+
// + ", which will destroy all old data");
241242
// db.execSQL("DROP TABLE IF EXISTS notes");
242-
onCreate(db);
243+
//onCreate(db);
244+
245+
if(oldVersion == 1 && newVersion == 2) {
246+
//version 1 to 2 introduced the receive_time for the message
247+
String messageAlterSql = "alter table rapidandroid_message add column receive_time datetime NULL";
248+
db.execSQL(messageAlterSql);
249+
}
250+
251+
252+
253+
243254
}
244255

245256
}

rapidandroid/org.rapidandroid/src/org/rapidandroid/receiver/SmsReceiver.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package org.rapidandroid.receiver;
55

66
import java.sql.Timestamp;
7+
import java.util.Date;
78

89
import org.rapidandroid.content.translation.MessageTranslator;
910
import org.rapidandroid.data.RapidSmsDBConstants;
@@ -65,6 +66,8 @@ private void insertMessageToContentProvider(Context context, SmsMessage mesg) {
6566
messageValues.put(RapidSmsDBConstants.Message.MONITOR, monitor.getID());
6667
messageValues.put(RapidSmsDBConstants.Message.TIME, Message.SQLDateFormatter.format(ts));
6768
messageValues.put(RapidSmsDBConstants.Message.IS_OUTGOING, false);
69+
Date now = new Date();
70+
messageValues.put(RapidSmsDBConstants.Message.RECEIVE_TIME, Message.SQLDateFormatter.format(now));
6871
boolean successfulSave = false;
6972
Uri msgUri = null;
7073
try {
@@ -79,7 +82,7 @@ private void insertMessageToContentProvider(Context context, SmsMessage mesg) {
7982
broadcast.putExtra("from", mesg.getOriginatingAddress());
8083
broadcast.putExtra("body", mesg.getMessageBody());
8184
broadcast.putExtra("msgid", Integer.valueOf(msgUri.getPathSegments().get(1)));
82-
//DeleteSMSFromInbox(context,mesg);
85+
DeleteSMSFromInbox(context,mesg);
8386
context.sendBroadcast(broadcast);
8487
}
8588
}

rapidjava/org.rapidsms.java/src/org/rapidsms/java/core/model/Message.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public class Message {
1919
public static final int COL_TIME = 3;
2020
public static final int COL_MESSAGE = 4;
2121
public static final int COL_IS_OUTGOING = 5;
22-
public static final int COL_IS_VIRTUAL = 6;
22+
public static final int COL_IS_VIRTUAL = 6;
23+
public static final int COL_RECEIVE_TIME = 7;
2324

2425
public static final int COL_PARSED_ID = 0;
2526
public static final int COL_PARSED_MESSAGE_ID = 1;
@@ -42,11 +43,13 @@ public class Message {
4243
public static DateFormat DisplayDateTimeFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm");
4344
public static DateFormat DisplayShortDateFormat = new SimpleDateFormat("MM/dd/yyyy");
4445

45-
public Message(int id, String message, Date timestamp, Monitor monitor) {
46+
47+
public Message(int id, String message, Date timestamp, Monitor monitor, Date recvtime) {
4648
this.mId = id;
4749
this.mMessageText = message;
4850
this.mMonitor = monitor;
4951
this.mTimestamp = timestamp;
52+
this.mReceiveTime = recvtime;
5053
}
5154

5255
/**
@@ -80,6 +83,6 @@ public int getID() {
8083
private String mMessageText;
8184
private Date mTimestamp;
8285
private Monitor mMonitor;
83-
86+
private Date mReceiveTime;
8487

8588
}

0 commit comments

Comments
 (0)