Merge "Enable swiping from LightCycle to Gallery" into gb-ub-photos-arches
diff --git a/res/menu/album.xml b/res/menu/album.xml
index ea2a780..4db0e51 100644
--- a/res/menu/album.xml
+++ b/res/menu/album.xml
@@ -18,10 +18,6 @@
             android:icon="@drawable/ic_menu_camera_holo_light"
             android:title="@string/switch_to_camera"
             android:showAsAction="ifRoom" />
-    <item android:id="@+id/action_filmstrip"
-            android:icon="@android:drawable/ic_dialog_map"
-            android:title="@string/switch_photo_filmstrip"
-            android:showAsAction="ifRoom" />
     <item android:id="@+id/action_slideshow"
             android:icon="@drawable/ic_menu_slideshow_holo_light"
             android:title="@string/slideshow"
diff --git a/res/menu/photo.xml b/res/menu/photo.xml
index 5fe5187..942de3f 100644
--- a/res/menu/photo.xml
+++ b/res/menu/photo.xml
@@ -34,10 +34,6 @@
             android:visible="false"
             android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"
             android:showAsAction="never" />
-    <item android:id="@+id/action_grid"
-            android:icon="@android:drawable/ic_dialog_dialer"
-            android:title="@string/switch_photo_grid"
-            android:showAsAction="ifRoom" />
     <item android:id="@+id/action_delete"
             android:icon="@drawable/ic_menu_trash_holo_light"
             android:title="@string/delete"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 467fbf8..f844fcd5 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Geen eksterne berging beskikbaar nie"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstrook"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Rooster"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index f265af5..b41cf98 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"ምንም ውጫዊ ማከማቻ የለም"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"ድርድር ፊልም"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"ፍርግርግ"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index b70509b..811fad8 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"لا تتوفر سعة تخزين خارجية"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"شريط الصور"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"شبكة"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index be9eea6..b9487c1 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Няма даступных знешнiх захавальнiкаў"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Дыяфiльм"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Сетка"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index efaf57e..d6c118f 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Няма налично външно хранилище"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Филмова лента"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Таблица"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 0afb42c..2b6b37c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"No hi ha emmagatzematge extern disponible"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Cel·luloide"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Graella"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 123497a..fc791b7 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Žádné externí úložiště není k dispozici"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmový pás"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Mřížka"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index ae42b72..abf98ad 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Intet tilgængeligt eksternt lager"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstrimmel"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Gitter"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d0937e2..ab6cac3 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Kein externer Speicher verfügbar"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstreifen"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Raster"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 00c56a1..99898b2 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Δεν υπάρχει διαθέσιμος εξωτερικός χώρος αποθήκευσης"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Ταινία βίντεο"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Πλέγμα"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index eddfe25..27c7309 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"No external storage available"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstrip"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grid"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index d62fa6f..ee9b5f1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"No hay almacenamiento externo disponible."</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Tira de película"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Cuadrícula"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 5036f3a..e5b296a 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"No hay almacenamiento externo disponible."</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Película"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Cuadrícula"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index d4fb839..78bb4aa 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Ükski välismäluseade ei ole saadaval"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmiriba"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Ruudustik"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 22cc159..28364ae 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"هیچ دستگاه ذخیره خارجی دردسترس نیست"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"نوار فیلم"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"شبکه"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 588b668..3ba51f4 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Ei ulkoista tallennustilaa"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Videoleike"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Ruudukko"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 0d8679e..e5443ac 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Aucune mémoire de stockage externe disponible."</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Pellicule"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grille"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index b4b64cc..7b751f1 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"कोई बाहरी संग्रहण उपलब्ध नहीं है"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"फ़िल्मस्ट्रिप"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"ग्रिड"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5a585ed..9f39902 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nema dostupne vanjske pohrane"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmska vrpca"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Rešetka"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index f22d648..6a8063a 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nincs elérhető külső tárhely"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmszalag"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Rács"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 82ce255..c027528 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Tidak ada penyimpanan eksternal yang tersedia"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Strip film"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Kisi"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 546cb80..3fcd5e0 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nessun archivio esterno disponibile"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Sequenza"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Griglia"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 642cefc..ffbb07f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"אחסון חיצוני לא זמין"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"סרט שקופיות"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"רשת"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 17cb852..b3bed26 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"利用できる外部ストレージがありません"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"フィルムストリップ"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"グリッド"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 4394d4d..65c333a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"사용할 수 있는 외부 저장소 없음"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"슬라이드"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"바둑판"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 9ed3697..88b74d6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nepasiekiama jokia išorinė atmintinė"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Diafilmas"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Tinklelis"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 298baa2..05d18ec 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nav ārējās atmiņas"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmas lente"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Režģis"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 3d97484..8fd0f55 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Tiada storan luar tersedia"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Jalur filem"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grid"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 92b6442..0ec9518 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Ekstern lagringsplass ikke tilgjengelig"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstripe"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Rutenett"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 2bc2228..d40506a 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Geen externe opslag beschikbaar"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstrip"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Raster"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1cad824..caba09a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Brak pamięci zewnętrznej"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Seria ujęć"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Siatka"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5db36c6..3305a2b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nenhum armazenamento externo disponível"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Película de filme"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grelha"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 68b1894..9f6bd4f 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nenhum armazenamento externo disponível"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Película fotográfica"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grade"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 4f8fe81..19a70d6 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -288,4 +288,14 @@
     <skip />
     <!-- no translation found for switch_photo_grid (6533267664294518167) -->
     <skip />
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9093304..8f0c7a8 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Nu este disponibilă nicio stocare externă"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Bandă de film"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grilă"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 1a2ca2b..5860622 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Нет внешних накопителей"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Кинолента"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Сетка"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index cf5e5a3..7a29a47 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"K dispozícii nie je žiadny externý ukladací priestor"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmový pás"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Mriežka"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 4c3ccb3..59d624a 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Na voljo ni nobena zunanja naprava za shranjevanje"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmski trak"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Mreža"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 392763e..c938fa6 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Спољна меморија није доступна"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Филмска трака"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Мрежа"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index fad7c6d..66e14a8 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Inget externt lagringsutrymme är tillgängligt"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmremsa"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Rutnät"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 25c6053..07ac770 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -186,4 +186,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Hakuna hifadhi ya nje inayopatikana"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Utepe wa filamu"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Kiunzi"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index faafce8..515b251 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"ไม่มีที่จัดเก็บข้อมูลภายนอกที่สามารถใช้ได้"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"ฟิล์มภาพยนตร์"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"ตาราง"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e82c529..cca83f6 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Walang available na panlabas na storage"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Filmstrip"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Grid"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index a303b51..8c2be47 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Kullanılabilir harici depolama yok"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Film şeridi"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Tablo"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 8dc7c06..5d4886a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Доступної зовнішньої пам’яті немає"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Діафільм"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Сітка"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 6b37398..2a39039 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Không có bộ nhớ ngoài nào"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"Cuộn phim"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Lưới"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6cb08c5..918ddcb 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"没有可用的外部存储设备"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"胶卷"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"网格"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index cf60f3c..1932989 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -183,4 +183,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"沒有可用的外部儲存裝置"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"幻燈片"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"格狀"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index aa6b4b9..355344c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -185,4 +185,14 @@
     <string name="no_external_storage" msgid="95726173164068417">"Asikho isilondolozi sangaphandle esikhona"</string>
     <string name="switch_photo_filmstrip" msgid="991949386967109493">"I-Filmstrip"</string>
     <string name="switch_photo_grid" msgid="6533267664294518167">"Igridi"</string>
