@@ -0,0 +1,1366 @@
+package com.github.charmasaur.alpsinsects.ui;%0A%0Aimport android.support.annotation.Nullable;%0Aimport android.support.v4.app.Fragment;%0Aimport android.support.v4.app.FragmentManager;%0Aimport android.support.v4.app.FragmentTransaction;%0Aimport android.view.View;%0Aimport android.view.ViewGroup;%0A%0Apublic class FragmentController %7B%0A  /**%0A   * Represents a screen that can be showing to the user.%0A   */%0A  private static final class Screen %7B%0A    public final CharSequence title;%0A    @Nullable%0A    public final CharSequence subtitle;%0A    public final Fragment fragment;%0A    public final String name;%0A%0A    public Screen(CharSequence title, @Nullable CharSequence subtitle, Fragment fragment,%0A        String name) %7B%0A      this.title = title;%0A      this.subtitle = subtitle;%0A      this.fragment = fragment;%0A      this.name = name;%0A    %7D%0A  %7D;%0A%0A  private Screen homeScreen;%0A%0A  private boolean dualPane;%0A%0A  @Nullable%0A  private Screen leaf;%0A%0A  public void pushFragment(CharSequence title, @Nullable CharSequence subtitle, Fragment fragment,%0A      @Nullable String parent) %7B%0A    while (leaf != null && leaf.name != parent) %7B%0A      // pop%0A    %7D%0A    if (leaf == null && parent != null) %7B%0A      throw new RuntimeException(%22Parent screen not found: %22 + parent);%0A    %7D%0A    leaf = new Screen(title, subtitle, fragment, parent);%0A    // push%0A  %7D%0A%0A  public void onBackPressed() %7B%0A    // pop%0A  %7D%0A%7D%0A

Add a basic FragmentController (which isn't finished yet).