diff options
4 files changed, 115 insertions, 1 deletions
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java index b02e32543..83fe2d9de 100644 --- a/java/com/android/dialer/callcomposer/CallComposerActivity.java +++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java @@ -528,12 +528,18 @@ public class CallComposerActivity extends AppCompatActivity @Override public void onBackPressed() { + LogUtil.enterBlock("CallComposerActivity.onBackPressed"); if (!isSendAndCallHidingOrHidden) { ((CallComposerFragment) adapter.instantiateItem(pager, currentIndex)).clearComposer(); } else if (!runningExitAnimation) { // Unregister first to avoid receiving a callback when the session closes getEnrichedCallManager().unregisterStateChangedListener(this); - getEnrichedCallManager().endCallComposerSession(sessionId); + + // If the user presses the back button when the session fails, there's a race condition here + // since we clean up failed sessions. + if (getEnrichedCallManager().getSession(sessionId) != null) { + getEnrichedCallManager().endCallComposerSession(sessionId); + } runExitAnimation(); } } diff --git a/java/com/android/dialer/phonelookup/PhoneLookup.java b/java/com/android/dialer/phonelookup/PhoneLookup.java new file mode 100644 index 000000000..63b01c8e6 --- /dev/null +++ b/java/com/android/dialer/phonelookup/PhoneLookup.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2017 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.phonelookup; + +import com.android.dialer.DialerPhoneNumber; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ListenableFuture; + +/** TODO(zachh) update documentation. */ +public interface PhoneLookup { + + /** + * For Call Log "isDirty" operation. + * + * @param phoneNumbers + * @param lastModified + * @return TODO(zachh) + */ + ListenableFuture<Boolean> isDirty( + ImmutableSet<DialerPhoneNumber> phoneNumbers, long lastModified); + + /** + * For Call Log "fill" operation. + * + * @param existingInfoMap + * @param lastModified + * @return TODO(zachh) + */ + ListenableFuture<ImmutableMap<DialerPhoneNumber, PhoneLookupInfo>> bulkUpdate( + ImmutableMap<DialerPhoneNumber, PhoneLookupInfo> existingInfoMap, long lastModified); +} diff --git a/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java b/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java new file mode 100644 index 000000000..323ec7c65 --- /dev/null +++ b/java/com/android/dialer/phonelookup/cp2/Cp2PhoneLookup.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2017 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.phonelookup.cp2; + +import com.android.dialer.DialerPhoneNumber; +import com.android.dialer.phonelookup.PhoneLookup; +import com.android.dialer.phonelookup.PhoneLookupInfo; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ListenableFuture; + +/** TODO(calderwoodra) */ +final class Cp2PhoneLookup implements PhoneLookup { + + @Override + public ListenableFuture<Boolean> isDirty( + ImmutableSet<DialerPhoneNumber> phoneNumbers, long lastModified) { + // TODO(calderwoodra) + return null; + } + + @Override + public ListenableFuture<ImmutableMap<DialerPhoneNumber, PhoneLookupInfo>> bulkUpdate( + ImmutableMap<DialerPhoneNumber, PhoneLookupInfo> existingInfoMap, long lastModified) { + // TODO(calderwoodra) + return null; + } +} diff --git a/java/com/android/dialer/phonelookup/phone_lookup_info.proto b/java/com/android/dialer/phonelookup/phone_lookup_info.proto new file mode 100644 index 000000000..b959e78df --- /dev/null +++ b/java/com/android/dialer/phonelookup/phone_lookup_info.proto @@ -0,0 +1,20 @@ +syntax = "proto2"; + +option java_package = "com.android.dialer.phonelookup"; +option java_multiple_files = true; +option optimize_for = LITE_RUNTIME; + + +package com.android.dialer.phonelookup; + +// TODO(zachh) documentation +message PhoneLookupInfo { + // TODO(calderwoodra): documentation + message Cp2Info { + optional string name = 1; + optional string photo_uri = 2; + optional fixed64 photo_id = 3; + optional string label = 4; // "Home", "Mobile", ect. + } + optional Cp2Info cp2_info = 1; +}
\ No newline at end of file |