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

Commit d969a5f5 authored by Salvador Martinez's avatar Salvador Martinez
Browse files

Settings timeout for suggestions

If loading suggestions takes too long (750ms)
settings will display just the categories
so the user does not get confused.

Test: Forthcoming
Bug: 31203004
Change-Id: Ic9866a5ccdcef965908db8c4592435a5d252f7b0
parent d654c889
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.LayoutInflater;
@@ -48,6 +49,7 @@ public class DashboardSummary extends InstrumentedFragment
        FocusRecyclerView.FocusListener {
    public static final boolean DEBUG = false;
    private static final boolean DEBUG_TIMING = false;
    private static final int MAX_WAIT_MILLIS = 700;
    private static final String TAG = "DashboardSummary";

    public static final String[] INITIAL_ITEMS = new String[] {
@@ -65,6 +67,8 @@ public class DashboardSummary extends InstrumentedFragment
    private static final String EXTRA_SUGGESTION_SHOWN_LOGGED = "suggestions_shown_logged";
    private static final String EXTRA_SUGGESTION_HIDDEN_LOGGED = "suggestions_hidden_logged";

    private final Handler mHandler = new Handler();

    private FocusRecyclerView mDashboard;
    private DashboardAdapter mAdapter;
    private SummaryLoader mSummaryLoader;
@@ -217,6 +221,14 @@ public class DashboardSummary extends InstrumentedFragment

        // recheck to see if any suggestions have been changed.
        new SuggestionLoader().execute();
        // Set categories on their own if loading suggestions takes too long.
        mHandler.postDelayed(() -> {
            final Activity activity = getActivity();
            if (activity != null) {
                mAdapter.setCategoriesAndSuggestions(
                        ((SettingsActivity) activity).getDashboardCategories(), null);
            }
        }, MAX_WAIT_MILLIS);
    }

    @Override
@@ -255,6 +267,9 @@ public class DashboardSummary extends InstrumentedFragment

        @Override
        protected void onPostExecute(List<Tile> tiles) {
            // tell handler that suggestions were loaded quickly enough
            mHandler.removeCallbacksAndMessages(null);

            final Activity activity = getActivity();
            if (activity == null) {
                return;