19a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian/* 29a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * Copyright (C) 2017 The Android Open Source Project 39a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * 49a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * Licensed under the Apache License, Version 2.0 (the "License"); 59a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * you may not use this file except in compliance with the License. 69a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * You may obtain a copy of the License at 79a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * 89a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * http://www.apache.org/licenses/LICENSE-2.0 99a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * 109a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * Unless required by applicable law or agreed to in writing, software 119a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * distributed under the License is distributed on an "AS IS" BASIS, 129a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * See the License for the specific language governing permissions and 149a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian * limitations under the License. 159a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian */ 16d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpackage com.android.dialer.enrichedcall.historyquery; 17d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 18d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport android.support.annotation.NonNull; 19d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.dialer.common.LogUtil; 20d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.google.auto.value.AutoValue; 21d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 22d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian/** 23d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Data object representing the pieces of information required to query for historical enriched call 24d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * data. 25d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */ 26d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian@AutoValue 27d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpublic abstract class HistoryQuery { 28d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 29d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @NonNull 30d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public static HistoryQuery create(@NonNull String number, long callStartTime, long callEndTime) { 31d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return new AutoValue_HistoryQuery(number, callStartTime, callEndTime); 32d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 33d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 34d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public abstract String getNumber(); 35d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 36d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public abstract long getCallStartTimestamp(); 37d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 38d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public abstract long getCallEndTimestamp(); 39d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian 40d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian @Override 41d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian public String toString() { 42d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian return String.format( 43d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian "HistoryQuery{number: %s, callStartTimestamp: %d, callEndTimestamp: %d}", 44d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian LogUtil.sanitizePhoneNumber(getNumber()), getCallStartTimestamp(), getCallEndTimestamp()); 45d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian } 46d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian} 47