gdmUtil: factor out some duplicated code in beginVerification

The duplication makes the function look a lot more complicated
than it actually is.

This commit moves the common code to a new _startService function.

https://bugzilla.gnome.org/show_bug.cgi?id=683437
This commit is contained in:
Ray Strode 2013-08-16 10:29:26 -04:00
parent 07b57de03e
commit fd11ad95f6

View File

@ -317,61 +317,30 @@ const ShellUserVerifier = new Lang.Class({
this._defaultService = PASSWORD_SERVICE_NAME; this._defaultService = PASSWORD_SERVICE_NAME;
}, },
_beginVerification: function() { _startService: function(serviceName) {
this._hold.acquire(); this._hold.acquire();
this._userVerifier.call_begin_verification_for_user(serviceName,
if (this._userName) { this._userName,
this._userVerifier.call_begin_verification_for_user(this._getForegroundService(), this._cancellable,
this._userName, Lang.bind(this, function(obj, result) {
this._cancellable, try {
Lang.bind(this, function(obj, result) { obj.call_begin_verification_for_user_finish(result);
try { } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
obj.call_begin_verification_for_user_finish(result); return;
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { } catch(e) {
return; this._reportInitError('Failed to start verification for user', e);
} catch(e) { return;
this._reportInitError('Failed to start verification for user', e);
return;
}
this._hold.release();
}));
if (this._haveFingerprintReader) {
this._hold.acquire();
this._userVerifier.call_begin_verification_for_user(FINGERPRINT_SERVICE_NAME,
this._userName,
this._cancellable,
Lang.bind(this, function(obj, result) {
try {
obj.call_begin_verification_for_user_finish(result);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
return;
} catch(e) {
this._reportInitError('Failed to start fingerprint verification for user', e);
return;
}
this._hold.release();
}));
} }
} else {
this._userVerifier.call_begin_verification(this._getForegroundService(),
this._cancellable,
Lang.bind(this, function(obj, result) {
try {
obj.call_begin_verification_finish(result);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
return;
} catch(e) {
this._reportInitError('Failed to start verification', e);
return;
}
this._hold.release(); this._hold.release();
})); }));
} },
_beginVerification: function() {
this._startService(this._getForegroundService());
if (this._userName && this._haveFingerprintReader)
this._startService(FINGERPRINT_SERVICE_NAME);
}, },
_onInfo: function(client, serviceName, info) { _onInfo: function(client, serviceName, info) {