diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 32144c4..76cf6ff 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -8,7 +8,7 @@
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
         <activity
-            android:name=".PickListActivity"
+            android:name=".EditListActivity"
             android:label="@string/app_name" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/android/app/src/main/java/io/v/android/apps/todos/PickListActivity.java b/android/app/src/main/java/io/v/android/apps/todos/EditListActivity.java
similarity index 94%
rename from android/app/src/main/java/io/v/android/apps/todos/PickListActivity.java
rename to android/app/src/main/java/io/v/android/apps/todos/EditListActivity.java
index a598213..60abc35 100644
--- a/android/app/src/main/java/io/v/android/apps/todos/PickListActivity.java
+++ b/android/app/src/main/java/io/v/android/apps/todos/EditListActivity.java
@@ -9,20 +9,15 @@
 import android.support.v7.app.ActionBar;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
-import android.content.Context;
-import android.os.Build;
 import android.os.Bundle;
-import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.support.v4.widget.DrawerLayout;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
 
-public class PickListActivity extends AppCompatActivity
+public class EditListActivity extends AppCompatActivity
         implements NavigationDrawerFragment.NavigationDrawerCallbacks {
 
     /**
@@ -144,7 +139,7 @@
         @Override
         public void onAttach(Activity activity) {
             super.onAttach(activity);
-            ((PickListActivity) activity).onSectionAttached(
+            ((EditListActivity) activity).onSectionAttached(
                     getArguments().getInt(ARG_SECTION_NUMBER));
         }
     }
diff --git a/android/app/src/main/java/io/v/android/apps/todos/NavigationDrawerFragment.java b/android/app/src/main/java/io/v/android/apps/todos/NavigationDrawerFragment.java
index 6b68836..c08fb5b 100644
--- a/android/app/src/main/java/io/v/android/apps/todos/NavigationDrawerFragment.java
+++ b/android/app/src/main/java/io/v/android/apps/todos/NavigationDrawerFragment.java
@@ -10,7 +10,7 @@
 import android.app.Activity;
 import android.support.v7.app.ActionBar;
 import android.support.v4.app.Fragment;
-import android.support.v4.app.ActionBarDrawerToggle;
+import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
 import android.content.SharedPreferences;
@@ -139,6 +139,7 @@
                     public void onClick(DialogInterface dialog, int which) {
                         mListNames.add(input.getText().toString());
                         refreshList();
+                        selectItem(mListNames.size() - 1);
                     }
                 })
                 .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@@ -185,7 +186,6 @@
         mDrawerToggle = new ActionBarDrawerToggle(
                 getActivity(),                    /* host Activity */
                 mDrawerLayout,                    /* DrawerLayout object */
-                R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
                 R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
                 R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
         ) {
