summaryrefslogtreecommitdiff
path: root/Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java')
-rw-r--r--Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java47
1 files changed, 30 insertions, 17 deletions
diff --git a/Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java b/Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java
index 1bdf24194..69b2d17b3 100644
--- a/Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java
+++ b/Settings/src/com/android/tv/settings/system/InputCustomNameFragment.java
@@ -23,8 +23,10 @@ import androidx.annotation.NonNull;
import androidx.leanback.app.GuidedStepSupportFragment;
import androidx.leanback.widget.GuidanceStylist;
import androidx.leanback.widget.GuidedAction;
+import androidx.leanback.widget.GuidedActionsStylist;
import com.android.tv.settings.R;
+import com.android.tv.settings.util.AccessibilityHelper;
import java.util.List;
@@ -35,6 +37,7 @@ public class InputCustomNameFragment extends GuidedStepSupportFragment {
private static final String ARG_DEFAULT_NAME = "default_name";
private CharSequence mName;
+ private GuidedAction mEditAction;
public static void prepareArgs(@NonNull Bundle args, CharSequence defaultName,
CharSequence currentName) {
@@ -62,41 +65,51 @@ public class InputCustomNameFragment extends GuidedStepSupportFragment {
}
@Override
- public void onCreateButtonActions(@NonNull List<GuidedAction> actions,
- Bundle savedInstanceState) {
- actions.add(new GuidedAction.Builder(getContext())
- .clickAction(GuidedAction.ACTION_ID_OK)
- .build());
- actions.add(new GuidedAction.Builder(getContext())
- .clickAction(GuidedAction.ACTION_ID_CANCEL)
- .build());
+ public GuidedActionsStylist onCreateActionsStylist() {
+ return new GuidedActionsStylist() {
+ @Override
+ public int onProvideItemLayoutId() {
+ return R.layout.guided_step_input_action;
+ }
+ @Override
+ protected void setupImeOptions(GuidedActionsStylist.ViewHolder vh,
+ GuidedAction action) {
+ // keep defaults
+ }
+ };
}
@Override
public void onCreateActions(@NonNull List<GuidedAction> actions,
Bundle savedInstanceState) {
- actions.add(new GuidedAction.Builder(getContext())
+ mEditAction = new GuidedAction.Builder(getContext())
.title(mName)
.editable(true)
- .build());
+ .build();
+ actions.add(mEditAction);
}
@Override
- public void onGuidedActionClicked(GuidedAction action) {
- if (action.getId() == GuidedAction.ACTION_ID_OK) {
- ((Callback) getTargetFragment()).onSetCustomName(mName);
- getFragmentManager().popBackStack();
- } else if (action.getId() == GuidedAction.ACTION_ID_CANCEL) {
- getFragmentManager().popBackStack();
- }
+ public void onResume() {
+ super.onResume();
+ openInEditMode(mEditAction);
}
@Override
public long onGuidedActionEditedAndProceed(GuidedAction action) {
mName = action.getTitle();
+ ((Callback) getTargetFragment()).onSetCustomName(mName);
+ getFragmentManager().popBackStack();
return GuidedAction.ACTION_ID_OK;
}
+ @Override
+ public void onGuidedActionEditCanceled(GuidedAction action) {
+ // We need to ensure the IME is closed before navigating back. See b/233207859.
+ AccessibilityHelper.dismissKeyboard(getActivity(), getView());
+ getFragmentManager().popBackStack();
+ }
+
public interface Callback {
void onSetCustomName(CharSequence name);
}