mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
add message-update events explicitly in the conversation-fragment, not in the -activity
This commit is contained in:
@@ -306,11 +306,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_CHAT_MODIFIED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_CONTACTS_CHANGED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_INCOMING_MSG);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSGS_CHANGED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_DELIVERED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_FAILED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_READ);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1951,9 +1946,5 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
if (eventId==DcContext.DC_EVENT_CHAT_MODIFIED || eventId==DcContext.DC_EVENT_CONTACTS_CHANGED) {
|
||||
onModified(recipient);
|
||||
}
|
||||
else {
|
||||
// TODO: delivered/read events this can be optimized by just updating the single checkmark/icon
|
||||
fragment.reloadList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ import android.widget.Toast;
|
||||
import android.widget.ViewSwitcher;
|
||||
|
||||
import com.b44t.messenger.DcContext;
|
||||
import com.b44t.messenger.DcEventCenter;
|
||||
import com.b44t.messenger.DcMsg;
|
||||
|
||||
import org.thoughtcrime.securesms.ConversationAdapter.HeaderViewHolder;
|
||||
@@ -95,7 +96,8 @@ import java.util.Set;
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
public class ConversationFragment extends Fragment
|
||||
implements LoaderManager.LoaderCallbacks<int[]>
|
||||
implements LoaderManager.LoaderCallbacks<int[]>,
|
||||
DcEventCenter.DcEventDelegate
|
||||
{
|
||||
private static final String TAG = ConversationFragment.class.getSimpleName();
|
||||
private static final String KEY_LIMIT = "limit";
|
||||
@@ -165,6 +167,18 @@ public class ConversationFragment extends Fragment
|
||||
|
||||
initializeResources();
|
||||
initializeListAdapter();
|
||||
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_INCOMING_MSG);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSGS_CHANGED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_DELIVERED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_FAILED);
|
||||
dcContext.eventCenter.addObserver(this, DcContext.DC_EVENT_MSG_READ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
dcContext.eventCenter.removeObservers(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -196,7 +210,10 @@ public class ConversationFragment extends Fragment
|
||||
}
|
||||
|
||||
public void reloadList() {
|
||||
getLoaderManager().restartLoader(0, Bundle.EMPTY, this);
|
||||
LoaderManager loaderManager = getLoaderManager();
|
||||
if (loaderManager!=null) {
|
||||
getLoaderManager().restartLoader(0, Bundle.EMPTY, this);
|
||||
}
|
||||
}
|
||||
|
||||
public void moveToLastSeen() {
|
||||
@@ -883,4 +900,9 @@ public class ConversationFragment extends Fragment
|
||||
}, 400);
|
||||
}
|
||||
}
|
||||
|
||||
public void handleEvent(int eventId, Object data1, Object data2) {
|
||||
// TODO: delivered/read events this can be optimized by just updating the single checkmark/icon
|
||||
reloadList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user