Merge "Queue events if enrollment sidecar listener is null" into oc-dev
am: 32ad1c0db4
Change-Id: I3fecd41dac6e4fb3b576a18bf46f1d9a25c1b9ca
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();
|
||||||
}
|
}
|
||||||
|
@@ -31,6 +31,8 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.core.InstrumentedFragment;
|
import com.android.settings.core.InstrumentedFragment;
|
||||||
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.
|
||||||
*/
|
*/
|
||||||
@@ -46,6 +48,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) {
|
||||||
@@ -103,6 +156,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() {
|
||||||
@@ -129,6 +189,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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,6 +198,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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +207,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