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

Commit 349af6a9 authored by arangelov's avatar arangelov
Browse files

Make "Always" and "Just once" buttons work properly in tabbed view

Fixes: 149821678
Test: manual

Change-Id: Ib0398d1a967d2b406894d499ccfc38da215ce230
parent 88a6bcae
Loading
Loading
Loading
Loading
+39 −12
Original line number Original line Diff line number Diff line
@@ -854,6 +854,11 @@ public class ResolverActivity extends Activity implements


    private void setAlwaysButtonEnabled(boolean hasValidSelection, int checkedPos,
    private void setAlwaysButtonEnabled(boolean hasValidSelection, int checkedPos,
            boolean filtered) {
            boolean filtered) {
        if (mMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
            // Never allow the inactive profile to always open an app.
            mAlwaysButton.setEnabled(false);
            return;
        }
        boolean enabled = false;
        boolean enabled = false;
        ResolveInfo ri = null;
        ResolveInfo ri = null;
        if (hasValidSelection) {
        if (hasValidSelection) {
@@ -877,6 +882,7 @@ public class ResolverActivity extends Activity implements
            }
            }
        }
        }


        if (ri != null) {
            ActivityInfo activityInfo = ri.activityInfo;
            ActivityInfo activityInfo = ri.activityInfo;


            boolean hasRecordPermission =
            boolean hasRecordPermission =
@@ -891,6 +897,7 @@ public class ResolverActivity extends Activity implements
                                ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE, false);
                                ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE, false);
                enabled = !hasAudioCapture;
                enabled = !hasAudioCapture;
            }
            }
        }
        mAlwaysButton.setEnabled(enabled);
        mAlwaysButton.setEnabled(enabled);
    }
    }


@@ -1567,10 +1574,26 @@ public class ResolverActivity extends Activity implements


        viewPager.setVisibility(View.VISIBLE);
        viewPager.setVisibility(View.VISIBLE);
        tabHost.setCurrentTab(mMultiProfilePagerAdapter.getCurrentPage());
        tabHost.setCurrentTab(mMultiProfilePagerAdapter.getCurrentPage());
        mMultiProfilePagerAdapter.setOnProfileSelectedListener(tabHost::setCurrentTab);
        mMultiProfilePagerAdapter.setOnProfileSelectedListener(
                index -> {
                    tabHost.setCurrentTab(index);
                    resetButtonBar();
                    resetCheckedItem();
                });
        findViewById(R.id.resolver_tab_divider).setVisibility(View.VISIBLE);
        findViewById(R.id.resolver_tab_divider).setVisibility(View.VISIBLE);
    }
    }


    private void resetCheckedItem() {
        if (!isIntentPicker()) {
            return;
        }
        mLastSelected = ListView.INVALID_POSITION;
        ListView inactiveListView = (ListView) mMultiProfilePagerAdapter.getInactiveAdapterView();
        if (inactiveListView.getCheckedItemCount() > 0) {
            inactiveListView.setItemChecked(inactiveListView.getCheckedItemPosition(), false);
        }
    }

    private void resetTabsHeaderStyle(TabWidget tabWidget) {
    private void resetTabsHeaderStyle(TabWidget tabWidget) {
        for (int i = 0; i < tabWidget.getChildCount(); i++) {
        for (int i = 0; i < tabWidget.getChildCount(); i++) {
            TextView title = tabWidget.getChildAt(i).findViewById(android.R.id.title);
            TextView title = tabWidget.getChildAt(i).findViewById(android.R.id.title);
@@ -1677,6 +1700,10 @@ public class ResolverActivity extends Activity implements
    }
    }


    private void resetAlwaysOrOnceButtonBar() {
    private void resetAlwaysOrOnceButtonBar() {
        // Disable both buttons initially
        setAlwaysButtonEnabled(false, ListView.INVALID_POSITION, false);
        mOnceButton.setEnabled(false);

        int filteredPosition = mMultiProfilePagerAdapter.getActiveListAdapter()
        int filteredPosition = mMultiProfilePagerAdapter.getActiveListAdapter()
                .getFilteredPosition();
                .getFilteredPosition();
        if (useLayoutWithDefault() && filteredPosition != ListView.INVALID_POSITION) {
        if (useLayoutWithDefault() && filteredPosition != ListView.INVALID_POSITION) {