Merge "Queue events if enrollment sidecar listener is null" into oc-dev am: 32ad1c0db4
am: 35fb3302d7
Change-Id: I94cfe913b3e66ce27a0ee7ea439d3ed6a77942f3
This commit is contained in:
@@ -159,6 +159,14 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase
|
|||||||
startIconAnimation();
|
startIconAnimation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
if (mSidecar != null) {
|
||||||
|
mSidecar.setListener(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void startIconAnimation() {
|
private void startIconAnimation() {
|
||||||
mIconAnimationDrawable.start();
|
mIconAnimationDrawable.start();
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,8 @@ import com.android.settings.password.ChooseLockSettingsHelper;
|
|||||||
|
|
||||||
import com.android.settings.password.IFingerprintManager;
|
import com.android.settings.password.IFingerprintManager;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sidecar fragment to handle the state around fingerprint enrollment.
|
* Sidecar fragment to handle the state around fingerprint enrollment.
|
||||||
*/
|
*/
|
||||||
@@ -47,6 +49,57 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
|||||||
private boolean mDone;
|
private boolean mDone;
|
||||||
private int mUserId;
|
private int mUserId;
|
||||||
private IFingerprintManager mFingerprintManager;
|
private IFingerprintManager mFingerprintManager;
|
||||||
|
private ArrayList<QueuedEvent> mQueuedEvents;
|
||||||
|
|
||||||
|
private abstract class QueuedEvent {
|
||||||
|
public abstract void send(Listener listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class QueuedEnrollmentProgress extends QueuedEvent {
|
||||||
|
int enrollmentSteps;
|
||||||
|
int remaining;
|
||||||
|
public QueuedEnrollmentProgress(int enrollmentSteps, int remaining) {
|
||||||
|
this.enrollmentSteps = enrollmentSteps;
|
||||||
|
this.remaining = remaining;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void send(Listener listener) {
|
||||||
|
listener.onEnrollmentProgressChange(enrollmentSteps, remaining);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class QueuedEnrollmentHelp extends QueuedEvent {
|
||||||
|
int helpMsgId;
|
||||||
|
CharSequence helpString;
|
||||||
|
public QueuedEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
||||||
|
this.helpMsgId = helpMsgId;
|
||||||
|
this.helpString = helpString;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void send(Listener listener) {
|
||||||
|
listener.onEnrollmentHelp(helpString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class QueuedEnrollmentError extends QueuedEvent {
|
||||||
|
int errMsgId;
|
||||||
|
CharSequence errString;
|
||||||
|
public QueuedEnrollmentError(int errMsgId, CharSequence errString) {
|
||||||
|
this.errMsgId = errMsgId;
|
||||||
|
this.errString = errString;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void send(Listener listener) {
|
||||||
|
listener.onEnrollmentError(errMsgId, errString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FingerprintEnrollSidecar() {
|
||||||
|
mQueuedEvents = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
@@ -104,6 +157,13 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
|||||||
|
|
||||||
public void setListener(Listener listener) {
|
public void setListener(Listener listener) {
|
||||||
mListener = listener;
|
mListener = listener;
|
||||||
|
if (mListener != null) {
|
||||||
|
for (int i=0; i<mQueuedEvents.size(); i++) {
|
||||||
|
QueuedEvent event = mQueuedEvents.get(i);
|
||||||
|
event.send(mListener);
|
||||||
|
}
|
||||||
|
mQueuedEvents.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getEnrollmentSteps() {
|
public int getEnrollmentSteps() {
|
||||||
@@ -130,6 +190,8 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
|||||||
mDone = remaining == 0;
|
mDone = remaining == 0;
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);
|
mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);
|
||||||
|
} else {
|
||||||
|
mQueuedEvents.add(new QueuedEnrollmentProgress(mEnrollmentSteps, remaining));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,6 +199,8 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
|||||||
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.onEnrollmentHelp(helpString);
|
mListener.onEnrollmentHelp(helpString);
|
||||||
|
} else {
|
||||||
|
mQueuedEvents.add(new QueuedEnrollmentHelp(helpMsgId, helpString));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,6 +208,8 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
|||||||
public void onEnrollmentError(int errMsgId, CharSequence errString) {
|
public void onEnrollmentError(int errMsgId, CharSequence errString) {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.onEnrollmentError(errMsgId, errString);
|
mListener.onEnrollmentError(errMsgId, errString);
|
||||||
|
} else {
|
||||||
|
mQueuedEvents.add(new QueuedEnrollmentError(errMsgId, errString));
|
||||||
}
|
}
|
||||||
mEnrolling = false;
|
mEnrolling = false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user