Loading packages/SystemUI/res/layout/navigation_bar_edit_menu_item.xml 0 → 100644 +44 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** Copyright 2010, The Android Open Source 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. */ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/key_icon" android:layout_width="80dip" android:layout_height="match_parent" android:padding="4dip" android:scaleType="centerInside"/> <TextView android:id="@+id/key_text" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:textColor="?android:attr/textColorAlertDialogListItem" android:gravity="center_vertical" android:paddingEnd="16dip" android:ellipsize="marquee"/> </LinearLayout> packages/SystemUI/src/com/android/systemui/statusbar/NavigationButtons.java +5 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,11 @@ public class NavigationButtons { sideResource = sR; this.key = key; } @Override public String toString() { return "ButtonInfo[" + key + "]"; } } // Available buttons string constants Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavbarEditor.java +270 −313 File changed.Preview size limit exceeded, changes collapsed. Show changes packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +54 −38 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Message; import android.os.ServiceManager; import android.os.UserHandle; import android.util.AttributeSet; import android.util.Slog; import android.view.animation.AccelerateInterpolator; Loading @@ -54,6 +55,7 @@ import com.android.systemui.statusbar.DelegateViewHelper; import com.android.systemui.statusbar.NavigationButtons; import com.android.systemui.statusbar.NavigationButtons.ButtonInfo; import com.android.systemui.statusbar.policy.DeadZone; import com.android.systemui.statusbar.policy.KeyButtonView; public class NavigationBarView extends LinearLayout implements BaseStatusBar.NavigationBarCallback { final static boolean DEBUG = false; Loading @@ -67,7 +69,7 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav final static boolean ANIMATE_HIDE_TRANSITION = false; // turned off because it introduces unsightly delay when videos goes to full screen final static String NAVBAR_EDIT = "android.intent.action.NAVBAR_EDIT"; private static boolean EDIT_MODE; private boolean mInEditMode; private NavbarEditor mEditBar; private NavBarReceiver mNavBarReceiver; private OnClickListener mRecentsClickListener; Loading Loading @@ -146,25 +148,38 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav private H mHandler = new H(); public static boolean getEditMode() { return EDIT_MODE; public boolean isInEditMode() { return mInEditMode; } protected void setListener(OnClickListener RecentsClickListener, OnTouchListener RecentsPreloadListener, OnTouchListener HomeSearchActionListener) { mRecentsClickListener = RecentsClickListener; mRecentsPreloadListener = RecentsPreloadListener; mHomeSearchActionListener = HomeSearchActionListener; /* package */ void setListeners(OnClickListener recentsClickListener, OnTouchListener recentsPreloadListener, OnTouchListener homeSearchActionListener) { mRecentsClickListener = recentsClickListener; mRecentsPreloadListener = recentsPreloadListener; mHomeSearchActionListener = homeSearchActionListener; } protected void toggleButtonListener(boolean enable) { private void removeButtonListeners() { ViewGroup container = (ViewGroup) mCurrentView.findViewById(R.id.container); int viewCount = container.getChildCount(); for (int i = 0; i < viewCount; i++) { View button = container.getChildAt(i); if (button instanceof KeyButtonView) { button.setOnClickListener(null); button.setOnTouchListener(null); } } } protected void updateButtonListeners() { View recentView = mCurrentView.findViewWithTag(NavigationButtons.RECENT); if (recentView != null) { recentView.setOnClickListener(enable ? mRecentsClickListener : null); recentView.setOnTouchListener(enable ? mRecentsPreloadListener : null); recentView.setOnClickListener(mRecentsClickListener); recentView.setOnTouchListener(mRecentsPreloadListener); } View homeView = mCurrentView.findViewWithTag(NavigationButtons.HOME); if (homeView != null) { homeView.setOnTouchListener(enable ? mHomeSearchActionListener : null); homeView.setOnTouchListener(mHomeSearchActionListener); } } Loading Loading @@ -198,7 +213,8 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav updateResources(); mNavBarReceiver = new NavBarReceiver(); mContext.registerReceiver(mNavBarReceiver, new IntentFilter(NAVBAR_EDIT)); mContext.registerReceiverAsUser(mNavBarReceiver, UserHandle.ALL, new IntentFilter(NAVBAR_EDIT), null, null); } protected void updateResources() { Loading @@ -214,29 +230,27 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav public void onReceive(Context context, Intent intent) { boolean edit = intent.getBooleanExtra("edit", false); boolean save = intent.getBooleanExtra("save", false); if (edit != EDIT_MODE) { EDIT_MODE = edit; if (EDIT_MODE) { toggleButtonListener(false); mEditBar.setupListeners(); mEditBar.updateKeys(); if (edit != mInEditMode) { mInEditMode = edit; if (edit) { removeButtonListeners(); mEditBar.setEditMode(true); } else { mEditBar.dismissDialog(); if (save) { mEditBar.saveKeys(); } mEditBar.reInflate(); mEditBar = new NavbarEditor((ViewGroup) mCurrentView.findViewById(R.id.container), mVertical); mEditBar.updateKeys(); toggleButtonListener(true); if (save) { mEditBar.updateLowLights(mCurrentView); mEditBar.setEditMode(false); updateSettings(); } ((ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons)).setLayoutTransition( new LayoutTransition()); } } } public void updateSettings() { mEditBar.updateKeys(); removeButtonListeners(); updateButtonListeners(); setDisabledFlags(mDisabledFlags, true /* force */); } public void notifyScreenOn(boolean screenOn) { Loading Loading @@ -448,10 +462,8 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav } else { mVertical = getWidth() > 0 && getHeight() > getWidth(); } mEditBar = new NavbarEditor((ViewGroup) mCurrentView.findViewById(R.id.container), mVertical); mEditBar.updateKeys(); mEditBar.updateLowLights(mCurrentView); toggleButtonListener(true); mEditBar = new NavbarEditor(mCurrentView, mVertical); updateSettings(); mDeadZone = (DeadZone) mCurrentView.findViewById(R.id.deadzone); Loading @@ -470,12 +482,16 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); ViewGroup mid_nav = (ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons); View vViews[] = new View[mid_nav.getChildCount()]; for (int cc = 0;cc < mid_nav.getChildCount(); cc++) { vViews[cc] = mid_nav.getChildAt(cc); ViewGroup midNavButtons = (ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons); int count = midNavButtons.getChildCount(); View buttons[] = new View[count]; for (int i = 0; i < count; i++) { buttons[i] = midNavButtons.getChildAt(i); } mDelegateHelper.setInitialTouchRegion(vViews); mDelegateHelper.setInitialTouchRegion(buttons); } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +7 −2 Original line number Diff line number Diff line Loading @@ -924,7 +924,8 @@ public class PhoneStatusBar extends BaseStatusBar { private void prepareNavigationBarView() { mNavigationBarView.reorient(); mNavigationBarView.setListener(mRecentsClickListener,mRecentsPreloadOnTouchListener, mHomeSearchActionListener); mNavigationBarView.setListeners(mRecentsClickListener, mRecentsPreloadOnTouchListener, mHomeSearchActionListener); updateSearchPanel(); } Loading Loading @@ -2707,6 +2708,9 @@ public class PhoneStatusBar extends BaseStatusBar { if (mClock != null) { mClock.updateSettings(); } if (mNavigationBarView != null) { mNavigationBarView.updateSettings(); } super.userSwitched(newUserId); } Loading Loading @@ -2927,7 +2931,8 @@ public class PhoneStatusBar extends BaseStatusBar { @Override protected boolean shouldDisableNavbarGestures() { return !isDeviceProvisioned() || mExpandedVisible || NavigationBarView.getEditMode() || mExpandedVisible || (mNavigationBarView != null && mNavigationBarView.isInEditMode()) || (mDisabled & StatusBarManager.DISABLE_SEARCH) != 0; } Loading Loading
packages/SystemUI/res/layout/navigation_bar_edit_menu_item.xml 0 → 100644 +44 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** Copyright 2010, The Android Open Source 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. */ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/key_icon" android:layout_width="80dip" android:layout_height="match_parent" android:padding="4dip" android:scaleType="centerInside"/> <TextView android:id="@+id/key_text" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:textColor="?android:attr/textColorAlertDialogListItem" android:gravity="center_vertical" android:paddingEnd="16dip" android:ellipsize="marquee"/> </LinearLayout>
packages/SystemUI/src/com/android/systemui/statusbar/NavigationButtons.java +5 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,11 @@ public class NavigationButtons { sideResource = sR; this.key = key; } @Override public String toString() { return "ButtonInfo[" + key + "]"; } } // Available buttons string constants Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavbarEditor.java +270 −313 File changed.Preview size limit exceeded, changes collapsed. Show changes
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +54 −38 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Message; import android.os.ServiceManager; import android.os.UserHandle; import android.util.AttributeSet; import android.util.Slog; import android.view.animation.AccelerateInterpolator; Loading @@ -54,6 +55,7 @@ import com.android.systemui.statusbar.DelegateViewHelper; import com.android.systemui.statusbar.NavigationButtons; import com.android.systemui.statusbar.NavigationButtons.ButtonInfo; import com.android.systemui.statusbar.policy.DeadZone; import com.android.systemui.statusbar.policy.KeyButtonView; public class NavigationBarView extends LinearLayout implements BaseStatusBar.NavigationBarCallback { final static boolean DEBUG = false; Loading @@ -67,7 +69,7 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav final static boolean ANIMATE_HIDE_TRANSITION = false; // turned off because it introduces unsightly delay when videos goes to full screen final static String NAVBAR_EDIT = "android.intent.action.NAVBAR_EDIT"; private static boolean EDIT_MODE; private boolean mInEditMode; private NavbarEditor mEditBar; private NavBarReceiver mNavBarReceiver; private OnClickListener mRecentsClickListener; Loading Loading @@ -146,25 +148,38 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav private H mHandler = new H(); public static boolean getEditMode() { return EDIT_MODE; public boolean isInEditMode() { return mInEditMode; } protected void setListener(OnClickListener RecentsClickListener, OnTouchListener RecentsPreloadListener, OnTouchListener HomeSearchActionListener) { mRecentsClickListener = RecentsClickListener; mRecentsPreloadListener = RecentsPreloadListener; mHomeSearchActionListener = HomeSearchActionListener; /* package */ void setListeners(OnClickListener recentsClickListener, OnTouchListener recentsPreloadListener, OnTouchListener homeSearchActionListener) { mRecentsClickListener = recentsClickListener; mRecentsPreloadListener = recentsPreloadListener; mHomeSearchActionListener = homeSearchActionListener; } protected void toggleButtonListener(boolean enable) { private void removeButtonListeners() { ViewGroup container = (ViewGroup) mCurrentView.findViewById(R.id.container); int viewCount = container.getChildCount(); for (int i = 0; i < viewCount; i++) { View button = container.getChildAt(i); if (button instanceof KeyButtonView) { button.setOnClickListener(null); button.setOnTouchListener(null); } } } protected void updateButtonListeners() { View recentView = mCurrentView.findViewWithTag(NavigationButtons.RECENT); if (recentView != null) { recentView.setOnClickListener(enable ? mRecentsClickListener : null); recentView.setOnTouchListener(enable ? mRecentsPreloadListener : null); recentView.setOnClickListener(mRecentsClickListener); recentView.setOnTouchListener(mRecentsPreloadListener); } View homeView = mCurrentView.findViewWithTag(NavigationButtons.HOME); if (homeView != null) { homeView.setOnTouchListener(enable ? mHomeSearchActionListener : null); homeView.setOnTouchListener(mHomeSearchActionListener); } } Loading Loading @@ -198,7 +213,8 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav updateResources(); mNavBarReceiver = new NavBarReceiver(); mContext.registerReceiver(mNavBarReceiver, new IntentFilter(NAVBAR_EDIT)); mContext.registerReceiverAsUser(mNavBarReceiver, UserHandle.ALL, new IntentFilter(NAVBAR_EDIT), null, null); } protected void updateResources() { Loading @@ -214,29 +230,27 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav public void onReceive(Context context, Intent intent) { boolean edit = intent.getBooleanExtra("edit", false); boolean save = intent.getBooleanExtra("save", false); if (edit != EDIT_MODE) { EDIT_MODE = edit; if (EDIT_MODE) { toggleButtonListener(false); mEditBar.setupListeners(); mEditBar.updateKeys(); if (edit != mInEditMode) { mInEditMode = edit; if (edit) { removeButtonListeners(); mEditBar.setEditMode(true); } else { mEditBar.dismissDialog(); if (save) { mEditBar.saveKeys(); } mEditBar.reInflate(); mEditBar = new NavbarEditor((ViewGroup) mCurrentView.findViewById(R.id.container), mVertical); mEditBar.updateKeys(); toggleButtonListener(true); if (save) { mEditBar.updateLowLights(mCurrentView); mEditBar.setEditMode(false); updateSettings(); } ((ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons)).setLayoutTransition( new LayoutTransition()); } } } public void updateSettings() { mEditBar.updateKeys(); removeButtonListeners(); updateButtonListeners(); setDisabledFlags(mDisabledFlags, true /* force */); } public void notifyScreenOn(boolean screenOn) { Loading Loading @@ -448,10 +462,8 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav } else { mVertical = getWidth() > 0 && getHeight() > getWidth(); } mEditBar = new NavbarEditor((ViewGroup) mCurrentView.findViewById(R.id.container), mVertical); mEditBar.updateKeys(); mEditBar.updateLowLights(mCurrentView); toggleButtonListener(true); mEditBar = new NavbarEditor(mCurrentView, mVertical); updateSettings(); mDeadZone = (DeadZone) mCurrentView.findViewById(R.id.deadzone); Loading @@ -470,12 +482,16 @@ public class NavigationBarView extends LinearLayout implements BaseStatusBar.Nav @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); ViewGroup mid_nav = (ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons); View vViews[] = new View[mid_nav.getChildCount()]; for (int cc = 0;cc < mid_nav.getChildCount(); cc++) { vViews[cc] = mid_nav.getChildAt(cc); ViewGroup midNavButtons = (ViewGroup) mCurrentView.findViewById(R.id.mid_nav_buttons); int count = midNavButtons.getChildCount(); View buttons[] = new View[count]; for (int i = 0; i < count; i++) { buttons[i] = midNavButtons.getChildAt(i); } mDelegateHelper.setInitialTouchRegion(vViews); mDelegateHelper.setInitialTouchRegion(buttons); } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +7 −2 Original line number Diff line number Diff line Loading @@ -924,7 +924,8 @@ public class PhoneStatusBar extends BaseStatusBar { private void prepareNavigationBarView() { mNavigationBarView.reorient(); mNavigationBarView.setListener(mRecentsClickListener,mRecentsPreloadOnTouchListener, mHomeSearchActionListener); mNavigationBarView.setListeners(mRecentsClickListener, mRecentsPreloadOnTouchListener, mHomeSearchActionListener); updateSearchPanel(); } Loading Loading @@ -2707,6 +2708,9 @@ public class PhoneStatusBar extends BaseStatusBar { if (mClock != null) { mClock.updateSettings(); } if (mNavigationBarView != null) { mNavigationBarView.updateSettings(); } super.userSwitched(newUserId); } Loading Loading @@ -2927,7 +2931,8 @@ public class PhoneStatusBar extends BaseStatusBar { @Override protected boolean shouldDisableNavbarGestures() { return !isDeviceProvisioned() || mExpandedVisible || NavigationBarView.getEditMode() || mExpandedVisible || (mNavigationBarView != null && mNavigationBarView.isInEditMode()) || (mDisabled & StatusBarManager.DISABLE_SEARCH) != 0; } Loading