+    <!-- no translation found for trimming (9122385768369143997) -->
+    <skip />
+    <!-- no translation found for please_wait (7296066089146487366) -->
+    <skip />
+    <!-- no translation found for save_into (6688364520925473396) -->
+    <skip />
+    <!-- no translation found for trim_too_short (751593965620665326) -->
+    <skip />
+    <!-- no translation found for trim_too_long (2657958275279217174) -->
+    <skip />
 </resources>
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java
index addee0e..ae6418c 100644
--- a/src/com/android/gallery3d/app/AlbumPage.java
+++ b/src/com/android/gallery3d/app/AlbumPage.java
@@ -56,7 +56,7 @@
 import com.android.gallery3d.util.MediaSetUtils;
 
 public class AlbumPage extends ActivityState implements GalleryActionBar.ClusterRunner,
-        SelectionManager.SelectionListener, MediaSet.SyncListener {
+        SelectionManager.SelectionListener, MediaSet.SyncListener, GalleryActionBar.OnAlbumModeSelectedListener {
     @SuppressWarnings("unused")
     private static final String TAG = "AlbumPage";
 
@@ -399,7 +399,9 @@
 
         boolean enableHomeButton = (mActivity.getStateManager().getStateCount() > 1) |
                 mParentMediaSetString != null;
-        mActivity.getGalleryActionBar().setDisplayOptions(enableHomeButton, true);
+        GalleryActionBar actionBar = mActivity.getGalleryActionBar();
+        actionBar.setDisplayOptions(enableHomeButton, false);
+        actionBar.enableAlbumModeMenu(GalleryActionBar.ALBUM_GRID_MODE_SELECTED, this);
 
         // Set the reload bit here to prevent it exit this page in clearLoadingBit().
         setLoadingBit(BIT_LOADING_RELOAD);
@@ -423,6 +425,7 @@
         mAlbumDataAdapter.pause();
         mAlbumView.pause();
         DetailsHelper.pause();
+        mActivity.getGalleryActionBar().disableAlbumModeMenu(true);
 
         if (mSyncTask != null) {
             mSyncTask.cancel();
@@ -560,6 +563,17 @@
                 mSlotView.getSlotRect(slotIndex, mRootPane));
     }
 
+    private void switchToFilmstrip() {
+        if (mAlbumDataAdapter.size() < 1) return;
+        int targetPhoto = mSlotView.getVisibleStart();
+        prepareAnimationBackToFilmstrip(targetPhoto);
+        if(mLaunchedFromPhotoPage) {
+            onBackPressed();
+        } else {
+            pickPhoto(targetPhoto, true);
+        }
+    }
+
     @Override
     protected boolean onItemSelected(MenuItem item) {
         switch (item.getItemId()) {
@@ -587,17 +601,6 @@
                         SlideshowPage.class, REQUEST_SLIDESHOW, data);
                 return true;
             }
-            case R.id.action_filmstrip: {
-                if (mAlbumDataAdapter.size() < 1) return true;
-                int targetPhoto = mSlotView.getVisibleStart();
-                prepareAnimationBackToFilmstrip(targetPhoto);
-                if(mLaunchedFromPhotoPage) {
-                    onBackPressed();
-                } else {
-                    pickPhoto(targetPhoto, true);
-                }
-                return true;
-            }
             case R.id.action_details: {
                 if (mShowDetails) {
                     hideDetails();
@@ -750,4 +753,11 @@
             }
         }
     }
