Merge "Make "Always" and "Just once" buttons work properly in tabbed view" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e6750fd522
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user