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

Commit da7292ac authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refresh support screen more often"

parents 8d5f29d3 1cea5d19
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -119,6 +119,7 @@ public final class SupportFragment extends InstrumentedFragment implements View.
                        .build(),
                mNetworkCallback);
        mSupportItemAdapter.setHasInternet(hasInternet());
        mSupportItemAdapter.refreshData();
    }

    @Override
+10 −3
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
     * Create data for the adapter. If there is already data in the adapter, they will be
     * destroyed and recreated.
     */
    private void refreshData() {
    void refreshData() {
        mSupportData.clear();
        addEscalationCards();
        addMoreHelpItems();
@@ -601,7 +601,8 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
    /**
     * Data for a single support item.
     */
    private static class SupportData {
    @VisibleForTesting
    static class SupportData {

        final Intent intent;
        final int metricsEvent;
@@ -688,7 +689,8 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
    /**
     * Data model for escalation cards.
     */
    private static class EscalationData extends SupportData {
    @VisibleForTesting
    static class EscalationData extends SupportData {

        @StringRes
        final int text1;
@@ -813,4 +815,9 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
            }
        }
    }

    @VisibleForTesting
    List<SupportData> getSupportData() {
        return mSupportData;
    }
}
+36 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.dashboard;

import android.accounts.Account;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -26,7 +27,9 @@ import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import com.android.settings.TestConfig;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.SupportItemAdapter.EscalationData;
import com.android.settings.overlay.SupportFeatureProvider;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -38,6 +41,8 @@ import org.robolectric.annotation.Config;
import com.android.settings.R;
import org.robolectric.shadows.ShadowActivity;

import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.verify;
import static org.robolectric.Shadows.shadowOf;
import static org.mockito.Mockito.when;
@@ -111,6 +116,37 @@ public class SupportItemAdapterTest {
        verify(mSupportFeatureProvider).getSupportEligibleAccounts(mActivity);
    }

    @Test
    public void testRefreshData_CardUpdatedOnEnteringOrLeavingSupportHours() {
        // pretend we have support right now
        when(mSupportFeatureProvider.isSupportTypeEnabled(any(), anyInt()))
                .thenReturn(true);
        when(mSupportFeatureProvider.isOperatingNow(anyInt())).thenReturn(true);
        when(mSupportFeatureProvider.getSupportEligibleAccounts(any())).thenReturn(ONE_ACCOUNT);
        mSupportItemAdapter = new SupportItemAdapter(mActivity, null, mSupportFeatureProvider,
                mMetricsFeatureProvider, null);

        // If this doesn't return escalation data something has gone wrong
        EscalationData data = (EscalationData) mSupportItemAdapter.getSupportData().get(0);

        // precondition, support is enabled
        assertThat(data.enabled1).isTrue();

        // pretend we support hours are over
        when(mSupportFeatureProvider.isOperatingNow(anyInt())).thenReturn(false);
        mSupportItemAdapter.refreshData();
        data = (EscalationData) mSupportItemAdapter.getSupportData().get(0);

        assertThat(data.enabled1).isFalse();

        // pretend support hours have started again
        when(mSupportFeatureProvider.isOperatingNow(anyInt())).thenReturn(true);
        mSupportItemAdapter.refreshData();
        data = (EscalationData) mSupportItemAdapter.getSupportData().get(0);

        assertThat(data.enabled1).isTrue();
    }

    /**
     * Check after {@link SupportItemAdapter#bindAccountPicker(SupportItemAdapter.ViewHolder)} is
     * invoked, whether the spinner in {@paramref viewHolder} has all the data from {@paramref