From 29be3926b41f09a7f8fab9845ce3d0d7bd216620 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Fri, 26 Jan 2018 14:05:20 -0800 Subject: Implemented Post Call in NUI. Bug: 72525658 Test: PostCallIntegrationTest PiperOrigin-RevId: 183441836 Change-Id: Ie1f8da1a7e24b22c5aa79cfa2a1261beb23579a1 --- .../com/android/dialer/main/impl/MainActivity.java | 22 +++++++++++ .../dialer/main/impl/MainSearchController.java | 18 ++++----- .../dialer/main/impl/res/layout/main_activity.xml | 43 +++++++++++----------- 3 files changed, 52 insertions(+), 31 deletions(-) (limited to 'java/com/android/dialer/main/impl') diff --git a/java/com/android/dialer/main/impl/MainActivity.java b/java/com/android/dialer/main/impl/MainActivity.java index 3edf6c6af..a7a9e6c5a 100644 --- a/java/com/android/dialer/main/impl/MainActivity.java +++ b/java/com/android/dialer/main/impl/MainActivity.java @@ -25,6 +25,7 @@ import android.provider.ContactsContract.QuickContact; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; +import android.view.View; import android.widget.ImageView; import com.android.dialer.calllog.ui.NewCallLogFragment; import com.android.dialer.common.LogUtil; @@ -41,9 +42,11 @@ import com.android.dialer.dialpadview.DialpadFragment.LastOutgoingCallCallback; import com.android.dialer.dialpadview.DialpadFragment.OnDialpadQueryChangedListener; import com.android.dialer.main.impl.BottomNavBar.OnBottomNavTabSelectedListener; import com.android.dialer.main.impl.toolbar.MainToolbar; +import com.android.dialer.postcall.PostCall; import com.android.dialer.searchfragment.list.NewSearchFragment.SearchFragmentListener; import com.android.dialer.smartdial.util.SmartDialPrefix; import com.android.dialer.speeddial.SpeedDialFragment; +import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.voicemail.listui.NewVoicemailFragment; /** This is the main activity for dialer. It hosts favorites, call log, search, dialpad, etc... */ @@ -61,6 +64,8 @@ public final class MainActivity extends AppCompatActivity /** Language the device was in last time {@link #onSaveInstanceState(Bundle)} was called. */ private String savedLanguageCode; + private View snackbarContainer; + /** * @param context Context of the application package implementing MainActivity class. * @return intent for MainActivity.class @@ -81,6 +86,8 @@ public final class MainActivity extends AppCompatActivity } private void initLayout(Bundle savedInstanceState) { + snackbarContainer = findViewById(R.id.coordinator_layout); + FloatingActionButton fab = findViewById(R.id.fab); fab.setOnClickListener(v -> searchController.showDialpad(true)); @@ -110,6 +117,21 @@ public final class MainActivity extends AppCompatActivity // language change. boolean forceUpdate = !CompatUtils.getLocale(this).getISO3Language().equals(savedLanguageCode); Database.get(this).getDatabaseHelper(this).startSmartDialUpdateThread(forceUpdate); + showPostCallPrompt(); + } + + private void showPostCallPrompt() { + if (TelecomUtil.isInManagedCall(this)) { + // No prompt to show if the user is in a call + return; + } + + if (searchController.isInSearch()) { + // Don't show the prompt if we're in the search ui + return; + } + + PostCall.promptUserForMessageIfNecessary(this, snackbarContainer); } @Override diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java index b01f80de6..1defdf578 100644 --- a/java/com/android/dialer/main/impl/MainSearchController.java +++ b/java/com/android/dialer/main/impl/MainSearchController.java @@ -40,7 +40,6 @@ import com.android.dialer.main.impl.toolbar.MainToolbar; import com.android.dialer.main.impl.toolbar.SearchBarListener; import com.android.dialer.searchfragment.list.NewSearchFragment; import com.android.dialer.searchfragment.list.NewSearchFragment.SearchFragmentListener; -import com.android.dialer.util.ViewUtil; import com.google.common.base.Optional; import java.util.ArrayList; @@ -99,7 +98,7 @@ final class MainSearchController implements SearchBarListener { // Show Search if (getSearchFragment() == null) { NewSearchFragment searchFragment = NewSearchFragment.newInstance(false); - transaction.add(R.id.search_fragment_container, searchFragment, SEARCH_FRAGMENT_TAG); + transaction.add(R.id.fragment_container, searchFragment, SEARCH_FRAGMENT_TAG); } else if (!isSearchVisible()) { transaction.show(getSearchFragment()); } @@ -153,17 +152,11 @@ final class MainSearchController implements SearchBarListener { } private void hideBottomNav() { - bottomNav.setVisibility(View.INVISIBLE); - if (bottomNav.getHeight() == 0) { - ViewUtil.doOnGlobalLayout(bottomNav, v -> fab.setTranslationY(bottomNav.getHeight())); - } else { - fab.setTranslationY(bottomNav.getHeight()); - } + bottomNav.setVisibility(View.GONE); } private void showBottomNav() { bottomNav.setVisibility(View.VISIBLE); - fab.setTranslationY(0); } /** Should be called when {@link DialpadListener#onDialpadShown()} is called. */ @@ -255,6 +248,11 @@ final class MainSearchController implements SearchBarListener { return fragment != null && fragment.isAdded() && !fragment.isHidden(); } + /** Returns true if the search UI is visible. */ + public boolean isInSearch() { + return isSearchVisible(); + } + /** * Opens search in regular/search bar search mode. * @@ -276,7 +274,7 @@ final class MainSearchController implements SearchBarListener { // Show Search if (getSearchFragment() == null) { NewSearchFragment searchFragment = NewSearchFragment.newInstance(false); - transaction.add(R.id.search_fragment_container, searchFragment, SEARCH_FRAGMENT_TAG); + transaction.add(R.id.fragment_container, searchFragment, SEARCH_FRAGMENT_TAG); } else if (!isSearchVisible()) { transaction.show(getSearchFragment()); } diff --git a/java/com/android/dialer/main/impl/res/layout/main_activity.xml b/java/com/android/dialer/main/impl/res/layout/main_activity.xml index eb0d45e57..aaba8da77 100644 --- a/java/com/android/dialer/main/impl/res/layout/main_activity.xml +++ b/java/com/android/dialer/main/impl/res/layout/main_activity.xml @@ -21,13 +21,31 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - + android:layout_above="@+id/bottom_nav_bar"> + + + + + + - - - - - \ No newline at end of file -- cgit v1.2.3