summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/main
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/main')
-rw-r--r--java/com/android/dialer/main/impl/MainActivity.java8
-rw-r--r--java/com/android/dialer/main/impl/MainSearchController.java62
-rw-r--r--java/com/android/dialer/main/impl/OldMainActivityPeer.java31
-rw-r--r--java/com/android/dialer/main/impl/toolbar/MainToolbar.java18
4 files changed, 74 insertions, 45 deletions
diff --git a/java/com/android/dialer/main/impl/MainActivity.java b/java/com/android/dialer/main/impl/MainActivity.java
index 3f660f56c..2046b048f 100644
--- a/java/com/android/dialer/main/impl/MainActivity.java
+++ b/java/com/android/dialer/main/impl/MainActivity.java
@@ -24,7 +24,6 @@ import com.android.dialer.blockreportspam.ShowBlockReportSpamDialogReceiver;
import com.android.dialer.calllog.config.CallLogConfigComponent;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.duo.PlaceDuoCallReceiver;
import com.android.dialer.interactions.PhoneNumberInteraction.DisambigDialogDismissedListener;
import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode;
import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorListener;
@@ -48,9 +47,6 @@ public class MainActivity extends TransactionSafeActivity
*/
private ShowBlockReportSpamDialogReceiver showBlockReportSpamDialogReceiver;
- /** {@link android.content.BroadcastReceiver} that starts a Duo call. */
- private PlaceDuoCallReceiver placeDuoCallReceiver;
-
public static Intent getShowCallLogIntent(Context context) {
return getShowTabIntent(context, TabIndex.CALL_LOG);
}
@@ -83,7 +79,6 @@ public class MainActivity extends TransactionSafeActivity
activePeer.onActivityCreate(savedInstanceState);
showBlockReportSpamDialogReceiver = new ShowBlockReportSpamDialogReceiver(getFragmentManager());
- placeDuoCallReceiver = new PlaceDuoCallReceiver(/* activity = */ this);
}
protected MainActivityPeer getNewPeer() {
@@ -109,8 +104,6 @@ public class MainActivity extends TransactionSafeActivity
LocalBroadcastManager.getInstance(this)
.registerReceiver(
showBlockReportSpamDialogReceiver, ShowBlockReportSpamDialogReceiver.getIntentFilter());
- LocalBroadcastManager.getInstance(this)
- .registerReceiver(placeDuoCallReceiver, PlaceDuoCallReceiver.getIntentFilter());
}
@Override
@@ -125,7 +118,6 @@ public class MainActivity extends TransactionSafeActivity
activePeer.onActivityPause();
LocalBroadcastManager.getInstance(this).unregisterReceiver(showBlockReportSpamDialogReceiver);
- LocalBroadcastManager.getInstance(this).unregisterReceiver(placeDuoCallReceiver);
}
@Override
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index b9a6654b6..72c46cc7a 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -35,7 +35,6 @@ import com.android.contacts.common.dialog.ClearFrequentsDialog;
import com.android.dialer.app.calllog.CallLogActivity;
import com.android.dialer.app.settings.DialerSettingsActivity;
import com.android.dialer.callintent.CallInitiationType;
-import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.dialpadview.DialpadFragment;
@@ -136,7 +135,10 @@ public class MainSearchController implements SearchBarListener {
}
private void showDialpad(boolean animate, boolean fromNewIntent) {
- Assert.checkArgument(!isDialpadVisible());
+ if (isDialpadVisible()) {
+ LogUtil.e("MainSearchController.showDialpad", "Dialpad is already visible.");
+ return;
+ }
Logger.get(activity).logScreenView(ScreenEvent.Type.MAIN_DIALPAD, activity);
@@ -187,14 +189,32 @@ public class MainSearchController implements SearchBarListener {
*/
private void hideDialpad(boolean animate) {
LogUtil.enterBlock("MainSearchController.hideDialpad");
- assertDialpadVisible();
+ DialpadFragment dialpadFragment = getDialpadFragment();
+ if (dialpadFragment == null) {
+ LogUtil.e("MainSearchController.hideDialpad", "Dialpad fragment is null.");
+ return;
+ }
+
+ if (!dialpadFragment.isAdded()) {
+ LogUtil.e("MainSearchController.hideDialpad", "Dialpad fragment is not added.");
+ return;
+ }
+
+ if (dialpadFragment.isHidden()) {
+ LogUtil.e("MainSearchController.hideDialpad", "Dialpad fragment is already hidden.");
+ return;
+ }
+
+ if (!dialpadFragment.isDialpadSlideUp()) {
+ LogUtil.e("MainSearchController.hideDialpad", "Dialpad fragment is already slide down.");
+ return;
+ }
fab.show();
toolbar.slideDown(animate, fragmentContainer);
toolbar.transferQueryFromDialpad(getDialpadFragment().getQuery());
activity.setTitle(R.string.main_activity_label);
- DialpadFragment dialpadFragment = getDialpadFragment();
dialpadFragment.setAnimate(animate);
dialpadFragment.slideDown(
animate,
@@ -295,7 +315,22 @@ public class MainSearchController implements SearchBarListener {
/** Calls {@link #hideDialpad(boolean)}, removes the search fragment and clears the dialpad. */
private void closeSearch(boolean animate) {
LogUtil.enterBlock("MainSearchController.closeSearch");
- assertSearchIsVisible();
+ NewSearchFragment searchFragment = getSearchFragment();
+ if (searchFragment == null) {
+ LogUtil.e("MainSearchController.closeSearch", "Search fragment is null.");
+ return;
+ }
+
+ if (!searchFragment.isAdded()) {
+ LogUtil.e("MainSearchController.closeSearch", "Search fragment isn't added.");
+ return;
+ }
+
+ if (searchFragment.isHidden()) {
+ LogUtil.e("MainSearchController.closeSearch", "Search fragment is already hidden.");
+ return;
+ }
+
if (isDialpadVisible()) {
hideDialpad(animate);
} else if (!fab.isShown()) {
@@ -304,7 +339,7 @@ public class MainSearchController implements SearchBarListener {
showBottomNav();
toolbar.collapse(animate);
toolbarShadow.setVisibility(View.GONE);
- activity.getFragmentManager().beginTransaction().hide(getSearchFragment()).commit();
+ activity.getFragmentManager().beginTransaction().hide(searchFragment).commit();
// Clear the dialpad so the phone number isn't persisted between search sessions.
DialpadFragment dialpadFragment = getDialpadFragment();
@@ -341,26 +376,11 @@ public class MainSearchController implements SearchBarListener {
&& fragment.isDialpadSlideUp();
}
- private void assertDialpadVisible() {
- DialpadFragment fragment = getDialpadFragment();
- Assert.checkArgument(fragment != null, "Dialpad Fragment is null");
- Assert.checkArgument(fragment.isAdded(), "Dialpad Fragment is no added");
- Assert.checkArgument(!fragment.isHidden(), "Dialpad Fragment is hidden");
- Assert.checkArgument(fragment.isDialpadSlideUp(), "Dialpad Fragment is slide down");
- }
-
private boolean isSearchVisible() {
NewSearchFragment fragment = getSearchFragment();
return fragment != null && fragment.isAdded() && !fragment.isHidden();
}
- private void assertSearchIsVisible() {
- NewSearchFragment fragment = getSearchFragment();
- Assert.checkArgument(fragment != null, "Search Fragment is null");
- Assert.checkArgument(fragment.isAdded(), "Search Fragment is not added");
- Assert.checkArgument(!fragment.isHidden(), "Search Fragment is hidden.");
- }
-
/** Returns true if the search UI is visible. */
public boolean isInSearch() {
return isSearchVisible();
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index e3d42fa9e..e426ed215 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -460,6 +460,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
@SuppressLint("MissingPermission")
@Override
public void onActivityResume() {
+ LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.onActivityResume");
callLogFragmentListener.onActivityResume();
// Start the thread that updates the smart dial database if the activity is recreated with a
// language change.
@@ -866,6 +867,10 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
+ LogUtil.i(
+ "MainCallLogFragmentListener",
+ "voicemailStatusObserver.onChange selfChange:%b",
+ selfChange);
super.onChange(selfChange);
callLogQueryHandler.fetchVoicemailStatus();
}
@@ -885,9 +890,10 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
}
private void registerVoicemailStatusContentObserver(Context context) {
-
+ LogUtil.enterBlock("MainCallLogFragmentListener.registerVoicemailStatusContentObserver");
if (PermissionsUtil.hasReadVoicemailPermissions(context)
&& PermissionsUtil.hasAddVoicemailPermissions(context)) {
+ LogUtil.i("MainCallLogFragmentListener.registerVoicemailStatusContentObserver", "register");
context
.getContentResolver()
.registerContentObserver(
@@ -1013,11 +1019,12 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
}
public void onActivityResume() {
+ LogUtil.enterBlock("MainCallLogFragmentListener.onActivityResume");
activityIsAlive = true;
registerVoicemailStatusContentObserver(context);
- if (!bottomNavTabListener.newVoicemailFragmentActive()) {
- callLogQueryHandler.fetchVoicemailStatus();
- }
+ // TODO(a bug): Don't use callLogQueryHandler
+ callLogQueryHandler.fetchVoicemailStatus();
+
if (!bottomNavTabListener.newCallLogFragmentActive()) {
callLogQueryHandler.fetchMissedCallsUnreadCount();
}
@@ -1234,7 +1241,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private static final String CONTACTS_TAG = "contacts";
private static final String VOICEMAIL_TAG = "voicemail";
- private final AppCompatActivity activity;
+ private final TransactionSafeActivity activity;
private final FragmentManager fragmentManager;
private final android.support.v4.app.FragmentManager supportFragmentManager;
private final FloatingActionButton fab;
@@ -1242,7 +1249,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
@TabIndex private int selectedTab = -1;
private MainBottomNavBarBottomNavTabListener(
- AppCompatActivity activity,
+ TransactionSafeActivity activity,
FragmentManager fragmentManager,
android.support.v4.app.FragmentManager supportFragmentManager,
FloatingActionButton fab) {
@@ -1300,7 +1307,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
android.support.v4.app.Fragment supportFragment =
supportFragmentManager.findFragmentByTag(CALL_LOG_TAG);
if (supportFragment != null) {
- supportFragmentManager.beginTransaction().remove(supportFragment).commit();
+ supportFragmentManager.beginTransaction().remove(supportFragment).commitAllowingStateLoss();
// If the NewCallLogFragment was showing, immediately show the old call log fragment
// instead.
if (selectedTab == TabIndex.CALL_LOG) {
@@ -1317,7 +1324,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
android.support.v4.app.Fragment supportFragment =
supportFragmentManager.findFragmentByTag(VOICEMAIL_TAG);
if (supportFragment != null) {
- supportFragmentManager.beginTransaction().remove(supportFragment).commit();
+ supportFragmentManager.beginTransaction().remove(supportFragment).commitAllowingStateLoss();
// If the NewVoicemailFragment was showing, immediately show the old voicemail fragment
// instead.
if (selectedTab == TabIndex.VOICEMAIL) {
@@ -1445,7 +1452,9 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
"MainBottomNavBarBottomNavTabListener.showFragment", "Not added yet: " + fragment);
transaction.add(R.id.fragment_container, fragment, tag);
}
- transaction.commit();
+ if (activity.isSafeToCommitTransactions()) {
+ transaction.commit();
+ }
// Handle support fragments.
// TODO(calderwoodra): Handle other new fragments.
@@ -1471,7 +1480,9 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
"Not added yet: " + supportFragment);
supportTransaction.add(R.id.fragment_container, supportFragment, tag);
}
- supportTransaction.commit();
+ if (activity.isSafeToCommitTransactions()) {
+ supportTransaction.commit();
+ }
}
private void showSupportFragment(
diff --git a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
index 851d7a0b4..475383bd3 100644
--- a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
+++ b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
@@ -28,6 +28,7 @@ import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.ImageButton;
import android.widget.PopupMenu;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.util.ViewUtil;
import com.google.common.base.Optional;
@@ -41,7 +42,6 @@ public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemCl
private SearchBarView searchBar;
private SearchBarListener listener;
private MainToolbarMenu overflowMenu;
- private boolean isSlideUp;
private boolean hasGlobalLayoutListener;
public MainToolbar(Context context, AttributeSet attrs) {
@@ -78,7 +78,6 @@ public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemCl
return;
}
- Assert.checkArgument(!isSlideUp);
if (getHeight() == 0) {
hasGlobalLayoutListener = true;
ViewUtil.doOnGlobalLayout(
@@ -89,7 +88,12 @@ public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemCl
});
return;
}
- isSlideUp = true;
+
+ if (isSlideUp()) {
+ LogUtil.e("MainToolbar.slideDown", "Already slide up.");
+ return;
+ }
+
animate()
.translationY(-getHeight())
.setDuration(animate ? SLIDE_DURATION : 0)
@@ -105,8 +109,10 @@ public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemCl
/** Slides the toolbar down and back onto the screen. */
public void slideDown(boolean animate, View container) {
- Assert.checkArgument(isSlideUp);
- isSlideUp = false;
+ if (getTranslationY() == 0) {
+ LogUtil.e("MainToolbar.slideDown", "Already slide down.");
+ return;
+ }
animate()
.translationY(0)
.setDuration(animate ? SLIDE_DURATION : 0)
@@ -131,7 +137,7 @@ public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemCl
}
public boolean isSlideUp() {
- return isSlideUp;
+ return getHeight() != 0 && getTranslationY() == -getHeight();
}
public boolean isExpanded() {