package org.thoughtcrime.SMP.crypto.SMP; import android.content.Context; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; import android.util.Log; import org.thoughtcrime.SMP.crypto.MasterSecret; /** * Created by ludwig on 14/07/15. */ public class SMPContentObserver extends ContentObserver { private static final String TAG = SMPContentObserver.class.getSimpleName(); volatile boolean smpMessage = false; private Context context; private MasterSecret masterSecret; public SMPContentObserver(Handler handler, Context context, MasterSecret masterSecret) { super(handler); this.context = context; this.masterSecret = masterSecret; } @Override public void onChange(boolean selfChange) { this.onChange(selfChange, null); } @Override public void onChange(boolean selfChange, Uri uri){ smpMessage = true; Log.d(TAG, "smpMessage: " + smpMessage); } public boolean newSMPMessage() { return smpMessage; } /* public byte[] getNewSMPMessage(int extra){ /* int messageCount = DatabaseFactory.getSmsDatabase(context).getMessageCount(); Log.d(TAG, "messageCount before: " + messageCount); messageCount = messageCount + extra; Log.d(TAG, "messageCount after: " + messageCount); byte[] msg = null; Log.d(TAG, "extra: " + extra); try { SmsMessageRecord smsMessageRecord = DatabaseFactory.getEncryptingSmsDatabase(context) .getMessage(masterSecret, extra); String msString = smsMessageRecord.getDisplayBody().toString(); Log.d(TAG, "message: " + msString); msg = decode(msString); } catch (NoSuchMessageException e) {} return msg; } private byte[] decode(String input) { byte[] byteArray = Base64.decode(input.getBytes(), 0); Log.d(TAG, "decode array length: " + byteArray.length); return byteArray; } */ }