Merge "OmniGears: Update NL translation" into android-4.4
diff --git a/res/drawable-hdpi/stat_navbar_edit_off.png b/res/drawable-hdpi/stat_navbar_edit_off.png
new file mode 100644
index 0000000..d796bde
--- /dev/null
+++ b/res/drawable-hdpi/stat_navbar_edit_off.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_navbar_edit_on.png b/res/drawable-hdpi/stat_navbar_edit_on.png
new file mode 100644
index 0000000..263c0ed
--- /dev/null
+++ b/res/drawable-hdpi/stat_navbar_edit_on.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_navbar_edit_off.png b/res/drawable-mdpi/stat_navbar_edit_off.png
new file mode 100644
index 0000000..0520768
--- /dev/null
+++ b/res/drawable-mdpi/stat_navbar_edit_off.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_navbar_edit_on.png b/res/drawable-mdpi/stat_navbar_edit_on.png
new file mode 100644
index 0000000..8c93091
--- /dev/null
+++ b/res/drawable-mdpi/stat_navbar_edit_on.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_navbar_edit_off.png b/res/drawable-xhdpi/stat_navbar_edit_off.png
new file mode 100644
index 0000000..d0c63a0
--- /dev/null
+++ b/res/drawable-xhdpi/stat_navbar_edit_off.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_navbar_edit_on.png b/res/drawable-xhdpi/stat_navbar_edit_on.png
new file mode 100644
index 0000000..1bfee82
--- /dev/null
+++ b/res/drawable-xhdpi/stat_navbar_edit_on.png
Binary files differ
diff --git a/res/drawable/navbar_tut.png b/res/drawable/navbar_tut.png
new file mode 100644
index 0000000..44578f5
--- /dev/null
+++ b/res/drawable/navbar_tut.png
Binary files differ
diff --git a/res/layout/nav_bar.xml b/res/layout/nav_bar.xml
new file mode 100644
index 0000000..e2a93c1
--- /dev/null
+++ b/res/layout/nav_bar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dip"
+ android:padding="4dip"
+ android:layout_weight="1"
+ android:text="@string/navigation_bar_help_text"
+ android:textSize="13sp" />
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_margin="8dip"
+ android:padding="4dip"
+ android:src="@drawable/navbar_tut" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/holo_blue_light"
+ android:gravity="center_horizontal"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:padding="4dip"
+ android:textColor="#FFFFFF"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:text="@string/navigation_bar_tips_title" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dip"
+ android:padding="4dip"
+ android:textSize="13sp"
+ android:text="@string/navigation_bar_tips" />
+</LinearLayout>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 97005a8..4d8b168 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -311,6 +311,17 @@
<string name="button_volume_default_title">Volume default</string>
<string name="button_volume_default_summary">Choose which volume gets changed by default</string>
+ <!-- Navigation Bar customization-->
+ <string name="navigation_bar_title">Buttons and layout</string>
+ <string name="navigation_bar_help_text">1 - To begin editing, tap the lock icon\n\n2 - Tap any button to assign or change functionality\n\n3 - Long press any button to rearrange the order\n\n4 - To save, tap the lock icon again\n\n5 - To restore system default, tap the reset button\n\n</string>
+ <string name="navigation_bar_tips">\u2022 Actions can only be assigned to one button at a time\n\n\u2022 The home button cannot be re-assigned\n\n\u2022 Side buttons cannot be rearranged</string>
+ <string name="navigation_bar_tips_title">Quick tips</string>
+ <string name="navigation_bar_reset_message">Delete current settings and restore to default?</string>
+ <string name="navigation_bar_save_message">Navigation bar settings saved</string>
+ <string name="navigation_bar_reset_toast">Navigation bar reset to default</string>
+ <string name="navigation_bar_menu_editable">Editable</string>
+ <string name="navigation_bar_menu_locked">Locked</string>
+
<!-- Navigation ring shortcuts -->
<string name="navigation_ring_title">Quick launch shortcuts</string>
<string name="navring_target_reset_message">Delete all user created navigation bar shortcuts and restore to default?</string>
diff --git a/res/xml/bars_settings.xml b/res/xml/bars_settings.xml
index 9bd2a18..2b19990 100644
--- a/res/xml/bars_settings.xml
+++ b/res/xml/bars_settings.xml
@@ -79,6 +79,10 @@
android:title="@string/bars_and_menus_category_navigation_bar_title">
<PreferenceScreen
+ android:key="navigation_bar"
+ android:fragment="org.omnirom.omnigears.interfacesettings.NavBar"
+ android:title="@string/navigation_bar_title" />
+ <PreferenceScreen
android:key="navigation_ring"
android:fragment="org.omnirom.omnigears.interfacesettings.NavRing"
android:title="@string/navigation_ring_title" />
@@ -88,6 +92,5 @@
android:title="@string/soft_back_kill_app_title"
android:summary="@string/soft_back_kill_app_summary"
android:persistent="false"/>
-
</PreferenceCategory>
</PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/interfacesettings/NavBar.java b/src/org/omnirom/omnigears/interfacesettings/NavBar.java
new file mode 100644
index 0000000..db5c125
--- /dev/null
+++ b/src/org/omnirom/omnigears/interfacesettings/NavBar.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2011 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.omnirom.omnigears.interfacesettings;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Fragment;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+
+public class NavBar extends Fragment {
+
+ private boolean mEditMode;
+ private ViewGroup mContainer;
+ private Activity mActivity;
+ private MenuItem mEditMenu;
+ private boolean mWasInExpandedState;
+ private final static Intent mIntent = new Intent("android.intent.action.NAVBAR_EDIT");
+ private static final int MENU_RESET = Menu.FIRST;
+ private static final int MENU_EDIT = Menu.FIRST + 1;
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ mActivity = activity;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.nav_bar, container, false);
+
+ mContainer = container;
+ setHasOptionsMenu(true);
+
+ return view;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_SHOW_NAVIGATION_IN_EXPANDED_DESKTOP);
+
+ // If running on a phone, remove padding around container
+ if (Utils.isPhone(mActivity)) {
+ mContainer.setPadding(0, 0, 0, 0);
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ mActivity = null;
+ super.onDetach();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ toggleEditMode(false, false);
+ }
+
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ menu.add(0, MENU_RESET, 0, R.string.reset)
+ .setIcon(R.drawable.ic_settings_backup)
+ .setAlphabeticShortcut('r')
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
+ MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+ mEditMenu = menu.add(0, MENU_EDIT, 0, R.string.navigation_bar_menu_locked);
+ mEditMenu.setIcon(R.drawable.stat_navbar_edit_off)
+ .setAlphabeticShortcut('s')
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
+ MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case MENU_RESET:
+ new AlertDialog.Builder(mActivity)
+ .setTitle(R.string.reset)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setMessage(R.string.navigation_bar_reset_message)
+ .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ if (mEditMode) {
+ toggleEditMode(false, false);
+ }
+ Settings.System.putString(getActivity().getContentResolver(),
+ Settings.System.NAV_BUTTONS, null);
+ toggleEditMode(true, false);
+ toggleEditMode(false, false);
+ mEditMode = false;
+ Toast.makeText(mActivity, R.string.navigation_bar_reset_toast, Toast.LENGTH_LONG).show();
+ }
+ }).setNegativeButton(R.string.cancel, null)
+ .create().show();
+ return true;
+ case MENU_EDIT:
+ mEditMode = !mEditMode;
+ toggleEditMode(mEditMode, true);
+ if (!mEditMode) {
+ Toast.makeText(mActivity, R.string.navigation_bar_save_message, Toast.LENGTH_LONG).show();
+ }
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Toggles navbar edit mode
+ * @param on True to enter edit mode / false to exit
+ * @param save True to save changes / false to discard them
+ */
+ private void toggleEditMode(boolean on, boolean save) {
+ mIntent.putExtra("edit", on);
+ mIntent.putExtra("save", save);
+ mActivity.sendBroadcast(mIntent);
+ if (mEditMenu != null) {
+ mEditMenu.setTitle(on ? R.string.navigation_bar_menu_editable : R.string.navigation_bar_menu_locked)
+ .setIcon(on ? R.drawable.stat_navbar_edit_on : R.drawable.stat_navbar_edit_off);
+ }
+ if (on) {
+ Utils.lockCurrentOrientation(mActivity);
+ } else {
+ mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ }
+ }
+}