Increase minSdk to 24.
Manually set to M
- MissedCallNotifierTest (not sure what the issue is here...)
- CallLogGroupBuilderTest (because a check was removed, some NPEs are thrown)
- MainSearchControllerTest (/system/etc/fonts.xml (No such file or directory))
Ignore Tests
- a few random ones in incallui/answer/impl/hint (shared prefs aren't working for some reason)
- VisualVoicemailUpdateTaskTest (disabled the whole test, issue unclear)
Bug: 73902692
Test: tap
PiperOrigin-RevId: 190030202
Change-Id: I1e9b61d758a61582c5a183ee884dd2181d1c10de
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 164dbc9..26fed40 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -20,7 +20,7 @@
android:versionName="19.0">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 48f292c..bbf31e8 100644
--- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java
+++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
@@ -23,8 +23,6 @@
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.telecom.PhoneAccount;
@@ -519,12 +517,6 @@
* current phone account.
*/
private void loadConfiguration() {
- // Only attempt to load configuration from the phone account extras if the SDK is N or
- // later. If we've got a prior SDK the default encoding and message length will suffice.
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return;
- }
-
if (mPhoneAccountHandle == null) {
return;
}
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index 0c1a362..e77bbe2 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -55,7 +55,7 @@
<uses-permission android:name="android.permission.STOP_APP_SWITCHES"/>
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<application android:theme="@style/Theme.AppCompat">
diff --git a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
index 08f5585..b306e75 100644
--- a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
+++ b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
@@ -34,7 +34,8 @@
import com.android.dialer.util.PermissionsUtil;
import com.android.voicemail.VoicemailClient;
-@TargetApi(VERSION_CODES.M)
+/** TODO(calderwoodra): documentation */
+@TargetApi(VERSION_CODES.N)
public class CallLogAsyncTaskUtil {
private static final String TAG = "CallLogAsyncTaskUtil";
@@ -155,6 +156,7 @@
UPDATE_DURATION,
}
+ /** TODO(calderwoodra): documentation */
public interface CallLogAsyncTaskListener {
void onDeleteVoicemail();
}
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
index 3afb6bb..ce6e5ba 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
@@ -51,7 +51,7 @@
import java.util.concurrent.TimeUnit;
/** Helper class operating on call log notifications. */
-@TargetApi(Build.VERSION_CODES.M)
+@TargetApi(Build.VERSION_CODES.N)
public class CallLogNotificationsQueryHelper {
@VisibleForTesting
@@ -341,14 +341,14 @@
@Override
@Nullable
- @TargetApi(Build.VERSION_CODES.M)
+ @TargetApi(Build.VERSION_CODES.N)
public List<NewCall> query(int type) {
return query(type, NO_THRESHOLD);
}
@Override
@Nullable
- @TargetApi(Build.VERSION_CODES.M)
+ @TargetApi(Build.VERSION_CODES.N)
@SuppressWarnings("MissingPermission")
public List<NewCall> query(int type, long thresholdMillis) {
if (!PermissionsUtil.hasPermission(context, Manifest.permission.READ_CALL_LOG)) {
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailNotifier.java b/java/com/android/dialer/app/calllog/VisualVoicemailNotifier.java
index 78d3075..cba389c 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailNotifier.java
@@ -233,9 +233,6 @@
@Nullable
private static Uri getVoicemailRingtoneUri(
@NonNull Context context, @Nullable PhoneAccountHandle handle) {
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return null;
- }
if (handle == null) {
LogUtil.i("VisualVoicemailNotifier.getVoicemailRingtoneUri", "null handle, getting fallback");
handle = getFallbackAccount(context);
@@ -251,9 +248,6 @@
private static int getNotificationDefaultFlags(
@NonNull Context context, @Nullable PhoneAccountHandle handle) {
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return Notification.DEFAULT_ALL;
- }
if (handle == null) {
LogUtil.i(
"VisualVoicemailNotifier.getNotificationDefaultFlags", "null handle, getting fallback");
diff --git a/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java b/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
index ba61601..754ab27 100644
--- a/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
+++ b/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
@@ -22,7 +22,6 @@
import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
-import android.os.Build;
import android.provider.VoicemailContract;
import com.android.dialer.common.LogUtil;
import com.android.dialer.constants.ScheduledJobIds;
@@ -37,12 +36,8 @@
* notification is visible.
*/
public static void scheduleJob(Context context) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
- LogUtil.i("VoicemailNotificationJobService.scheduleJob", "not supported");
- } else {
- context.getSystemService(JobScheduler.class).schedule(getJobInfo(context));
- LogUtil.i("VoicemailNotificationJobService.scheduleJob", "job scheduled");
- }
+ context.getSystemService(JobScheduler.class).schedule(getJobInfo(context));
+ LogUtil.i("VoicemailNotificationJobService.scheduleJob", "job scheduled");
}
/**
diff --git a/java/com/android/dialer/assisteddialing/AndroidManifest.xml b/java/com/android/dialer/assisteddialing/AndroidManifest.xml
index a19af3b..0a5b613 100644
--- a/java/com/android/dialer/assisteddialing/AndroidManifest.xml
+++ b/java/com/android/dialer/assisteddialing/AndroidManifest.xml
@@ -16,7 +16,7 @@
package="com.android.dialer.assisteddialing">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
</manifest>
diff --git a/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml b/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
index 3e79de3..d59056e 100644
--- a/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
+++ b/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
@@ -16,7 +16,7 @@
package="com.android.dialer.assisteddialing.ui">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<application>
diff --git a/java/com/android/dialer/binary/google/AndroidManifest.xml b/java/com/android/dialer/binary/google/AndroidManifest.xml
index c1f1a59..f6ac430 100644
--- a/java/com/android/dialer/binary/google/AndroidManifest.xml
+++ b/java/com/android/dialer/binary/google/AndroidManifest.xml
@@ -20,7 +20,7 @@
android:versionName="19.0">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
diff --git a/java/com/android/dialer/blocking/BlockedNumbersMigrator.java b/java/com/android/dialer/blocking/BlockedNumbersMigrator.java
index 88f474a..61ebf2f 100644
--- a/java/com/android/dialer/blocking/BlockedNumbersMigrator.java
+++ b/java/com/android/dialer/blocking/BlockedNumbersMigrator.java
@@ -35,7 +35,7 @@
* Class which should be used to migrate numbers from {@link FilteredNumberContract} blocking to
* {@link android.provider.BlockedNumberContract} blocking.
*/
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class BlockedNumbersMigrator {
private final Context context;
diff --git a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
index 09fd5f0..8be479c 100644
--- a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
+++ b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
@@ -37,6 +37,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+/** TODO(calderwoodra): documentation */
public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
public static final int INVALID_ID = -1;
@@ -199,7 +200,7 @@
*
* @return blocked id.
*/
- @TargetApi(VERSION_CODES.M)
+ @TargetApi(VERSION_CODES.N)
@Nullable
public Integer getBlockedIdSynchronous(@Nullable String number, String countryIso) {
Assert.isWorkerThread();
@@ -382,6 +383,7 @@
null);
}
+ /** TODO(calderwoodra): documentation */
public interface OnCheckBlockedListener {
/**
@@ -392,6 +394,7 @@
void onCheckComplete(Integer id);
}
+ /** TODO(calderwoodra): documentation */
public interface OnBlockNumberListener {
/**
@@ -402,6 +405,7 @@
void onBlockComplete(Uri uri);
}
+ /** TODO(calderwoodra): documentation */
public interface OnUnblockNumberListener {
/**
@@ -413,6 +417,7 @@
void onUnblockComplete(int rows, ContentValues values);
}
+ /** TODO(calderwoodra): documentation */
interface OnHasBlockedNumbersListener {
/**
diff --git a/java/com/android/dialer/blocking/FilteredNumberCompat.java b/java/com/android/dialer/blocking/FilteredNumberCompat.java
index bea84e8..b0af45c 100644
--- a/java/com/android/dialer/blocking/FilteredNumberCompat.java
+++ b/java/com/android/dialer/blocking/FilteredNumberCompat.java
@@ -16,16 +16,12 @@
package com.android.dialer.blocking;
-import android.annotation.TargetApi;
import android.app.FragmentManager;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
-import android.os.UserManager;
import android.preference.PreferenceManager;
import android.provider.BlockedNumberContract;
import android.provider.BlockedNumberContract.BlockedNumbers;
@@ -110,7 +106,7 @@
* otherwise.
*/
public static boolean canUseNewFiltering() {
- return VERSION.SDK_INT >= VERSION_CODES.N;
+ return true;
}
/**
@@ -162,16 +158,14 @@
private static Uri getBaseUri(Context context) {
// Explicit version check to aid static analysis
- return useNewFiltering(context) && VERSION.SDK_INT >= VERSION_CODES.N
- ? BlockedNumbers.CONTENT_URI
- : FilteredNumber.CONTENT_URI;
+ return useNewFiltering(context) ? BlockedNumbers.CONTENT_URI : FilteredNumber.CONTENT_URI;
}
/**
* Removes any null column names from the given projection array. This method is intended to be
* used to strip out any column names that aren't available in every version of number blocking.
* Example: {@literal getContext().getContentResolver().query( someUri, // Filtering ensures that
- * no non-existant columns are queried FilteredNumberCompat.filter(new String[]
+ * no non-existent columns are queried FilteredNumberCompat.filter(new String[]
* {FilteredNumberCompat.getIdColumnName(), FilteredNumberCompat.getTypeColumnName()},
* FilteredNumberCompat.getE164NumberColumnName() + " = ?", new String[] {e164Number}); }
*
@@ -249,9 +243,7 @@
*/
public static Intent createManageBlockedNumbersIntent(Context context) {
// Explicit version check to aid static analysis
- if (canUseNewFiltering()
- && hasMigratedToNewBlocking(context)
- && VERSION.SDK_INT >= VERSION_CODES.N) {
+ if (canUseNewFiltering() && hasMigratedToNewBlocking(context)) {
return context.getSystemService(TelecomManager.class).createManageBlockedNumbersIntent();
}
Intent intent = new Intent("com.android.dialer.action.BLOCKED_NUMBERS_SETTINGS");
@@ -270,11 +262,6 @@
return canAttemptBlockOperationsForTest;
}
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- // Dialer blocking, must be primary user
- return context.getSystemService(UserManager.class).isSystemUser();
- }
-
// Great Wall blocking, must be primary user and the default or system dialer
// TODO(maxwelb): check that we're the system Dialer
return TelecomUtil.isDefaultDialer(context)
@@ -294,10 +281,6 @@
* otherwise.
*/
public static boolean canCurrentUserOpenBlockSettings(Context context) {
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- // Dialer blocking, must be primary user
- return context.getSystemService(UserManager.class).isSystemUser();
- }
// BlockedNumberContract blocking, verify through Contract API
return TelecomUtil.isDefaultDialer(context)
&& safeBlockedNumbersContractCanCurrentUserBlockNumbers(context);
@@ -312,7 +295,6 @@
* @return the result of BlockedNumberContract#canCurrentUserBlockNumbers, or {@code false} if an
* exception was thrown.
*/
- @TargetApi(VERSION_CODES.N)
private static boolean safeBlockedNumbersContractCanCurrentUserBlockNumbers(Context context) {
try {
return BlockedNumberContract.canCurrentUserBlockNumbers(context);
diff --git a/java/com/android/dialer/callcomposer/CopyAndResizeImageWorker.java b/java/com/android/dialer/callcomposer/CopyAndResizeImageWorker.java
index 725cea7..0f1ab5f 100644
--- a/java/com/android/dialer/callcomposer/CopyAndResizeImageWorker.java
+++ b/java/com/android/dialer/callcomposer/CopyAndResizeImageWorker.java
@@ -37,7 +37,7 @@
import java.io.OutputStream;
/** Task for copying and resizing images to be shared with RCS process. */
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
class CopyAndResizeImageWorker implements Worker<Uri, Pair<File, String>> {
private static final String MIME_TYPE = "image/jpeg";
diff --git a/java/com/android/dialer/callcomposer/camera/ImagePersistWorker.java b/java/com/android/dialer/callcomposer/camera/ImagePersistWorker.java
index 69f5469..c18e22d 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistWorker.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistWorker.java
@@ -38,7 +38,7 @@
import java.io.OutputStream;
/** Persisting image routine. */
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class ImagePersistWorker implements Worker<Void, Result> {
private int width;
private int height;
diff --git a/java/com/android/dialer/calllog/AndroidManifest.xml b/java/com/android/dialer/calllog/AndroidManifest.xml
index 69731fe..7c904d9 100644
--- a/java/com/android/dialer/calllog/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/AndroidManifest.xml
@@ -17,7 +17,7 @@
package="com.android.dialer.calllog">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<application>
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
index 9a80af2..7fc474a 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
@@ -92,7 +92,7 @@
return true;
}
- @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ @TargetApi(Build.VERSION_CODES.N) // Uses try-with-resources
@Nullable
@Override
public Cursor query(
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index 6fd19dd..dce51b7 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -256,7 +256,7 @@
}
}
- @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ @TargetApi(Build.VERSION_CODES.N) // Uses try-with-resources
private void handleInsertsAndUpdates(
Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) {
long previousTimestampProcessed = sharedPreferences.getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L);
@@ -481,7 +481,7 @@
}
}
- @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ @TargetApi(Build.VERSION_CODES.N) // Uses try-with-resources
private static Set<Long> getAnnotatedCallLogIds(Context appContext) {
ArraySet<Long> ids = new ArraySet<>();
@@ -510,7 +510,7 @@
return ids;
}
- @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ @TargetApi(Build.VERSION_CODES.N) // Uses try-with-resources
private static Set<Long> getIdsFromSystemCallLogThatMatch(
Context appContext, Set<Long> matchingIds) {
ArraySet<Long> ids = new ArraySet<>();
diff --git a/java/com/android/dialer/calllogutils/CallLogDates.java b/java/com/android/dialer/calllogutils/CallLogDates.java
index fe3c0c3..5a63c3c 100644
--- a/java/com/android/dialer/calllogutils/CallLogDates.java
+++ b/java/com/android/dialer/calllogutils/CallLogDates.java
@@ -19,8 +19,6 @@
import android.content.Context;
import android.icu.lang.UCharacter;
import android.icu.text.BreakIterator;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.text.format.DateUtils;
import java.util.Calendar;
import java.util.Locale;
@@ -145,12 +143,6 @@
// of the string is not usually capitalized. For example, "Wednesdsay" in Uzbek is "chorshanba”
// (not capitalized). To handle this issue we apply title casing to the start of the sentence so
// that "chorshanba, 2016 may 25,20:02" becomes "Chorshanba, 2016 may 25,20:02".
- //
- // The ICU library was not available in Android until N, so we can only do this in N+ devices.
- // Pre-N devices will still see incorrect capitalization in some languages.
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return value;
- }
// Using the ICU library is safer than just applying toUpperCase() on the first letter of the
// word because in some languages, there can be multiple starting characters which should be
diff --git a/java/com/android/dialer/compat/CompatUtils.java b/java/com/android/dialer/compat/CompatUtils.java
index 584f205..d09f8b0 100644
--- a/java/com/android/dialer/compat/CompatUtils.java
+++ b/java/com/android/dialer/compat/CompatUtils.java
@@ -16,17 +16,17 @@
package com.android.dialer.compat;
import android.content.Context;
-import android.os.Build;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.LocaleList;
import java.util.Locale;
+/** TODO(calderwoodra): documentation */
public final class CompatUtils {
/** PrioritizedMimeType is added in API level 23. */
public static boolean hasPrioritizedMimeType() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M;
+ return true;
}
/**
@@ -36,8 +36,7 @@
* @return {@code true} if multi-SIM capability is available, {@code false} otherwise.
*/
public static boolean isMSIMCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.LOLLIPOP_MR1;
+ return true;
}
/**
@@ -47,7 +46,7 @@
* @return {@code true} if video calling is allowed, {@code false} otherwise.
*/
public static boolean isVideoCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
+ return true;
}
/**
@@ -57,7 +56,7 @@
* @return {@code true} if video presence checking is allowed, {@code false} otherwise.
*/
public static boolean isVideoPresenceCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) > Build.VERSION_CODES.M;
+ return true;
}
/**
@@ -67,7 +66,7 @@
* @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
*/
public static boolean isCallSubjectCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
+ return true;
}
/** Returns locale of the device. */
diff --git a/java/com/android/dialer/compat/SdkVersionOverride.java b/java/com/android/dialer/compat/SdkVersionOverride.java
deleted file mode 100644
index 1d253a3..0000000
--- a/java/com/android/dialer/compat/SdkVersionOverride.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2015 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.compat;
-
-import android.os.Build.VERSION;
-
-/**
- * Class used to override the current sdk version to test specific branches of compatibility logic.
- * When such branching occurs, use {@link #getSdkVersion(int)} rather than explicitly calling {@link
- * VERSION#SDK_INT}. This allows the sdk version to be forced to a specific value.
- */
-public class SdkVersionOverride {
-
- /** Flag used to determine if override sdk versions are returned. */
- private static final boolean ALLOW_OVERRIDE_VERSION = false;
-
- private SdkVersionOverride() {}
-
- /**
- * Gets the sdk version
- *
- * @param overrideVersion the version to attempt using
- * @return overrideVersion if the {@link #ALLOW_OVERRIDE_VERSION} flag is set to {@code true},
- * otherwise the current version
- */
- public static int getSdkVersion(int overrideVersion) {
- return ALLOW_OVERRIDE_VERSION ? overrideVersion : VERSION.SDK_INT;
- }
-}
diff --git a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
index c4ed6e6..655540b 100644
--- a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
+++ b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
@@ -25,7 +25,6 @@
import android.support.v4.os.BuildCompat;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
-import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.telecom.TelecomUtil;
import java.lang.reflect.InvocationTargetException;
@@ -133,9 +132,6 @@
@Nullable
public static Uri getVoicemailRingtoneUri(
TelephonyManager telephonyManager, PhoneAccountHandle accountHandle) {
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return null;
- }
return telephonyManager.getVoicemailRingtoneUri(accountHandle);
}
@@ -149,8 +145,7 @@
*/
public static boolean isVoicemailVibrationEnabled(
TelephonyManager telephonyManager, PhoneAccountHandle accountHandle) {
- return VERSION.SDK_INT < VERSION_CODES.N
- || telephonyManager.isVoicemailVibrationEnabled(accountHandle);
+ return telephonyManager.isVoicemailVibrationEnabled(accountHandle);
}
/**
@@ -159,9 +154,6 @@
*/
public static void setVisualVoicemailEnabled(
TelephonyManager telephonyManager, PhoneAccountHandle handle, boolean enabled) {
- if (VERSION.SDK_INT < VERSION_CODES.N_MR1) {
- Assert.fail("setVisualVoicemailEnabled called on pre-NMR1");
- }
try {
TelephonyManager.class
.getMethod("setVisualVoicemailEnabled", PhoneAccountHandle.class, boolean.class)
@@ -177,9 +169,6 @@
*/
public static boolean isVisualVoicemailEnabled(
TelephonyManager telephonyManager, PhoneAccountHandle handle) {
- if (VERSION.SDK_INT < VERSION_CODES.N_MR1) {
- Assert.fail("isVisualVoicemailEnabled called on pre-NMR1");
- }
try {
return (boolean)
TelephonyManager.class
diff --git a/java/com/android/dialer/database/CallLogQueryHandler.java b/java/com/android/dialer/database/CallLogQueryHandler.java
index 92c49a0..e974cc4 100644
--- a/java/com/android/dialer/database/CallLogQueryHandler.java
+++ b/java/com/android/dialer/database/CallLogQueryHandler.java
@@ -26,7 +26,6 @@
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteFullException;
import android.net.Uri;
-import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -36,7 +35,6 @@
import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.AppCompatConstants;
-import com.android.dialer.compat.SdkVersionOverride;
import com.android.dialer.phonenumbercache.CallLogQuery;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.PermissionsUtil;
@@ -157,9 +155,7 @@
selectionArgs.add(Integer.toString(AppCompatConstants.CALLS_BLOCKED_TYPE));
// Ignore voicemails marked as deleted
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- where.append(" AND (").append(Voicemails.DELETED).append(" = 0)");
- }
+ where.append(" AND (").append(Voicemails.DELETED).append(" = 0)");
if (newOnly) {
where.append(" AND (").append(Calls.NEW).append(" = 1)");
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 48a5985..ee865bc 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -41,7 +41,7 @@
* Cequint Caller ID. It also caches any information fetched in static map, which lives through
* whole application lifecycle.
*/
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class CequintCallerIdManager {
private static final String CONFIG_CALLER_ID_ENABLED = "config_caller_id_enabled";
diff --git a/java/com/android/dialer/phonelookup/blockednumber/SystemBlockedNumberPhoneLookup.java b/java/com/android/dialer/phonelookup/blockednumber/SystemBlockedNumberPhoneLookup.java
index a3d51a7..fe6642e 100644
--- a/java/com/android/dialer/phonelookup/blockednumber/SystemBlockedNumberPhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/blockednumber/SystemBlockedNumberPhoneLookup.java
@@ -16,11 +16,8 @@
package com.android.dialer.phonelookup.blockednumber;
-import android.annotation.TargetApi;
import android.content.Context;
import android.database.Cursor;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.provider.BlockedNumberContract.BlockedNumbers;
import android.support.annotation.NonNull;
import android.support.annotation.WorkerThread;
@@ -72,10 +69,7 @@
if (!FilteredNumberCompat.useNewFiltering(appContext)) {
return Futures.immediateFuture(SystemBlockedNumberInfo.getDefaultInstance());
}
- return executorService.submit(
- () -> {
- return queryNumbers(ImmutableSet.of(number)).get(number);
- });
+ return executorService.submit(() -> queryNumbers(ImmutableSet.of(number)).get(number));
}
@Override
@@ -96,7 +90,6 @@
}
@WorkerThread
- @TargetApi(VERSION_CODES.N)
private ImmutableMap<DialerPhoneNumber, SystemBlockedNumberInfo> queryNumbers(
ImmutableSet<DialerPhoneNumber> numbers) {
Assert.isWorkerThread();
@@ -171,9 +164,6 @@
@Override
public void registerContentObservers() {
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return;
- }
appContext
.getContentResolver()
.registerContentObserver(
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index 01f9669..d6e378c 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -14,14 +14,11 @@
package com.android.dialer.phonenumbercache;
-import android.annotation.TargetApi;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteFullException;
import android.net.Uri;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -53,8 +50,6 @@
import org.json.JSONObject;
/** Utility class to look up the contact information for a given number. */
-// This class uses Java 7 language features, so it must target M+
-@TargetApi(VERSION_CODES.M)
public class ContactInfoHelper {
private static final String TAG = ContactInfoHelper.class.getSimpleName();
@@ -153,15 +148,6 @@
// Get URI for the number in the PhoneLookup table, with a parameter to indicate whether
// the number is a SIP number.
Uri uri = PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI;
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- if (directoryId != -1) {
- // ENTERPRISE_CONTENT_FILTER_URI in M doesn't support directory lookup
- uri = PhoneLookup.CONTENT_FILTER_URI;
- } else {
- // a bug in M. PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, encodes twice.
- number = Uri.encode(number);
- }
- }
Uri.Builder builder =
uri.buildUpon()
.appendPath(number)
@@ -187,8 +173,7 @@
info.type = c.getInt(CallLogQuery.CACHED_NUMBER_TYPE);
info.label = c.getString(CallLogQuery.CACHED_NUMBER_LABEL);
String matchedNumber = c.getString(CallLogQuery.CACHED_MATCHED_NUMBER);
- String postDialDigits =
- (VERSION.SDK_INT >= VERSION_CODES.N) ? c.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+ String postDialDigits = c.getString(CallLogQuery.POST_DIAL_DIGITS);
info.number =
(matchedNumber == null) ? c.getString(CallLogQuery.NUMBER) + postDialDigits : matchedNumber;
@@ -294,10 +279,7 @@
private List<Long> getRemoteDirectories(Context context) {
List<Long> remoteDirectories = new ArrayList<>();
- Uri uri =
- VERSION.SDK_INT >= VERSION_CODES.N
- ? Directory.ENTERPRISE_CONTENT_URI
- : Directory.CONTENT_URI;
+ Uri uri = Directory.ENTERPRISE_CONTENT_URI;
Cursor cursor =
context.getContentResolver().query(uri, new String[] {Directory._ID}, null, null, null);
if (cursor == null) {
diff --git a/java/com/android/dialer/preferredsim/PreferredAccountWorker.java b/java/com/android/dialer/preferredsim/PreferredAccountWorker.java
index bfaaa7c..aa61788 100644
--- a/java/com/android/dialer/preferredsim/PreferredAccountWorker.java
+++ b/java/com/android/dialer/preferredsim/PreferredAccountWorker.java
@@ -24,8 +24,6 @@
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.PhoneLookup;
@@ -130,9 +128,6 @@
private static Optional<String> getDataId(
@NonNull Context context, @Nullable String phoneNumber) {
Assert.isWorkerThread();
- if (VERSION.SDK_INT < VERSION_CODES.N) {
- return Optional.absent();
- }
try (Cursor cursor =
context
.getContentResolver()
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index 1170058..36f61fe 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -17,7 +17,7 @@
package="com.android.dialer.shortcuts">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<application android:theme="@style/Theme.AppCompat">
diff --git a/java/com/android/dialer/spannable/AndroidManifest.xml b/java/com/android/dialer/spannable/AndroidManifest.xml
index e256dc1..5fa6407 100644
--- a/java/com/android/dialer/spannable/AndroidManifest.xml
+++ b/java/com/android/dialer/spannable/AndroidManifest.xml
@@ -17,6 +17,6 @@
package="com.android.dialer.spannable">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
</manifest>
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailStatusWorker.java b/java/com/android/dialer/voicemail/listui/error/VoicemailStatusWorker.java
index df58d41..e87dee3 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailStatusWorker.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailStatusWorker.java
@@ -32,7 +32,7 @@
/**
* Worker for {@link com.android.dialer.common.concurrent.DialerExecutors} to fetch voicemail status
*/
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class VoicemailStatusWorker implements Worker<Context, List<VoicemailStatus>> {
@Nullable
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 2417797..9a762fe 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -18,7 +18,7 @@
package="com.android.incallui">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
diff --git a/java/com/android/incallui/CallerInfoAsyncQuery.java b/java/com/android/incallui/CallerInfoAsyncQuery.java
index 87dcc4f..4170cc3 100644
--- a/java/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/java/com/android/incallui/CallerInfoAsyncQuery.java
@@ -53,7 +53,7 @@
*
* @see CallerInfo
*/
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class CallerInfoAsyncQuery {
/** Interface for a CallerInfoAsyncQueryHandler result return. */
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 31b1711..aef5687 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -29,7 +29,7 @@
import com.android.incallui.answer.impl.hint.PawSecretCodeListener.PawType;
/** Decrypt the event payload to be shown if in a specific time range and the key is received. */
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public final class PawImageLoaderImpl implements PawImageLoader {
@Override
diff --git a/java/com/android/incallui/autoresizetext/AndroidManifest.xml b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
index e26670e..1ba8b7c 100644
--- a/java/com/android/incallui/autoresizetext/AndroidManifest.xml
+++ b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
@@ -18,7 +18,7 @@
package="com.android.incallui.autoresizetext">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<application />
diff --git a/java/com/android/incallui/legacyblocking/DeleteBlockedCallTask.java b/java/com/android/incallui/legacyblocking/DeleteBlockedCallTask.java
index a3f2dfa..f9fe6a6 100644
--- a/java/com/android/incallui/legacyblocking/DeleteBlockedCallTask.java
+++ b/java/com/android/incallui/legacyblocking/DeleteBlockedCallTask.java
@@ -34,7 +34,7 @@
* versions of the OS, call blocking is implemented in the system and there's no need to mess with
* the call log.
*/
-@TargetApi(VERSION_CODES.M)
+@TargetApi(VERSION_CODES.N)
public class DeleteBlockedCallTask extends AsyncTask<Void, Void, Long> {
public static final String IDENTIFIER = "DeleteBlockedCallTask";
diff --git a/java/com/android/incallui/rtt/protocol/AndroidManifest.xml b/java/com/android/incallui/rtt/protocol/AndroidManifest.xml
index 52514a5..c0d39b0 100644
--- a/java/com/android/incallui/rtt/protocol/AndroidManifest.xml
+++ b/java/com/android/incallui/rtt/protocol/AndroidManifest.xml
@@ -17,6 +17,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.incallui.rtt.protocol">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="26"/>
</manifest>
\ No newline at end of file
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index 22b3833..9ef65d8 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -87,7 +87,7 @@
}
/** Checks if the number is in the call history. */
- @TargetApi(VERSION_CODES.M)
+ @TargetApi(VERSION_CODES.N)
private static final class NumberInCallHistoryWorker implements Worker<Void, Integer> {
private final Context appContext;
diff --git a/java/com/android/incallui/video/protocol/AndroidManifest.xml b/java/com/android/incallui/video/protocol/AndroidManifest.xml
index 6f65582..f059b19 100644
--- a/java/com/android/incallui/video/protocol/AndroidManifest.xml
+++ b/java/com/android/incallui/video/protocol/AndroidManifest.xml
@@ -17,6 +17,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.incallui.video.protocol">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
</manifest>
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index a2fb73b..d9660e1 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -17,7 +17,6 @@
package com.android.incallui.videotech.ims;
import android.content.Context;
-import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
@@ -61,10 +60,6 @@
@Override
public boolean isAvailable(Context context, PhoneAccountHandle phoneAccountHandle) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
- return false;
- }
-
if (call.getVideoCall() == null) {
return false;
}
diff --git a/java/com/android/voicemail/AndroidManifest.xml b/java/com/android/voicemail/AndroidManifest.xml
index d64fb25..23c746a 100644
--- a/java/com/android/voicemail/AndroidManifest.xml
+++ b/java/com/android/voicemail/AndroidManifest.xml
@@ -17,7 +17,7 @@
package="com.android.voicemail">
<uses-sdk
- android:minSdkVersion="23"
+ android:minSdkVersion="24"
android:targetSdkVersion="27"/>
<!-- Applications using this module should merge these permissions using android_manifest_merge -->
diff --git a/java/com/android/voicemail/impl/PackageReplacedReceiver.java b/java/com/android/voicemail/impl/PackageReplacedReceiver.java
index bc56286..9fa9f75 100644
--- a/java/com/android/voicemail/impl/PackageReplacedReceiver.java
+++ b/java/com/android/voicemail/impl/PackageReplacedReceiver.java
@@ -91,7 +91,7 @@
this.context = context;
}
- @TargetApi(android.os.Build.VERSION_CODES.M) // used for try with resources
+ @TargetApi(android.os.Build.VERSION_CODES.N) // used for try with resources
@Override
public Void doInBackground(Void arg) throws Throwable {
LogUtil.i("PackageReplacedReceiver.ExistingVoicemailCheck.doInBackground", "");
diff --git a/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java b/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
index c47b40d..be11c44 100644
--- a/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
+++ b/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
@@ -256,7 +256,7 @@
}
/** Find the oldest voicemails that are on the device, and also on the server. */
- @TargetApi(VERSION_CODES.M) // used for try with resources
+ @TargetApi(VERSION_CODES.N) // used for try with resources
public List<Voicemail> oldestVoicemailsOnServer(int numVoicemails) {
if (numVoicemails <= 0) {
Assert.fail("Query for remote voicemails cannot be <= 0");
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionUtils.java b/java/com/android/voicemail/impl/transcribe/TranscriptionUtils.java
index 3bd1473..d8c00ed 100644
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionUtils.java
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionUtils.java
@@ -34,7 +34,7 @@
static final String AMR_PREFIX = "#!AMR\n";
// Uses try-with-resource
- @TargetApi(android.os.Build.VERSION_CODES.M)
+ @TargetApi(android.os.Build.VERSION_CODES.N)
static ByteString getAudioData(Context context, Uri voicemailUri) {
try (InputStream in = context.getContentResolver().openInputStream(voicemailUri)) {
return ByteString.readFrom(in);