summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/DialtactsActivity.java19
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java15
-rw-r--r--src/com/android/dialer/list/DialerPhoneNumberListAdapter.java11
-rw-r--r--src/com/android/dialer/list/ListsFragment.java4
-rw-r--r--src/com/android/dialer/list/SearchFragment.java4
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java12
6 files changed, 46 insertions, 19 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index d1a687240..52a33f2b3 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -547,6 +547,14 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
prepareVoiceSearchButton();
mDialerDatabaseHelper.startSmartDialUpdateThread();
mFloatingActionButtonController.align(getFabAlignment(), false /* animate */);
+
+ if (getIntent().hasExtra(EXTRA_SHOW_TAB)) {
+ int index = getIntent().getIntExtra(EXTRA_SHOW_TAB, ListsFragment.TAB_INDEX_SPEED_DIAL);
+ if (index < mListsFragment.getTabCount()) {
+ mListsFragment.showTab(index);
+ }
+ }
+
Trace.endSection();
}
@@ -905,14 +913,10 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public void onNewIntent(Intent newIntent) {
setIntent(newIntent);
+
mStateSaved = false;
displayFragment(newIntent);
- if (newIntent.hasExtra(EXTRA_SHOW_TAB)) {
- mListsFragment.showTab(
- getIntent().getIntExtra(EXTRA_SHOW_TAB, mListsFragment.TAB_INDEX_SPEED_DIAL));
- }
-
invalidateOptionsMenu();
}
@@ -1217,6 +1221,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public void onCallNumberDirectly(String phoneNumber, boolean isVideoCall) {
+ if (phoneNumber == null) {
+ // Invalid phone number, but let the call go through so that InCallUI can show
+ // an error message.
+ phoneNumber = "";
+ }
Intent intent = isVideoCall ?
IntentUtil.getVideoCallIntent(phoneNumber, getCallOrigin()) :
IntentUtil.getCallIntent(phoneNumber, getCallOrigin());
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 83e55944f..510847264 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -361,10 +361,13 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
public void changeCursor(Cursor cursor) {
- // Data has changed; reset so that the first call log list item will be expanded.
- mHasBoundFirstView = false;
- mCurrentlyExpandedPosition = RecyclerView.NO_POSITION;
- mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
+ // Don't auto-expand the first item for the voicemail list fragment since that will
+ // trigger an unwanted voicemail download and playback.
+ if (mVoicemailPlaybackPresenter == null) {
+ mHasBoundFirstView = false;
+ mCurrentlyExpandedPosition = RecyclerView.NO_POSITION;
+ mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
+ }
super.changeCursor(cursor);
}
@@ -578,8 +581,10 @@ public class CallLogAdapter extends GroupingListAdapter
// In case ViewHolders were added/removed, update the expanded position if the rowIds
// match so that we can restore the correct expanded state on rebind.
mCurrentlyExpandedPosition = position;
- } else if (!mHasBoundFirstView) {
+ } else if (!mHasBoundFirstView && mVoicemailPlaybackPresenter == null) {
// Expand the first view when loading the call log to expose the actions.
+ // Don't auto-expand the first item for the voicemail list fragment since that will
+ // trigger an unwanted voicemail download and playback.
mCurrentlyExpandedRowId = views.rowId;
mCurrentlyExpandedPosition = position;
mHasBoundFirstView = true;
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
index 6c0ecf72b..401b0b641 100644
--- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -44,11 +44,6 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
super(context);
mCountryIso = GeoUtil.getCurrentCountryIso(context);
-
- // Enable all shortcuts by default
- for (int i = 0; i < mShortcutEnabled.length; i++) {
- mShortcutEnabled[i] = true;
- }
}
@Override
@@ -67,6 +62,12 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
return count;
}
+ public void disableAllShortcuts() {
+ for (int i = 0; i < mShortcutEnabled.length; i++) {
+ mShortcutEnabled[i] = false;
+ }
+ }
+
@Override
public int getItemViewType(int position) {
final int shortcut = getShortcutTypeFromPosition(position);
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index e45da0ce0..33c977670 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -347,6 +347,10 @@ public class ListsFragment extends Fragment
return mRemoveView;
}
+ public int getTabCount() {
+ return mViewPagerAdapter.getCount();
+ }
+
private int getRtlPosition(int position) {
if (DialerUtils.isRtl()) {
return mViewPagerAdapter.getCount() - 1 - position;
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 1f33d5b75..106545eaf 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -345,7 +345,9 @@ public class SearchFragment extends PhoneNumberPickerFragment {
super.startLoading();
} else if (TextUtils.isEmpty(getQueryString())) {
// Clear out any existing call shortcuts.
- getAdapter().setQueryString(null);
+ final DialerPhoneNumberListAdapter adapter =
+ (DialerPhoneNumberListAdapter) getAdapter();
+ adapter.disableAllShortcuts();
}
}
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index 4597d35d0..19f71455d 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -521,7 +521,9 @@ public class VoicemailPlaybackPresenter
mIsPrepared = false;
}
- mView.onPlaybackError();
+ if (mView != null) {
+ mView.onPlaybackError();
+ }
mPosition = 0;
mIsPlaying = false;
@@ -536,7 +538,9 @@ public class VoicemailPlaybackPresenter
// Reset the seekbar position to the beginning.
mPosition = 0;
- mView.setClipPosition(0, mDuration.get());
+ if (mView != null) {
+ mView.setClipPosition(0, mDuration.get());
+ }
}
@Override
@@ -610,7 +614,9 @@ public class VoicemailPlaybackPresenter
mPosition = mMediaPlayer.getCurrentPosition();
Log.d(TAG, "Paused playback at " + mPosition + ".");
- mView.onPlaybackStopped();
+ if (mView != null) {
+ mView.onPlaybackStopped();
+ }
mAudioManager.abandonAudioFocus(this);
mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);