+
+    @Override
+    public void onAlbumModeSelected(int mode) {
+        if (mode == GalleryActionBar.ALBUM_FILMSTRIP_MODE_SELECTED) {
+            switchToFilmstrip();
+        }
+    }
 }
diff --git a/src/com/android/gallery3d/app/GalleryActionBar.java b/src/com/android/gallery3d/app/GalleryActionBar.java
index 2630c3e..6525ae5 100644
--- a/src/com/android/gallery3d/app/GalleryActionBar.java
+++ b/src/com/android/gallery3d/app/GalleryActionBar.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -53,10 +54,20 @@
     private int mCurrentIndex;
     private ClusterAdapter mAdapter = new ClusterAdapter();
 
+    private AlbumModeAdapter mAlbumModeAdapter;
+    private OnAlbumModeSelectedListener mAlbumModeListener;
+    private CharSequence [] mAlbumModes;
+    public static final int ALBUM_FILMSTRIP_MODE_SELECTED = 0;
+    public static final int ALBUM_GRID_MODE_SELECTED = 1;
+
     public interface ClusterRunner {
         public void doCluster(int id);
     }
 
+    public interface OnAlbumModeSelectedListener {
+        public void onAlbumModeSelected(int mode);
+    }
+
     private static class ActionItem {
         public int action;
         public boolean enabled;
@@ -123,6 +134,43 @@
         }
     }
 
