title: Presenter/View/ViewState relationshipts
body: <p><strong>For example</strong>, I have <code>EditProjectFragment</code> which contains few elements:</p>
  
  <ul>
  <li><code>TextView</code> (project name)</li>
  <li><code>ColorPicker</code> (project color)</li>
  <li><code>Spinner</code> (project type)</li>
  </ul>
  
  <p>Let's see:</p>
  
  <ol>
  <li>Project name will be restored by TextView itself</li>
  <li>Who must store project's color?</li>
  <li>Who must store spinner's value?</li>
  </ol>
  
  <p>It seems to be <code>ViewState</code>'s responsibility. For example, when user picks color, <code>View</code> calls <code>presenter.onProjectColorPicked(color)</code>. Then, <code>Presenter</code> will call <code>view.setProjectColor(color)</code>. Or <code>View</code> should update <code>ViewState</code> directly, without calling <code>Presenter</code> if it doesn't need?</p>
  
  <hr>
  
  <p><strong>Another example.</strong> User adds photo in EditNoteFragment. User picks photo(<code>presenter.pickPhoto()</code>) -> <code>presenter.addPhoto(photo)</code> called and notify <code>View</code> to add photo to <code>ViewState</code>&amp;show it.
  Should <code>View</code> update <code>Note</code> object by itself? Should it be done by Presenter? In the first case it means that <code>ViewState</code> will provide methods like <code>getNote()/setNote(note)</code> that will be used by View. Should I duplicate Note-reference via updating it in <code>View.setNote(note)</code> method? The second case means that I probably should store <code>Note</code> object in <code>Presenter</code> and just update <code>View</code> without passing <code>Note</code> in it. But it looks like a wrong way.</p>
  
  <hr>
  
  <p><em>In other words:</em> what <code>View</code> must do without <code>Presenter</code>'s help(add a photo to <code>Note</code> object?) and what things with it(button clicks etc)?</p>