SYMBOL INDEX (274 symbols across 14 files) FILE: vibration/android/src/main/java/com/benjaminabel/vibration/Vibration.java class Vibration (line 10) | public class Vibration { method Vibration (line 13) | Vibration(Vibrator vibrator) { method vibrate (line 17) | @SuppressWarnings("deprecation") method vibrate (line 38) | @SuppressWarnings("deprecation") method vibrate (line 58) | @SuppressWarnings("deprecation") method getVibrator (line 90) | Vibrator getVibrator() { FILE: vibration/android/src/main/java/com/benjaminabel/vibration/VibrationMethodChannelHandler.java class VibrationMethodChannelHandler (line 11) | class VibrationMethodChannelHandler implements MethodChannel.MethodCallH... method VibrationMethodChannelHandler (line 14) | VibrationMethodChannelHandler(Vibration vibrationPlugin) { method onMethodCall (line 19) | @Override FILE: vibration/android/src/main/java/com/benjaminabel/vibration/VibrationPlugin.java class VibrationPlugin (line 14) | public class VibrationPlugin implements FlutterPlugin { method getVibrator (line 18) | public Vibrator getVibrator(@NonNull FlutterPluginBinding flutterPlugi... method getLegacyVibrator (line 32) | @SuppressWarnings("deprecation") method onAttachedToEngine (line 45) | @Override method onDetachedFromEngine (line 54) | @Override FILE: vibration/example/android/app/src/main/java/com/example/example/MainActivity.java class MainActivity (line 5) | public class MainActivity extends FlutterActivity { FILE: vibration/example/lib/main.dart function main (line 5) | void main() class VibratingApp (line 7) | class VibratingApp extends StatelessWidget { method showSnackBar (line 10) | void showSnackBar( method build (line 49) | Widget build(BuildContext context) FILE: vibration/lib/vibration.dart class Vibration (line 7) | class Vibration { method hasVibrator (line 17) | Future hasVibrator() method hasAmplitudeControl (line 30) | Future hasAmplitudeControl() method hasCustomVibrationsSupport (line 48) | Future hasCustomVibrationsSupport() method vibrate (line 69) | Future vibrate({ method cancel (line 111) | Future cancel() FILE: vibration/lib/vibration_presets.dart class VibrationPresetConfig (line 2) | class VibrationPresetConfig { type VibrationPreset (line 17) | enum VibrationPreset { FILE: vibration/test/vibration_test.dart function main (line 5) | void main() FILE: vibration_ohos/example/lib/main.dart function main (line 7) | void main() class VibratingApp (line 9) | class VibratingApp extends StatelessWidget { method build (line 13) | Widget build(BuildContext context) FILE: vibration_ohos/example/ohos/hvigor/hvigor-wrapper.js function g (line 1) | function g(){return m.default.type()===F} function A (line 1) | function A(){return m.default.type()===y} function G (line 1) | function G(){if(T)return N;T=1;var e=1e3,t=60*e,n=60*t,r=24*n,u=7*r,o=36... function V (line 1) | function V(){if(R)return k;return R=1,k=function(e){function t(e){let r,... function Z (line 1) | function Z(){return U||(U=1,J=(e,t)=>{t=t||process.argv;const n=e.starts... function X (line 1) | function X(){if(z)return W;z=1;const e=t,n=Z(),r=process.env;let u;funct... function Q (line 1) | function Q(){return K||(K=1,function(e,t){const n=o,r=i;t.init=function(... function r (line 1) | function r(e,r){for(var u=Object.keys(e),o=new Array(u.length),i=0;i{const n=t.toUppe... method isLessThanOrEqualTo (line 1) | isLessThanOrEqualTo(e){return"string"==typeof e&&(e=xe.getLevel(e)),th... method isGreaterThanOrEqualTo (line 1) | isGreaterThanOrEqualTo(e){return"string"==typeof e&&(e=xe.getLevel(e))... method isEqualTo (line 1) | isEqualTo(e){return"string"==typeof e&&(e=xe.getLevel(e)),this.level==... function c (line 2) | function c(e,t){if(a)return a=!a,t;const n=r.call(this,e,t);switch(typeo... method constructor (line 2) | constructor(){const e={__LOG4JS_undefined__:void 0,__LOG4JS_NaN__:Number... method canSerialise (line 2) | canSerialise(e){return"string"!=typeof e&&e in this.serMap} method serialise (line 2) | serialise(e){return this.canSerialise(e)?this.serMap[e]:e} method canDeserialise (line 2) | canDeserialise(e){return e in this.deMap} method deserialise (line 2) | deserialise(e){return this.canDeserialise(e)?this.deMap[e]:e} method constructor (line 2) | constructor(e,t,n,r,u,o){if(this.startTime=new Date,this.categoryName=e,... method _getLocationKeys (line 2) | static _getLocationKeys(){return["fileName","lineNumber","columnNumber",... method serialise (line 2) | serialise(){return Ke.stringify(this,((e,t)=>(t instanceof Error&&(t=Obj... method deserialise (line 2) | static deserialise(e){let t;try{const n=Ke.parse(e,((e,t)=>{if(t&&t.mess... function dt (line 2) | function dt(e){if("number"==typeof e&&Number.isInteger(e))return e;const... function pt (line 2) | function pt(e){return function(e,t){const n=Object.assign({},t);return O... function n (line 2) | function n(n,r,u){var o=Date.now(),i=0;t(n,r,(function s(a){if(a&&("EACC... function t (line 2) | function t(t){return t?function(n,r,u){return t.call(e,n,r,(function(e){... function n (line 2) | function n(t){return t?function(n,r){try{return t.call(e,n,r)}catch(e){i... function r (line 2) | function r(t){return t?function(n,r,u,o){return t.call(e,n,r,u,(function... function u (line 2) | function u(t){return t?function(n,r,u){try{return t.call(e,n,r,u)}catch(... function o (line 2) | function o(t){return t?function(n,r,u){function o(e,t){t&&(t.uid<0&&(t.u... function i (line 2) | function i(t){return t?function(n,r){var u=r?t.call(e,n,r):t.call(e,n);r... function s (line 2) | function s(e){return!e||("ENOSYS"===e.code||!(process.getuid&&0===proces... function n (line 2) | function n(n,r,u,o,i,s){var a;if(s&&"function"==typeof s){var c=0;a=func... function Wt (line 2) | function Wt(e,t){Object.defineProperty(e,jt,{get:function(){return t}})} function t (line 2) | function t(t,n){return e.call(Ht,t,(function(e){e||Qt(),"function"==type... function t (line 2) | function t(t){e.apply(Ht,arguments),Qt()} function Zt (line 2) | function Zt(e){Gt(e),e.gracefulify=Zt,e.createReadStream=function(t,n){r... function Xt (line 2) | function Xt(e){zt("ENQUEUE",e[0].name,e[1]),Ht[jt].push(e),en()} function Qt (line 2) | function Qt(){for(var e=Date.now(),t=0;tvn)return!0;if(_n===vn){if(bn>Sn)return!0;if(bn===Sn... function Pn (line 2) | function Pn(e,t){const n=An.resolve(e).split(An.sep).filter((e=>e)),r=An... function In (line 2) | function In(e,t,n){return`Cannot ${n} '${e}' to a subdirectory of itself... function Hn (line 2) | function Hn(e,t,n,r){if(!r.filter||r.filter(t,n))return function(e,t,n,r... function Gn (line 2) | function Gn(e,t,n,r){return"function"==typeof Rn.copyFileSync?(Rn.copyFi... function Vn (line 2) | function Vn(e,t,n){Rn.readdirSync(e).forEach((r=>function(e,t,n,r){const... function tr (line 2) | function tr(e,t,n,r,u){const o=Yn.dirname(n);Xn(o,((i,s)=>i?u(i):s?rr(e,... function nr (line 2) | function nr(e,t,n,r,u,o){Promise.resolve(u.filter(n,r)).then((i=>i?e(t,n... function rr (line 2) | function rr(e,t,n,r,u){return r.filter?nr(ur,e,t,n,r,u):ur(e,t,n,r,u)} function ur (line 2) | function ur(e,t,n,r,u){(r.dereference?qn.stat:qn.lstat)(t,((o,i)=>o?u(o)... function or (line 2) | function or(e,t,n,r,u){return"function"==typeof qn.copyFile?qn.copyFile(... function ir (line 2) | function ir(e,t,n,r){qn.chmod(t,e.mode,(u=>u?r(u):n.preserveTimestamps?Q... function sr (line 2) | function sr(e,t,n,r){qn.readdir(e,((u,o)=>u?r(u):ar(o,e,t,n,r)))} function ar (line 2) | function ar(e,t,n,r,u){const o=e.pop();return o?function(e,t,n,r,u,o){co... function Er (line 2) | function Er(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEa... function hr (line 2) | function hr(e,t,n){let r=0;"function"==typeof t&&(n=t,t={}),dr(e,"rimraf... function Cr (line 2) | function Cr(e,t,n){dr(e),dr(t),dr("function"==typeof n),t.lstat(e,((r,u)... function mr (line 2) | function mr(e,t,n,r){dr(e),dr(t),dr("function"==typeof r),n&&dr(n instan... function Fr (line 2) | function Fr(e,t,n){let r;dr(e),dr(t),n&&dr(n instanceof Error);try{t.chm... function yr (line 2) | function yr(e,t,n,r){dr(e),dr(t),n&&dr(n instanceof Error),dr("function"... function gr (line 2) | function gr(e,t){let n;Er(t=t||{}),dr(e,"rimraf: missing path"),dr.stric... function Ar (line 2) | function Ar(e,t,n){dr(e),dr(t),n&&dr(n instanceof Error);try{t.rmdirSync... function Ir (line 2) | function Ir(e){let t;try{t=_r.readdirSync(e)}catch(t){return Br.mkdirsSy... function n (line 2) | function n(){Rr.writeFile(e,"",(e=>{if(e)return t(e);t()}))} function r (line 2) | function r(e,t){Gr.link(e,t,(e=>{if(e)return n(e);n(null)}))} function fu (line 2) | function fu(e,t){var n,r="\n";return"object"==typeof t&&null!==t&&(t.spa... function Du (line 2) | function Du(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.rep... function Mu (line 2) | function Mu(e,t,n){try{Pu.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)t... function zu (line 2) | function zu(e,t,n,r){$u.rename(e,t,(u=>u?"EXDEV"!==u.code?r(u):function(... method constructor (line 2) | constructor(e,t){if(lo(`constructor: creating RollingFileWriteStream. pa... method _setExistingSizeAndDate (line 2) | _setExistingSizeAndDate(){try{const e=fo.statSync(this.filename);this.st... method _parseOption (line 2) | _parseOption(e){const t={maxSize:0,numToKeep:Number.MAX_SAFE_INTEGER,enc... method _final (line 2) | _final(e){this.currentFileStream.end("",this.options.encoding,e)} method _write (line 2) | _write(e,t,n){this._shouldRoll().then((()=>{lo(`_write: writing chunk. f... method _shouldRoll (line 2) | async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(lo(`_shouldR... method _dateChanged (line 2) | _dateChanged(){return this.state.currentDate&&this.state.currentDate!==h... method _tooBig (line 2) | _tooBig(){return this.state.currentSize>=this.options.maxSize} method _roll (line 2) | _roll(){return lo("_roll: closing the current stream"),new Promise(((e,t... method _moveOldFiles (line 2) | async _moveOldFiles(){const e=await this._getExistingFiles();for(let t=(... method _getExistingFiles (line 2) | async _getExistingFiles(){const e=await fo.readdir(this.fileObject.dir).... method _renewWriteStream (line 2) | _renewWriteStream(){const e=this.fileFormatter({date:this.state.currentD... method _clean (line 2) | async _clean(){const e=await this._getExistingFiles();if(lo(`_clean: num... method _tooManyFiles (line 2) | _tooManyFiles(e){return this.options.numToKeep>0&&e>this.options.numToKeep} method constructor (line 2) | constructor(e,t,n,r){r||(r={}),t&&(r.maxSize=t),r.numBackups||0===r.numB... method theStream (line 2) | get theStream(){return this.currentFileStream} method constructor (line 2) | constructor(e,t,n){t&&"object"==typeof t&&(n=t,t=null),n||(n={}),t||(t="... method theStream (line 2) | get theStream(){return this.currentFileStream} function No (line 2) | function No(){Io.forEach((e=>{e.sighupHandler()}))} function i (line 2) | function i(e,t,n,r){const u=new bo.RollingFileStream(e,t,n,r);return u.o... function Mo (line 2) | function Mo(e,t,n,r,u){r.maxSize=r.maxLogSize;const o=function(e,t,n){co... function Jo (line 2) | function Jo(e,t){const n=e=>{try{return Ho.mkdirSync(e,{recursive:!0})}c... class Uo (line 2) | class Uo{constructor(e,t,n,r){if(jo("In RollingFileStream"),t<0)throw ne... method constructor (line 2) | constructor(e,t,n,r){if(jo("In RollingFileStream"),t<0)throw new Error... method shouldRoll (line 2) | shouldRoll(){return jo("should roll with current size %d, and max size... method roll (line 2) | roll(e){const t=this,n=new RegExp(`^${$o.basename(e)}`);function r(e){... method write (line 2) | write(e,t){const n=this;jo("in write"),this.shouldRoll()&&(this.curren... method write (line 2) | write(e){Ho.appendFileSync(o,e)} function s (line 2) | function s(e){zo("Writing log event to socket"),n=u.write(`${t(e)}${i}`,... function a (line 2) | function a(){let e;for(zo("emptying buffer");e=r.shift();)s(e)} function c (line 2) | function c(e){n?s(e):(zo("buffering log event because it cannot write at... function i (line 2) | function i(e,t,n){if(!1===t.inherit)return;const r=n.lastIndexOf(".");if... function s (line 2) | function s(e){if(!e.categories)return;Object.keys(e.categories).forEach(... function mi (line 2) | function mi(e,t=4){try{const n=e.stack.split("\n").slice(t);if(!n.length... method constructor (line 2) | constructor(e){if(!e)throw new Error("No category provided.");this.categ... method level (line 2) | get level(){return di.getLevel(Ei.getLevelForCategory(this.category),di.... method level (line 2) | set level(e){Ei.setLevelForCategory(this.category,di.getLevel(e,this.lev... method useCallStack (line 2) | get useCallStack(){return Ei.getEnableCallStackForCategory(this.category)} method useCallStack (line 2) | set useCallStack(e){Ei.setEnableCallStackForCategory(this.category,!0===e)} method callStackLinesToSkip (line 2) | get callStackLinesToSkip(){return this.callStackSkipIndex} method callStackLinesToSkip (line 2) | set callStackLinesToSkip(e){if("number"!=typeof e)throw new TypeError("M... method log (line 2) | log(e,...t){const n=di.getLevel(e);n?this.isLevelEnabled(n)&&this._log(n... method isLevelEnabled (line 2) | isLevelEnabled(e){return this.level.isLessThanOrEqualTo(e)} method _log (line 2) | _log(e,t){fi(`sending log data (${e}) to appenders`);const n=t.find((e=>... method addContext (line 2) | addContext(e,t){this.context[e]=t} method removeContext (line 2) | removeContext(e){delete this.context[e]} method clearContext (line 2) | clearContext(){this.context={}} method setParseCallStackFunction (line 2) | setParseCallStackFunction(e){if("function"==typeof e)this.parseCallStack... function yi (line 2) | function yi(e){const t=di.getLevel(e),n=t.toString().toLowerCase().repla... function vi (line 2) | function vi(e){return e.originalUrl||e.url} function Si (line 2) | function Si(e,t){for(let n=0;n{})){if("function"!=typeof e)throw new TypeError("Inv... class Xi (line 2) | class Xi{} method isIgnoreChar (line 2) | static isIgnoreChar(e){return"string"==typeof e&&("\t"===e||"\v"===e||"\... method isSpaceSeparator (line 2) | static isSpaceSeparator(e){return"string"==typeof e&&Qi.Unicode.SPACE_SE... method isIdStartChar (line 2) | static isIdStartChar(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A... method isIdContinueChar (line 2) | static isIdContinueChar(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>... method isDigitWithoutZero (line 2) | static isDigitWithoutZero(e){return/[1-9]/.test(e)} method isDigit (line 2) | static isDigit(e){return"string"==typeof e&&/[0-9]/.test(e)} method isHexDigit (line 2) | static isHexDigit(e){return"string"==typeof e&&/[0-9A-Fa-f]/.test(e)} function gs (line 2) | function gs(e,t=!1){ss=String(e),Ds="start",ds=[],ps=0,Es=1,hs=0,cs=void... function As (line 2) | function As(){for(ms="default",ls="",Fs="'",ys=1;;){fs=vs();const e=ws[m... function vs (line 2) | function vs(){if(ss[ps])return String.fromCodePoint(ss.codePointAt(ps))} function Ss (line 2) | function Ss(){const e=vs();return"\n"===e?(Es++,hs=0):e?hs+=e.length:hs+... method default (line 2) | default(){switch(fs){case"/":return Ss(),void(ms="comment");case void 0:... method start (line 2) | start(){ms="value"} method beforePropertyName (line 2) | beforePropertyName(){switch(fs){case"$":case"_":return ls=Ss(),void(ms="... method afterPropertyName (line 2) | afterPropertyName(){if(":"===fs)return Os("punctuator",Ss());throw Ns(os... method beforePropertyValue (line 2) | beforePropertyValue(){ms="value"} method afterPropertyValue (line 2) | afterPropertyValue(){switch(fs){case",":case"}":return Os("punctuator",S... method beforeArrayValue (line 2) | beforeArrayValue(){if("]"===fs)return Os("punctuator",Ss());ms="value"} method afterArrayValue (line 2) | afterArrayValue(){switch(fs){case",":case"]":return Os("punctuator",Ss()... method end (line 2) | end(){throw Ns(os.Char,Ss())} method comment (line 2) | comment(){switch(fs){case"*":return Ss(),void(ms="multiLineComment");cas... method multiLineComment (line 2) | multiLineComment(){switch(fs){case"*":return Ss(),void(ms="multiLineComm... method multiLineCommentAsterisk (line 2) | multiLineCommentAsterisk(){switch(fs){case"*":return void Ss();case"/":r... method singleLineComment (line 2) | singleLineComment(){switch(fs){case"\n":case"\r":case"\u2028":case"\u202... method value (line 2) | value(){switch(fs){case"{":case"[":return Os("punctuator",Ss());case"n":... method numerical (line 2) | numerical(){switch(fs){case".":return ls=Ss(),void(ms="decimalPointLeadi... method zero (line 2) | zero(){switch(fs){case".":case"e":case"E":return void(ms="decimal");case... method decimalInteger (line 2) | decimalInteger(){switch(fs){case".":case"e":case"E":return void(ms="deci... method decimal (line 2) | decimal(){switch(fs){case".":ls+=Ss(),ms="decimalFraction";break;case"e"... method decimalPointLeading (line 2) | decimalPointLeading(){if(us.JudgeUtil.isDigit(fs))return ls+=Ss(),void(m... method decimalFraction (line 2) | decimalFraction(){switch(fs){case"e":case"E":return ls+=Ss(),void(ms="de... method decimalExponent (line 2) | decimalExponent(){switch(fs){case"+":case"-":return ls+=Ss(),void(ms="de... method decimalExponentSign (line 2) | decimalExponentSign(){if(us.JudgeUtil.isDigit(fs))return ls+=Ss(),void(m... method decimalExponentInteger (line 2) | decimalExponentInteger(){if(!us.JudgeUtil.isDigit(fs))return Os("numeric... method hexadecimal (line 2) | hexadecimal(){if(us.JudgeUtil.isHexDigit(fs))return ls+=Ss(),void(ms="he... method hexadecimalInteger (line 2) | hexadecimalInteger(){if(!us.JudgeUtil.isHexDigit(fs))return Os("numeric"... method identifierNameStartEscape (line 2) | identifierNameStartEscape(){if("u"!==fs)throw Ns(os.Char,Ss());Ss();cons... method identifierName (line 2) | identifierName(){switch(fs){case"$":case"_":case"‌":case"‍":return void(... method identifierNameEscape (line 2) | identifierNameEscape(){if("u"!==fs)throw Ns(os.Char,Ss());Ss();const e=b... method string (line 2) | string(){switch(fs){case"\\":return Ss(),void(ls+=function(){const e=vs(... function Os (line 2) | function Os(e,t){return{type:e,value:t,line:Es,column:hs}} function _s (line 2) | function _s(e){for(const t of e){if(vs()!==t)throw Ns(os.Char,Ss());Ss()}} function bs (line 2) | function bs(){let e="",t=4;for(;t-- >0;){const t=vs();if(!us.JudgeUtil.i... method start (line 2) | start(){if("eof"===is.type)throw Ns(os.EOF);xs()} method beforePropertyName (line 2) | beforePropertyName(){switch(is.type){case"identifier":case"string":retur... method afterPropertyName (line 2) | afterPropertyName(){if("eof"===is.type)throw Ns(os.EOF);Ds="beforeProper... method beforePropertyValue (line 2) | beforePropertyValue(){if("eof"===is.type)throw Ns(os.EOF);xs()} method afterPropertyValue (line 2) | afterPropertyValue(){if("eof"===is.type)throw Ns(os.EOF);switch(is.value... method beforeArrayValue (line 2) | beforeArrayValue(){if("eof"===is.type)throw Ns(os.EOF);"punctuator"!==is... method afterArrayValue (line 2) | afterArrayValue(){if("eof"===is.type)throw Ns(os.EOF);switch(is.value){c... method end (line 2) | end(){} function xs (line 2) | function xs(){const e=function(){let e;switch(is.type){case"punctuator":... function Ps (line 2) | function Ps(){ds.pop();const e=ds[ds.length-1];Ds=e?Array.isArray(e)?"af... function Is (line 2) | function Is(e){const t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":... function Ns (line 2) | function Ns(e,t){let n="";switch(e){case os.Char:n=void 0===t?`JSON5: in... class Ts (line 2) | class Ts extends SyntaxError{} function fa (line 2) | function fa(e,t,n){return void 0!==n.dependencies&&(0,ia.offlinePluginCo... function e (line 2) | function e(e){const t=null==e?void 0:e.dependencies;return void 0===t?0:... FILE: vibration_ohos/lib/vibration_ohos.dart class VibrationOhos (line 10) | class VibrationOhos extends VibrationPlatform { method registerWith (line 12) | void registerWith() method hasVibrator (line 29) | Future hasVibrator() method hasAmplitudeControl (line 53) | Future hasAmplitudeControl() method hasCustomVibrationsSupport (line 82) | Future hasCustomVibrationsSupport() method vibrate (line 104) | Future vibrate({ method cancel (line 136) | Future cancel() function toMap (line 142) | Map toMap() function toString (line 144) | String toString() class VibrateTime (line 150) | class VibrateTime with VibrateEffect { method toMap (line 160) | Map toMap() class VibratePreset (line 169) | class VibratePreset with VibrateEffect { method toMap (line 182) | Map toMap() class VibrateFromFile (line 193) | class VibrateFromFile with VibrateEffect { method toMap (line 201) | Map toMap() class HapticFileDescriptor (line 213) | class HapticFileDescriptor { method toMap (line 224) | Map toMap() class VibrateAttribute (line 234) | class VibrateAttribute { method toMap (line 256) | Map toMap() method toString (line 264) | String toString() FILE: vibration_platform_interface/lib/src/method_channel_vibration.dart class MethodChannelVibration (line 7) | class MethodChannelVibration extends VibrationPlatform { method hasVibrator (line 21) | Future hasVibrator() method hasAmplitudeControl (line 57) | Future hasAmplitudeControl() method hasCustomVibrationsSupport (line 99) | Future hasCustomVibrationsSupport() method vibrate (line 121) | Future vibrate({ method cancel (line 149) | Future cancel() FILE: vibration_platform_interface/lib/vibration_platform_interface.dart class VibrationPlatform (line 14) | abstract class VibrationPlatform extends PlatformInterface { method hasVibrator (line 41) | Future hasVibrator() method hasAmplitudeControl (line 52) | Future hasAmplitudeControl() method hasCustomVibrationsSupport (line 69) | Future hasCustomVibrationsSupport() method vibrate (line 86) | Future vibrate({ method cancel (line 104) | Future cancel() FILE: vibration_web/lib/vibration_web.dart class VibrationWebPlugin (line 9) | class VibrationWebPlugin { method registerWith (line 13) | void registerWith(Registrar registrar) method handleMethodCall (line 27) | Future handleMethodCall(MethodCall call) method _hasVibrator (line 49) | bool _hasVibrator() method _vibrate (line 54) | _vibrate({int duration = 500, List pattern = const []}) method _cancel (line 65) | _cancel()