MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    .resume() is executed whenever even with wrong lockString?

    Scheduled Pinned Locked Moved Development
    10 Posts 3 Posters 1.1k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ? Offline
      A Former User @sdetweil
      last edited by

      @sdetweil
      Here is my test.

      module:test1

      Module.register("test1", {
        start: function(){
          this.showing = true
        },
      
        suspend: function () {
          console.log("@stop", this.lockStrings, this.hidden)
          this.showing = false
        },
      
        resume: function() {
          console.log("@resume", this.lockStrings, this.hidden)
          this.showing = true
        },
      })
      

      module:test2

      Module.register("test2", {
        notificationReceived: function(noti, payload, sender) {
          if (noti == "DOM_OBJECTS_CREATED") {
            this.test()
          }
        },
      
        test: function() {
          const asleep = async (ms) => {
            return new Promise(resolve => setTimeout(resolve, ms))
          }
      
          var target = null
      
          MM.getModules().enumerate((m)=>{
            if (m.name == "test1") target = m
          })
      
          const scenario = async () => {
            await asleep(1000)
            console.log("1. Try to show when target is revealed already")
            target.show()
            await asleep(1000)
            console.log("2. Try to hide with lockString 'abcd'")
            target.hide(0, {lockString:'abcd'})
            await asleep(1000)
            console.log("3. Try to show with wrong lockString '1234'")
            target.show(0, {lockString:'1234'})
            await asleep(1000)
            console.log("4. Try to show with right lockString 'abcd'")
            target.show(0, {lockString:'abcd'})
            await asleep(1000)
            console.log("5. Try to hide twice (lockString 'a', 'b')")
            target.hide(0, {lockString:'a'})
            await asleep(500)
            target.hide(0, {lockString:'b'})
            await asleep(1000)
            console.log("6. Try to unlock once. module will not be shown.")
            target.show(0, {lockString:'b'})
            await asleep(1000)
            console.log("7. Try to unlock once more. now module will be shown.")
            target.show(0, {lockString:'a'})
          }
      
          scenario()
      
        }
      })
      

      The result is;

      As you see, .resume() is always called. (@ resume , current lockStrings, current hidden would be logged when it is called)
      test2 called test1.show() 5 times, and test1.resume() would be executed 5 times regardless of context.

      So, What can I do with this .resume()? It is useless except counting how many times .show() is called.
      It might not be a bug, but probably out-of-sense.

      S 3 Replies Last reply Reply Quote 0
      • S Do not disturb
        sdetweil @Guest
        last edited by

        @Sean in module1, what is this.hidden?

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        ? 1 Reply Last reply Reply Quote 0
        • ? Offline
          A Former User @sdetweil
          last edited by

          @sdetweil said in .resume() is executed whenever even with wrong lockString?:

          @Sean in module1, what is this.hidden?

          https://github.com/MichMich/MagicMirror/blob/master/modules/README.md#available-module-instance-properties
          It’s one of default module attributes. (But in this case, useless.)

          S 1 Reply Last reply Reply Quote 0
          • S Do not disturb
            sdetweil @Guest
            last edited by

            @Sean thanks. Forgot these attributes

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @Guest
              last edited by

              @Sean I reported the bug in your issue

              	show: function (speed, callback, options) {
              		if (typeof callback === "object") {
              			options = callback;
              			callback = function () { };
              		}
              
              		callback = callback || function () { };
              		options = options || {};
              
              		this.resume();   // < --- should not be done, MM.showModule will call back if allowed
              		MM.showModule(this, speed, callback, options);
              	}
              

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • S Do not disturb
                sdetweil @Guest
                last edited by

                @Sean i see they have developed and accepted a fix for this. for next release

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                1 Reply Last reply Reply Quote 0
                • ? Offline
                  A Former User
                  last edited by

                  Yes. I fix it with @eouia

                  1 Reply Last reply Reply Quote 1
                  • 1 / 1
                  • First post
                    Last post
                  Enjoying MagicMirror? Please consider a donation!
                  MagicMirror created by Michael Teeuw.
                  Forum managed by Sam, technical setup by Karsten.
                  This forum is using NodeBB as its core | Contributors
                  Contact | Privacy Policy