                       neko.data/like-map
                       :last-user)]
          (.putExtra (.getIntent this) "user" user)
-         (set-content-view! (*a)
+         (set-content-view! this
            [:grid-view {:id ::problems-gv
-                        :column-width (traits/to-dimension (*a) [160 :dp])
+                        :column-width (traits/to-dimension this [160 :dp])
                         :num-columns :auto-fit
                         :stretch-mode :stretch-spacing-uniform
                         :adapter (make-problem-adapter this)

  (.startActivity
   a (Intent. a (resolve 'org.bytopia.foreclojure.LoginActivity)))
  (.finish a))

(defn make-problem-adapter [a]
  (proxy [CursorAdapter] [a nil]

         (user/login-via-saved a user true))
       (let [last-id (db/initialize a)
             {:keys [solved-ids new-ids]} (api/fetch-solved-problem-ids last-id)
             locally-solved (db/get-solved-ids-for-user a user)
             to-download (clojure.set/difference solved-ids locally-solved)
             to-upload (clojure.set/difference locally-solved solved-ids)]
         ;; Mark new problems as solved although we don't have the code yet.
         (doseq [problem-id to-download]
           (neko.log/d "Marking problem " problem-id " as solved.")
           (db/update-solution a user problem-id {:is_solved true, :code nil}))
         ;; Upload solutions to locally solved problems which aren't synced.
         (doseq [problem-id to-upload
                 :let [solution (db/get-solution a user problem-id)]]
           (neko.log/d "Sumbitting solution " problem-id solution)
           (if (api/submit-solution problem-id (:solutions/code solution))
