Skip to content

Commit 606980b

Browse files
TreeHugger RobotAndroid (Google) Code Review
authored andcommitted
Merge "Fix talkback for switch on work in ResolverActivity" into rvc-dev
2 parents 962f676 + 77bc0f1 commit 606980b

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
6262
private final Context mContext;
6363
private int mCurrentPage;
6464
private OnProfileSelectedListener mOnProfileSelectedListener;
65+
private OnSwitchOnWorkSelectedListener mOnSwitchOnWorkSelectedListener;
6566
private Set<Integer> mLoadedPages;
6667
private final UserHandle mPersonalProfileUserHandle;
6768
private final UserHandle mWorkProfileUserHandle;
@@ -124,6 +125,10 @@ void setOnProfileSelectedListener(OnProfileSelectedListener listener) {
124125
mOnProfileSelectedListener = listener;
125126
}
126127

128+
void setOnSwitchOnWorkSelectedListener(OnSwitchOnWorkSelectedListener listener) {
129+
mOnSwitchOnWorkSelectedListener = listener;
130+
}
131+
127132
Context getContext() {
128133
return mContext;
129134
}
@@ -397,6 +402,9 @@ private boolean maybeShowWorkProfileOffEmptyState(ResolverListAdapter listAdapte
397402
ProfileDescriptor descriptor = getItem(
398403
userHandleToPageIndex(listAdapter.getUserHandle()));
399404
showSpinner(descriptor.getEmptyStateView());
405+
if (mOnSwitchOnWorkSelectedListener != null) {
406+
mOnSwitchOnWorkSelectedListener.onSwitchOnWorkSelected();
407+
}
400408
mInjector.requestQuietModeEnabled(false, mWorkProfileUserHandle);
401409
});
402410
return true;
@@ -575,6 +583,16 @@ public interface OnProfileSelectedListener {
575583
void onProfileSelected(int profileIndex);
576584
}
577585

586+
/**
587+
* Listener for when the user switches on the work profile from the work tab.
588+
*/
589+
interface OnSwitchOnWorkSelectedListener {
590+
/**
591+
* Callback for when the user switches on the work profile from the work tab.
592+
*/
593+
void onSwitchOnWorkSelected();
594+
}
595+
578596
/**
579597
* Describes an injector to be used for cross profile functionality. Overridable for testing.
580598
*/

core/java/com/android/internal/app/ResolverActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,6 +1662,13 @@ private void setupProfileTabs() {
16621662
resetButtonBar();
16631663
resetCheckedItem();
16641664
});
1665+
mMultiProfilePagerAdapter.setOnSwitchOnWorkSelectedListener(
1666+
() -> {
1667+
final View workTab = tabHost.getTabWidget().getChildAt(1);
1668+
workTab.setFocusable(true);
1669+
workTab.setFocusableInTouchMode(true);
1670+
workTab.requestFocus();
1671+
});
16651672
findViewById(R.id.resolver_tab_divider).setVisibility(View.VISIBLE);
16661673
}
16671674

0 commit comments

Comments
 (0)