Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6e2ea07 authored by Evan Laird's avatar Evan Laird Committed by Android (Google) Code Review
Browse files

Merge "Use synchronize instead of Assert.isMainThread" into sc-dev

parents e7d986d2 7302505c
Loading
Loading
Loading
Loading
+28 −11
Original line number Diff line number Diff line
@@ -85,8 +85,6 @@ class DemoModeController constructor(
    }

    override fun addCallback(listener: DemoMode) {
        Assert.isMainThread()

        // Register this listener for its commands
        val commands = listener.demoCommands()

@@ -99,21 +97,24 @@ class DemoModeController constructor(
            receiverMap[command]!!.add(listener)
        }

        synchronized(this) {
            receivers.add(listener)
        }

        if (isInDemoMode) {
            listener.onDemoModeStarted()
        }
    }

    override fun removeCallback(listener: DemoMode) {
        Assert.isMainThread()

        synchronized(this) {
            listener.demoCommands().forEach { command ->
                receiverMap[command]!!.remove(listener)
            }

            receivers.remove(listener)
        }
    }

    private fun setIsDemoModeAllowed(enabled: Boolean) {
        // Turn off demo mode if it was on
@@ -125,7 +126,13 @@ class DemoModeController constructor(
    private fun enterDemoMode() {
        isInDemoMode = true
        Assert.isMainThread()
        receivers.forEach { r ->

        val copy: List<DemoModeCommandReceiver>
        synchronized(this) {
            copy = receivers.toList()
        }

        copy.forEach { r ->
            r.onDemoModeStarted()
        }
    }
@@ -133,7 +140,13 @@ class DemoModeController constructor(
    private fun exitDemoMode() {
        isInDemoMode = false
        Assert.isMainThread()
        receivers.forEach { r ->

        val copy: List<DemoModeCommandReceiver>
        synchronized(this) {
            copy = receivers.toList()
        }

        copy.forEach { r ->
            r.onDemoModeFinished()
        }
    }
@@ -168,7 +181,11 @@ class DemoModeController constructor(
        pw.println("  isInDemoMode=$isInDemoMode")
        pw.println("  isDemoModeAllowed=$isAvailable")
        pw.print("  receivers=[")
        receivers.forEach { recv ->
        val copy: List<DemoModeCommandReceiver>
        synchronized(this) {
            copy = receivers.toList()
        }
        copy.forEach { recv ->
            pw.print(" ${recv.javaClass.simpleName}")
        }
        pw.println(" ]")