Skip to content

Commit

Permalink
missing chats on cold start is fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
or-else committed Mar 28, 2019
1 parent a915559 commit 07cd5a6
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 226 deletions.
211 changes: 0 additions & 211 deletions app/src/main/java/co/tinode/tindroid/ChatListFragment.java

This file was deleted.

3 changes: 2 additions & 1 deletion app/src/main/java/co/tinode/tindroid/ChatsAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatImageView;

import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
Expand Down Expand Up @@ -104,7 +105,7 @@ public long getItemId(int position) {

@Override
public int getItemCount() {
return mTopics.size();
return mTopics == null ? 0 : mTopics.size();
}

private ComTopic<VxCard> getItemAt(int pos) {
Expand Down
25 changes: 15 additions & 10 deletions app/src/main/java/co/tinode/tindroid/ChatsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,6 @@ public void onCLick(final String topicName) {
activity.startActivity(intent);
}
});

mAdapter.resetContent(activity, mIsArchive, false);
rv.setAdapter(mAdapter);

mSelectionTracker = new SelectionTracker.Builder<>(
Expand All @@ -144,6 +142,21 @@ public void onSelectionChanged() {
}
}
});

mAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
super.onChanged();

if (mAdapter.getItemCount() > 0) {
activity.findViewById(R.id.chat_list).setVisibility(View.VISIBLE);
activity.findViewById(android.R.id.empty).setVisibility(View.GONE);
} else {
activity.findViewById(R.id.chat_list).setVisibility(View.GONE);
activity.findViewById(android.R.id.empty).setVisibility(View.VISIBLE);
}
}
});
}

@Override
Expand All @@ -162,13 +175,6 @@ public void onResume() {
}

mAdapter.resetContent(activity, mIsArchive, true);
if (mAdapter.getItemCount() > 0) {
activity.findViewById(R.id.chat_list).setVisibility(View.VISIBLE);
activity.findViewById(android.R.id.empty).setVisibility(View.GONE);
} else {
activity.findViewById(R.id.chat_list).setVisibility(View.GONE);
activity.findViewById(android.R.id.empty).setVisibility(View.VISIBLE);
}
}

@Override
Expand All @@ -178,7 +184,6 @@ public void onSaveInstanceState(@NonNull Bundle outState) {

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
Log.e(TAG, "onCreateOptionsMenu");
// Inflate the menu; this adds items to the action bar if it is present.
// super.onCreateOptionsMenu(menu, inflater);
menu.clear();
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/co/tinode/tindroid/ContactsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -419,9 +419,12 @@ private class ContactsLoaderCallback implements LoaderManager.LoaderCallbacks<Cu
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
final Activity activity = getActivity();
if (activity == null) {
throw new IllegalStateException("Activity is NULL");
}

// If this is the loader for finding contacts in the Contacts Provider
if (id == ContactsQuery.CORE_QUERY_ID && activity != null) {
if (id == ContactsQuery.CORE_QUERY_ID) {
String[] selectionArgs = null;
String selection = ContactsQuery.SELECTION;
if (mSearchTerm != null) {
Expand All @@ -442,9 +445,6 @@ public Loader<Cursor> onCreateLoader(int id, Bundle args) {

@Override
public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
Log.i(TAG, "Columns: " + Arrays.toString(data.getColumnNames()));
DatabaseUtils.dumpCursor(data);

// This swaps the new cursor into the adapter.
if (loader.getId() == ContactsQuery.CORE_QUERY_ID) {
mAdapter.resetContent(data, mSearchTerm);
Expand Down

0 comments on commit 07cd5a6

Please sign in to comment.