package net.everythingandroid.smspopup.preferences;
import net.everythingandroid.smspopup.R;
import net.everythingandroid.smspopup.provider.SmsMmsMessage;
import net.everythingandroid.smspopup.provider.SmsPopupContract.ContactNotifications;
import net.everythingandroid.smspopup.util.ManageNotification;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
public class TestNotificationDialogPreference extends DialogPreference {
private Context context;
private String contactId = null;
public TestNotificationDialogPreference(Context _context, AttributeSet attrs) {
super(_context, attrs);
context = _context;
}
public TestNotificationDialogPreference(Context _context, AttributeSet attrs, int defStyle) {
super(_context, attrs, defStyle);
context = _context;
}
public void setContactId(String _contactId) {
contactId = _contactId;
}
public void setContactId(long _contactId) {
contactId = String.valueOf(_contactId);
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
ManageNotification.clear(context, ManageNotification.NOTIFICATION_TEST);
}
@Override
protected View onCreateDialogView() {
// Create a test SmsMmsMessage
String testPhone = "123-456-7890";
String contactLookup = null;
String sysContactId = null;
// If contactId is set, use it's phone else just use a default.
if (contactId != null) {
// Cursor contactCursor = mDbAdapter.fetchContact(Long.valueOf(contactId));
Cursor contactCursor = context.getContentResolver().query(
ContactNotifications.buildContactUri(contactId),
null, null, null, null);
if (contactCursor != null && contactCursor.moveToFirst()) {
testPhone = contactCursor.getString(
contactCursor.getColumnIndexOrThrow(ContactNotifications.CONTACT_NAME));
sysContactId = contactCursor.getString(
contactCursor.getColumnIndexOrThrow(ContactNotifications.CONTACT_ID));
contactLookup = contactCursor.getString(
contactCursor.getColumnIndexOrThrow(ContactNotifications.CONTACT_LOOKUPKEY));
contactCursor.close();
}
}
SmsMmsMessage message = new SmsMmsMessage(context, testPhone,
context.getString(R.string.pref_notif_test_title), 0, sysContactId, contactLookup,
testPhone, 1, 0, SmsMmsMessage.MESSAGE_TYPE_SMS);
// Show notification
ManageNotification.show(context, message, 1, ManageNotification.NOTIFICATION_TEST);
return super.onCreateDialogView();
}
}