From 970505e64e00503e20ad119c124f7560d583559c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 2 Aug 2016 16:47:58 +0200 Subject: [PATCH] Fixed some deprecated symbols with API 24 + a bit of cleanup in Compatibility.java + removed deprecated Contact and ChatMessage classes --- src/org/linphone/ChatFragment.java | 24 +-- src/org/linphone/ChatMessage.java | 117 ----------- src/org/linphone/Contact.java | 139 ------------- src/org/linphone/LinphoneManager.java | 28 ++- src/org/linphone/OpenGLESDisplay.java | 6 - .../assistant/LinphoneLoginFragment.java | 4 +- .../linphone/compatibility/ApiEightPlus.java | 33 --- .../compatibility/ApiSixteenPlus.java | 1 + .../compatibility/ApiTwentyOnePlus.java | 1 + .../linphone/compatibility/Compatibility.java | 193 ++---------------- src/org/linphone/ui/BubbleChat.java | 4 +- 11 files changed, 58 insertions(+), 492 deletions(-) delete mode 100644 src/org/linphone/ChatMessage.java delete mode 100644 src/org/linphone/Contact.java delete mode 100644 src/org/linphone/OpenGLESDisplay.java diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java index 4f8c4323e..24604d69e 100644 --- a/src/org/linphone/ChatFragment.java +++ b/src/org/linphone/ChatFragment.java @@ -387,7 +387,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC if(isEditMode) { deleteChatBubble.setVisibility(View.VISIBLE); - if(message.isOutgoing()){ + if (message.isOutgoing()) { RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); layoutParams.setMargins(100, 10, 10, 10); @@ -419,7 +419,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } }); - if(messagesList.isItemChecked(position)) { + if (messagesList.isItemChecked(position)) { deleteChatBubble.setChecked(true); } else { deleteChatBubble.setChecked(false); @@ -427,7 +427,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC rlayout.addView(v); } else { - if(message.isOutgoing()){ + if (message.isOutgoing()) { RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); layoutParams.setMargins(100, 10, 10, 10); @@ -448,7 +448,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); LinphoneAddress lAddress = null; - if(sipUri == null){ + if (sipUri == null) { initNewChatConversation(); } else { try { @@ -477,7 +477,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } private void displayMessageList() { - if(chatRoom != null) { + if (chatRoom != null) { if (adapter != null) { adapter.refreshHistory(); } else { @@ -488,7 +488,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } private void displayChatHeader(LinphoneAddress address) { - if(contact != null) { + if (contact != null) { contactName.setText(contact.getFullName()); } else if(address != null){ contactName.setText(LinphoneUtils.getAddressDisplayName(address)); @@ -618,7 +618,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC String draft = getArguments().getString("messageDraft"); message.setText(draft); - if(!newChatConversation) { + if (!newChatConversation) { initChatRoom(sipUri); searchContactField.setVisibility(View.GONE); resultContactsSearch.setVisibility(View.GONE); @@ -626,10 +626,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } } - private void selectAllList(boolean isSelectAll){ + private void selectAllList(boolean isSelectAll) { int size = messagesList.getAdapter().getCount(); - for(int i=0; i GCMRegistrar = Class.forName("com.google.android.gcm.GCMRegistrar"); + GCMRegistrar.getMethod("checkDevice", Context.class).invoke(null, mServiceContext); + try { + GCMRegistrar.getMethod("checkManifest", Context.class).invoke(null, mServiceContext); + } catch (IllegalStateException e) { + Log.e("[Push Notification] No receiver found", e); + } + final String regId = (String)GCMRegistrar.getMethod("getRegistrationId", Context.class).invoke(null, mServiceContext); + String newPushSenderID = mServiceContext.getString(R.string.push_sender_id); + String currentPushSenderID = LinphonePreferences.instance().getPushNotificationRegistrationID(); + if (regId.equals("") || currentPushSenderID == null || !currentPushSenderID.equals(newPushSenderID)) { + GCMRegistrar.getMethod("register", Context.class, String[].class).invoke(null, mServiceContext, new String[]{newPushSenderID}); + Log.i("[Push Notification] Storing current sender id = " + newPushSenderID); + } else { + Log.i("[Push Notification] Already registered with id = " + regId); + LinphonePreferences.instance().setPushNotificationRegistrationID(regId); + } + } catch (java.lang.UnsupportedOperationException e) { + Log.i("[Push Notification] Not activated"); + } catch (Exception e1) { + Log.i("[Push Notification] Assuming GCM jar is not provided."); + } + } private synchronized void initLiblinphone(LinphoneCore lc) throws LinphoneCoreException { mLc = lc; @@ -742,7 +768,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag mLc.migrateCallLogs(); if (mServiceContext.getResources().getBoolean(R.bool.enable_push_id)) { - Compatibility.initPushNotificationService(mServiceContext); + initPushNotificationsService(); } /* diff --git a/src/org/linphone/OpenGLESDisplay.java b/src/org/linphone/OpenGLESDisplay.java deleted file mode 100644 index 358667874..000000000 --- a/src/org/linphone/OpenGLESDisplay.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.linphone; - -public class OpenGLESDisplay { - public static native void init(int ptr, int width, int height); - public static native void render(int ptr); -} diff --git a/src/org/linphone/assistant/LinphoneLoginFragment.java b/src/org/linphone/assistant/LinphoneLoginFragment.java index e606e00c5..e889336b1 100644 --- a/src/org/linphone/assistant/LinphoneLoginFragment.java +++ b/src/org/linphone/assistant/LinphoneLoginFragment.java @@ -18,11 +18,11 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import org.linphone.R; +import org.linphone.compatibility.Compatibility; import android.app.Fragment; import android.os.Bundle; import android.text.Editable; -import android.text.Html; import android.text.TextWatcher; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; @@ -53,7 +53,7 @@ public class LinphoneLoginFragment extends Fragment implements OnClickListener, password = (EditText) view.findViewById(R.id.assistant_password); password.addTextChangedListener(this); forgotPassword = (TextView) view.findViewById(R.id.forgot_password); - forgotPassword.setText(Html.fromHtml(""+ getString(R.string.forgot_password) + "")); + forgotPassword.setText(Compatibility.fromHtml(""+ getString(R.string.forgot_password) + "")); forgotPassword.setMovementMethod(LinkMovementMethod.getInstance()); displayName = (EditText) view.findViewById(R.id.assistant_display_name); apply = (Button) view.findViewById(R.id.assistant_apply); diff --git a/src/org/linphone/compatibility/ApiEightPlus.java b/src/org/linphone/compatibility/ApiEightPlus.java index 30f5a78fb..295e3bf9c 100644 --- a/src/org/linphone/compatibility/ApiEightPlus.java +++ b/src/org/linphone/compatibility/ApiEightPlus.java @@ -1,11 +1,6 @@ package org.linphone.compatibility; -import org.linphone.LinphonePreferences; -import org.linphone.R; -import org.linphone.mediastream.Log; - import android.annotation.TargetApi; -import android.content.Context; import android.media.AudioManager; /* @@ -33,34 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @TargetApi(8) public class ApiEightPlus { - public static void initPushNotificationService(Context context) { - try { - Class GCMRegistrar = Class.forName("com.google.android.gcm.GCMRegistrar"); - // Starting the push notification service - GCMRegistrar.getMethod("checkDevice", Context.class).invoke(null, context); - try { - GCMRegistrar.getMethod("checkManifest", Context.class).invoke(null, context); - } catch (IllegalStateException e){ - Log.e("Push notification: No receiver found",e); - } - final String regId = (String)GCMRegistrar.getMethod("getRegistrationId", Context.class).invoke(null, context); - String newPushSenderID = context.getString(R.string.push_sender_id); - String currentPushSenderID = LinphonePreferences.instance().getPushNotificationRegistrationID(); - if (regId.equals("") || currentPushSenderID == null || !currentPushSenderID.equals(newPushSenderID)) { - GCMRegistrar.getMethod("register", Context.class, String[].class).invoke(null, context, new String[]{newPushSenderID}); - Log.d("Push Notification: storing current sender id = " + newPushSenderID); - } else { - Log.d("Push Notification: already registered with id = " + regId); - LinphonePreferences.instance().setPushNotificationRegistrationID(regId); - } - } catch (java.lang.UnsupportedOperationException e) { - Log.i("Push Notification: not activated"); - } catch (Exception e1) { - //assume the jar is not provided - Log.i("Push Notification: assuming GCM jar is not provided."); - } - } - @SuppressWarnings("deprecation") public static String getAudioManagerEventForBluetoothConnectionStateChangedEvent() { return AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED; diff --git a/src/org/linphone/compatibility/ApiSixteenPlus.java b/src/org/linphone/compatibility/ApiSixteenPlus.java index 148756063..f7fff7d2f 100644 --- a/src/org/linphone/compatibility/ApiSixteenPlus.java +++ b/src/org/linphone/compatibility/ApiSixteenPlus.java @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @TargetApi(16) public class ApiSixteenPlus { + @SuppressWarnings("deprecation") public static Notification createMessageNotification(Context context, int msgCount, String msgSender, String msg, Bitmap contactIcon, PendingIntent intent) { diff --git a/src/org/linphone/compatibility/ApiTwentyOnePlus.java b/src/org/linphone/compatibility/ApiTwentyOnePlus.java index b75b72ef2..66d0a37b6 100644 --- a/src/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/src/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @TargetApi(21) public class ApiTwentyOnePlus { + @SuppressWarnings("deprecation") public static Notification createMessageNotification(Context context, int msgCount, String msgSender, String msg, Bitmap contactIcon, PendingIntent intent) { diff --git a/src/org/linphone/compatibility/Compatibility.java b/src/org/linphone/compatibility/Compatibility.java index 10846675d..556498c6d 100644 --- a/src/org/linphone/compatibility/Compatibility.java +++ b/src/org/linphone/compatibility/Compatibility.java @@ -17,79 +17,28 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import java.io.InputStream; -import java.util.ArrayList; import java.util.List; -import org.linphone.LinphoneContact; -import org.linphone.core.LinphoneAddress; import org.linphone.mediastream.Version; import android.app.Activity; import android.app.Notification; import android.app.PendingIntent; -import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.Context; -import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.media.AudioManager; -import android.net.Uri; import android.os.PowerManager; -import android.preference.Preference; import android.provider.Settings; +import android.text.Html; +import android.text.Spanned; import android.view.ViewTreeObserver; import android.view.ViewTreeObserver.OnGlobalLayoutListener; /** * @author Sylvain Berfini */ public class Compatibility { - public static void overridePendingTransition(Activity activity, int idAnimIn, int idAnimOut) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - ApiFivePlus.overridePendingTransition(activity, idAnimIn, idAnimOut); - } - } - - public static Intent prepareAddContactIntent(String displayName, String sipUri) { - if (Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) { - return ApiElevenPlus.prepareAddContactIntent(displayName, sipUri); - } else { - return ApiFivePlus.prepareAddContactIntent(displayName, sipUri); - } - } - - public static Intent prepareEditContactIntent(int id) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - return ApiFivePlus.prepareEditContactIntent(id); - } - return null; - } - - public static Intent prepareEditContactIntentWithSipAddress(int id, String sipAddress) { - if (Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) { - return ApiElevenPlus.prepareEditContactIntentWithSipAddress(id, sipAddress); - } else { - return ApiFivePlus.prepareEditContactIntent(id); - } - } - - public static List extractContactNumbersAndAddresses(String id, ContentResolver cr) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiNinePlus.extractContactNumbersAndAddresses(id, cr); - } else { - return ApiFivePlus.extractContactNumbersAndAddresses(id, cr); - } - } - - public static List extractContactImAddresses(String id, ContentResolver cr) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiFivePlus.extractContactNumbersAndAddresses(id, cr); - } else { - return null; - } - } - public static Cursor getContactsCursor(ContentResolver cr, List contactsId) { if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { return ApiNinePlus.getContactsCursor(cr, null, contactsId); @@ -98,63 +47,6 @@ public class Compatibility { } } - public static Cursor getContactsCursor(ContentResolver cr, String search, List contactsId) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiNinePlus.getContactsCursor(cr, search, contactsId); - } else { - return ApiFivePlus.getContactsCursor(cr, contactsId); - } - } - - public static Cursor getSIPContactsCursor(ContentResolver cr, List contactsId) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiNinePlus.getSIPContactsCursor(cr, null, contactsId); - } else { - return ApiFivePlus.getSIPContactsCursor(cr, contactsId); - } - } - - public static Cursor getSIPContactsCursor(ContentResolver cr, String search, List contactsId) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiNinePlus.getSIPContactsCursor(cr, search, contactsId); - } else { - return ApiFivePlus.getSIPContactsCursor(cr, contactsId); - } - } - - public static Cursor getImContactsCursor(ContentResolver cr) { - return ApiFivePlus.getSIPContactsCursor(cr,null); - } - - public static int getCursorDisplayNameColumnIndex(Cursor cursor) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - return ApiFivePlus.getCursorDisplayNameColumnIndex(cursor); - } - return -1; - } - - public static LinphoneContact getContact(ContentResolver cr, Cursor cursor, int position) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - return ApiFivePlus.getContact(cr, cursor, position); - } - return null; - } - - public static InputStream getContactPictureInputStream(ContentResolver cr, String id) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - return ApiFivePlus.getContactPictureInputStream(cr, id); - } - return null; - } - - public static Uri findUriPictureOfContactAndSetDisplayName(LinphoneAddress address, ContentResolver cr) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - return ApiNinePlus.findUriPictureOfContactAndSetDisplayName(address, cr); - } else { - return ApiFivePlus.findUriPictureOfContactAndSetDisplayName(address, cr); - } - } - public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { Notification notif = null; @@ -218,13 +110,6 @@ public class Compatibility { } } - public static String refreshContactName(ContentResolver cr, String id) { - if (Version.sdkAboveOrEqual(Version.API05_ECLAIR_20)) { - return ApiFivePlus.refreshContactName(cr, id); - } - return null; - } - public static CompatibilityScaleGestureDetector getScaleGestureDetector(Context context, CompatibilityScaleGestureListener listener) { if (Version.sdkAboveOrEqual(Version.API08_FROYO_22)) { CompatibilityScaleGestureDetector csgd = new CompatibilityScaleGestureDetector(context); @@ -233,29 +118,6 @@ public class Compatibility { } return null; } - - - public static void setPreferenceChecked(Preference preference, boolean checked) { - if (Version.sdkAboveOrEqual(Version.API14_ICE_CREAM_SANDWICH_40)) { - ApiFourteenPlus.setPreferenceChecked(preference, checked); - } else { - ApiFivePlus.setPreferenceChecked(preference, checked); - } - } - - public static boolean isPreferenceChecked(Preference preference) { - if (Version.sdkAboveOrEqual(Version.API14_ICE_CREAM_SANDWICH_40)) { - return ApiFourteenPlus.isPreferenceChecked(preference); - } else { - return ApiFivePlus.isPreferenceChecked(preference); - } - } - - public static void initPushNotificationService(Context context) { - if (Version.sdkAboveOrEqual(Version.API08_FROYO_22)) { - ApiEightPlus.initPushNotificationService(context); - } - } public static void copyTextToClipboard(Context context, String msg) { if(Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) { @@ -264,42 +126,6 @@ public class Compatibility { ApiFivePlus.copyTextToClipboard(context, msg); } } - - public static void addSipAddressToContact(Context context, ArrayList ops, String sipAddress) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - ApiNinePlus.addSipAddressToContact(context, ops, sipAddress); - } else { - ApiFivePlus.addSipAddressToContact(context, ops, sipAddress); - } - } - - public static void addSipAddressToContact(Context context, ArrayList ops, String sipAddress, String rawContactID) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - ApiNinePlus.addSipAddressToContact(context, ops, sipAddress, rawContactID); - } else { - ApiFivePlus.addSipAddressToContact(context, ops, sipAddress, rawContactID); - } - } - - public static void updateSipAddressForContact(ArrayList ops, String oldSipAddress, String newSipAddress, String contactID) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - ApiNinePlus.updateSipAddressForContact(ops, oldSipAddress, newSipAddress, contactID); - } else { - ApiFivePlus.updateSipAddressForContact(ops, oldSipAddress, newSipAddress, contactID); - } - } - - public static void deleteSipAddressFromContact(ArrayList ops, String oldSipAddress, String contactID) { - if (Version.sdkAboveOrEqual(Version.API09_GINGERBREAD_23)) { - ApiNinePlus.deleteSipAddressFromContact(ops, oldSipAddress, contactID); - } else { - ApiFivePlus.deleteSipAddressFromContact(ops, oldSipAddress, contactID); - } - } - - public static void deleteImAddressFromContact(ArrayList ops, String oldSipAddress, String contactID) { - ApiFivePlus.deleteSipAddressFromContact(ops, oldSipAddress, contactID); - } public static void removeGlobalLayoutListener(ViewTreeObserver viewTreeObserver, OnGlobalLayoutListener keyboardListener) { if (Version.sdkAboveOrEqual(Version.API16_JELLY_BEAN_41)) { @@ -309,15 +135,13 @@ public class Compatibility { } } - public static void hideNavigationBar(Activity activity) - { + public static void hideNavigationBar(Activity activity) { if (Version.sdkAboveOrEqual(Version.API14_ICE_CREAM_SANDWICH_40)) { ApiFourteenPlus.hideNavigationBar(activity); } } - public static void showNavigationBar(Activity activity) - { + public static void showNavigationBar(Activity activity) { if (Version.sdkAboveOrEqual(Version.API14_ICE_CREAM_SANDWICH_40)) { ApiFourteenPlus.showNavigationBar(activity); } @@ -354,4 +178,13 @@ public class Compatibility { return pm.isScreenOn(); } } + + @SuppressWarnings("deprecation") + public static Spanned fromHtml(String text) { + if (Version.sdkAboveOrEqual(Version.API24_NOUGAT_70)) { + return Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY); + } else { + return Html.fromHtml(text); + } + } } diff --git a/src/org/linphone/ui/BubbleChat.java b/src/org/linphone/ui/BubbleChat.java index d65709eec..47a97e27f 100644 --- a/src/org/linphone/ui/BubbleChat.java +++ b/src/org/linphone/ui/BubbleChat.java @@ -31,6 +31,7 @@ import org.linphone.LinphoneContact; import org.linphone.LinphoneManager; import org.linphone.LinphoneUtils; import org.linphone.R; +import org.linphone.compatibility.Compatibility; import org.linphone.core.LinphoneBuffer; import org.linphone.core.LinphoneChatMessage; import org.linphone.core.LinphoneChatMessage.State; @@ -52,7 +53,6 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Environment; import android.provider.MediaStore; -import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -312,7 +312,7 @@ public class BubbleChat implements LinphoneChatMessage.LinphoneChatMessageListen text = text.replaceFirst(link, "" + linkWithoutScheme + ""); } - return Html.fromHtml(text); + return Compatibility.fromHtml(text); } public String getTextMessage() {