Merge "Make "Always" and "Just once" buttons work properly in tabbed view" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-05 22:14:50 +00:00
committed by Android (Google) Code Review

View File

@@ -854,6 +854,11 @@ public class ResolverActivity extends Activity implements
private void setAlwaysButtonEnabled(boolean hasValidSelection, int checkedPos,
boolean filtered) {
if (mMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
// Never allow the inactive profile to always open an app.
mAlwaysButton.setEnabled(false);
return;
}
boolean enabled = false;
ResolveInfo ri = null;
if (hasValidSelection) {
@@ -877,19 +882,21 @@ public class ResolverActivity extends Activity implements
}
}
ActivityInfo activityInfo = ri.activityInfo;
if (ri != null) {
ActivityInfo activityInfo = ri.activityInfo;
boolean hasRecordPermission =
mPm.checkPermission(android.Manifest.permission.RECORD_AUDIO,
activityInfo.packageName)
== android.content.pm.PackageManager.PERMISSION_GRANTED;
boolean hasRecordPermission =
mPm.checkPermission(android.Manifest.permission.RECORD_AUDIO,
activityInfo.packageName)
== android.content.pm.PackageManager.PERMISSION_GRANTED;
if (!hasRecordPermission) {
// OK, we know the record permission, is this a capture device
boolean hasAudioCapture =
getIntent().getBooleanExtra(
ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE, false);
enabled = !hasAudioCapture;
if (!hasRecordPermission) {
// OK, we know the record permission, is this a capture device
boolean hasAudioCapture =
getIntent().getBooleanExtra(
ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE, false);
enabled = !hasAudioCapture;
}
}
mAlwaysButton.setEnabled(enabled);
}
@@ -1567,10 +1574,26 @@ public class ResolverActivity extends Activity implements
viewPager.setVisibility(View.VISIBLE);
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);
}
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) {
for (int i = 0; i < tabWidget.getChildCount(); i++) {
TextView title = tabWidget.getChildAt(i).findViewById(android.R.id.title);
@@ -1677,6 +1700,10 @@ public class ResolverActivity extends Activity implements
}
private void resetAlwaysOrOnceButtonBar() {
// Disable both buttons initially
setAlwaysButtonEnabled(false, ListView.INVALID_POSITION, false);
mOnceButton.setEnabled(false);
int filteredPosition = mMultiProfilePagerAdapter.getActiveListAdapter()
.getFilteredPosition();
if (useLayoutWithDefault() && filteredPosition != ListView.INVALID_POSITION) {