aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dialog/PinDialogFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dialog/PinDialogFragment.java')
-rw-r--r--src/com/android/tv/dialog/PinDialogFragment.java61
1 files changed, 48 insertions, 13 deletions
diff --git a/src/com/android/tv/dialog/PinDialogFragment.java b/src/com/android/tv/dialog/PinDialogFragment.java
index 87308093..ad245fad 100644
--- a/src/com/android/tv/dialog/PinDialogFragment.java
+++ b/src/com/android/tv/dialog/PinDialogFragment.java
@@ -18,6 +18,7 @@ package com.android.tv.dialog;
import android.app.ActivityManager;
import android.app.Dialog;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.media.tv.TvContentRating;
@@ -33,10 +34,14 @@ import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
import com.android.tv.R;
-import com.android.tv.TvSingletons;
import com.android.tv.common.SoftPreconditions;
import com.android.tv.dialog.picker.PinPicker;
+import com.android.tv.dialog.picker.TvPinPicker;
+import com.android.tv.util.TvInputManagerHelper;
import com.android.tv.util.TvSettings;
+import dagger.android.AndroidInjection;
+import com.android.tv.common.flags.UiFlags;
+import javax.inject.Inject;
public class PinDialogFragment extends SafeDismissDialogFragment {
private static final String TAG = "PinDialogFragment";
@@ -80,7 +85,9 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
private TextView mWrongPinView;
private View mEnterPinView;
private TextView mTitleView;
+
private PinPicker mPicker;
+ private TvPinPicker mTvPinPicker;
private SharedPreferences mSharedPreferences;
private String mPrevPin;
private String mPin;
@@ -88,6 +95,8 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
private int mWrongPinCount;
private long mDisablePinUntil;
private final Handler mHandler = new Handler();
+ @Inject TvInputManagerHelper mTvInputManagerHelper;
+ @Inject UiFlags mUiFlags;
public static PinDialogFragment create(int type) {
return create(type, null);
@@ -103,6 +112,12 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
}
@Override
+ public void onAttach(Context context) {
+ AndroidInjection.inject(this);
+ super.onAttach(context);
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRequestType = getArguments().getInt(ARGS_TYPE, PIN_DIALOG_TYPE_ENTER_PIN);
@@ -155,13 +170,26 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
mEnterPinView = v.findViewById(R.id.enter_pin);
mTitleView = (TextView) mEnterPinView.findViewById(R.id.title);
mPicker = v.findViewById(R.id.pin_picker);
- mPicker.setOnClickListener(
- view -> {
- String pin = getPinInput();
- if (!TextUtils.isEmpty(pin)) {
- done(pin);
- }
- });
+ mTvPinPicker = v.findViewById(R.id.tv_pin_picker);
+ if (!mUiFlags.useLeanbackPinPicker()) {
+ mTvPinPicker.setVisibility(View.GONE);
+ mPicker.setOnClickListener(
+ view -> {
+ String pin = getPinInput();
+ if (!TextUtils.isEmpty(pin)) {
+ done(pin);
+ }
+ });
+ } else {
+ mPicker.setVisibility(View.GONE);
+ mTvPinPicker.setOnClickListener(
+ view -> {
+ String pin = getPinInput();
+ if (!TextUtils.isEmpty(pin)) {
+ done(pin);
+ }
+ });
+ }
if (TextUtils.isEmpty(getPin())) {
// If PIN isn't set, user should set a PIN.
// Successfully setting a new set is considered as entering correct PIN.
@@ -183,8 +211,7 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
mTitleView.setText(
getString(
R.string.pin_enter_unlock_dvr,
- TvSingletons.getSingletons(getContext())
- .getTvInputManagerHelper()
+ mTvInputManagerHelper
.getContentRatingsManager()
.getDisplayNameForRating(tvContentRating)));
}
@@ -204,7 +231,11 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
if (mType != PIN_DIALOG_TYPE_NEW_PIN) {
updateWrongPin();
}
- mPicker.requestFocus();
+ if (!mUiFlags.useLeanbackPinPicker()) {
+ mPicker.requestFocus();
+ } else {
+ mTvPinPicker.requestFocus();
+ }
return v;
}
@@ -338,11 +369,15 @@ public class PinDialogFragment extends SafeDismissDialogFragment {
}
private String getPinInput() {
- return mPicker.getPinInput();
+ return (mUiFlags.useLeanbackPinPicker() ? mTvPinPicker.getPin() : mPicker.getPinInput());
}
private void resetPinInput() {
- mPicker.resetPinInput();
+ if (!mUiFlags.useLeanbackPinPicker()) {
+ mPicker.resetPinInput();
+ } else {
+ mTvPinPicker.resetPin();
+ }
}
/**