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