// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.olio.data.object.phone; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import com.olio.communication.actions.PhoneCallActionBuilder; import com.olio.communication.messages.Message; import com.olio.communication.messages.MessageBuilder; import com.olio.communication.notifications.Utilities; import com.olio.olios.model.record.DatabaseRecord; import com.olio.olios.model.record.DatabaseRecordMixins; import com.olio.util.ALog; import java.lang.annotation.Annotation; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; public class PhoneCallStatus implements DatabaseRecord { public static interface CallState extends Annotation { } public static final String ACTIONS_MESSAGES = "actions_messages"; public static final int CALL_SETUP_STATE_ALERTING = 3; public static final int CALL_SETUP_STATE_DIALING = 2; public static final int CALL_SETUP_STATE_IDLE = 6; public static final int CALL_SETUP_STATE_INCOMING = 4; public static final int CALL_SETUP_STATE_WAITING = 5; public static final String CALL_STATE = "call_state"; public static final int CALL_STATE_ACTIVE = 0; public static final int CALL_STATE_HELD = 1; public static final int CALL_STATE_VR_LISTENING = 17; public static final int CALL_STATE_VR_REQUESTED = 16; public static final String DECLINE_ACTION_MESSAGE = "decline_action_message"; public static final String PHONE_NUMBER = "phone_number"; public static final int PHONE_PROFILE_CONNECTED = 0; public static final int PHONE_PROFILE_NOT_CONNECTED = 1; public static final String PROFILE_CONNECTION_STATUS = "profile_connection_status"; public static final String TABLE_NAME = "phone_call_status"; private static String columnProjection[]; private static com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory databaseRecordFactory = new com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory() { public DatabaseRecord getRecordInstance() { return new PhoneCallStatus(); } }; private static final List recordFields; private int callState; private List mActionsMessages; private Message mDeclineActionMessage; private String phoneNumber; private int profileConnectionStatus; public PhoneCallStatus() { } private static PhoneCallStatus firstPhoneCallStatusFromCursor(Cursor cursor) { if (cursor != null && cursor.getCount() > 0) { return (PhoneCallStatus)DatabaseRecordMixins.recordsFromCursor(cursor, staticFactory()).get(0); } else { return null; } } public static Message getAnswerAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.ANSWER_PHONE_CALL).build()).build(); } public static Message getHangupAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.HANGUP).build()).build(); } public static Message getMuteAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.MUTE).build()).build(); } public static Message getUnmuteAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.UNMUTE).build()).build(); } public static Message getVoiceControlEndAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.VOICE_CONTROL_STOP).build()).build(); } public static Message getVoiceControlStartAction() { return (new MessageBuilder()).setDestination("watch").setPayload((new PhoneCallActionBuilder()).setPhoneCallAction(com.olio.communication.actions.PhoneCallAction.Action.VOICE_CONTROL_START).build()).build(); } public static PhoneCallStatus phoneCallStatus(ContentResolver contentresolver) { contentresolver = contentresolver.query(DatabaseRecordMixins.baseUriForTable(staticFactory()), staticColumnProjection(), null, null, null); PhoneCallStatus phonecallstatus = firstPhoneCallStatusFromCursor(contentresolver); if (contentresolver != null) { contentresolver.close(); } contentresolver = phonecallstatus; if (phonecallstatus == null) { contentresolver = new PhoneCallStatus(); contentresolver.setCallState(5); contentresolver.setProfileConnectionStatus(1); } return contentresolver; } public static String[] staticColumnProjection() { return columnProjection; } public static com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory staticFactory() { return databaseRecordFactory; } public void addActionToActionList(Message message) { if (mActionsMessages == null) { mActionsMessages = new LinkedList(); } mActionsMessages.add(message); } public String[] columnProjection() { return staticColumnProjection(); } public String defaultOrderBy() { return null; } public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } else { obj = (PhoneCallStatus)obj; return (new EqualsBuilder()).append(callState, ((PhoneCallStatus) (obj)).callState).append(profileConnectionStatus, ((PhoneCallStatus) (obj)).profileConnectionStatus).append(phoneNumber, ((PhoneCallStatus) (obj)).phoneNumber).append(mDeclineActionMessage, ((PhoneCallStatus) (obj)).mDeclineActionMessage).append(mActionsMessages, ((PhoneCallStatus) (obj)).mActionsMessages).isEquals(); } } public com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory factory() { return staticFactory(); } public List getActionsMessages() { return mActionsMessages; } public int getCallState() { return callState; } public Message getDeclineActionMessage() { return mDeclineActionMessage; } public String getPhoneNumber() { return phoneNumber; } public int getProfileConnectionStatus() { return profileConnectionStatus; } public Cursor handleCustomUriQuery(Uri uri, String as[], String s, String as1[], String s1) { return null; } public int hashCode() { return (new HashCodeBuilder(17, 37)).append(phoneNumber).append(callState).append(profileConnectionStatus).append(mDeclineActionMessage).append(mActionsMessages).toHashCode(); } public String indexColumn() { return "_id"; } public List recordFields() { return recordFields; } public void save(ContentResolver contentresolver) { ContentValues contentvalues = DatabaseRecordMixins.valuesForRecord(this); Uri uri = DatabaseRecordMixins.baseUriForTable(factory()).buildUpon().appendQueryParameter("shouldNotify", "YES").build(); int i = contentresolver.update(uri, contentvalues, null, null); if (i == 0) { contentresolver.insert(uri, contentvalues); } else if (i != 1 && i > 1) { ALog.e("Attempting to save PhoneCallStatus and there is more than one row in the table.", new Object[0]); throw new RuntimeException("Attempting to save PhoneCallStatus and there is more than one row in the table."); } } public void setActionsMessages(List list) { mActionsMessages = list; } public void setCallState(int i) { callState = i; } public void setDeclineActionMessage(Message message) { mDeclineActionMessage = message; } public void setPhoneNumber(String s) { phoneNumber = s; } public void setProfileConnectionStatus(int i) { profileConnectionStatus = i; } public String tableName() { return "phone_call_status"; } public Uri tableUri() { return DatabaseRecordMixins.baseUriForTable(staticFactory()); } static { recordFields = new LinkedList(); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(PhoneCallStatus phonecallstatus, Cursor cursor) { phonecallstatus.setPhoneNumber(cursor.getString(0)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((PhoneCallStatus)obj, cursor); } public String columnName() { return "phone_number"; } public String createType() { return "TEXT"; } public void writeToContentValues(PhoneCallStatus phonecallstatus, ContentValues contentvalues) { contentvalues.put(columnName(), phonecallstatus.getPhoneNumber()); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((PhoneCallStatus)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(PhoneCallStatus phonecallstatus, Cursor cursor) { phonecallstatus.setCallState(cursor.getInt(1)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((PhoneCallStatus)obj, cursor); } public String columnName() { return "call_state"; } public String createType() { return "INTEGER"; } public void writeToContentValues(PhoneCallStatus phonecallstatus, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(phonecallstatus.getCallState())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((PhoneCallStatus)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(PhoneCallStatus phonecallstatus, Cursor cursor) { phonecallstatus.setProfileConnectionStatus(cursor.getInt(2)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((PhoneCallStatus)obj, cursor); } public String columnName() { return "profile_connection_status"; } public String createType() { return "TEXT"; } public void writeToContentValues(PhoneCallStatus phonecallstatus, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(phonecallstatus.getProfileConnectionStatus())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((PhoneCallStatus)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(PhoneCallStatus phonecallstatus, Cursor cursor) { cursor = cursor.getBlob(cursor.getColumnIndex(columnName())); if (cursor != null) { phonecallstatus.setDeclineActionMessage((Message)Utilities.decode(cursor)); } } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((PhoneCallStatus)obj, cursor); } public String columnName() { return "decline_action_message"; } public String createType() { return "BLOB"; } public void writeToContentValues(PhoneCallStatus phonecallstatus, ContentValues contentvalues) { if (phonecallstatus.getDeclineActionMessage() != null) { contentvalues.put(columnName(), Utilities.encodeWithSerialization(phonecallstatus.getDeclineActionMessage())); return; } else { contentvalues.put(columnName(), (byte[])null); return; } } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((PhoneCallStatus)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(PhoneCallStatus phonecallstatus, Cursor cursor) { cursor = cursor.getBlob(cursor.getColumnIndex(columnName())); if (cursor != null) { phonecallstatus.setActionsMessages((List)Utilities.decode(cursor)); } } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((PhoneCallStatus)obj, cursor); } public String columnName() { return "actions_messages"; } public String createType() { return "BLOB"; } public void writeToContentValues(PhoneCallStatus phonecallstatus, ContentValues contentvalues) { if (phonecallstatus.getActionsMessages() != null) { contentvalues.put(columnName(), Utilities.encodeWithSerialization(phonecallstatus.getActionsMessages())); return; } else { contentvalues.put(columnName(), (byte[])null); return; } } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((PhoneCallStatus)obj, contentvalues); } }); columnProjection = DatabaseRecordMixins.columnProjectionFromRecordFields(recordFields); } }