Merge "Fix talkback for switch on work in ResolverActivity" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-20 17:55:54 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 0 deletions

View File

@@ -62,6 +62,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
private final Context mContext; private final Context mContext;
private int mCurrentPage; private int mCurrentPage;
private OnProfileSelectedListener mOnProfileSelectedListener; private OnProfileSelectedListener mOnProfileSelectedListener;
private OnSwitchOnWorkSelectedListener mOnSwitchOnWorkSelectedListener;
private Set<Integer> mLoadedPages; private Set<Integer> mLoadedPages;
private final UserHandle mPersonalProfileUserHandle; private final UserHandle mPersonalProfileUserHandle;
private final UserHandle mWorkProfileUserHandle; private final UserHandle mWorkProfileUserHandle;
@@ -124,6 +125,10 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
mOnProfileSelectedListener = listener; mOnProfileSelectedListener = listener;
} }
void setOnSwitchOnWorkSelectedListener(OnSwitchOnWorkSelectedListener listener) {
mOnSwitchOnWorkSelectedListener = listener;
}
Context getContext() { Context getContext() {
return mContext; return mContext;
} }
@@ -397,6 +402,9 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
ProfileDescriptor descriptor = getItem( ProfileDescriptor descriptor = getItem(
userHandleToPageIndex(listAdapter.getUserHandle())); userHandleToPageIndex(listAdapter.getUserHandle()));
showSpinner(descriptor.getEmptyStateView()); showSpinner(descriptor.getEmptyStateView());
if (mOnSwitchOnWorkSelectedListener != null) {
mOnSwitchOnWorkSelectedListener.onSwitchOnWorkSelected();
}
mInjector.requestQuietModeEnabled(false, mWorkProfileUserHandle); mInjector.requestQuietModeEnabled(false, mWorkProfileUserHandle);
}); });
return true; return true;
@@ -575,6 +583,16 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
void onProfileSelected(int profileIndex); void onProfileSelected(int profileIndex);
} }
/**
* Listener for when the user switches on the work profile from the work tab.
*/
interface OnSwitchOnWorkSelectedListener {
/**
* Callback for when the user switches on the work profile from the work tab.
*/
void onSwitchOnWorkSelected();
}
/** /**
* Describes an injector to be used for cross profile functionality. Overridable for testing. * Describes an injector to be used for cross profile functionality. Overridable for testing.
*/ */

View File

@@ -1662,6 +1662,13 @@ public class ResolverActivity extends Activity implements
resetButtonBar(); resetButtonBar();
resetCheckedItem(); resetCheckedItem();
}); });
mMultiProfilePagerAdapter.setOnSwitchOnWorkSelectedListener(
() -> {
final View workTab = tabHost.getTabWidget().getChildAt(1);
workTab.setFocusable(true);
workTab.setFocusableInTouchMode(true);
workTab.requestFocus();
});
findViewById(R.id.resolver_tab_divider).setVisibility(View.VISIBLE); findViewById(R.id.resolver_tab_divider).setVisibility(View.VISIBLE);
} }