implement 'clear messages' for individual calls

javaax25
Georg Lukas 2012-07-12 00:32:11 +02:00
rodzic b1766bfa2e
commit cf0d604919
4 zmienionych plików z 23 dodań i 0 usunięć

Wyświetl plik

@ -1,6 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/details" android:title="@string/app_sta" />
<item android:id="@+id/message" android:title="@string/app_messages" />
<item android:id="@+id/messagesclear" android:title="@string/app_messages_clear" />
<item android:id="@+id/mapbutton" android:title="@string/sta_map" />
<item android:id="@+id/aprsfibutton" android:title="@string/sta_aprsfi" />
<item android:id="@+id/qrzcombutton" android:title="@string/sta_qrzcom" />

Wyświetl plik

@ -7,6 +7,7 @@
<string name="app_hub">APRSdroid Hub</string>
<string name="app_sta">Station Info</string>
<string name="app_messages">Messages</string>
<string name="app_messages_clear">Clear Messages</string>
<!-- APRSdroid activity -->
<string name="firstrun">You need to configure APRSdroid with your callsign and passcode!</string>
<string name="wrongpasscode">Your passcode does not match your callsign!</string>

Wyświetl plik

@ -409,6 +409,10 @@ class StorageDatabase(context : Context) extends
c.close()
result
}
def deleteMessages(call : String) {
getWritableDatabase().execSQL("DELETE FROM %s WHERE %s = ?".format(Message.TABLE, Message.CALL),
Array(call))
}
def getConversations() = {
getReadableDatabase().query(Message.TABLE, Message.COLUMNS,

Wyświetl plik

@ -32,6 +32,10 @@ trait UIHelper extends Activity
startActivity(new Intent(this, classOf[MessageActivity]).setData(Uri.parse(call)))
}
def clearMessages(call : String) {
new MessageCleaner(StorageDatabase.open(this), call).execute()
}
def openMessageSend(call : String, message : String) {
startActivity(new Intent(this, classOf[MessageActivity]).setData(Uri.parse(call)).putExtra("message", message))
}
@ -291,6 +295,9 @@ trait UIHelper extends Activity
case R.id.message =>
openMessaging(targetcall)
true
case R.id.messagesclear =>
clearMessages(targetcall)
true
case R.id.mapbutton =>
trackOnMap(targetcall)
true
@ -324,6 +331,16 @@ trait UIHelper extends Activity
sendBroadcast(new Intent(AprsService.UPDATE))
}
}
class MessageCleaner(storage : StorageDatabase, call : String) extends MyAsyncTask[Unit, Unit] {
override def doInBackground1(params : Array[String]) {
Log.d("MessageCleaner", "deleting...")
storage.deleteMessages(call)
}
override def onPostExecute(x : Unit) {
Log.d("MessageCleaner", "broadcasting...")
sendBroadcast(new Intent(AprsService.MESSAGE))
}
}
}
class UrlOpener(ctx : Context, url : String) extends DialogInterface.OnClickListener {