diff options
author | calderwoodra <calderwoodra@google.com> | 2018-02-05 17:45:51 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-05 19:25:06 -0800 |
commit | 1407d25aa8f79e6ff5badc2ed8c234827c762a84 (patch) | |
tree | 91804da70150b462b251f62b910d5608835d66f0 /java/com/android/dialer/main/impl/BottomNavBar.java | |
parent | e3fda9ecc6ec80c55bcb9b6110c4031023c6aa3b (diff) |
Updated bottom nav to match redlines.
Bug: 72525324
Test: manual
PiperOrigin-RevId: 184615350
Change-Id: Ic5701d67111e38f73dfa4be31dd89115ad7f5bb8
Diffstat (limited to 'java/com/android/dialer/main/impl/BottomNavBar.java')
-rw-r--r-- | java/com/android/dialer/main/impl/BottomNavBar.java | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/java/com/android/dialer/main/impl/BottomNavBar.java b/java/com/android/dialer/main/impl/BottomNavBar.java deleted file mode 100644 index 97f526251..000000000 --- a/java/com/android/dialer/main/impl/BottomNavBar.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (C) 2018 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 - */ - -package com.android.dialer.main.impl; - -import android.content.Context; -import android.support.annotation.IntDef; -import android.support.annotation.Nullable; -import android.util.AttributeSet; -import android.view.View; -import android.widget.LinearLayout; -import com.android.dialer.common.Assert; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.util.ArrayList; -import java.util.List; - -/** Dialer Bottom Nav Bar for {@link MainActivity}. */ -public final class BottomNavBar extends LinearLayout { - - /** Index for each tab in the bottom nav. */ - @Retention(RetentionPolicy.SOURCE) - @IntDef({ - TabIndex.SPEED_DIAL, - TabIndex.CALL_LOG, - TabIndex.CONTACTS, - TabIndex.VOICEMAIL, - }) - public @interface TabIndex { - int SPEED_DIAL = 0; - int CALL_LOG = 1; - int CONTACTS = 2; - int VOICEMAIL = 3; - } - - private final List<OnBottomNavTabSelectedListener> listeners = new ArrayList<>(); - - private BottomNavItem speedDial; - private BottomNavItem callLog; - private BottomNavItem contacts; - private BottomNavItem voicemail; - private @TabIndex int selectedTab; - - public BottomNavBar(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - speedDial = findViewById(R.id.speed_dial_tab); - callLog = findViewById(R.id.call_log_tab); - contacts = findViewById(R.id.contacts_tab); - voicemail = findViewById(R.id.voicemail_tab); - - speedDial.setup(R.string.tab_title_speed_dial, R.drawable.quantum_ic_star_vd_theme_24); - callLog.setup(R.string.tab_title_call_history, R.drawable.quantum_ic_history_vd_theme_24); - contacts.setup(R.string.tab_title_contacts, R.drawable.quantum_ic_people_vd_theme_24); - voicemail.setup(R.string.tab_title_voicemail, R.drawable.quantum_ic_voicemail_vd_theme_24); - - speedDial.setOnClickListener( - v -> { - selectedTab = TabIndex.SPEED_DIAL; - setSelected(speedDial); - updateListeners(selectedTab); - }); - callLog.setOnClickListener( - v -> { - selectedTab = TabIndex.CALL_LOG; - setSelected(callLog); - updateListeners(selectedTab); - }); - contacts.setOnClickListener( - v -> { - selectedTab = TabIndex.CONTACTS; - setSelected(contacts); - updateListeners(selectedTab); - }); - voicemail.setOnClickListener( - v -> { - selectedTab = TabIndex.VOICEMAIL; - setSelected(voicemail); - updateListeners(selectedTab); - }); - } - - private void setSelected(View view) { - speedDial.setSelected(view == speedDial); - callLog.setSelected(view == callLog); - contacts.setSelected(view == contacts); - voicemail.setSelected(view == voicemail); - } - - /** - * Calls {@link View#performClick()} on the desired tab. - * - * @param tab {@link TabIndex} - */ - void selectTab(@TabIndex int tab) { - if (tab == TabIndex.SPEED_DIAL) { - speedDial.performClick(); - } else if (tab == TabIndex.CALL_LOG) { - callLog.performClick(); - } else if (tab == TabIndex.CONTACTS) { - contacts.performClick(); - } else if (tab == TabIndex.VOICEMAIL) { - voicemail.performClick(); - } else { - throw new IllegalStateException("Invalid tab: " + tab); - } - } - - void setNotificationCount(@TabIndex int tab, int count) { - if (tab == TabIndex.SPEED_DIAL) { - speedDial.setNotificationCount(count); - } else if (tab == TabIndex.CALL_LOG) { - callLog.setNotificationCount(count); - } else if (tab == TabIndex.CONTACTS) { - contacts.setNotificationCount(count); - } else if (tab == TabIndex.VOICEMAIL) { - voicemail.setNotificationCount(count); - } else { - throw new IllegalStateException("Invalid tab: " + tab); - } - } - - void addOnTabSelectedListener(OnBottomNavTabSelectedListener listener) { - listeners.add(listener); - } - - private void updateListeners(@TabIndex int tabIndex) { - for (OnBottomNavTabSelectedListener listener : listeners) { - switch (tabIndex) { - case TabIndex.SPEED_DIAL: - listener.onSpeedDialSelected(); - break; - case TabIndex.CALL_LOG: - listener.onCallLogSelected(); - break; - case TabIndex.CONTACTS: - listener.onContactsSelected(); - break; - case TabIndex.VOICEMAIL: - listener.onVoicemailSelected(); - break; - default: - throw Assert.createIllegalStateFailException("Invalid tab: " + tabIndex); - } - } - } - - public int getSelectedTab() { - return selectedTab; - } - - /** Listener for bottom nav tab's on click events. */ - public interface OnBottomNavTabSelectedListener { - - /** Speed dial tab was clicked. */ - void onSpeedDialSelected(); - - /** Call Log tab was clicked. */ - void onCallLogSelected(); - - /** Contacts tab was clicked. */ - void onContactsSelected(); - - /** Voicemail tab was clicked. */ - void onVoicemailSelected(); - } -} |