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

Commit 2586e79c authored by Danny Baumann's avatar Danny Baumann
Browse files

Fix call stats header and empty list text appearing prematurely.

Change-Id: I41da82abb4395280282b95ec2ff4dc57629ca980
parent e27e7aa1
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ public class CallStatsActivity extends ListActivity implements
    private long mFilterFrom = -1;
    private long mFilterTo = -1;
    private boolean mSortByDuration = true;
    private boolean mDataLoaded = false;

    private static final String STATE_SELECTED_NAVIGATION_ITEM = "selected_navigation_item";

@@ -241,7 +242,9 @@ public class CallStatsActivity extends ListActivity implements
    public boolean onNavigationItemSelected(int position, long id) {
        mCallTypeFilter = position;
        mAdapter.updateDisplayedData(mCallTypeFilter, mSortByDuration);
        if (mDataLoaded) {
            updateHeader();
        }
        return true;
    }

@@ -255,6 +258,7 @@ public class CallStatsActivity extends ListActivity implements
            return;
        }

        mDataLoaded = true;
        mAdapter.updateData(calls, mFilterFrom, mFilterTo);
        mAdapter.updateDisplayedData(mCallTypeFilter, mSortByDuration);
        updateHeader();
@@ -279,6 +283,10 @@ public class CallStatsActivity extends ListActivity implements
        getContentResolver().unregisterContentObserver(mObserver);
    }

    /* package */ boolean isDataLoaded() {
        return mDataLoaded;
    }

    private void fetchCalls() {
        mCallStatsQueryHandler.fetchCalls(mFilterFrom, mFilterTo);
    }
+13 −15
Original line number Diff line number Diff line
@@ -50,19 +50,18 @@ class CallStatsAdapter extends ArrayAdapter<CallStatsDetails>
        public void onClick(View view) {
            IntentProvider intentProvider = (IntentProvider) view.getTag();
            if (intentProvider != null) {
                mContext.startActivity(intentProvider.getIntent(mContext));
                mParent.startActivity(intentProvider.getIntent(mParent));
            }
        }
    };

    private final Context mContext;
    private final CallStatsActivity mParent;
    private final CallLogAdapterHelper mAdapterHelper;
    private final CallStatsDetailHelper mCallStatsDetailHelper;

    private ArrayList<CallStatsDetails> mAllItems;
    private CallStatsDetails mTotalItem;
    private Map<ContactInfo, CallStatsDetails> mInfoLookup;
    private boolean mLoading = true;

    private int mType = CallStatsQueryHandler.CALL_TYPE_ALL;
    private long mFilterFrom;
@@ -90,25 +89,25 @@ class CallStatsAdapter extends ArrayAdapter<CallStatsDetails>
        }
    };

    CallStatsAdapter(Context context) {
        super(context, R.layout.call_stats_list_item, R.id.number);
    CallStatsAdapter(CallStatsActivity parent) {
        super(parent, R.layout.call_stats_list_item, R.id.number);

        setNotifyOnChange(false);

        mAllItems = new ArrayList<CallStatsDetails>();
        mTotalItem = new CallStatsDetails(null, null, null, null, 0);
        mInfoLookup = new ConcurrentHashMap<ContactInfo, CallStatsDetails>();
        mContext = context;
        mParent = parent;

        Resources resources = mContext.getResources();
        Resources resources = mParent.getResources();
        PhoneNumberHelper phoneNumberHelper = new PhoneNumberHelper(resources);

        final String currentCountryIso = ContactsUtils.getCurrentCountryIso(mContext);
        final ContactInfoHelper contactInfoHelper = new ContactInfoHelper(mContext, currentCountryIso);
        final String currentCountryIso = ContactsUtils.getCurrentCountryIso(mParent);
        final ContactInfoHelper contactInfoHelper = new ContactInfoHelper(mParent, currentCountryIso);

        mAdapterHelper = new CallLogAdapterHelper(mContext, this,
        mAdapterHelper = new CallLogAdapterHelper(mParent, this,
                contactInfoHelper, phoneNumberHelper);
        mContactPhotoManager = ContactPhotoManager.getInstance(mContext);
        mContactPhotoManager = ContactPhotoManager.getInstance(mParent);
        mCallStatsDetailHelper = new CallStatsDetailHelper(resources, phoneNumberHelper);
    }

@@ -144,7 +143,6 @@ class CallStatsAdapter extends ArrayAdapter<CallStatsDetails>
            }
        }

        mLoading = false;
        notifyDataSetChanged();
    }

@@ -162,18 +160,18 @@ class CallStatsAdapter extends ArrayAdapter<CallStatsDetails>

    public String getTotalCallCountString() {
        return CallStatsDetailHelper.getCallCountString(
                mContext.getResources(), mTotalItem.getRequestedCount(mType));
                mParent.getResources(), mTotalItem.getRequestedCount(mType));
    }

    public String getFullDurationString(boolean withSeconds) {
        final long duration = mTotalItem.getRequestedDuration(mType);
        return CallStatsDetailHelper.getDurationString(
                mContext.getResources(), duration, withSeconds);
                mParent.getResources(), duration, withSeconds);
    }

    @Override
    public boolean isEmpty() {
        if (mLoading) {
        if (!mParent.isDataLoaded()) {
            return false;
        }
        return super.isEmpty();