Show "navigate up" icon on settings activity

Bug: 15813742
Change-Id: I8b1feb5c35377e62199e5a909640d9c50f970654
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
index c7b9dcd..b0c4940 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
@@ -18,11 +18,36 @@
 
 import com.android.inputmethod.latin.utils.FragmentUtils;
 
+import android.app.ActionBar;
 import android.content.Intent;
+import android.os.Bundle;
 import android.preference.PreferenceActivity;
+import android.view.MenuItem;
 
 public final class SettingsActivity extends PreferenceActivity {
+    public static final String EXTRA_SHOW_HOME_AS_UP = "show_home_as_up";
     private static final String DEFAULT_FRAGMENT = SettingsFragment.class.getName();
+    private boolean mShowHomeAsUp;
+
+    @Override
+    protected void onCreate(final Bundle savedState) {
+        super.onCreate(savedState);
+        final ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            mShowHomeAsUp = getIntent().getBooleanExtra(EXTRA_SHOW_HOME_AS_UP, true);
+            actionBar.setDisplayHomeAsUpEnabled(mShowHomeAsUp);
+            actionBar.setHomeButtonEnabled(mShowHomeAsUp);
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(final MenuItem item) {
+        if (mShowHomeAsUp && item.getItemId() == android.R.id.home) {
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
 
     @Override
     public Intent getIntent() {
@@ -36,7 +61,7 @@
     }
 
     @Override
-    public boolean isValidFragment(String fragmentName) {
+    public boolean isValidFragment(final String fragmentName) {
         return FragmentUtils.isValidFragment(fragmentName);
     }
 }