 public extension Tracker {
     func pushNotificationPreferenceChanged(granted: Bool) {
         let accessLevel = granted ? "granted" : "denied"
+        log("Push notification access \(accessLevel)")
         agent.track("Push notification access \(accessLevel)")
     }
 
     func contactAccessPreferenceChanged(granted: Bool) {
         let accessLevel = granted ? "granted" : "denied"
+        log("Address book access \(accessLevel)")
         agent.track("Address book access \(accessLevel)")
     }
 }

// MARK: Onboarding
public extension Tracker {
    func skippedCommunities() {
        agent.track("skipped communities")
    }

    func completedCommunities() {
        agent.track("completed communities")
    }

    func followedAllFeatured() {
        agent.track("followed all featured")
    }

    func followedSomeFeatured() {
        agent.track("followed some featured")
    }

    func skippedContactImport() {
        agent.track("skipped contact import")
    }

    func completedContactImport() {
        agent.track("completed contact import")
    }

    func skippedCoverImage() {
        agent.track("skipped cover image")
    }

    func completedCoverImage() {
        agent.track("completed cover image")
    }

    func skippedAvatar() {
        agent.track("skipped avatar")
    }

    func completedAvatar() {
        agent.track("completed avatar")
    }

    func skippedNameBio() {
        agent.track("skipped name_bio")
    }

    func addedNameBio() {
        agent.track("added name_bio")
    }
}

// MARK: Image Actions
public extension Tracker {
    func imageAddedFromCamera() {
        log("Image added from camera")
        agent.track("Image added from camera")
    }

    func imageAddedFromLibrary() {
        log("Image added from library")
        agent.track("Image added from library")
    }

    func addImageCanceled() {
        log("Image addition canceled")
        agent.track("Image addition canceled")
    }
}
