Messaging: Remove compatibility for old android versions
Change-Id: Id9065d60525a509271a0e64c0e349e857cb998e2
This commit is contained in:
@@ -45,7 +45,6 @@ import com.android.messaging.util.Assert.DoesNotRunOnMainThread;
|
||||
import com.android.messaging.util.AvatarUriUtil;
|
||||
import com.android.messaging.util.ContentType;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
import com.android.messaging.util.UriUtil;
|
||||
import com.android.messaging.widget.WidgetConversationProvider;
|
||||
@@ -567,7 +566,7 @@ public class BugleDatabaseOperations {
|
||||
// reading and if necessary creating the conversation.
|
||||
updateConversationRow(dbWrapper, conversationId, values);
|
||||
|
||||
if (shouldAutoSwitchSelfId && OsUtil.isAtLeastL_MR1()) {
|
||||
if (shouldAutoSwitchSelfId) {
|
||||
// Normally, the draft message compose UI trusts its UI state for providing up-to-date
|
||||
// conversation self id. Therefore, notify UI through local broadcast receiver about
|
||||
// this external change so the change can be properly reflected.
|
||||
@@ -624,7 +623,7 @@ public class BugleDatabaseOperations {
|
||||
static boolean addSelfIdAutoSwitchInfoToContentValues(final DatabaseWrapper dbWrapper,
|
||||
final MessageData message, final String conversationId, final ContentValues values) {
|
||||
// Only auto switch conversation self for incoming messages.
|
||||
if (!OsUtil.isAtLeastL_MR1() || !message.getIsIncoming()) {
|
||||
if (!message.getIsIncoming()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,6 @@ import com.android.messaging.util.ImageUtils;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.NotificationPlayer;
|
||||
import com.android.messaging.util.NotificationsUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PendingIntentConstants;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
import com.android.messaging.util.ThreadUtil;
|
||||
@@ -429,7 +428,7 @@ public class BugleNotifications {
|
||||
if (state.mParticipantAvatarsUris != null) {
|
||||
final Uri avatarUri = state.mParticipantAvatarsUris.get(0);
|
||||
final AvatarRequestDescriptor descriptor = new AvatarRequestDescriptor(avatarUri,
|
||||
sIconWidth, sIconHeight, OsUtil.isAtLeastL());
|
||||
sIconWidth, sIconHeight, true);
|
||||
final MediaRequest<ImageResource> imageRequest = descriptor.buildSyncMediaRequest(
|
||||
context);
|
||||
|
||||
@@ -676,7 +675,6 @@ public class BugleNotifications {
|
||||
|
||||
MediaRequest<ImageResource> imageRequest;
|
||||
if (isVideo) {
|
||||
Assert.isTrue(VideoThumbnailRequest.shouldShowIncomingVideoThumbnails());
|
||||
final MessagePartVideoThumbnailRequestDescriptor videoDescriptor =
|
||||
new MessagePartVideoThumbnailRequestDescriptor(attachmentUri);
|
||||
imageRequest = videoDescriptor.buildSyncMediaRequest(context);
|
||||
|
||||
@@ -54,7 +54,6 @@ import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.Assert.DoesNotRunOnMainThread;
|
||||
import com.android.messaging.util.ConnectivityUtil;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@@ -66,8 +65,6 @@ public class DataModelImpl extends DataModel {
|
||||
private final DatabaseHelper mDatabaseHelper;
|
||||
private final SyncManager mSyncManager;
|
||||
|
||||
// Cached ConnectivityUtil instance for Pre-N.
|
||||
private static ConnectivityUtil sConnectivityUtilInstanceCachePreN = null;
|
||||
// Cached ConnectivityUtil subId->instance for N and beyond
|
||||
private static final ConcurrentHashMap<Integer, ConnectivityUtil>
|
||||
sConnectivityUtilInstanceCacheN = new ConcurrentHashMap<>();
|
||||
@@ -214,35 +211,27 @@ public class DataModelImpl extends DataModel {
|
||||
|
||||
@Override
|
||||
public void onApplicationCreated() {
|
||||
if (OsUtil.isAtLeastN()) {
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
} else {
|
||||
sConnectivityUtilInstanceCachePreN = new ConnectivityUtil(mContext);
|
||||
}
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
|
||||
FixupMessageStatusOnStartupAction.fixupMessageStatus();
|
||||
ProcessPendingMessagesAction.processFirstPendingMessage();
|
||||
SyncManager.immediateSync();
|
||||
|
||||
if (OsUtil.isAtLeastL_MR1()) {
|
||||
// Start listening for subscription change events for refreshing any data associated
|
||||
// with subscriptions.
|
||||
PhoneUtils.getDefault().toLMr1().registerOnSubscriptionsChangedListener(
|
||||
new SubscriptionManager.OnSubscriptionsChangedListener() {
|
||||
@Override
|
||||
public void onSubscriptionsChanged() {
|
||||
// TODO: This dynamically changes the mms config that app is
|
||||
// currently using. It may cause inconsistency in some cases. We need
|
||||
// to check the usage of mms config and handle the dynamic change
|
||||
// gracefully
|
||||
MmsConfig.loadAsync();
|
||||
ParticipantRefresh.refreshSelfParticipants();
|
||||
if (OsUtil.isAtLeastN()) {
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
// Start listening for subscription change events for refreshing any data associated
|
||||
// with subscriptions.
|
||||
PhoneUtils.getDefault().registerOnSubscriptionsChangedListener(
|
||||
new SubscriptionManager.OnSubscriptionsChangedListener() {
|
||||
@Override
|
||||
public void onSubscriptionsChanged() {
|
||||
// TODO: This dynamically changes the mms config that app is
|
||||
// currently using. It may cause inconsistency in some cases. We need
|
||||
// to check the usage of mms config and handle the dynamic change
|
||||
// gracefully
|
||||
MmsConfig.loadAsync();
|
||||
ParticipantRefresh.refreshSelfParticipants();
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void createConnectivityUtilForEachActiveSubscription() {
|
||||
@@ -262,10 +251,6 @@ public class DataModelImpl extends DataModel {
|
||||
}
|
||||
|
||||
public static ConnectivityUtil getConnectivityUtil(final int subId) {
|
||||
if (OsUtil.isAtLeastN()) {
|
||||
return sConnectivityUtilInstanceCacheN.get(subId);
|
||||
} else {
|
||||
return sConnectivityUtilInstanceCachePreN;
|
||||
}
|
||||
return sConnectivityUtilInstanceCacheN.get(subId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import android.provider.ContactsContract.Contacts;
|
||||
import com.android.messaging.util.FallbackStrategies;
|
||||
import com.android.messaging.util.FallbackStrategies.Strategy;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
|
||||
/**
|
||||
* Helper for querying frequent (and/or starred) contacts.
|
||||
@@ -90,9 +89,7 @@ public class FrequentContactsCursorQueryData extends CursorQueryData {
|
||||
// queries. Using strequent_phone_only query as a fallback to display only phone
|
||||
// contacts. This is the last-ditch effort; if this fails, we will display an
|
||||
// empty frequent list (b/18354836).
|
||||
final String strequentQueryParam = OsUtil.isAtLeastL() ?
|
||||
ContactsContract.STREQUENT_PHONE_ONLY : "strequent_phone_only";
|
||||
// TODO: Handle enterprise contacts post M once contacts provider supports it
|
||||
final String strequentQueryParam = ContactsContract.STREQUENT_PHONE_ONLY;
|
||||
return Contacts.CONTENT_STREQUENT_URI.buildUpon()
|
||||
.appendQueryParameter(strequentQueryParam, "true").build();
|
||||
}
|
||||
|
||||
@@ -519,8 +519,7 @@ public abstract class MessageNotificationState extends NotificationState {
|
||||
|
||||
if (messageCount == 1) {
|
||||
final boolean shouldShowImage = ContentType.isImageType(mAttachmentType)
|
||||
|| (ContentType.isVideoType(mAttachmentType)
|
||||
&& VideoThumbnailRequest.shouldShowIncomingVideoThumbnails());
|
||||
|| (ContentType.isVideoType(mAttachmentType));
|
||||
if (mAttachmentUri != null && shouldShowImage) {
|
||||
// Show "Picture" as the content
|
||||
final MessageLineInfo messageLineInfo = (MessageLineInfo) lineInfos.get(0);
|
||||
|
||||
@@ -36,7 +36,6 @@ import com.android.messaging.datamodel.data.ConversationMessageData;
|
||||
import com.android.messaging.datamodel.data.MessageData;
|
||||
import com.android.messaging.datamodel.data.ParticipantData;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
import com.android.messaging.widget.BugleWidgetProvider;
|
||||
import com.android.messaging.widget.WidgetConversationProvider;
|
||||
@@ -448,11 +447,7 @@ public class MessagingContentProvider extends ContentProvider {
|
||||
// First dump out the default SMS app package name
|
||||
String defaultSmsApp = PhoneUtils.getDefault().getDefaultSmsApp();
|
||||
if (TextUtils.isEmpty(defaultSmsApp)) {
|
||||
if (OsUtil.isAtLeastKLP()) {
|
||||
defaultSmsApp = "None";
|
||||
} else {
|
||||
defaultSmsApp = "None (pre-Kitkat)";
|
||||
}
|
||||
defaultSmsApp = "None";
|
||||
}
|
||||
writer.println("Default SMS app: " + defaultSmsApp);
|
||||
// Now dump logs
|
||||
|
||||
@@ -353,14 +353,10 @@ public class ParticipantRefresh {
|
||||
* that any other older SIM self participants are marked as inactive.
|
||||
*/
|
||||
private static void refreshSelfParticipantList() {
|
||||
if (!OsUtil.isAtLeastL_MR1()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final DatabaseWrapper db = DataModel.get().getDatabase();
|
||||
|
||||
final List<SubscriptionInfo> subInfoRecords =
|
||||
PhoneUtils.getDefault().toLMr1().getActiveSubscriptionInfoList();
|
||||
PhoneUtils.getDefault().getActiveSubscriptionInfoList();
|
||||
final ArrayMap<Integer, SubscriptionInfo> activeSubscriptionIdToRecordMap =
|
||||
new ArrayMap<Integer, SubscriptionInfo>();
|
||||
db.beginTransaction();
|
||||
@@ -445,13 +441,11 @@ public class ParticipantRefresh {
|
||||
changed = SELF_PHONE_NUMBER_OR_SUBSCRIPTION_CHANGED;
|
||||
}
|
||||
|
||||
if (OsUtil.isAtLeastL_MR1()) {
|
||||
// Refresh the subscription info based on information from SubscriptionManager.
|
||||
final SubscriptionInfo subscriptionInfo =
|
||||
PhoneUtils.get(participantData.getSubId()).toLMr1().getActiveSubscriptionInfo();
|
||||
if (participantData.updateSubscriptionInfoForSelfIfChanged(subscriptionInfo)) {
|
||||
changed = SELF_PHONE_NUMBER_OR_SUBSCRIPTION_CHANGED;
|
||||
}
|
||||
// Refresh the subscription info based on information from SubscriptionManager.
|
||||
final SubscriptionInfo subscriptionInfo =
|
||||
PhoneUtils.get(participantData.getSubId()).getActiveSubscriptionInfo();
|
||||
if (participantData.updateSubscriptionInfoForSelfIfChanged(subscriptionInfo)) {
|
||||
changed = SELF_PHONE_NUMBER_OR_SUBSCRIPTION_CHANGED;
|
||||
}
|
||||
|
||||
// For self participant, try getting name/avatar from self profile in CP2 first.
|
||||
|
||||
@@ -36,7 +36,6 @@ import com.android.messaging.datamodel.data.ParticipantData;
|
||||
import com.android.messaging.sms.MmsUtils;
|
||||
import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -225,8 +224,7 @@ public class InsertNewMessageAction extends Action implements Parcelable {
|
||||
// to bind the message to the system default subscription if it's unbound.
|
||||
final ParticipantData unboundSelf = BugleDatabaseOperations.getExistingParticipant(
|
||||
db, selfId);
|
||||
if (unboundSelf.getSubId() == ParticipantData.DEFAULT_SELF_SUB_ID
|
||||
&& OsUtil.isAtLeastL_MR1()) {
|
||||
if (unboundSelf.getSubId() == ParticipantData.DEFAULT_SELF_SUB_ID) {
|
||||
final int defaultSubId = PhoneUtils.getDefault().getDefaultSmsSubscriptionId();
|
||||
self = BugleDatabaseOperations.getOrCreateSelf(db, defaultSubId);
|
||||
} else {
|
||||
|
||||
@@ -39,7 +39,6 @@ import com.android.messaging.util.BuglePrefsKeys;
|
||||
import com.android.messaging.util.ConnectivityUtil;
|
||||
import com.android.messaging.util.ConnectivityUtil.ConnectivityListener;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
|
||||
import java.util.HashSet;
|
||||
@@ -356,12 +355,10 @@ public class ProcessPendingMessagesAction extends Action implements Parcelable {
|
||||
|
||||
// Prior to L_MR1, isActiveSubscription is true always
|
||||
boolean isActiveSubscription = true;
|
||||
if (OsUtil.isAtLeastL_MR1()) {
|
||||
final ParticipantData messageSelf =
|
||||
BugleDatabaseOperations.getExistingParticipant(db, selfId);
|
||||
if (messageSelf == null || !messageSelf.isActiveSubscription()) {
|
||||
isActiveSubscription = false;
|
||||
}
|
||||
final ParticipantData messageSelf =
|
||||
BugleDatabaseOperations.getExistingParticipant(db, selfId);
|
||||
if (messageSelf == null || !messageSelf.isActiveSubscription()) {
|
||||
isActiveSubscription = false;
|
||||
}
|
||||
while (cursor.moveToNext()) {
|
||||
final MessageData message = new MessageData();
|
||||
|
||||
@@ -51,7 +51,6 @@ import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.Assert.RunsOnMainThread;
|
||||
import com.android.messaging.util.ContactUtil;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
import com.android.messaging.util.SafeAsyncTask;
|
||||
import com.android.messaging.widget.WidgetConversationProvider;
|
||||
@@ -595,7 +594,7 @@ public class ConversationData extends BindableData {
|
||||
Assert.isTrue(TextUtils.equals(mConversationId, message.getConversationId()));
|
||||
Assert.isTrue(binding.getData() == this);
|
||||
|
||||
if (!OsUtil.isAtLeastL_MR1() || message.getSelfId() == null) {
|
||||
if (message.getSelfId() == null) {
|
||||
InsertNewMessageAction.insertNewMessage(message);
|
||||
} else {
|
||||
final int systemDefaultSubId = PhoneUtils.getDefault().getDefaultSmsSubscriptionId();
|
||||
@@ -767,8 +766,7 @@ public class ConversationData extends BindableData {
|
||||
// 1. Framework has MSIM support AND
|
||||
// 2. The device has had multiple *active* subscriptions. AND
|
||||
// 3. The message's subscription is active.
|
||||
if (OsUtil.isAtLeastL_MR1() &&
|
||||
selfParticipantsData.getSelfParticipantsCountExcludingDefault(true) > 1) {
|
||||
if (selfParticipantsData.getSelfParticipantsCountExcludingDefault(true) > 1) {
|
||||
return subscriptionListData.getActiveSubscriptionEntryBySelfId(selfParticipantId,
|
||||
excludeDefault);
|
||||
}
|
||||
|
||||
@@ -24,8 +24,6 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import com.android.messaging.util.OsUtil;
|
||||
|
||||
/**
|
||||
* A class that contains the list of all self participants potentially involved in a conversation.
|
||||
* This class contains both active/inactive self entries when there is multi-SIM support.
|
||||
@@ -86,9 +84,6 @@ public class SelfParticipantsData {
|
||||
* Returns if a given self id represents the default self.
|
||||
*/
|
||||
boolean isDefaultSelf(final String selfId) {
|
||||
if (!OsUtil.isAtLeastL_MR1()) {
|
||||
return true;
|
||||
}
|
||||
final ParticipantData self = getSelfParticipantById(selfId);
|
||||
return self == null ? false : self.getSubId() == ParticipantData.DEFAULT_SELF_SUB_ID;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import com.android.messaging.datamodel.binding.BindableData;
|
||||
import com.android.messaging.datamodel.binding.BindingBase;
|
||||
import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -200,7 +199,7 @@ public class SettingsData extends BindableData implements
|
||||
// platorm is at least L-MR1 and there are multiple active SIMs.
|
||||
final int activeSubCountExcludingDefault =
|
||||
mSelfParticipantsData.getSelfParticipantsCountExcludingDefault(true);
|
||||
if (OsUtil.isAtLeastL_MR1() && activeSubCountExcludingDefault > 0) {
|
||||
if (activeSubCountExcludingDefault > 0) {
|
||||
for (ParticipantData self : selfs) {
|
||||
if (!self.isDefaultSelf()) {
|
||||
if (activeSubCountExcludingDefault > 1) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
* Copyright (C) 2024 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -24,7 +25,6 @@ import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.Assert.DoesNotRunOnMainThread;
|
||||
import com.android.messaging.util.ImageUtils;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.OsUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -109,11 +109,7 @@ public class DecodedImageResource extends ImageResource {
|
||||
acquireLock();
|
||||
try {
|
||||
Assert.notNull(mBitmap);
|
||||
if (OsUtil.isAtLeastKLP()) {
|
||||
return mBitmap.getAllocationByteCount();
|
||||
} else {
|
||||
return mBitmap.getRowBytes() * mBitmap.getHeight();
|
||||
}
|
||||
return mBitmap.getAllocationByteCount();
|
||||
} finally {
|
||||
releaseLock();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
* Copyright (C) 2024 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +21,6 @@ import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
import com.android.messaging.util.MediaMetadataRetrieverWrapper;
|
||||
import com.android.messaging.util.MediaUtil;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
@@ -28,7 +28,6 @@ import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Class to request a video thumbnail.
|
||||
* Users of this class as responsible for checking {@link #shouldShowIncomingVideoThumbnails}
|
||||
*/
|
||||
public class VideoThumbnailRequest extends ImageRequest<UriImageRequestDescriptor> {
|
||||
|
||||
@@ -37,10 +36,6 @@ public class VideoThumbnailRequest extends ImageRequest<UriImageRequestDescripto
|
||||
super(context, descriptor);
|
||||
}
|
||||
|
||||
public static boolean shouldShowIncomingVideoThumbnails() {
|
||||
return MediaUtil.canAutoAccessIncomingMedia();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InputStream getInputStreamForResource() throws FileNotFoundException {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user