Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0feab022 authored by Andrew Lee's avatar Andrew Lee Committed by Android (Google) Code Review
Browse files

Merge "Expand the first call log item for new cursors." into mnc-dev

parents a53ed4f8 158dfa2d
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -99,6 +99,8 @@ public class CallLogAdapter extends GroupingListAdapter
    // Tracks the rowId of the currently expanded list item, so the position can be updated if there
    // are any changes to the call log entries, such as additions or removals.
    private long mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
    // Whether the first call log list item has been automatically expanded for a new cursor.
    private boolean mHasBoundFirstView;

    /**
     *  Hashmap, keyed by call Id, used to track the day group for a call.  As call log entries are
@@ -285,6 +287,16 @@ public class CallLogAdapter extends GroupingListAdapter
        mCallFetcher.fetchCalls();
    }

    @Override
    public void changeCursor(Cursor cursor) {
        // Data has changed; reset so that the first call log list item will be expanded.
        mHasBoundFirstView = false;
        mCurrentlyExpandedPosition = RecyclerView.NO_POSITION;
        mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;

        super.changeCursor(cursor);
    }

    public void setLoading(boolean loading) {
        mLoading = loading;
    }
@@ -489,10 +501,15 @@ public class CallLogAdapter extends GroupingListAdapter

        mCallLogViewsHelper.setPhoneCallDetails(mContext, views, details);

        // Update the expanded position if the rowIds match, in case ViewHolders were added/removed.
        // Then restore the state of the row on rebind.
        if (mCurrentlyExpandedRowId == views.rowId) {
            // In case ViewHolders were added/removed, update the expanded position if the rowIds
            // match so that we can restore the correct expanded state on rebind.
            mCurrentlyExpandedPosition = position;
        } else if (!mHasBoundFirstView) {
            // Expand the first view when loading the call log to expose the actions.
            mCurrentlyExpandedRowId = views.rowId;
            mCurrentlyExpandedPosition = position;
            mHasBoundFirstView = true;
        }
        views.showActions(mCurrentlyExpandedPosition == position);