+    private class AlbumModeAdapter extends BaseAdapter {
+        @Override
+        public int getCount() {
+            return mAlbumModes.length;
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mAlbumModes[position];
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        private View getView(CharSequence label, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(R.layout.action_bar_text,
+                        parent, false);
+            }
+            TextView view = (TextView) convertView;
+            view.setText(label);
+            return convertView;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            return getView(mActionBar.getTitle(), convertView, parent);
+        }
+
+        @Override
+        public View getDropDownView(int position, View convertView, ViewGroup parent) {
+            return getView((CharSequence) getItem(position), convertView, parent);
+        }
+    }
+
     public static String getClusterByTypeString(Context context, int type) {
         for (ActionItem item : sClusterItems) {
             if (item.action == type) {
@@ -202,6 +250,33 @@
         }
     }
 
+    public void enableAlbumModeMenu(int selected, OnAlbumModeSelectedListener listener) {
+        if (mActionBar != null) {
+            if (mAlbumModeAdapter == null) {
+                // Initialize the album mode options if they haven't been already
+                Resources res = mActivity.getResources();
+                mAlbumModes = new CharSequence[] {
+                        res.getString(R.string.switch_photo_filmstrip),
+                        res.getString(R.string.switch_photo_grid)};
+                mAlbumModeAdapter = new AlbumModeAdapter();
+            }
+            mAlbumModeListener = null;
+            mActionBar.setListNavigationCallbacks(mAlbumModeAdapter, this);
+            mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
+            mActionBar.setSelectedNavigationItem(selected);
+            mAlbumModeListener = listener;
+        }
+    }
+
+    public void disableAlbumModeMenu(boolean hideMenu) {
+        if (mActionBar != null) {
+            mAlbumModeListener = null;
+            if (hideMenu) {
+                mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+            }
+        }
+    }
+
     public void showClusterDialog(final ClusterRunner clusterRunner) {
         createDialogData();
         final ArrayList<Integer> actions = mActions;
@@ -283,12 +358,17 @@
 
     @Override
     public boolean onNavigationItemSelected(int itemPosition, long itemId) {
-        if (itemPosition != mCurrentIndex && mClusterRunner != null) {
+        if (itemPosition != mCurrentIndex && mClusterRunner != null
+                || mAlbumModeListener != null) {
             // Need to lock rendering when operations invoked by system UI (main thread) are
             // modifying slot data used in GL thread for rendering.
             mActivity.getGLRoot().lockRenderThread();
             try {
-                mClusterRunner.doCluster(sClusterItems[itemPosition].action);
+                if (mAlbumModeListener != null) {
+                    mAlbumModeListener.onAlbumModeSelected(itemPosition);
+                } else {
+                    mClusterRunner.doCluster(sClusterItems[itemPosition].action);
+                }
             } finally {
                 mActivity.getGLRoot().unlockRenderThread();
             }
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 74dc7a9..a9aa8e7 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -78,7 +78,7 @@
 
 public class PhotoPage extends ActivityState implements
         PhotoView.Listener, OrientationManager.Listener, AppBridge.Server,
-        PhotoPageBottomControls.Delegate {
+        PhotoPageBottomControls.Delegate, GalleryActionBar.OnAlbumModeSelectedListener {
     private static final String TAG = "PhotoPage";
 
     private static final int MSG_HIDE_BARS = 1;
@@ -88,9 +88,8 @@
     private static final int MSG_UPDATE_ACTION_BAR = 5;
     private static final int MSG_UNFREEZE_GLROOT = 6;
     private static final int MSG_WANT_BARS = 7;
-    private static final int MSG_REFRESH_GRID_BUTTON = 8;
-    private static final int MSG_REFRESH_BOTTOM_CONTROLS = 9;
-    private static final int MSG_ON_CAMERA_CENTER = 10;
+    private static final int MSG_REFRESH_BOTTOM_CONTROLS = 8;
+    private static final int MSG_ON_CAMERA_CENTER = 9;
 
     private static final int HIDE_BARS_TIMEOUT = 3500;
     private static final int UNFREEZE_GLROOT_TIMEOUT = 250;
@@ -260,10 +259,6 @@
                         hideBars();
                         break;
                     }
-                    case MSG_REFRESH_GRID_BUTTON: {
-                        setGridButtonVisibility(mPhotoView.getFilmMode());
-                        break;
-                    }
                     case MSG_REFRESH_BOTTOM_CONTROLS: {
                         if (mBottomControls != null) mBottomControls.refresh();
                         break;
@@ -330,7 +325,6 @@
         mStartedFromAlbumPage =
                 data.getInt(KEY_ALBUMPAGE_TRANSITION,
                         MSG_ALBUMPAGE_NONE) == MSG_ALBUMPAGE_STARTED;
-        setGridButtonVisibility(!mStartedFromAlbumPage);
         if (mSetPathString != null) {
             mAppBridge = (AppBridge) data.getParcelable(KEY_APP_BRIDGE);
             if (mAppBridge != null) {
@@ -591,7 +585,6 @@
         }
 
         updateMenuOperations();
-        updateTitle();
         if (mBottomControls != null) mBottomControls.refresh();
         if (mShowDetails) {
             mDetailsHelper.reloadDetails();
@@ -602,25 +595,12 @@
         }
     }
 
-    private void updateTitle() {
-        if (mCurrentPhoto == null) return;
-        boolean showTitle = mActivity.getAndroidContext().getResources().getBoolean(
-                R.bool.show_action_bar_title);
-        if (showTitle && mCurrentPhoto.getName() != null) {
-            mActionBar.setTitle(mCurrentPhoto.getName());
-        } else {
-            mActionBar.setTitle("");
-        }
-    }
-
     private void updateMenuOperations() {
         Menu menu = mActionBar.getMenu();
 
         // it could be null if onCreateActionBar has not been called yet
         if (menu == null) return;
 
-        setGridButtonVisibility(mPhotoView.getFilmMode());
-
         MenuItem item = menu.findItem(R.id.action_slideshow);
         if (item != null) {
             item.setVisible((mSecureAlbum == null) && canDoSlideShow());
@@ -800,7 +780,7 @@
         mActionBar.createActionBarMenu(R.menu.photo, menu);
         mHaveImageEditor = GalleryUtils.isEditorAvailable(mActivity, "image/*");
         updateMenuOperations();
-        updateTitle();
+        mActionBar.setTitle(mMediaSet != null ? mMediaSet.getName() : "");
         return true;
     }
 
@@ -826,6 +806,34 @@
         public void onProgressStart() {}
     };
 
+    private void switchToGrid() {
+        if (mStartedFromAlbumPage) {
+            onUpPressed();
+        } else {
+            if (mOriginalSetPathString == null) return;
+            preparePhotoFallbackView();
+            Bundle data = new Bundle(getData());
+            data.putString(AlbumPage.KEY_MEDIA_PATH, mOriginalSetPathString);
+            data.putString(AlbumPage.KEY_PARENT_MEDIA_PATH,
+                    mActivity.getDataManager().getTopSetPath(
+                            DataManager.INCLUDE_ALL));
+
+            // We only show cluster menu in the first AlbumPage in stack
+            // TODO: Enable this when running from the camera app
+            boolean inAlbum = mActivity.getStateManager().hasStateClass(AlbumPage.class);
+            data.putBoolean(AlbumPage.KEY_SHOW_CLUSTER_MENU, !inAlbum
+                    && mAppBridge == null);
+
+            data.putBoolean(PhotoPage.KEY_APP_BRIDGE, mAppBridge != null);
+
+            // Account for live preview being first item
+            mActivity.getTransitionStore().put(KEY_RETURN_INDEX_HINT,
+                    mAppBridge != null ? mCurrentIndex - 1 : mCurrentIndex);
+
+            mActivity.getStateManager().startState(AlbumPage.class, data);
+        }
+    }
+
     @Override
     protected boolean onItemSelected(MenuItem item) {
         if (mModel == null) return true;
@@ -848,33 +856,6 @@
                 onUpPressed();
                 return true;
             }
-            case R.id.action_grid: {
-                if (mStartedFromAlbumPage) {
-                    onUpPressed();
-                } else {
-                    preparePhotoFallbackView();
-                    Bundle data = new Bundle(getData());
-                    data.putString(AlbumPage.KEY_MEDIA_PATH, mOriginalSetPathString);
-                    data.putString(AlbumPage.KEY_PARENT_MEDIA_PATH,
-                            mActivity.getDataManager().getTopSetPath(
-                                    DataManager.INCLUDE_ALL));
-
-                    // We only show cluster menu in the first AlbumPage in stack
-                    // TODO: Enable this when running from the camera app
-                    boolean inAlbum = mActivity.getStateManager().hasStateClass(AlbumPage.class);
-                    data.putBoolean(AlbumPage.KEY_SHOW_CLUSTER_MENU, !inAlbum
-                            && mAppBridge == null);
-
-                    data.putBoolean(PhotoPage.KEY_APP_BRIDGE, mAppBridge != null);
-
-                    // Account for live preview being first item
-                    mActivity.getTransitionStore().put(KEY_RETURN_INDEX_HINT,
-                            mAppBridge != null ? mCurrentIndex - 1 : mCurrentIndex);
-
-                    mActivity.getStateManager().startState(AlbumPage.class, data);
-                }
-                return true;
-            }
             case R.id.action_slideshow: {
                 Bundle data = new Bundle();
                 data.putString(SlideshowPage.KEY_SET_PATH, mMediaSet.getPath().toString());
@@ -1176,6 +1157,7 @@
         mPhotoView.pause();
         mHandler.removeMessages(MSG_HIDE_BARS);
         mActionBar.removeOnMenuVisibilityListener(mMenuVisibilityListener);
+        mActionBar.disableAlbumModeMenu(true);
 
         onCommitDeleteImage();
         mMenuExecutor.pause();
@@ -1187,15 +1169,7 @@
         mActivity.getGLRoot().unfreeze();
     }
 
-    private void setGridButtonVisibility(boolean enabled) {
-        Menu menu = mActionBar.getMenu();
-        if (menu == null) return;
-        MenuItem item = menu.findItem(R.id.action_grid);
-        if (item != null) item.setVisible((mSecureAlbum == null) && enabled);
-    }
-
     public void onFilmModeChanged(boolean enabled) {
-        mHandler.sendEmptyMessage(MSG_REFRESH_GRID_BUTTON);
         mHandler.sendEmptyMessage(MSG_REFRESH_BOTTOM_CONTROLS);
         if (enabled) {
             mHandler.removeMessages(MSG_HIDE_BARS);
@@ -1265,8 +1239,9 @@
         mModel.resume();
         mPhotoView.resume();
         mActionBar.setDisplayOptions(
-                ((mSecureAlbum == null) && (mSetPathString != null)), true);
+                ((mSecureAlbum == null) && (mSetPathString != null)), false);
         mActionBar.addOnMenuVisibilityListener(mMenuVisibilityListener);
+        mActionBar.enableAlbumModeMenu(GalleryActionBar.ALBUM_FILMSTRIP_MODE_SELECTED, this);
         if (!mShowBars) {
             mActionBar.hide();
             mActivity.getGLRoot().setLightsOutMode(true);
@@ -1317,4 +1292,11 @@
             return mModel.getCurrentIndex();
         }
     }
+
+    @Override
+    public void onAlbumModeSelected(int mode) {
+        if (mode == GalleryActionBar.ALBUM_GRID_MODE_SELECTED) {
+            switchToGrid();
+        }
+    }
 }
diff --git a/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java b/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
index ee5fe3d..1930e38 100644
--- a/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
+++ b/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
@@ -60,6 +60,7 @@
 
     @TargetApi(ApiHelper.VERSION_CODES.ICE_CREAM_SANDWICH)
     private static void releaseSurfaceTexture(SurfaceTexture st) {
+        st.setOnFrameAvailableListener(null);
         if (ApiHelper.HAS_RELEASE_SURFACE_TEXTURE) {
             st.release();
         }