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

Commit b91d08f1 authored by arangelov's avatar arangelov Committed by Antoan Angelov
Browse files

Autolaunch if one app in active profile and empty state in the inactive.

Fixes: 150883045
Test: manual
Change-Id: I2fbc862cc73c5763de9aaff436c01de8dbc83efb
parent fff2d76c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -389,6 +389,8 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
        Button button = emptyStateView.findViewById(R.id.resolver_empty_state_button);
        button.setVisibility(buttonOnClick != null ? View.VISIBLE : View.GONE);
        button.setOnClickListener(buttonOnClick);

        activeListAdapter.markTabLoaded();
    }

    private void showSpinner(View emptyStateView) {
+7 −4
Original line number Diff line number Diff line
@@ -1337,9 +1337,12 @@ public class ResolverActivity extends Activity implements
                    + "cannot be null.");
        }
        // We partially rebuild the inactive adapter to determine if we should auto launch
        boolean rebuildCompleted = mMultiProfilePagerAdapter.rebuildActiveTab(true);
        // isTabLoaded will be true here if the empty state screen is shown instead of the list.
        boolean rebuildCompleted = mMultiProfilePagerAdapter.rebuildActiveTab(true)
                || mMultiProfilePagerAdapter.getActiveListAdapter().isTabLoaded();
        if (shouldShowTabs()) {
            boolean rebuildInactiveCompleted = mMultiProfilePagerAdapter.rebuildInactiveTab(false);
            boolean rebuildInactiveCompleted = mMultiProfilePagerAdapter.rebuildInactiveTab(false)
                    || mMultiProfilePagerAdapter.getInactiveListAdapter().isTabLoaded();
            rebuildCompleted = rebuildCompleted && rebuildInactiveCompleted;
        }

@@ -1399,8 +1402,8 @@ public class ResolverActivity extends Activity implements
        if (numberOfProfiles == 1 && maybeAutolaunchIfSingleTarget()) {
            return true;
        } else if (numberOfProfiles == 2
                && mMultiProfilePagerAdapter.getActiveListAdapter().isListLoaded()
                && mMultiProfilePagerAdapter.getInactiveListAdapter().isListLoaded()
                && mMultiProfilePagerAdapter.getActiveListAdapter().isTabLoaded()
                && mMultiProfilePagerAdapter.getInactiveListAdapter().isTabLoaded()
                && (maybeAutolaunchIfNoAppsOnInactiveTab()
                        || maybeAutolaunchIfCrossProfileSupported())) {
            return true;
+9 −5
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public class ResolverListAdapter extends BaseAdapter {
    private final ResolverListCommunicator mResolverListCommunicator;
    private Runnable mPostListReadyRunnable;
    private final boolean mIsAudioCaptureDevice;
    private boolean mIsListLoaded;
    private boolean mIsTabLoaded;

    public ResolverListAdapter(Context context, List<Intent> payloadIntents,
            Intent[] initialIntents, List<ResolveInfo> rList,
@@ -192,7 +192,7 @@ public class ResolverListAdapter extends BaseAdapter {
        mLastChosenPosition = -1;
        mAllTargetsAreBrowsers = false;
        mDisplayList.clear();
        mIsListLoaded = false;
        mIsTabLoaded = false;

        if (mBaseResolveList != null) {
            currentResolveList = mUnfilteredResolveList = new ArrayList<>();
@@ -354,7 +354,7 @@ public class ResolverListAdapter extends BaseAdapter {

        mResolverListCommunicator.sendVoiceChoicesIfNeeded();
        postListReadyRunnable(doPostProcessing);
        mIsListLoaded = true;
        mIsTabLoaded = true;
    }

    /**
@@ -614,8 +614,12 @@ public class ResolverListAdapter extends BaseAdapter {
        return mIntents;
    }

    protected boolean isListLoaded() {
        return mIsListLoaded;
    protected boolean isTabLoaded() {
        return mIsTabLoaded;
    }

    protected void markTabLoaded() {
        mIsTabLoaded = true;
    }

    /**