diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8a101ba3..431a7ff9c 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -63,7 +63,7 @@ android:largeHeap="true"> @@ -292,7 +292,7 @@ android:resource="@xml/provider_paths"/> - + calls = LinphoneUtils.getCalls(LinphoneManager.getLc()); - for (Call call : calls) { + for (Call call : LinphoneManager.getLc().getCalls()) { if (State.IncomingReceived == call.getState()) { mCall = call; break; diff --git a/app/src/main/java/org/linphone/call/CallManager.java b/app/src/main/java/org/linphone/call/CallManager.java index 1a868fe29..956c90537 100644 --- a/app/src/main/java/org/linphone/call/CallManager.java +++ b/app/src/main/java/org/linphone/call/CallManager.java @@ -19,7 +19,6 @@ 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.BandwidthManager; import org.linphone.LinphoneManager; import org.linphone.core.Address; import org.linphone.core.Call; diff --git a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java index 0b91e8455..191722e33 100644 --- a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java +++ b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java @@ -36,11 +36,12 @@ import android.widget.TextView; import android.widget.Toast; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; -import org.linphone.LinphoneUtils; +import org.linphone.settings.LinphonePreferences; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; -import org.linphone.activities.LinphoneGenericActivity; +import org.linphone.LinphoneActivity; +import org.linphone.utils.LinphoneGenericActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; @@ -158,8 +159,7 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC // Only one call ringing at a time is allowed if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null) { - List calls = LinphoneUtils.getCalls(LinphoneManager.getLc()); - for (Call call : calls) { + for (Call call : LinphoneManager.getLc().getCalls()) { State cstate = call.getState(); if (State.OutgoingInit == cstate || State.OutgoingProgress == cstate || State.OutgoingRinging == cstate || State.OutgoingEarlyMedia == cstate) { @@ -184,7 +184,7 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC Address address = mCall.getRemoteAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); if (contact != null) { - LinphoneUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ImageUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); name.setText(contact.getFullName()); } else { name.setText(LinphoneUtils.getAddressDisplayName(address)); diff --git a/app/src/main/java/org/linphone/call/CallVideoFragment.java b/app/src/main/java/org/linphone/call/CallVideoFragment.java index ac8f119d5..e6aafbdfd 100644 --- a/app/src/main/java/org/linphone/call/CallVideoFragment.java +++ b/app/src/main/java/org/linphone/call/CallVideoFragment.java @@ -27,7 +27,6 @@ import android.view.GestureDetector.OnDoubleTapListener; import android.view.GestureDetector.OnGestureListener; import android.view.LayoutInflater; import android.view.MotionEvent; -import android.view.Surface; import android.view.TextureView; import android.view.View; import android.view.View.OnTouchListener; @@ -35,11 +34,10 @@ import android.view.ViewGroup; import android.widget.RelativeLayout; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.CompatibilityScaleGestureDetector; import org.linphone.compatibility.CompatibilityScaleGestureListener; import org.linphone.core.Call; diff --git a/app/src/main/java/org/linphone/chat/ChatCreationFragment.java b/app/src/main/java/org/linphone/chat/ChatCreationFragment.java index 6afce5a1c..ba8a1cd7e 100644 --- a/app/src/main/java/org/linphone/chat/ChatCreationFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatCreationFragment.java @@ -24,8 +24,6 @@ import android.os.Bundle; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.text.Editable; -import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -40,9 +38,9 @@ import android.widget.Switch; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsUpdatedListener; @@ -54,7 +52,7 @@ import org.linphone.core.Core; import org.linphone.core.ProxyConfig; import org.linphone.fragments.FragmentsAvailable; import org.linphone.mediastream.Log; -import org.linphone.ui.ContactSelectView; +import org.linphone.views.ContactSelectView; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/chat/ChatEventsAdapter.java b/app/src/main/java/org/linphone/chat/ChatEventsAdapter.java index a1bf7f4ae..20f2cc520 100644 --- a/app/src/main/java/org/linphone/chat/ChatEventsAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatEventsAdapter.java @@ -45,9 +45,10 @@ import android.widget.ImageView; import android.widget.RelativeLayout; import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; +import org.linphone.utils.FileUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.compatibility.Compatibility; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; @@ -58,9 +59,9 @@ import org.linphone.core.Content; import org.linphone.core.EventLog; import org.linphone.core.LimeState; import org.linphone.mediastream.Log; -import org.linphone.ui.ContactAvatar; -import org.linphone.ui.SelectableAdapter; -import org.linphone.ui.SelectableHelper; +import org.linphone.views.ContactAvatar; +import org.linphone.utils.SelectableAdapter; +import org.linphone.utils.SelectableHelper; import java.io.File; import java.io.FileNotFoundException; @@ -323,10 +324,10 @@ public class ChatEventsAdapter extends SelectableAdapter { if (mContext.getPackageManager().checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, mContext.getPackageName()) == PackageManager.PERMISSION_GRANTED) { v.setEnabled(false); String filename = message.getFileTransferInformation().getName(); - File file = new File(LinphoneUtils.getStorageDirectory(mContext), filename); + File file = new File(FileUtils.getStorageDirectory(mContext), filename); int prefix = 1; while (file.exists()) { - file = new File(LinphoneUtils.getStorageDirectory(mContext), prefix + "_" + filename); + file = new File(FileUtils.getStorageDirectory(mContext), prefix + "_" + filename); Log.w("File with that name already exists, renamed to " + prefix + "_" + filename); prefix += 1; } @@ -537,9 +538,9 @@ public class ChatEventsAdapter extends SelectableAdapter { } if (appData != null) { - LinphoneUtils.scanFile(message); - holder.fileName.setText(LinphoneUtils.getNameFromFilePath(appData)); - if (LinphoneUtils.isExtensionImage(appData)) { + FileUtils.scanFile(message); + holder.fileName.setText(FileUtils.getNameFromFilePath(appData)); + if (FileUtils.isExtensionImage(appData)) { holder.messageImage.setVisibility(View.VISIBLE); loadBitmap(appData, holder.messageImage); holder.messageImage.setTag(appData); @@ -581,7 +582,7 @@ public class ChatEventsAdapter extends SelectableAdapter { path = params[0]; Bitmap bm = null; Bitmap thumbnail = null; - if (LinphoneUtils.isExtensionImage(path)) { + if (FileUtils.isExtensionImage(path)) { if (path.startsWith("content")) { try { bm = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), Uri.parse(path)); diff --git a/app/src/main/java/org/linphone/chat/ChatListFragment.java b/app/src/main/java/org/linphone/chat/ChatListFragment.java index 0059f3883..21679219a 100644 --- a/app/src/main/java/org/linphone/chat/ChatListFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatListFragment.java @@ -33,7 +33,7 @@ import android.widget.RelativeLayout; import org.linphone.LinphoneManager; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.core.ChatMessage; @@ -45,7 +45,7 @@ import org.linphone.core.EventLog; import org.linphone.core.ProxyConfig; import org.linphone.fragments.FragmentsAvailable; import org.linphone.mediastream.Log; -import org.linphone.ui.SelectableHelper; +import org.linphone.utils.SelectableHelper; import java.io.File; import java.util.ArrayList; diff --git a/app/src/main/java/org/linphone/chat/ChatRoomViewHolder.java b/app/src/main/java/org/linphone/chat/ChatRoomViewHolder.java index fd021e260..5b65d19ae 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomViewHolder.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomViewHolder.java @@ -29,10 +29,8 @@ import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; -import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; @@ -41,7 +39,7 @@ import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.Content; import org.linphone.core.Participant; -import org.linphone.ui.ContactAvatar; +import org.linphone.views.ContactAvatar; public class ChatRoomViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { private Bitmap mDefaultBitmap; diff --git a/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java b/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java index 7653da095..02d218d2f 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java @@ -26,8 +26,8 @@ import android.view.ViewGroup; import org.linphone.LinphoneManager; import org.linphone.core.ChatRoom; -import org.linphone.ui.SelectableAdapter; -import org.linphone.ui.SelectableHelper; +import org.linphone.utils.SelectableAdapter; +import org.linphone.utils.SelectableHelper; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/org/linphone/chat/DeviceAdapter.java b/app/src/main/java/org/linphone/chat/DeviceAdapter.java index c08547aa4..cd76af66c 100644 --- a/app/src/main/java/org/linphone/chat/DeviceAdapter.java +++ b/app/src/main/java/org/linphone/chat/DeviceAdapter.java @@ -25,7 +25,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; @@ -33,7 +33,7 @@ import org.linphone.core.Address; import org.linphone.core.ChatRoomSecurityLevel; import org.linphone.core.Participant; import org.linphone.core.ParticipantDevice; -import org.linphone.ui.ContactAvatar; +import org.linphone.views.ContactAvatar; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/chat/DevicesFragment.java b/app/src/main/java/org/linphone/chat/DevicesFragment.java index 7fb66d548..252d9e2ab 100644 --- a/app/src/main/java/org/linphone/chat/DevicesFragment.java +++ b/app/src/main/java/org/linphone/chat/DevicesFragment.java @@ -30,9 +30,9 @@ import android.widget.ImageView; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; diff --git a/app/src/main/java/org/linphone/chat/GroupChatFragment.java b/app/src/main/java/org/linphone/chat/GroupChatFragment.java index 6549fde01..60d466ac6 100644 --- a/app/src/main/java/org/linphone/chat/GroupChatFragment.java +++ b/app/src/main/java/org/linphone/chat/GroupChatFragment.java @@ -56,13 +56,12 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.FileUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; -import org.linphone.assistant.AssistantActivity; -import org.linphone.compatibility.Compatibility; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsUpdatedListener; @@ -82,7 +81,7 @@ import org.linphone.core.Participant; import org.linphone.core.ParticipantDevice; import org.linphone.core.Reason; import org.linphone.mediastream.Log; -import org.linphone.ui.SelectableHelper; +import org.linphone.utils.SelectableHelper; import java.io.File; import java.util.ArrayList; @@ -276,13 +275,13 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con if (getArguments() != null) { String fileSharedUri = getArguments().getString("fileSharedUri"); if (fileSharedUri != null) { - if (LinphoneUtils.isExtensionImage(fileSharedUri)) { + if (FileUtils.isExtensionImage(fileSharedUri)) { addImageToPendingList(fileSharedUri); } else { if (fileSharedUri.startsWith("content://") || fileSharedUri.startsWith("file://")) { - fileSharedUri = LinphoneUtils.getFilePath(getActivity().getApplicationContext(), Uri.parse(fileSharedUri)); + fileSharedUri = FileUtils.getFilePath(getActivity().getApplicationContext(), Uri.parse(fileSharedUri)); } else if (fileSharedUri.contains("com.android.contacts/contacts/")) { - fileSharedUri = LinphoneUtils.getCVSPathFromLookupUri(fileSharedUri).toString(); + fileSharedUri = FileUtils.getCVSPathFromLookupUri(fileSharedUri).toString(); } addFileToPendingList(fileSharedUri); } @@ -350,14 +349,14 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con String fileToUploadPath = null; if (data != null && data.getData() != null) { if (data.getData().toString().contains("com.android.contacts/contacts/")) { - if (LinphoneUtils.getCVSPathFromLookupUri(data.getData().toString()) != null) { - fileToUploadPath = LinphoneUtils.getCVSPathFromLookupUri(data.getData().toString()).toString(); + if (FileUtils.getCVSPathFromLookupUri(data.getData().toString()) != null) { + fileToUploadPath = FileUtils.getCVSPathFromLookupUri(data.getData().toString()).toString(); } else { //TODO Error return; } } else { - fileToUploadPath = LinphoneUtils.getRealPathFromURI(getActivity(), data.getData()); + fileToUploadPath = FileUtils.getRealPathFromURI(getActivity(), data.getData()); } if (fileToUploadPath == null) { fileToUploadPath = data.getData().toString(); @@ -367,12 +366,12 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con } if (fileToUploadPath.startsWith("content://") || fileToUploadPath.startsWith("file://")) { - fileToUploadPath = LinphoneUtils.getFilePath(getActivity().getApplicationContext(), Uri.parse(fileToUploadPath)); + fileToUploadPath = FileUtils.getFilePath(getActivity().getApplicationContext(), Uri.parse(fileToUploadPath)); } else if (fileToUploadPath.contains("com.android.contacts/contacts/")) { - fileToUploadPath = LinphoneUtils.getCVSPathFromLookupUri(fileToUploadPath).toString(); + fileToUploadPath = FileUtils.getCVSPathFromLookupUri(fileToUploadPath).toString(); } - if (LinphoneUtils.isExtensionImage(fileToUploadPath)) { + if (FileUtils.isExtensionImage(fileToUploadPath)) { addImageToPendingList(fileToUploadPath); } else { addFileToPendingList(fileToUploadPath); @@ -381,7 +380,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con super.onActivityResult(requestCode, resultCode, data); } } else { - if (LinphoneUtils.isExtensionImage(mImageToUploadUri.getPath())) { + if (FileUtils.isExtensionImage(mImageToUploadUri.getPath())) { addImageToPendingList(mImageToUploadUri.getPath()); } } @@ -768,7 +767,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con String files[] = savedInstanceState.getStringArray("Files"); if (files.length > 0) { for (String file : files) { - if (LinphoneUtils.isExtensionImage(file)) { + if (FileUtils.isExtensionImage(file)) { addImageToPendingList(file); } else { addFileToPendingList(file); @@ -780,7 +779,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con private void pickFile() { List cameraIntents = new ArrayList<>(); Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - File file = new File(LinphoneUtils.getStorageDirectory(mContext), getString(R.string.temp_photo_name_with_date).replace("%s", String.valueOf(System.currentTimeMillis()) + ".jpeg")); + File file = new File(FileUtils.getStorageDirectory(mContext), getString(R.string.temp_photo_name_with_date).replace("%s", String.valueOf(System.currentTimeMillis()) + ".jpeg")); mImageToUploadUri = Uri.fromFile(file); captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageToUploadUri); cameraIntents.add(captureIntent); @@ -880,9 +879,9 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con for (int i = 0; i < mFilesUploadLayout.getChildCount(); i++) { String filePath = (String) mFilesUploadLayout.getChildAt(i).getTag(); String fileName = filePath.substring(filePath.lastIndexOf("/") + 1); - String extension = LinphoneUtils.getExtensionFromFileName(fileName); + String extension = FileUtils.getExtensionFromFileName(fileName); Content content = Factory.instance().createContent(); - if (LinphoneUtils.isExtensionImage(fileName)) { + if (FileUtils.isExtensionImage(fileName)) { content.setType("image"); } else { content.setType("file"); diff --git a/app/src/main/java/org/linphone/chat/GroupInfoAdapter.java b/app/src/main/java/org/linphone/chat/GroupInfoAdapter.java index f658d9fbd..50971d969 100644 --- a/app/src/main/java/org/linphone/chat/GroupInfoAdapter.java +++ b/app/src/main/java/org/linphone/chat/GroupInfoAdapter.java @@ -29,15 +29,13 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import org.linphone.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; import org.linphone.contacts.ContactAddress; import org.linphone.contacts.LinphoneContact; import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.Participant; -import org.linphone.ui.ContactAvatar; +import org.linphone.views.ContactAvatar; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/chat/GroupInfoFragment.java b/app/src/main/java/org/linphone/chat/GroupInfoFragment.java index f4a2c564c..5c1a8244d 100644 --- a/app/src/main/java/org/linphone/chat/GroupInfoFragment.java +++ b/app/src/main/java/org/linphone/chat/GroupInfoFragment.java @@ -39,9 +39,9 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; diff --git a/app/src/main/java/org/linphone/chat/ImdnFragment.java b/app/src/main/java/org/linphone/chat/ImdnFragment.java index 8e0a7a984..8ee44d5da 100644 --- a/app/src/main/java/org/linphone/chat/ImdnFragment.java +++ b/app/src/main/java/org/linphone/chat/ImdnFragment.java @@ -33,10 +33,10 @@ import android.widget.RelativeLayout; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; -import org.linphone.LinphoneUtils; +import org.linphone.utils.FileUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.compatibility.Compatibility; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; @@ -47,7 +47,7 @@ import org.linphone.core.ChatRoom; import org.linphone.core.Core; import org.linphone.core.ParticipantImdnState; import org.linphone.fragments.FragmentsAvailable; -import org.linphone.ui.ContactAvatar; +import org.linphone.views.ContactAvatar; public class ImdnFragment extends Fragment { private LayoutInflater mInflater; @@ -185,7 +185,7 @@ public class ImdnFragment extends Fragment { String appData = mMessage.getAppdata(); if (appData != null) { // Something to display mBubble.fileName.setVisibility(View.VISIBLE); - mBubble.fileName.setText(LinphoneUtils.getNameFromFilePath(appData)); + mBubble.fileName.setText(FileUtils.getNameFromFilePath(appData)); // We purposely chose not to display the image } diff --git a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java index 732532aa0..23098c2c9 100644 --- a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java @@ -36,10 +36,11 @@ import android.widget.TableLayout; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; -import org.linphone.LinphoneUtils; +import org.linphone.settings.LinphonePreferences; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.core.Address; import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoomListenerStub; @@ -173,7 +174,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener private void displayContact(LayoutInflater inflater, View view) { ImageView contactPicture = view.findViewById(R.id.contact_picture); if (contact.hasPhoto()) { - LinphoneUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ImageUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); } else { contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); } diff --git a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java index bdefdf4ab..3f0fc2d1a 100644 --- a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java @@ -30,7 +30,6 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; -import android.os.Environment; import android.os.Parcelable; import android.provider.ContactsContract.DisplayPhoto; import android.provider.MediaStore; @@ -49,9 +48,11 @@ import android.widget.ImageView; import android.widget.LinearLayout; import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; +import org.linphone.utils.FileUtils; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; @@ -269,7 +270,7 @@ public class ContactEditorFragment extends Fragment { contactPicture = view.findViewById(R.id.contact_picture); if (contact != null) { - LinphoneUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ImageUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); } else { contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); } @@ -340,7 +341,7 @@ public class ContactEditorFragment extends Fragment { pickedPhotoForContactUri = null; final List cameraIntents = new ArrayList<>(); final Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - File file = new File(LinphoneUtils.getStorageDirectory(LinphoneActivity.instance()), getString(R.string.temp_photo_name)); + File file = new File(FileUtils.getStorageDirectory(LinphoneActivity.instance()), getString(R.string.temp_photo_name)); pickedPhotoForContactUri = Uri.fromFile(file); captureIntent.putExtra("outputX", PHOTO_SIZE); captureIntent.putExtra("outputY", PHOTO_SIZE); @@ -380,7 +381,7 @@ public class ContactEditorFragment extends Fragment { String filePath = pickedPhotoForContactUri.getPath(); editContactPicture(filePath, null); } else { - File file = new File(LinphoneUtils.getStorageDirectory(LinphoneActivity.instance()), getString(R.string.temp_photo_name)); + File file = new File(FileUtils.getStorageDirectory(LinphoneActivity.instance()), getString(R.string.temp_photo_name)); if (file.exists()) { pickedPhotoForContactUri = Uri.fromFile(file); String filePath = pickedPhotoForContactUri.getPath(); diff --git a/app/src/main/java/org/linphone/contacts/ContactsListAdapter.java b/app/src/main/java/org/linphone/contacts/ContactsListAdapter.java index 760546f5a..c68d56e26 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsListAdapter.java +++ b/app/src/main/java/org/linphone/contacts/ContactsListAdapter.java @@ -32,13 +32,11 @@ import android.widget.RelativeLayout; import android.widget.SectionIndexer; import android.widget.TextView; -import org.linphone.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; import org.linphone.mediastream.Log; -import org.linphone.ui.ContactAvatar; -import org.linphone.ui.SelectableAdapter; -import org.linphone.ui.SelectableHelper; +import org.linphone.views.ContactAvatar; +import org.linphone.utils.SelectableAdapter; +import org.linphone.utils.SelectableHelper; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/app/src/main/java/org/linphone/contacts/ContactsListFragment.java b/app/src/main/java/org/linphone/contacts/ContactsListFragment.java index d80484740..e7df2aa02 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsListFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactsListFragment.java @@ -26,8 +26,6 @@ import android.os.Bundle; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.text.Editable; -import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -40,9 +38,9 @@ import android.widget.TextView; import org.linphone.LinphoneManager; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.fragments.FragmentsAvailable; -import org.linphone.ui.SelectableHelper; +import org.linphone.utils.SelectableHelper; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.java b/app/src/main/java/org/linphone/contacts/ContactsManager.java index cf81ae878..034fba1ee 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsManager.java +++ b/app/src/main/java/org/linphone/contacts/ContactsManager.java @@ -37,9 +37,9 @@ import android.provider.ContactsContract; import android.provider.ContactsContract.Data; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; import org.linphone.core.Address; import org.linphone.core.Core; diff --git a/app/src/main/java/org/linphone/contacts/SearchContactsListAdapter.java b/app/src/main/java/org/linphone/contacts/SearchContactsListAdapter.java index f29830b7a..a01db0245 100644 --- a/app/src/main/java/org/linphone/contacts/SearchContactsListAdapter.java +++ b/app/src/main/java/org/linphone/contacts/SearchContactsListAdapter.java @@ -31,14 +31,14 @@ import android.widget.TextView; import org.linphone.LinphoneManager; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.core.Address; import org.linphone.core.Factory; import org.linphone.core.PresenceBasicStatus; import org.linphone.core.PresenceModel; import org.linphone.core.ProxyConfig; import org.linphone.core.SearchResult; -import org.linphone.ui.ContactAvatar; +import org.linphone.views.ContactAvatar; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/firebase/FirebaseIdService.java b/app/src/main/java/org/linphone/firebase/FirebaseIdService.java index 9841e9dd4..6dfd6e73c 100644 --- a/app/src/main/java/org/linphone/firebase/FirebaseIdService.java +++ b/app/src/main/java/org/linphone/firebase/FirebaseIdService.java @@ -22,8 +22,8 @@ package org.linphone.firebase; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.FirebaseInstanceIdService; -import org.linphone.LinphonePreferences; -import org.linphone.LinphoneUtils; +import org.linphone.settings.LinphonePreferences; +import org.linphone.utils.LinphoneUtils; public class FirebaseIdService extends FirebaseInstanceIdService { @Override diff --git a/app/src/main/java/org/linphone/firebase/FirebaseMessaging.java b/app/src/main/java/org/linphone/firebase/FirebaseMessaging.java index 16b4d6225..5d129e897 100644 --- a/app/src/main/java/org/linphone/firebase/FirebaseMessaging.java +++ b/app/src/main/java/org/linphone/firebase/FirebaseMessaging.java @@ -26,7 +26,7 @@ import com.google.firebase.messaging.RemoteMessage; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import static android.content.Intent.ACTION_MAIN; diff --git a/app/src/main/java/org/linphone/fragments/AboutFragment.java b/app/src/main/java/org/linphone/fragments/AboutFragment.java index d72132331..b4bf6064e 100644 --- a/app/src/main/java/org/linphone/fragments/AboutFragment.java +++ b/app/src/main/java/org/linphone/fragments/AboutFragment.java @@ -22,7 +22,6 @@ import android.app.Fragment; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -37,10 +36,10 @@ import android.widget.TextView; import org.linphone.BuildConfig; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.core.Core; import org.linphone.core.Core.LogCollectionUploadState; import org.linphone.core.CoreListenerStub; diff --git a/app/src/main/java/org/linphone/fragments/DialerFragment.java b/app/src/main/java/org/linphone/fragments/DialerFragment.java index fe671150c..f31e72307 100644 --- a/app/src/main/java/org/linphone/fragments/DialerFragment.java +++ b/app/src/main/java/org/linphone/fragments/DialerFragment.java @@ -34,14 +34,14 @@ import android.widget.LinearLayout; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactsManager; import org.linphone.core.Core; import org.linphone.mediastream.Log; -import org.linphone.ui.AddressAware; -import org.linphone.ui.AddressText; -import org.linphone.ui.CallButton; -import org.linphone.ui.EraseButton; +import org.linphone.views.AddressAware; +import org.linphone.views.AddressText; +import org.linphone.views.CallButton; +import org.linphone.views.EraseButton; public class DialerFragment extends Fragment { private static DialerFragment instance; diff --git a/app/src/main/java/org/linphone/fragments/HistoryDetailFragment.java b/app/src/main/java/org/linphone/fragments/HistoryDetailFragment.java index 0ca1406ff..e3e0e884b 100644 --- a/app/src/main/java/org/linphone/fragments/HistoryDetailFragment.java +++ b/app/src/main/java/org/linphone/fragments/HistoryDetailFragment.java @@ -31,10 +31,11 @@ import android.widget.RelativeLayout; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; -import org.linphone.LinphoneUtils; +import org.linphone.settings.LinphonePreferences; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; @@ -149,7 +150,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener { contact = ContactsManager.getInstance().findContactFromAddress(lAddress); if (contact != null) { contactName.setText(contact.getFullName()); - LinphoneUtils.setImagePictureFromUri(view.getContext(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ImageUtils.setImagePictureFromUri(view.getContext(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); addToContacts.setVisibility(View.GONE); goToContact.setVisibility(View.VISIBLE); } else { diff --git a/app/src/main/java/org/linphone/fragments/HistoryListFragment.java b/app/src/main/java/org/linphone/fragments/HistoryListFragment.java index 3db5e72a2..cf45b7c6b 100644 --- a/app/src/main/java/org/linphone/fragments/HistoryListFragment.java +++ b/app/src/main/java/org/linphone/fragments/HistoryListFragment.java @@ -36,14 +36,14 @@ import android.widget.TextView; import org.linphone.LinphoneManager; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.call.CallHistoryAdapter; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.core.Address; import org.linphone.core.Call; import org.linphone.core.CallLog; -import org.linphone.ui.SelectableHelper; +import org.linphone.utils.SelectableHelper; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/org/linphone/fragments/StatusFragment.java b/app/src/main/java/org/linphone/fragments/StatusFragment.java index a7d13fba7..0dbb86209 100644 --- a/app/src/main/java/org/linphone/fragments/StatusFragment.java +++ b/app/src/main/java/org/linphone/fragments/StatusFragment.java @@ -21,7 +21,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import android.app.Activity; import android.app.Dialog; import android.app.Fragment; -import android.app.KeyguardManager; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; @@ -39,10 +38,10 @@ import android.widget.ImageView; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.assistant.AssistantActivity; import org.linphone.call.CallActivity; import org.linphone.core.Call; diff --git a/app/src/main/java/org/linphone/notifications/NotificationBroadcastReceiver.java b/app/src/main/java/org/linphone/notifications/NotificationBroadcastReceiver.java index ca349482e..4e9cc6151 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationBroadcastReceiver.java +++ b/app/src/main/java/org/linphone/notifications/NotificationBroadcastReceiver.java @@ -30,7 +30,7 @@ import android.os.Bundle; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.compatibility.Compatibility; import org.linphone.core.Address; import org.linphone.core.Call; diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.java b/app/src/main/java/org/linphone/notifications/NotificationsManager.java index 29d313e77..89a6c507b 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.java +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.java @@ -29,11 +29,12 @@ import android.graphics.BitmapFactory; import android.net.Uri; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.compatibility.Compatibility; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; @@ -135,7 +136,7 @@ public class NotificationsManager { notifIntent.putExtra("ChatContactSipUri", conferenceAddress); PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT); - Bitmap bm = LinphoneUtils.getRoundBitmapFromUri(mContext, fromPictureUri); + Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, fromPictureUri); Notifiable notif = mChatNotifMap.get(conferenceAddress); NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp); if (notif == null) { @@ -166,7 +167,7 @@ public class NotificationsManager { fromName = fromSipUri; } - Bitmap bm = LinphoneUtils.getRoundBitmapFromUri(mContext, fromPictureUri); + Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, fromPictureUri); Notifiable notif = mChatNotifMap.get(fromSipUri); NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp); if (notif == null) { @@ -260,7 +261,7 @@ public class NotificationsManager { LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); Uri pictureUri = contact != null ? contact.getPhotoUri() : null; - Bitmap bm = LinphoneUtils.getRoundBitmapFromUri(mContext, pictureUri); + Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, pictureUri); String name = LinphoneUtils.getAddressDisplayName(address); boolean showAnswerAction = call.getState() == Call.State.IncomingReceived || call.getState() == Call.State.IncomingEarlyMedia; diff --git a/app/src/main/java/org/linphone/purchase/InAppPurchaseActivity.java b/app/src/main/java/org/linphone/purchase/InAppPurchaseActivity.java index a9960816b..f8434f6d5 100644 --- a/app/src/main/java/org/linphone/purchase/InAppPurchaseActivity.java +++ b/app/src/main/java/org/linphone/purchase/InAppPurchaseActivity.java @@ -30,7 +30,7 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.Toast; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.R; import org.linphone.mediastream.Log; import org.linphone.xmlrpc.XmlRpcHelper; diff --git a/app/src/main/java/org/linphone/purchase/InAppPurchaseFragment.java b/app/src/main/java/org/linphone/purchase/InAppPurchaseFragment.java index a7ec5b56d..dee280ac8 100644 --- a/app/src/main/java/org/linphone/purchase/InAppPurchaseFragment.java +++ b/app/src/main/java/org/linphone/purchase/InAppPurchaseFragment.java @@ -31,7 +31,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.R; import org.linphone.core.ProxyConfig; diff --git a/app/src/main/java/org/linphone/purchase/InAppPurchaseHelper.java b/app/src/main/java/org/linphone/purchase/InAppPurchaseHelper.java index a0f224c38..739750f3d 100644 --- a/app/src/main/java/org/linphone/purchase/InAppPurchaseHelper.java +++ b/app/src/main/java/org/linphone/purchase/InAppPurchaseHelper.java @@ -37,7 +37,7 @@ import com.android.vending.billing.IInAppBillingService; import org.json.JSONException; import org.json.JSONObject; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.mediastream.Log; import org.linphone.xmlrpc.XmlRpcHelper; import org.linphone.xmlrpc.XmlRpcListenerBase; diff --git a/app/src/main/java/org/linphone/receivers/AccountEnableReceiver.java b/app/src/main/java/org/linphone/receivers/AccountEnableReceiver.java index 4af64978d..431158444 100644 --- a/app/src/main/java/org/linphone/receivers/AccountEnableReceiver.java +++ b/app/src/main/java/org/linphone/receivers/AccountEnableReceiver.java @@ -24,7 +24,7 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; public class AccountEnableReceiver extends BroadcastReceiver { private static final String TAG = "AccountEnableReceiver"; diff --git a/app/src/main/java/org/linphone/receivers/BootReceiver.java b/app/src/main/java/org/linphone/receivers/BootReceiver.java index 66a34b5cb..8dc05ac08 100644 --- a/app/src/main/java/org/linphone/receivers/BootReceiver.java +++ b/app/src/main/java/org/linphone/receivers/BootReceiver.java @@ -24,7 +24,7 @@ import android.content.Context; import android.content.Intent; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; import org.linphone.compatibility.Compatibility; diff --git a/app/src/main/java/org/linphone/receivers/DozeReceiver.java b/app/src/main/java/org/linphone/receivers/DozeReceiver.java index 03e26d622..157e53a96 100644 --- a/app/src/main/java/org/linphone/receivers/DozeReceiver.java +++ b/app/src/main/java/org/linphone/receivers/DozeReceiver.java @@ -25,9 +25,9 @@ import android.os.Build; import android.os.PowerManager; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; import org.linphone.core.Core; import org.linphone.mediastream.Log; diff --git a/app/src/main/java/org/linphone/receivers/KeepAliveReceiver.java b/app/src/main/java/org/linphone/receivers/KeepAliveReceiver.java index 6c5517db5..897da851e 100644 --- a/app/src/main/java/org/linphone/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/org/linphone/receivers/KeepAliveReceiver.java @@ -27,11 +27,10 @@ import android.content.Intent; import android.os.SystemClock; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.compatibility.Compatibility; import org.linphone.core.Core; import org.linphone.mediastream.Log; diff --git a/app/src/main/java/org/linphone/receivers/OutgoingCallReceiver.java b/app/src/main/java/org/linphone/receivers/OutgoingCallReceiver.java index 9fc3e0152..655f0ff35 100644 --- a/app/src/main/java/org/linphone/receivers/OutgoingCallReceiver.java +++ b/app/src/main/java/org/linphone/receivers/OutgoingCallReceiver.java @@ -24,7 +24,7 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; diff --git a/app/src/main/java/org/linphone/fragments/AccountPreferencesFragment.java b/app/src/main/java/org/linphone/settings/AccountPreferencesFragment.java similarity index 98% rename from app/src/main/java/org/linphone/fragments/AccountPreferencesFragment.java rename to app/src/main/java/org/linphone/settings/AccountPreferencesFragment.java index 3609fb46a..63f31c2db 100644 --- a/app/src/main/java/org/linphone/fragments/AccountPreferencesFragment.java +++ b/app/src/main/java/org/linphone/settings/AccountPreferencesFragment.java @@ -1,4 +1,4 @@ -package org.linphone.fragments; +package org.linphone.settings; /* AccountPreferencesFragment.java Copyright (C) 2017 Belledonne Communications, Grenoble, France @@ -32,19 +32,18 @@ import android.preference.PreferenceScreen; import android.view.WindowManager; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; -import org.linphone.LinphonePreferences.AccountBuilder; -import org.linphone.LinphoneUtils; +import org.linphone.settings.LinphonePreferences.AccountBuilder; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.assistant.AssistantActivity; import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreatorListener; import org.linphone.core.CoreException; import org.linphone.core.NatPolicy; import org.linphone.core.ProxyConfig; +import org.linphone.fragments.FragmentsAvailable; import org.linphone.mediastream.Log; -import org.linphone.ui.PreferencesListFragment; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/linphone/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java similarity index 99% rename from app/src/main/java/org/linphone/LinphonePreferences.java rename to app/src/main/java/org/linphone/settings/LinphonePreferences.java index f8855c61f..bbf9c5653 100644 --- a/app/src/main/java/org/linphone/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -1,4 +1,4 @@ -package org.linphone; +package org.linphone.settings; /* LinphonePreferences.java @@ -23,6 +23,9 @@ import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; +import org.linphone.LinphoneManager; +import org.linphone.utils.LinphoneUtils; +import org.linphone.R; import org.linphone.core.AVPFMode; import org.linphone.core.Address; import org.linphone.core.AuthInfo; @@ -1553,7 +1556,7 @@ public class LinphonePreferences { } public String getActivityToLaunchOnIncomingReceived() { - return getConfig().getString("app", "incoming_call_activity", "org.linphone.activities.LinphoneActivity"); + return getConfig().getString("app", "incoming_call_activity", "org.linphone.LinphoneActivity"); } public void setActivityToLaunchOnIncomingReceived(String name) { diff --git a/app/src/main/java/org/linphone/ui/PreferencesListFragment.java b/app/src/main/java/org/linphone/settings/PreferencesListFragment.java similarity index 99% rename from app/src/main/java/org/linphone/ui/PreferencesListFragment.java rename to app/src/main/java/org/linphone/settings/PreferencesListFragment.java index e8899d097..7c2f9cc03 100644 --- a/app/src/main/java/org/linphone/ui/PreferencesListFragment.java +++ b/app/src/main/java/org/linphone/settings/PreferencesListFragment.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.settings; /* PreferencesListFragment.java diff --git a/app/src/main/java/org/linphone/fragments/SettingsFragment.java b/app/src/main/java/org/linphone/settings/SettingsFragment.java similarity index 99% rename from app/src/main/java/org/linphone/fragments/SettingsFragment.java rename to app/src/main/java/org/linphone/settings/SettingsFragment.java index 34577b5ec..f9956c839 100644 --- a/app/src/main/java/org/linphone/fragments/SettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/SettingsFragment.java @@ -1,4 +1,4 @@ -package org.linphone.fragments; +package org.linphone.settings; /* SettingsFragment.java @@ -41,11 +41,11 @@ import android.preference.PreferenceScreen; import android.provider.Settings; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.FileUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.core.Address; import org.linphone.core.Core; import org.linphone.core.CoreException; @@ -59,11 +59,11 @@ import org.linphone.core.ProxyConfig; import org.linphone.core.RegistrationState; import org.linphone.core.VideoDefinition; import org.linphone.core.tools.OpenH264DownloadHelper; +import org.linphone.fragments.FragmentsAvailable; import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; -import org.linphone.ui.LedPreference; -import org.linphone.ui.PreferencesListFragment; +import org.linphone.views.LedPreference; import java.io.File; import java.util.ArrayList; @@ -142,7 +142,7 @@ public class SettingsFragment extends PreferencesListFragment { editor.apply(); File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs"); - LinphoneUtils.recursiveFileRemoval(dir); + FileUtils.recursiveFileRemoval(dir); } // Inits the values or the listener on some settings diff --git a/app/src/main/java/org/linphone/utils/FileUtils.java b/app/src/main/java/org/linphone/utils/FileUtils.java new file mode 100644 index 000000000..68d42ef9e --- /dev/null +++ b/app/src/main/java/org/linphone/utils/FileUtils.java @@ -0,0 +1,225 @@ +package org.linphone.utils; + +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.os.Environment; +import android.provider.MediaStore; +import android.provider.OpenableColumns; +import android.text.TextUtils; + +import org.linphone.LinphoneManager; +import org.linphone.core.ChatMessage; +import org.linphone.core.Content; +import org.linphone.core.Friend; +import org.linphone.core.FriendList; +import org.linphone.mediastream.Log; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +public class FileUtils { + public static String getNameFromFilePath(String filePath) { + String name = filePath; + int i = filePath.lastIndexOf('/'); + if (i > 0) { + name = filePath.substring(i + 1); + } + return name; + } + + public static String getExtensionFromFileName(String fileName) { + String extension = null; + int i = fileName.lastIndexOf('.'); + if (i > 0) { + extension = fileName.substring(i + 1); + } + return extension; + } + + public static Boolean isExtensionImage(String path) { + String extension = getExtensionFromFileName(path); + if (extension != null) + extension = extension.toLowerCase(); + return (extension != null && extension.matches("(png|jpg|jpeg|bmp|gif)")); + } + + public static void recursiveFileRemoval(File root) { + if (!root.delete()) { + if (root.isDirectory()) { + File[] files = root.listFiles(); + if (files != null) { + for (File f : files) { + recursiveFileRemoval(f); + } + } + } + } + } + public static String getFilePath(final Context context, final Uri uri) { + if (uri == null) return null; + + String result = null; + String name = getNameFromUri(uri, context); + + try { + File localFile = createFile(context, name); + InputStream remoteFile = context.getContentResolver().openInputStream(uri); + + if (copyToFile(remoteFile, localFile)) { + result = localFile.getAbsolutePath(); + } + + remoteFile.close(); + } catch (IOException e) { + Log.e("Enable to get sharing file", e); + } + + return result; + } + + private static String getNameFromUri(Uri uri, Context context) { + String name = null; + if (uri.getScheme().equals("content")) { + Cursor returnCursor = context.getContentResolver().query(uri, null, null, null, null); + if (returnCursor != null) { + returnCursor.moveToFirst(); + int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + name = returnCursor.getString(nameIndex); + returnCursor.close(); + } + } else if (uri.getScheme().equals("file")) { + name = uri.getLastPathSegment(); + } + return name; + } + + /** + * Copy data from a source stream to destFile. + * Return true if succeed, return false if failed. + */ + private static boolean copyToFile(InputStream inputStream, File destFile) { + if (inputStream == null || destFile == null) return false; + try { + OutputStream out = new FileOutputStream(destFile); + try { + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) >= 0) { + out.write(buffer, 0, bytesRead); + } + } finally { + out.close(); + } + return true; + } catch (IOException e) { + return false; + } + } + + public static File createFile(Context context, String fileName) throws IOException { + if (TextUtils.isEmpty(fileName)) + fileName = getStartDate(); + + if (!fileName.contains(".")) { + fileName = fileName + ".unknown"; + } + + final File root; + root = context.getExternalCacheDir(); + + if (root != null && !root.exists()) + root.mkdirs(); + return new File(root, fileName); + } + + public static Uri getCVSPathFromLookupUri(String content) { + String contactId = getNameFromFilePath(content); + FriendList[] friendList = LinphoneManager.getLc().getFriendsLists(); + for (FriendList list : friendList) { + for (Friend friend : list.getFriends()) { + if (friend.getRefKey().toString().equals(contactId)) { + String contactVcard = friend.getVcard().asVcard4String(); + Uri path = createCvsFromString(contactVcard); + return path; + } + } + } + return null; + } + + public static String getRealPathFromURI(Context context, Uri contentUri) { + String[] proj = {MediaStore.Images.Media.DATA}; + Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null); + if (cursor != null && cursor.moveToFirst()) { + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + String result = cursor.getString(column_index); + cursor.close(); + return result; + } + return null; + } + + public static String getStorageDirectory(Context mContext) { + String storageDir = Environment.getExternalStorageDirectory() + "/" + mContext.getString(mContext.getResources().getIdentifier("app_name", "string", mContext.getPackageName())); + File file = new File(storageDir); + if (!file.isDirectory() || !file.exists()) { + Log.w("Directory " + file + " doesn't seem to exists yet, let's create it"); + file.mkdirs(); + LinphoneManager.getInstance().getMediaScanner().scanFile(file); + } + return storageDir; + } + + public static void scanFile(ChatMessage message) { + String appData = message.getAppdata(); + if (appData == null) { + for (Content c : message.getContents()) { + if (c.isFile()) { + appData = c.getFilePath(); + } + } + } + LinphoneManager.getInstance().getMediaScanner().scanFile(new File(appData)); + } + + private static Uri createCvsFromString(String vcardString) { + String contactName = getContactNameFromVcard(vcardString); + File vcfFile = new File(Environment.getExternalStorageDirectory(), contactName + ".cvs"); + try { + FileWriter fw = new FileWriter(vcfFile); + fw.write(vcardString); + fw.close(); + return Uri.fromFile(vcfFile); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + private static String getContactNameFromVcard(String vcard) { + if (vcard != null) { + String contactName = vcard.substring(vcard.indexOf("FN:") + 3); + contactName = contactName.substring(0, contactName.indexOf("\n") - 1); + contactName = contactName.replace(";", ""); + contactName = contactName.replace(" ", ""); + return contactName; + } + return null; + } + + private static String getStartDate() { + try { + return new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.ROOT).format(new Date()); + } catch (RuntimeException e) { + return new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()); + } + } +} diff --git a/app/src/main/java/org/linphone/utils/ImageUtils.java b/app/src/main/java/org/linphone/utils/ImageUtils.java new file mode 100644 index 000000000..169da962f --- /dev/null +++ b/app/src/main/java/org/linphone/utils/ImageUtils.java @@ -0,0 +1,115 @@ +package org.linphone.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.net.Uri; +import android.provider.MediaStore; +import android.widget.ImageView; + +import org.linphone.R; +import org.linphone.contacts.ContactsManager; +import org.linphone.mediastream.Log; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; + +public class ImageUtils { + + public static Bitmap downloadBitmap(Uri uri) { + URL url; + InputStream is = null; + try { + url = new URL(uri.toString()); + is = url.openStream(); + return BitmapFactory.decodeStream(is); + } catch (MalformedURLException e) { + Log.e(e, e.getMessage()); + } catch (IOException e) { + Log.e(e, e.getMessage()); + } finally { + try { + is.close(); + } catch (IOException x) { + } + } + return null; + } + + + public static void setImagePictureFromUri(Context c, ImageView view, Uri pictureUri, Uri thumbnailUri) { + if (pictureUri == null && thumbnailUri == null) { + view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); + return; + } + if (pictureUri.getScheme().startsWith("http")) { + Bitmap bm = downloadBitmap(pictureUri); + if (bm == null) view.setImageResource(R.drawable.avatar); + view.setImageBitmap(bm); + } else { + Bitmap bm = null; + try { + bm = MediaStore.Images.Media.getBitmap(c.getContentResolver(), pictureUri); + } catch (IOException e) { + if (thumbnailUri != null) { + try { + bm = MediaStore.Images.Media.getBitmap(c.getContentResolver(), thumbnailUri); + } catch (IOException ie) { + } + } + } + if (bm != null) { + view.setImageBitmap(bm); + } else { + view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); + } + } + } + + public static Bitmap getRoundBitmapFromUri(Context context, Uri fromPictureUri) { + Bitmap bm; + Bitmap roundBm; + if (fromPictureUri != null) { + try { + bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), fromPictureUri); + } catch (Exception e) { + bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); + } + } else { + bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); + } + if (bm != null) { + roundBm = getRoundBitmap(bm); + if (roundBm != null) { + bm.recycle(); + bm = roundBm; + } + } + return bm; + } + + public static Bitmap getRoundBitmap(Bitmap bitmap) { + Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + + final int color = 0xff424242; + final Paint paint = new Paint(); + final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); + + paint.setAntiAlias(true); + canvas.drawARGB(0, 0, 0, 0); + paint.setColor(color); + canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint); + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmap, rect, rect, paint); + + return output; + } +} diff --git a/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java b/app/src/main/java/org/linphone/utils/LinphoneGenericActivity.java similarity index 95% rename from app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java rename to app/src/main/java/org/linphone/utils/LinphoneGenericActivity.java index e55625741..792b9eddf 100644 --- a/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java +++ b/app/src/main/java/org/linphone/utils/LinphoneGenericActivity.java @@ -1,4 +1,4 @@ -package org.linphone.activities; +package org.linphone.utils; /* LinphoneGenericActivity.java @@ -24,6 +24,7 @@ import android.os.Bundle; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; +import org.linphone.LinphoneLauncherActivity; public class LinphoneGenericActivity extends Activity { diff --git a/app/src/main/java/org/linphone/ui/LinphoneMediaScanner.java b/app/src/main/java/org/linphone/utils/LinphoneMediaScanner.java similarity index 98% rename from app/src/main/java/org/linphone/ui/LinphoneMediaScanner.java rename to app/src/main/java/org/linphone/utils/LinphoneMediaScanner.java index bfc5358d9..9f9a9f444 100644 --- a/app/src/main/java/org/linphone/ui/LinphoneMediaScanner.java +++ b/app/src/main/java/org/linphone/utils/LinphoneMediaScanner.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.utils; import android.content.Context; import android.media.MediaScannerConnection; diff --git a/app/src/main/java/org/linphone/LinphoneUtils.java b/app/src/main/java/org/linphone/utils/LinphoneUtils.java similarity index 60% rename from app/src/main/java/org/linphone/LinphoneUtils.java rename to app/src/main/java/org/linphone/utils/LinphoneUtils.java index 6547d7eed..94c30b694 100644 --- a/app/src/main/java/org/linphone/LinphoneUtils.java +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.java @@ -1,4 +1,4 @@ -package org.linphone; +package org.linphone.utils; /* LinphoneUtils.java @@ -24,36 +24,24 @@ import android.app.AlertDialog; import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.content.Intent; -import android.database.Cursor; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffXfermode; -import android.graphics.Rect; import android.net.ConnectivityManager; import android.net.NetworkInfo; -import android.net.Uri; import android.os.Build; -import android.os.Environment; import android.os.Handler; import android.os.Looper; -import android.provider.MediaStore; -import android.provider.OpenableColumns; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.Html; import android.text.Spanned; -import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; -import android.widget.ImageView; import android.widget.TextView; -import org.linphone.compatibility.Compatibility; +import org.linphone.LinphoneManager; +import org.linphone.LinphoneService; +import org.linphone.R; import org.linphone.contacts.ContactsManager; import org.linphone.core.AccountCreator; import org.linphone.core.Address; @@ -72,29 +60,16 @@ import org.linphone.core.LoggingServiceListener; import org.linphone.core.ProxyConfig; import org.linphone.mediastream.Log; import org.linphone.mediastream.video.capture.hwconf.Hacks; -import org.linphone.ui.LinphoneMediaScanner; +import org.linphone.settings.LinphonePreferences; -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.Collection; -import java.util.Date; import java.util.List; import java.util.Locale; import java.util.regex.Pattern; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; - /** * Helpers. */ @@ -217,8 +192,8 @@ public final class LinphoneUtils { return true; } - public static String timestampToHumanDate(Context context, long timestamp, int resFormat) { - return LinphoneUtils.timestampToHumanDate(context, timestamp, context.getString(resFormat)); + public static String timestampToHumanDate(Context context, long timestamp, int format) { + return timestampToHumanDate(context, timestamp, context.getString(format)); } public static String timestampToHumanDate(Context context, long timestamp, String format) { @@ -270,88 +245,9 @@ public final class LinphoneUtils { return true; } - - public static Bitmap downloadBitmap(Uri uri) { - URL url; - InputStream is = null; - try { - url = new URL(uri.toString()); - is = url.openStream(); - return BitmapFactory.decodeStream(is); - } catch (MalformedURLException e) { - Log.e(e, e.getMessage()); - } catch (IOException e) { - Log.e(e, e.getMessage()); - } finally { - try { - is.close(); - } catch (IOException x) { - } - } - return null; - } - - - public static void setImagePictureFromUri(Context c, ImageView view, Uri pictureUri, Uri thumbnailUri) { - if (pictureUri == null && thumbnailUri == null) { - view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); - return; - } - if (pictureUri.getScheme().startsWith("http")) { - Bitmap bm = downloadBitmap(pictureUri); - if (bm == null) view.setImageResource(R.drawable.avatar); - view.setImageBitmap(bm); - } else { - Bitmap bm = null; - try { - bm = MediaStore.Images.Media.getBitmap(c.getContentResolver(), pictureUri); - } catch (IOException e) { - if (thumbnailUri != null) { - try { - bm = MediaStore.Images.Media.getBitmap(c.getContentResolver(), thumbnailUri); - } catch (IOException ie) { - } - } - } - if (bm != null) { - view.setImageBitmap(bm); - } else { - view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); - } - } - } - - public static void setThumbnailPictureFromUri(Context c, ImageView view, Uri tUri) { - if (tUri == null) { - view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); - return; - } - if (tUri.getScheme().startsWith("http")) { - Bitmap bm = downloadBitmap(tUri); - if (bm == null) view.setImageResource(R.drawable.avatar); - view.setImageBitmap(bm); - } else { - Bitmap bm = null; - try { - bm = MediaStore.Images.Media.getBitmap(c.getContentResolver(), tUri); - } catch (IOException e) { - } - if (bm != null) { - view.setImageBitmap(bm); - } else { - view.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); - } - } - } - - public static final List getCalls(Core lc) { - // return a modifiable list - return new ArrayList<>(Arrays.asList(lc.getCalls())); - } - public static final List getCallsInState(Core lc, Collection states) { List foundCalls = new ArrayList<>(); - for (Call call : getCalls(lc)) { + for (Call call : lc.getCalls()) { if (states.contains(call.getState())) { foundCalls.add(call); } @@ -359,14 +255,6 @@ public final class LinphoneUtils { return foundCalls; } - public static void setVisibility(View v, int id, boolean visible) { - v.findViewById(id).setVisibility(visible ? VISIBLE : GONE); - } - - public static void setVisibility(View v, boolean visible) { - v.setVisibility(visible ? VISIBLE : GONE); - } - public static boolean isCallRunning(Call call) { if (call == null) { return false; @@ -413,44 +301,6 @@ public final class LinphoneUtils { return true; } - public static String getNameFromFilePath(String filePath) { - String name = filePath; - int i = filePath.lastIndexOf('/'); - if (i > 0) { - name = filePath.substring(i + 1); - } - return name; - } - - public static String getExtensionFromFileName(String fileName) { - String extension = null; - int i = fileName.lastIndexOf('.'); - if (i > 0) { - extension = fileName.substring(i + 1); - } - return extension; - } - - public static Boolean isExtensionImage(String path) { - String extension = LinphoneUtils.getExtensionFromFileName(path); - if (extension != null) - extension = extension.toLowerCase(); - return (extension != null && extension.matches("(png|jpg|jpeg|bmp|gif)")); - } - - public static void recursiveFileRemoval(File root) { - if (!root.delete()) { - if (root.isDirectory()) { - File[] files = root.listFiles(); - if (files != null) { - for (File f : files) { - recursiveFileRemoval(f); - } - } - } - } - } - public static String getDisplayableUsernameFromAddress(String sipAddress) { String username = sipAddress; Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); @@ -496,12 +346,6 @@ public final class LinphoneUtils { return sipAddress; } - private static Context getContext() { - if (context == null && LinphoneManager.isInstanciated()) - context = LinphoneManager.getInstance().getContext(); - return context; - } - public static void displayError(boolean isOk, TextView error, String errorText) { if (isOk) { error.setVisibility(View.INVISIBLE); @@ -618,129 +462,6 @@ public final class LinphoneUtils { } } - - public static String getFilePath(final Context context, final Uri uri) { - if (uri == null) return null; - - String result = null; - String name = getNameFromUri(uri, context); - - try { - File localFile = createFile(context, name); - InputStream remoteFile = context.getContentResolver().openInputStream(uri); - - if (copyToFile(remoteFile, localFile)) { - result = localFile.getAbsolutePath(); - } - - remoteFile.close(); - } catch (IOException e) { - Log.e("Enable to get sharing file", e); - } - - return result; - } - - private static String getNameFromUri(Uri uri, Context context) { - String name = null; - if (uri.getScheme().equals("content")) { - Cursor returnCursor = context.getContentResolver().query(uri, null, null, null, null); - if (returnCursor != null) { - returnCursor.moveToFirst(); - int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); - name = returnCursor.getString(nameIndex); - returnCursor.close(); - } - } else if (uri.getScheme().equals("file")) { - name = uri.getLastPathSegment(); - } - return name; - } - - /** - * Copy data from a source stream to destFile. - * Return true if succeed, return false if failed. - */ - private static boolean copyToFile(InputStream inputStream, File destFile) { - if (inputStream == null || destFile == null) return false; - try { - OutputStream out = new FileOutputStream(destFile); - try { - byte[] buffer = new byte[4096]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) >= 0) { - out.write(buffer, 0, bytesRead); - } - } finally { - out.close(); - } - return true; - } catch (IOException e) { - return false; - } - } - - public static String getStartDate() { - try { - return new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.ROOT).format(new Date()); - } catch (RuntimeException e) { - return new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()); - } - } - - public static File createFile(Context context, String fileName) throws IOException { - if (TextUtils.isEmpty(fileName)) - fileName = getStartDate(); - - if (!fileName.contains(".")) { - fileName = fileName + ".unknown"; - } - - final File root; - root = context.getExternalCacheDir(); - - if (root != null && !root.exists()) - root.mkdirs(); - return new File(root, fileName); - } - - public static String getRealPathFromURI(Context context, Uri contentUri) { - String[] proj = {MediaStore.Images.Media.DATA}; - Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null); - if (cursor != null && cursor.moveToFirst()) { - int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); - String result = cursor.getString(column_index); - cursor.close(); - return result; - } - return null; - } - - public static String getContactNameFromVcard(String vcard) { - if (vcard != null) { - String contactName = vcard.substring(vcard.indexOf("FN:") + 3); - contactName = contactName.substring(0, contactName.indexOf("\n") - 1); - contactName = contactName.replace(";", ""); - contactName = contactName.replace(" ", ""); - return contactName; - } - return null; - } - - public static Uri createCvsFromString(String vcardString) { - String contactName = getContactNameFromVcard(vcardString); - File vcfFile = new File(Environment.getExternalStorageDirectory(), contactName + ".cvs"); - try { - FileWriter fw = new FileWriter(vcfFile); - fw.write(vcardString); - fw.close(); - return Uri.fromFile(vcfFile); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - public static Spanned getTextWithHttpLinks(String text) { if (text == null) return null; @@ -771,32 +492,6 @@ public final class LinphoneUtils { return Html.fromHtml(text); } - public static Uri getCVSPathFromLookupUri(String content) { - String contactId = LinphoneUtils.getNameFromFilePath(content); - FriendList[] friendList = LinphoneManager.getLc().getFriendsLists(); - for (FriendList list : friendList) { - for (Friend friend : list.getFriends()) { - if (friend.getRefKey().toString().equals(contactId)) { - String contactVcard = friend.getVcard().asVcard4String(); - Uri path = LinphoneUtils.createCvsFromString(contactVcard); - return path; - } - } - } - return null; - } - - public static String getStorageDirectory(Context mContext) { - String storageDir = Environment.getExternalStorageDirectory() + "/" + mContext.getString(mContext.getResources().getIdentifier("app_name", "string", mContext.getPackageName())); - File file = new File(storageDir); - if (!file.isDirectory() || !file.exists()) { - Log.w("Directory " + file + " doesn't seem to exists yet, let's create it"); - file.mkdirs(); - LinphoneManager.getInstance().getMediaScanner().scanFile(file); - } - return storageDir; - } - public static void hideKeyboard(Activity activity) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); View view = activity.getCurrentFocus(); @@ -806,56 +501,10 @@ public final class LinphoneUtils { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } - public static void scanFile(ChatMessage message) { - String appData = message.getAppdata(); - if (appData == null) { - for (Content c : message.getContents()) { - if (c.isFile()) { - appData = c.getFilePath(); - } - } - } - LinphoneManager.getInstance().getMediaScanner().scanFile(new File(appData)); - } - - public static Bitmap getRoundBitmapFromUri(Context context, Uri fromPictureUri) { - Bitmap bm; - Bitmap roundBm; - if (fromPictureUri != null) { - try { - bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), fromPictureUri); - } catch (Exception e) { - bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); - } - } else { - bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.topbar_avatar); - } - if (bm != null) { - roundBm = LinphoneUtils.getRoundBitmap(bm); - if (roundBm != null) { - bm.recycle(); - bm = roundBm; - } - } - return bm; - } - - public static Bitmap getRoundBitmap(Bitmap bitmap) { - Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(output); - - final int color = 0xff424242; - final Paint paint = new Paint(); - final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); - - paint.setAntiAlias(true); - canvas.drawARGB(0, 0, 0, 0); - paint.setColor(color); - canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint); - paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); - canvas.drawBitmap(bitmap, rect, rect, paint); - - return output; + private static Context getContext() { + if (context == null && LinphoneManager.isInstanciated()) + context = LinphoneManager.getInstance().getContext(); + return context; } } diff --git a/app/src/main/java/org/linphone/ui/ListSelectionAdapter.java b/app/src/main/java/org/linphone/utils/ListSelectionAdapter.java similarity index 98% rename from app/src/main/java/org/linphone/ui/ListSelectionAdapter.java rename to app/src/main/java/org/linphone/utils/ListSelectionAdapter.java index 8bcc7a131..85bf6d0cd 100644 --- a/app/src/main/java/org/linphone/ui/ListSelectionAdapter.java +++ b/app/src/main/java/org/linphone/utils/ListSelectionAdapter.java @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.linphone.ui; +package org.linphone.utils; import android.widget.BaseAdapter; import android.widget.CompoundButton; diff --git a/app/src/main/java/org/linphone/ui/ListSelectionHelper.java b/app/src/main/java/org/linphone/utils/ListSelectionHelper.java similarity index 98% rename from app/src/main/java/org/linphone/ui/ListSelectionHelper.java rename to app/src/main/java/org/linphone/utils/ListSelectionHelper.java index 5c4574a82..274855edf 100644 --- a/app/src/main/java/org/linphone/ui/ListSelectionHelper.java +++ b/app/src/main/java/org/linphone/utils/ListSelectionHelper.java @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.linphone.ui; +package org.linphone.utils; import android.app.Dialog; import android.content.Context; @@ -27,7 +27,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; public class ListSelectionHelper { private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton; diff --git a/app/src/main/java/org/linphone/ui/SelectableAdapter.java b/app/src/main/java/org/linphone/utils/SelectableAdapter.java similarity index 99% rename from app/src/main/java/org/linphone/ui/SelectableAdapter.java rename to app/src/main/java/org/linphone/utils/SelectableAdapter.java index fa1f490de..3267a1098 100644 --- a/app/src/main/java/org/linphone/ui/SelectableAdapter.java +++ b/app/src/main/java/org/linphone/utils/SelectableAdapter.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.utils; /* SelectableAdapter.java diff --git a/app/src/main/java/org/linphone/ui/SelectableHelper.java b/app/src/main/java/org/linphone/utils/SelectableHelper.java similarity index 98% rename from app/src/main/java/org/linphone/ui/SelectableHelper.java rename to app/src/main/java/org/linphone/utils/SelectableHelper.java index c58d89a3b..23f406389 100644 --- a/app/src/main/java/org/linphone/ui/SelectableHelper.java +++ b/app/src/main/java/org/linphone/utils/SelectableHelper.java @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.linphone.ui; +package org.linphone.utils; import android.app.Dialog; import android.content.Context; @@ -28,7 +28,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import org.linphone.R; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; public class SelectableHelper { private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton; diff --git a/app/src/main/java/org/linphone/ui/AddressAware.java b/app/src/main/java/org/linphone/views/AddressAware.java similarity index 96% rename from app/src/main/java/org/linphone/ui/AddressAware.java rename to app/src/main/java/org/linphone/views/AddressAware.java index e943a09ee..15dc50094 100644 --- a/app/src/main/java/org/linphone/ui/AddressAware.java +++ b/app/src/main/java/org/linphone/views/AddressAware.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* AddressAwareWidget.java diff --git a/app/src/main/java/org/linphone/ui/AddressText.java b/app/src/main/java/org/linphone/views/AddressText.java similarity index 99% rename from app/src/main/java/org/linphone/ui/AddressText.java rename to app/src/main/java/org/linphone/views/AddressText.java index 4a85202c1..09c46db55 100644 --- a/app/src/main/java/org/linphone/ui/AddressText.java +++ b/app/src/main/java/org/linphone/views/AddressText.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* AddressView.java diff --git a/app/src/main/java/org/linphone/ui/CallButton.java b/app/src/main/java/org/linphone/views/CallButton.java similarity index 97% rename from app/src/main/java/org/linphone/ui/CallButton.java rename to app/src/main/java/org/linphone/views/CallButton.java index abbceeb4f..e53a660b8 100644 --- a/app/src/main/java/org/linphone/ui/CallButton.java +++ b/app/src/main/java/org/linphone/views/CallButton.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* CallButton.java @@ -28,7 +28,7 @@ import android.widget.ImageView; import android.widget.Toast; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.R; import org.linphone.core.Call; import org.linphone.core.CallLog; diff --git a/app/src/main/java/org/linphone/ui/CallIncomingAnswerButton.java b/app/src/main/java/org/linphone/views/CallIncomingAnswerButton.java similarity index 99% rename from app/src/main/java/org/linphone/ui/CallIncomingAnswerButton.java rename to app/src/main/java/org/linphone/views/CallIncomingAnswerButton.java index baf8fc994..2fbb2b207 100644 --- a/app/src/main/java/org/linphone/ui/CallIncomingAnswerButton.java +++ b/app/src/main/java/org/linphone/views/CallIncomingAnswerButton.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* CallIncomingAnswerButton.java diff --git a/app/src/main/java/org/linphone/ui/CallIncomingButtonListener.java b/app/src/main/java/org/linphone/views/CallIncomingButtonListener.java similarity index 96% rename from app/src/main/java/org/linphone/ui/CallIncomingButtonListener.java rename to app/src/main/java/org/linphone/views/CallIncomingButtonListener.java index 738baba16..57dd3c7f0 100644 --- a/app/src/main/java/org/linphone/ui/CallIncomingButtonListener.java +++ b/app/src/main/java/org/linphone/views/CallIncomingButtonListener.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* CallIncomingButtonListener.java diff --git a/app/src/main/java/org/linphone/ui/CallIncomingDeclineButton.java b/app/src/main/java/org/linphone/views/CallIncomingDeclineButton.java similarity index 99% rename from app/src/main/java/org/linphone/ui/CallIncomingDeclineButton.java rename to app/src/main/java/org/linphone/views/CallIncomingDeclineButton.java index f775ccc01..022cfc446 100644 --- a/app/src/main/java/org/linphone/ui/CallIncomingDeclineButton.java +++ b/app/src/main/java/org/linphone/views/CallIncomingDeclineButton.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* CallIncomingDeclineButton.java diff --git a/app/src/main/java/org/linphone/ui/ContactAvatar.java b/app/src/main/java/org/linphone/views/ContactAvatar.java similarity index 97% rename from app/src/main/java/org/linphone/ui/ContactAvatar.java rename to app/src/main/java/org/linphone/views/ContactAvatar.java index 8447d5169..14fbe2fad 100644 --- a/app/src/main/java/org/linphone/ui/ContactAvatar.java +++ b/app/src/main/java/org/linphone/views/ContactAvatar.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* ContactAvatar.java @@ -26,7 +26,8 @@ import android.widget.ImageView; import android.widget.TextView; import org.linphone.LinphoneService; -import org.linphone.LinphoneUtils; +import org.linphone.utils.ImageUtils; +import org.linphone.utils.LinphoneUtils; import org.linphone.R; import org.linphone.contacts.LinphoneContact; import org.linphone.core.ChatRoomSecurityLevel; @@ -120,7 +121,7 @@ public class ContactAvatar { holder.init(); if (contact.getThumbnailUri() != null && contact.getThumbnailUri().getScheme().startsWith("http")) { - bm = LinphoneUtils.downloadBitmap(contact.getThumbnailUri()); + bm = ImageUtils.downloadBitmap(contact.getThumbnailUri()); } else { if (contact.getThumbnailUri() != null) { try { diff --git a/app/src/main/java/org/linphone/ui/ContactSelectView.java b/app/src/main/java/org/linphone/views/ContactSelectView.java similarity index 98% rename from app/src/main/java/org/linphone/ui/ContactSelectView.java rename to app/src/main/java/org/linphone/views/ContactSelectView.java index 7f840b462..58a24b96b 100644 --- a/app/src/main/java/org/linphone/ui/ContactSelectView.java +++ b/app/src/main/java/org/linphone/views/ContactSelectView.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* ContactSelectView.java diff --git a/app/src/main/java/org/linphone/ui/Digit.java b/app/src/main/java/org/linphone/views/Digit.java similarity index 98% rename from app/src/main/java/org/linphone/ui/Digit.java rename to app/src/main/java/org/linphone/views/Digit.java index 83c5bea5e..64db7ca5d 100644 --- a/app/src/main/java/org/linphone/ui/Digit.java +++ b/app/src/main/java/org/linphone/views/Digit.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* Digit.java @@ -30,7 +30,7 @@ import android.widget.Button; import android.widget.Toast; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.LinphoneService; import org.linphone.R; import org.linphone.call.CallActivity; diff --git a/app/src/main/java/org/linphone/ui/EraseButton.java b/app/src/main/java/org/linphone/views/EraseButton.java similarity index 98% rename from app/src/main/java/org/linphone/ui/EraseButton.java rename to app/src/main/java/org/linphone/views/EraseButton.java index dc6e7f441..2c35b7d94 100644 --- a/app/src/main/java/org/linphone/ui/EraseButton.java +++ b/app/src/main/java/org/linphone/views/EraseButton.java @@ -16,7 +16,7 @@ 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. */ -package org.linphone.ui; +package org.linphone.views; import android.annotation.SuppressLint; import android.content.Context; diff --git a/app/src/main/java/org/linphone/ui/LedPreference.java b/app/src/main/java/org/linphone/views/LedPreference.java similarity index 98% rename from app/src/main/java/org/linphone/ui/LedPreference.java rename to app/src/main/java/org/linphone/views/LedPreference.java index 418b9d521..62e7f9291 100644 --- a/app/src/main/java/org/linphone/ui/LedPreference.java +++ b/app/src/main/java/org/linphone/views/LedPreference.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* LedPreference.java diff --git a/app/src/main/java/org/linphone/ui/LinphoneOverlay.java b/app/src/main/java/org/linphone/views/LinphoneOverlay.java similarity index 98% rename from app/src/main/java/org/linphone/ui/LinphoneOverlay.java rename to app/src/main/java/org/linphone/views/LinphoneOverlay.java index 630703e2f..9e20ca845 100644 --- a/app/src/main/java/org/linphone/ui/LinphoneOverlay.java +++ b/app/src/main/java/org/linphone/views/LinphoneOverlay.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* LinphoneOverlay.java @@ -33,7 +33,7 @@ import android.view.WindowManager; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; -import org.linphone.activities.LinphoneActivity; +import org.linphone.LinphoneActivity; import org.linphone.core.Call; import org.linphone.core.CallParams; import org.linphone.mediastream.Version; diff --git a/app/src/main/java/org/linphone/ui/Numpad.java b/app/src/main/java/org/linphone/views/Numpad.java similarity index 99% rename from app/src/main/java/org/linphone/ui/Numpad.java rename to app/src/main/java/org/linphone/views/Numpad.java index 15aa1a609..e2bf799c2 100644 --- a/app/src/main/java/org/linphone/ui/Numpad.java +++ b/app/src/main/java/org/linphone/views/Numpad.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* NumpadView.java diff --git a/app/src/main/java/org/linphone/ui/SlidingDrawer.java b/app/src/main/java/org/linphone/views/SlidingDrawer.java similarity index 99% rename from app/src/main/java/org/linphone/ui/SlidingDrawer.java rename to app/src/main/java/org/linphone/views/SlidingDrawer.java index 5ea9af842..cc795cb17 100644 --- a/app/src/main/java/org/linphone/ui/SlidingDrawer.java +++ b/app/src/main/java/org/linphone/views/SlidingDrawer.java @@ -1,4 +1,4 @@ -package org.linphone.ui; +package org.linphone.views; /* * Copyright (C) 2008 The Android Open Source Project diff --git a/app/src/main/java/org/linphone/xmlrpc/XmlRpcHelper.java b/app/src/main/java/org/linphone/xmlrpc/XmlRpcHelper.java index a22a339a8..62aea2469 100644 --- a/app/src/main/java/org/linphone/xmlrpc/XmlRpcHelper.java +++ b/app/src/main/java/org/linphone/xmlrpc/XmlRpcHelper.java @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; +import org.linphone.settings.LinphonePreferences; import org.linphone.core.XmlRpcArgType; import org.linphone.core.XmlRpcRequest; import org.linphone.core.XmlRpcRequestListener; diff --git a/app/src/main/res/layout-land/call.xml b/app/src/main/res/layout-land/call.xml index 538c2bcb0..9208c06a0 100644 --- a/app/src/main/res/layout-land/call.xml +++ b/app/src/main/res/layout-land/call.xml @@ -414,7 +414,7 @@ android:layout_above="@id/main_bar" android:layout_marginBottom="60dp"> - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + +