Improved code storage

This commit is contained in:
Sylvain Berfini 2018-11-22 15:53:17 +01:00
parent 3810080c79
commit fd769231ac
91 changed files with 624 additions and 639 deletions

View file

@ -63,7 +63,7 @@
android:largeHeap="true"> android:largeHeap="true">
<activity <activity
android:name=".activities.LinphoneLauncherActivity" android:name=".LinphoneLauncherActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask" android:launchMode="singleTask"
android:label="@string/app_name" android:label="@string/app_name"
@ -115,7 +115,7 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".activities.LinphoneActivity" android:name=".LinphoneActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@style/NoTitle"> android:theme="@style/NoTitle">
<intent-filter> <intent-filter>
@ -292,7 +292,7 @@
android:resource="@xml/provider_paths"/> android:resource="@xml/provider_paths"/>
</provider> </provider>
<activity android:name=".activities.LinphoneGenericActivity"/> <activity android:name=".utils.LinphoneGenericActivity"/>
<receiver <receiver
android:name=".notifications.NotificationBroadcastReceiver" android:name=".notifications.NotificationBroadcastReceiver"

View file

@ -1,4 +1,4 @@
package org.linphone.activities; package org.linphone;
/* /*
LinphoneActivity.java LinphoneActivity.java
@ -62,12 +62,8 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager;
import org.linphone.LinphoneManager.AddressType; import org.linphone.LinphoneManager.AddressType;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils;
import org.linphone.R;
import org.linphone.assistant.AssistantActivity; import org.linphone.assistant.AssistantActivity;
import org.linphone.assistant.RemoteProvisioningLoginActivity; import org.linphone.assistant.RemoteProvisioningLoginActivity;
import org.linphone.call.CallActivity; import org.linphone.call.CallActivity;
@ -101,17 +97,19 @@ import org.linphone.core.ProxyConfig;
import org.linphone.core.Reason; import org.linphone.core.Reason;
import org.linphone.core.RegistrationState; import org.linphone.core.RegistrationState;
import org.linphone.fragments.AboutFragment; import org.linphone.fragments.AboutFragment;
import org.linphone.fragments.AccountPreferencesFragment; import org.linphone.settings.AccountPreferencesFragment;
import org.linphone.fragments.DialerFragment; import org.linphone.fragments.DialerFragment;
import org.linphone.fragments.EmptyFragment; import org.linphone.fragments.EmptyFragment;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.fragments.HistoryDetailFragment; import org.linphone.fragments.HistoryDetailFragment;
import org.linphone.fragments.HistoryListFragment; import org.linphone.fragments.HistoryListFragment;
import org.linphone.fragments.SettingsFragment; import org.linphone.settings.SettingsFragment;
import org.linphone.fragments.StatusFragment; import org.linphone.fragments.StatusFragment;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.purchase.InAppPurchaseActivity; import org.linphone.purchase.InAppPurchaseActivity;
import org.linphone.ui.AddressText; import org.linphone.views.AddressText;
import org.linphone.utils.LinphoneGenericActivity;
import org.linphone.utils.LinphoneUtils;
import org.linphone.xmlrpc.XmlRpcHelper; import org.linphone.xmlrpc.XmlRpcHelper;
import org.linphone.xmlrpc.XmlRpcListenerBase; import org.linphone.xmlrpc.XmlRpcListenerBase;

View file

@ -1,4 +1,4 @@
package org.linphone.activities; package org.linphone;
/* /*
LinphoneLauncherActivity.java LinphoneLauncherActivity.java
@ -27,14 +27,12 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.util.Log; import android.util.Log;
import org.linphone.LinphoneManager; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphonePreferences;
import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils;
import org.linphone.R;
import org.linphone.assistant.RemoteProvisioningActivity; import org.linphone.assistant.RemoteProvisioningActivity;
import org.linphone.call.CallActivity; import org.linphone.call.CallActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.utils.FileUtils;
import org.linphone.utils.LinphoneUtils;
import static android.content.Intent.ACTION_MAIN; import static android.content.Intent.ACTION_MAIN;
@ -133,7 +131,7 @@ public class LinphoneLauncherActivity extends Activity {
newIntent.putExtra("msgShared", stringFileShared); newIntent.putExtra("msgShared", stringFileShared);
} else { } else {
fileUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); fileUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
stringUriFileShared = LinphoneUtils.getFilePath(getBaseContext(), fileUri); stringUriFileShared = FileUtils.getFilePath(getBaseContext(), fileUri);
newIntent.putExtra("fileShared", stringUriFileShared); newIntent.putExtra("fileShared", stringUriFileShared);
} }
} else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) { } else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) {

View file

@ -29,7 +29,6 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources; import android.content.res.Resources;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent; import android.hardware.SensorEvent;
@ -54,7 +53,6 @@ import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.activities.LinphoneActivity;
import org.linphone.assistant.AssistantActivity; import org.linphone.assistant.AssistantActivity;
import org.linphone.call.CallActivity; import org.linphone.call.CallActivity;
import org.linphone.call.CallIncomingActivity; import org.linphone.call.CallIncomingActivity;
@ -112,7 +110,9 @@ import org.linphone.receivers.HookReceiver;
import org.linphone.receivers.KeepAliveReceiver; import org.linphone.receivers.KeepAliveReceiver;
import org.linphone.receivers.NetworkManager; import org.linphone.receivers.NetworkManager;
import org.linphone.receivers.OutgoingCallReceiver; import org.linphone.receivers.OutgoingCallReceiver;
import org.linphone.ui.LinphoneMediaScanner; import org.linphone.settings.LinphonePreferences;
import org.linphone.utils.LinphoneMediaScanner;
import org.linphone.utils.LinphoneUtils;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;

View file

@ -36,7 +36,6 @@ import android.os.SystemClock;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.view.WindowManager; import android.view.WindowManager;
import org.linphone.activities.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.Call.State; import org.linphone.core.Call.State;
@ -51,7 +50,9 @@ import org.linphone.mediastream.Version;
import org.linphone.notifications.NotificationsManager; import org.linphone.notifications.NotificationsManager;
import org.linphone.receivers.BluetoothManager; import org.linphone.receivers.BluetoothManager;
import org.linphone.receivers.KeepAliveReceiver; import org.linphone.receivers.KeepAliveReceiver;
import org.linphone.ui.LinphoneOverlay; import org.linphone.settings.LinphonePreferences;
import org.linphone.views.LinphoneOverlay;
import org.linphone.utils.LinphoneUtils;
import java.util.ArrayList; import java.util.ArrayList;

View file

@ -53,14 +53,13 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphonePreferences.AccountBuilder; import org.linphone.settings.LinphonePreferences.AccountBuilder;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.activities.LinphoneLauncherActivity; import org.linphone.LinphoneLauncherActivity;
import org.linphone.contacts.ContactsManager;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreatorListener; import org.linphone.core.AccountCreatorListener;
import org.linphone.core.Address; import org.linphone.core.Address;

View file

@ -29,7 +29,7 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreatorListener; import org.linphone.core.AccountCreatorListener;

View file

@ -33,7 +33,7 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreatorListener; import org.linphone.core.AccountCreatorListener;

View file

@ -42,8 +42,8 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreator.Status; import org.linphone.core.AccountCreator.Status;

View file

@ -28,7 +28,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreException; import org.linphone.core.CoreException;

View file

@ -41,10 +41,9 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.compatibility.Compatibility;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreatorListener; import org.linphone.core.AccountCreatorListener;
import org.linphone.core.DialPlan; import org.linphone.core.DialPlan;

View file

@ -30,10 +30,10 @@ import android.widget.ProgressBar;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneLauncherActivity; import org.linphone.LinphoneLauncherActivity;
import org.linphone.core.ConfiguringState; import org.linphone.core.ConfiguringState;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub; import org.linphone.core.CoreListenerStub;
@ -188,7 +188,7 @@ public class RemoteProvisioningActivity extends Activity {
private void goToLinphoneActivity() { private void goToLinphoneActivity() {
if (LinphoneService.isReady()) { if (LinphoneService.isReady()) {
LinphoneService.instance().setActivityToLaunchOnIncomingReceived("org.linphone.activities.LinphoneLauncherActivity"); LinphoneService.instance().setActivityToLaunchOnIncomingReceived("org.linphone.LinphoneLauncherActivity");
//finish(); // To prevent the user to come back to this page using back button //finish(); // To prevent the user to come back to this page using back button
startActivity(new Intent().setClass(this, LinphoneLauncherActivity.class)); startActivity(new Intent().setClass(this, LinphoneLauncherActivity.class));
} else { } else {

View file

@ -30,7 +30,7 @@ import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
public class RemoteProvisioningFragment extends Fragment implements OnClickListener, TextWatcher { public class RemoteProvisioningFragment extends Fragment implements OnClickListener, TextWatcher {

View file

@ -27,7 +27,7 @@ import android.widget.EditText;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.ConfiguringState; import org.linphone.core.ConfiguringState;
import org.linphone.core.Core; import org.linphone.core.Core;

View file

@ -1,4 +1,4 @@
package org.linphone; package org.linphone.call;
/* /*
BandwithManager.java BandwithManager.java

View file

@ -20,7 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import android.Manifest; import android.Manifest;
import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.app.Fragment; import android.app.Fragment;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
@ -60,12 +59,12 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.utils.ImageUtils;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.activities.LinphoneGenericActivity; import org.linphone.utils.LinphoneGenericActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
@ -87,7 +86,7 @@ import org.linphone.fragments.StatusFragment;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import org.linphone.receivers.BluetoothManager; import org.linphone.receivers.BluetoothManager;
import org.linphone.ui.Numpad; import org.linphone.views.Numpad;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Arrays; import java.util.Arrays;
@ -1336,7 +1335,7 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
} else { } else {
contactName.setText(lContact.getFullName()); contactName.setText(lContact.getFullName());
LinphoneUtils.setImagePictureFromUri(contactPicture.getContext(), contactPicture, lContact.getPhotoUri(), lContact.getThumbnailUri()); ImageUtils.setImagePictureFromUri(contactPicture.getContext(), contactPicture, lContact.getPhotoUri(), lContact.getThumbnailUri());
} }
} }

View file

@ -32,17 +32,17 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.CallLog; import org.linphone.core.CallLog;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import org.linphone.ui.SelectableAdapter; import org.linphone.utils.SelectableAdapter;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;

View file

@ -28,8 +28,6 @@ import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityCompat;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@ -37,12 +35,13 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.activities.LinphoneGenericActivity; import org.linphone.utils.LinphoneGenericActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
@ -52,9 +51,9 @@ import org.linphone.core.CallParams;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub; import org.linphone.core.CoreListenerStub;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.CallIncomingAnswerButton; import org.linphone.views.CallIncomingAnswerButton;
import org.linphone.ui.CallIncomingButtonListener; import org.linphone.views.CallIncomingButtonListener;
import org.linphone.ui.CallIncomingDeclineButton; import org.linphone.views.CallIncomingDeclineButton;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -182,7 +181,7 @@ public class CallIncomingActivity extends LinphoneGenericActivity {
Address address = mCall.getRemoteAddress(); Address address = mCall.getRemoteAddress();
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
if (contact != null) { if (contact != null) {
LinphoneUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); ImageUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri());
name.setText(contact.getFullName()); name.setText(contact.getFullName());
} else { } else {
name.setText(LinphoneUtils.getAddressDisplayName(address)); name.setText(LinphoneUtils.getAddressDisplayName(address));
@ -222,8 +221,7 @@ public class CallIncomingActivity extends LinphoneGenericActivity {
private void lookupCurrentCall() { private void lookupCurrentCall() {
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null) { if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null) {
List<Call> calls = LinphoneUtils.getCalls(LinphoneManager.getLc()); for (Call call : LinphoneManager.getLc().getCalls()) {
for (Call call : calls) {
if (State.IncomingReceived == call.getState()) { if (State.IncomingReceived == call.getState()) {
mCall = call; mCall = call;
break; break;

View file

@ -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. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import org.linphone.BandwidthManager;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Call; import org.linphone.core.Call;

View file

@ -36,11 +36,12 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.ImageUtils;
import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.activities.LinphoneGenericActivity; import org.linphone.utils.LinphoneGenericActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; 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 // Only one call ringing at a time is allowed
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null) { if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null) {
List<Call> calls = LinphoneUtils.getCalls(LinphoneManager.getLc()); for (Call call : LinphoneManager.getLc().getCalls()) {
for (Call call : calls) {
State cstate = call.getState(); State cstate = call.getState();
if (State.OutgoingInit == cstate || State.OutgoingProgress == cstate if (State.OutgoingInit == cstate || State.OutgoingProgress == cstate
|| State.OutgoingRinging == cstate || State.OutgoingEarlyMedia == cstate) { || State.OutgoingRinging == cstate || State.OutgoingEarlyMedia == cstate) {
@ -184,7 +184,7 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
Address address = mCall.getRemoteAddress(); Address address = mCall.getRemoteAddress();
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
if (contact != null) { if (contact != null) {
LinphoneUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); ImageUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri());
name.setText(contact.getFullName()); name.setText(contact.getFullName());
} else { } else {
name.setText(LinphoneUtils.getAddressDisplayName(address)); name.setText(LinphoneUtils.getAddressDisplayName(address));

View file

@ -27,7 +27,6 @@ import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener; import android.view.GestureDetector.OnGestureListener;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.Surface;
import android.view.TextureView; import android.view.TextureView;
import android.view.View; import android.view.View;
import android.view.View.OnTouchListener; import android.view.View.OnTouchListener;
@ -35,11 +34,10 @@ import android.view.ViewGroup;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.compatibility.Compatibility;
import org.linphone.compatibility.CompatibilityScaleGestureDetector; import org.linphone.compatibility.CompatibilityScaleGestureDetector;
import org.linphone.compatibility.CompatibilityScaleGestureListener; import org.linphone.compatibility.CompatibilityScaleGestureListener;
import org.linphone.core.Call; import org.linphone.core.Call;

View file

@ -24,8 +24,6 @@ import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -40,9 +38,9 @@ import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactAddress;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.contacts.ContactsUpdatedListener;
@ -54,7 +52,7 @@ import org.linphone.core.Core;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.ContactSelectView; import org.linphone.views.ContactSelectView;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -45,9 +45,10 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import org.linphone.LinphoneManager; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
@ -58,9 +59,9 @@ import org.linphone.core.Content;
import org.linphone.core.EventLog; import org.linphone.core.EventLog;
import org.linphone.core.LimeState; import org.linphone.core.LimeState;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import org.linphone.ui.SelectableAdapter; import org.linphone.utils.SelectableAdapter;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
@ -323,10 +324,10 @@ public class ChatEventsAdapter extends SelectableAdapter<ChatBubbleViewHolder> {
if (mContext.getPackageManager().checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, mContext.getPackageName()) == PackageManager.PERMISSION_GRANTED) { if (mContext.getPackageManager().checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, mContext.getPackageName()) == PackageManager.PERMISSION_GRANTED) {
v.setEnabled(false); v.setEnabled(false);
String filename = message.getFileTransferInformation().getName(); String filename = message.getFileTransferInformation().getName();
File file = new File(LinphoneUtils.getStorageDirectory(mContext), filename); File file = new File(FileUtils.getStorageDirectory(mContext), filename);
int prefix = 1; int prefix = 1;
while (file.exists()) { 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); Log.w("File with that name already exists, renamed to " + prefix + "_" + filename);
prefix += 1; prefix += 1;
} }
@ -537,9 +538,9 @@ public class ChatEventsAdapter extends SelectableAdapter<ChatBubbleViewHolder> {
} }
if (appData != null) { if (appData != null) {
LinphoneUtils.scanFile(message); FileUtils.scanFile(message);
holder.fileName.setText(LinphoneUtils.getNameFromFilePath(appData)); holder.fileName.setText(FileUtils.getNameFromFilePath(appData));
if (LinphoneUtils.isExtensionImage(appData)) { if (FileUtils.isExtensionImage(appData)) {
holder.messageImage.setVisibility(View.VISIBLE); holder.messageImage.setVisibility(View.VISIBLE);
loadBitmap(appData, holder.messageImage); loadBitmap(appData, holder.messageImage);
holder.messageImage.setTag(appData); holder.messageImage.setTag(appData);
@ -581,7 +582,7 @@ public class ChatEventsAdapter extends SelectableAdapter<ChatBubbleViewHolder> {
path = params[0]; path = params[0];
Bitmap bm = null; Bitmap bm = null;
Bitmap thumbnail = null; Bitmap thumbnail = null;
if (LinphoneUtils.isExtensionImage(path)) { if (FileUtils.isExtensionImage(path)) {
if (path.startsWith("content")) { if (path.startsWith("content")) {
try { try {
bm = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), Uri.parse(path)); bm = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), Uri.parse(path));

View file

@ -33,7 +33,7 @@ import android.widget.RelativeLayout;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.core.ChatMessage; import org.linphone.core.ChatMessage;
@ -45,7 +45,7 @@ import org.linphone.core.EventLog;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;

View file

@ -29,10 +29,8 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.utils.LinphoneUtils;
import org.linphone.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
@ -41,7 +39,7 @@ import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.ChatRoomCapabilities;
import org.linphone.core.Content; import org.linphone.core.Content;
import org.linphone.core.Participant; 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 { public class ChatRoomViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private Bitmap mDefaultBitmap; private Bitmap mDefaultBitmap;

View file

@ -26,8 +26,8 @@ import android.view.ViewGroup;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
import org.linphone.ui.SelectableAdapter; import org.linphone.utils.SelectableAdapter;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View file

@ -25,7 +25,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter; import android.widget.BaseExpandableListAdapter;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
@ -33,7 +33,7 @@ import org.linphone.core.Address;
import org.linphone.core.ChatRoomSecurityLevel; import org.linphone.core.ChatRoomSecurityLevel;
import org.linphone.core.Participant; import org.linphone.core.Participant;
import org.linphone.core.ParticipantDevice; import org.linphone.core.ParticipantDevice;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -30,9 +30,9 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;

View file

@ -56,13 +56,12 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.assistant.AssistantActivity;
import org.linphone.compatibility.Compatibility;
import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactAddress;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.contacts.ContactsUpdatedListener;
@ -82,7 +81,7 @@ import org.linphone.core.Participant;
import org.linphone.core.ParticipantDevice; import org.linphone.core.ParticipantDevice;
import org.linphone.core.Reason; import org.linphone.core.Reason;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -276,13 +275,13 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
if (getArguments() != null) { if (getArguments() != null) {
String fileSharedUri = getArguments().getString("fileSharedUri"); String fileSharedUri = getArguments().getString("fileSharedUri");
if (fileSharedUri != null) { if (fileSharedUri != null) {
if (LinphoneUtils.isExtensionImage(fileSharedUri)) { if (FileUtils.isExtensionImage(fileSharedUri)) {
addImageToPendingList(fileSharedUri); addImageToPendingList(fileSharedUri);
} else { } else {
if (fileSharedUri.startsWith("content://") || fileSharedUri.startsWith("file://")) { 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/")) { } else if (fileSharedUri.contains("com.android.contacts/contacts/")) {
fileSharedUri = LinphoneUtils.getCVSPathFromLookupUri(fileSharedUri).toString(); fileSharedUri = FileUtils.getCVSPathFromLookupUri(fileSharedUri).toString();
} }
addFileToPendingList(fileSharedUri); addFileToPendingList(fileSharedUri);
} }
@ -350,14 +349,14 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
String fileToUploadPath = null; String fileToUploadPath = null;
if (data != null && data.getData() != null) { if (data != null && data.getData() != null) {
if (data.getData().toString().contains("com.android.contacts/contacts/")) { if (data.getData().toString().contains("com.android.contacts/contacts/")) {
if (LinphoneUtils.getCVSPathFromLookupUri(data.getData().toString()) != null) { if (FileUtils.getCVSPathFromLookupUri(data.getData().toString()) != null) {
fileToUploadPath = LinphoneUtils.getCVSPathFromLookupUri(data.getData().toString()).toString(); fileToUploadPath = FileUtils.getCVSPathFromLookupUri(data.getData().toString()).toString();
} else { } else {
//TODO Error //TODO Error
return; return;
} }
} else { } else {
fileToUploadPath = LinphoneUtils.getRealPathFromURI(getActivity(), data.getData()); fileToUploadPath = FileUtils.getRealPathFromURI(getActivity(), data.getData());
} }
if (fileToUploadPath == null) { if (fileToUploadPath == null) {
fileToUploadPath = data.getData().toString(); fileToUploadPath = data.getData().toString();
@ -367,12 +366,12 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
if (fileToUploadPath.startsWith("content://") || fileToUploadPath.startsWith("file://")) { 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/")) { } 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); addImageToPendingList(fileToUploadPath);
} else { } else {
addFileToPendingList(fileToUploadPath); addFileToPendingList(fileToUploadPath);
@ -381,7 +380,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }
} else { } else {
if (LinphoneUtils.isExtensionImage(mImageToUploadUri.getPath())) { if (FileUtils.isExtensionImage(mImageToUploadUri.getPath())) {
addImageToPendingList(mImageToUploadUri.getPath()); addImageToPendingList(mImageToUploadUri.getPath());
} }
} }
@ -768,7 +767,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
String files[] = savedInstanceState.getStringArray("Files"); String files[] = savedInstanceState.getStringArray("Files");
if (files.length > 0) { if (files.length > 0) {
for (String file : files) { for (String file : files) {
if (LinphoneUtils.isExtensionImage(file)) { if (FileUtils.isExtensionImage(file)) {
addImageToPendingList(file); addImageToPendingList(file);
} else { } else {
addFileToPendingList(file); addFileToPendingList(file);
@ -780,7 +779,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
private void pickFile() { private void pickFile() {
List<Intent> cameraIntents = new ArrayList<>(); List<Intent> cameraIntents = new ArrayList<>();
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 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); mImageToUploadUri = Uri.fromFile(file);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageToUploadUri); captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageToUploadUri);
cameraIntents.add(captureIntent); cameraIntents.add(captureIntent);
@ -880,9 +879,9 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
for (int i = 0; i < mFilesUploadLayout.getChildCount(); i++) { for (int i = 0; i < mFilesUploadLayout.getChildCount(); i++) {
String filePath = (String) mFilesUploadLayout.getChildAt(i).getTag(); String filePath = (String) mFilesUploadLayout.getChildAt(i).getTag();
String fileName = filePath.substring(filePath.lastIndexOf("/") + 1); String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
String extension = LinphoneUtils.getExtensionFromFileName(fileName); String extension = FileUtils.getExtensionFromFileName(fileName);
Content content = Factory.instance().createContent(); Content content = Factory.instance().createContent();
if (LinphoneUtils.isExtensionImage(fileName)) { if (FileUtils.isExtensionImage(fileName)) {
content.setType("image"); content.setType("image");
} else { } else {
content.setType("file"); content.setType("file");

View file

@ -29,15 +29,13 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity;
import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactAddress;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.ChatRoomCapabilities;
import org.linphone.core.Participant; import org.linphone.core.Participant;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -39,9 +39,9 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactAddress;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;

View file

@ -33,10 +33,10 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.utils.FileUtils;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
@ -47,7 +47,7 @@ import org.linphone.core.ChatRoom;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.ParticipantImdnState; import org.linphone.core.ParticipantImdnState;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
public class ImdnFragment extends Fragment { public class ImdnFragment extends Fragment {
private LayoutInflater mInflater; private LayoutInflater mInflater;
@ -185,7 +185,7 @@ public class ImdnFragment extends Fragment {
String appData = mMessage.getAppdata(); String appData = mMessage.getAppdata();
if (appData != null) { // Something to display if (appData != null) { // Something to display
mBubble.fileName.setVisibility(View.VISIBLE); 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 // We purposely chose not to display the image
} }

View file

@ -36,10 +36,11 @@ import android.widget.TableLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.ImageUtils;
import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomListenerStub; import org.linphone.core.ChatRoomListenerStub;
@ -173,7 +174,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
private void displayContact(LayoutInflater inflater, View view) { private void displayContact(LayoutInflater inflater, View view) {
ImageView contactPicture = view.findViewById(R.id.contact_picture); ImageView contactPicture = view.findViewById(R.id.contact_picture);
if (contact.hasPhoto()) { if (contact.hasPhoto()) {
LinphoneUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); ImageUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri());
} else { } else {
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
} }

View file

@ -30,7 +30,6 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.os.Parcelable; import android.os.Parcelable;
import android.provider.ContactsContract.DisplayPhoto; import android.provider.ContactsContract.DisplayPhoto;
import android.provider.MediaStore; import android.provider.MediaStore;
@ -49,9 +48,11 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import org.linphone.LinphoneManager; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.mediastream.Version; import org.linphone.mediastream.Version;
@ -269,7 +270,7 @@ public class ContactEditorFragment extends Fragment {
contactPicture = view.findViewById(R.id.contact_picture); contactPicture = view.findViewById(R.id.contact_picture);
if (contact != null) { if (contact != null) {
LinphoneUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); ImageUtils.setImagePictureFromUri(getActivity(), contactPicture, contact.getPhotoUri(), contact.getThumbnailUri());
} else { } else {
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
} }
@ -340,7 +341,7 @@ public class ContactEditorFragment extends Fragment {
pickedPhotoForContactUri = null; pickedPhotoForContactUri = null;
final List<Intent> cameraIntents = new ArrayList<>(); final List<Intent> cameraIntents = new ArrayList<>();
final Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 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); pickedPhotoForContactUri = Uri.fromFile(file);
captureIntent.putExtra("outputX", PHOTO_SIZE); captureIntent.putExtra("outputX", PHOTO_SIZE);
captureIntent.putExtra("outputY", PHOTO_SIZE); captureIntent.putExtra("outputY", PHOTO_SIZE);
@ -380,7 +381,7 @@ public class ContactEditorFragment extends Fragment {
String filePath = pickedPhotoForContactUri.getPath(); String filePath = pickedPhotoForContactUri.getPath();
editContactPicture(filePath, null); editContactPicture(filePath, null);
} else { } 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()) { if (file.exists()) {
pickedPhotoForContactUri = Uri.fromFile(file); pickedPhotoForContactUri = Uri.fromFile(file);
String filePath = pickedPhotoForContactUri.getPath(); String filePath = pickedPhotoForContactUri.getPath();

View file

@ -32,13 +32,11 @@ import android.widget.RelativeLayout;
import android.widget.SectionIndexer; import android.widget.SectionIndexer;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import org.linphone.ui.SelectableAdapter; import org.linphone.utils.SelectableAdapter;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;

View file

@ -26,8 +26,6 @@ import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -40,9 +38,9 @@ import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -37,9 +37,9 @@ import android.provider.ContactsContract;
import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Data;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Core; import org.linphone.core.Core;

View file

@ -31,14 +31,14 @@ import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Factory; import org.linphone.core.Factory;
import org.linphone.core.PresenceBasicStatus; import org.linphone.core.PresenceBasicStatus;
import org.linphone.core.PresenceModel; import org.linphone.core.PresenceModel;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
import org.linphone.core.SearchResult; import org.linphone.core.SearchResult;
import org.linphone.ui.ContactAvatar; import org.linphone.views.ContactAvatar;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -22,8 +22,8 @@ package org.linphone.firebase;
import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService; import com.google.firebase.iid.FirebaseInstanceIdService;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
public class FirebaseIdService extends FirebaseInstanceIdService { public class FirebaseIdService extends FirebaseInstanceIdService {
@Override @Override

View file

@ -26,7 +26,7 @@ import com.google.firebase.messaging.RemoteMessage;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import static android.content.Intent.ACTION_MAIN; import static android.content.Intent.ACTION_MAIN;

View file

@ -22,7 +22,6 @@ import android.app.Fragment;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
@ -37,10 +36,10 @@ import android.widget.TextView;
import org.linphone.BuildConfig; import org.linphone.BuildConfig;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.Core.LogCollectionUploadState; import org.linphone.core.Core.LogCollectionUploadState;
import org.linphone.core.CoreListenerStub; import org.linphone.core.CoreListenerStub;

View file

@ -34,14 +34,14 @@ import android.widget.LinearLayout;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.AddressAware; import org.linphone.views.AddressAware;
import org.linphone.ui.AddressText; import org.linphone.views.AddressText;
import org.linphone.ui.CallButton; import org.linphone.views.CallButton;
import org.linphone.ui.EraseButton; import org.linphone.views.EraseButton;
public class DialerFragment extends Fragment { public class DialerFragment extends Fragment {
private static DialerFragment instance; private static DialerFragment instance;

View file

@ -31,10 +31,11 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneUtils; import org.linphone.utils.ImageUtils;
import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
@ -149,7 +150,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
contact = ContactsManager.getInstance().findContactFromAddress(lAddress); contact = ContactsManager.getInstance().findContactFromAddress(lAddress);
if (contact != null) { if (contact != null) {
contactName.setText(contact.getFullName()); 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); addToContacts.setVisibility(View.GONE);
goToContact.setVisibility(View.VISIBLE); goToContact.setVisibility(View.VISIBLE);
} else { } else {

View file

@ -36,14 +36,14 @@ import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.call.CallHistoryAdapter; import org.linphone.call.CallHistoryAdapter;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.CallLog; import org.linphone.core.CallLog;
import org.linphone.ui.SelectableHelper; import org.linphone.utils.SelectableHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View file

@ -21,7 +21,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.app.Fragment; import android.app.Fragment;
import android.app.KeyguardManager;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@ -39,10 +38,10 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.assistant.AssistantActivity; import org.linphone.assistant.AssistantActivity;
import org.linphone.call.CallActivity; import org.linphone.call.CallActivity;
import org.linphone.core.Call; import org.linphone.core.Call;

View file

@ -30,7 +30,7 @@ import android.os.Bundle;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Call; import org.linphone.core.Call;

View file

@ -29,11 +29,12 @@ import android.graphics.BitmapFactory;
import android.net.Uri; import android.net.Uri;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
@ -135,7 +136,7 @@ public class NotificationsManager {
notifIntent.putExtra("ChatContactSipUri", conferenceAddress); notifIntent.putExtra("ChatContactSipUri", conferenceAddress);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT); 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); Notifiable notif = mChatNotifMap.get(conferenceAddress);
NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp); NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp);
if (notif == null) { if (notif == null) {
@ -166,7 +167,7 @@ public class NotificationsManager {
fromName = fromSipUri; fromName = fromSipUri;
} }
Bitmap bm = LinphoneUtils.getRoundBitmapFromUri(mContext, fromPictureUri); Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, fromPictureUri);
Notifiable notif = mChatNotifMap.get(fromSipUri); Notifiable notif = mChatNotifMap.get(fromSipUri);
NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp); NotifiableMessage notifMessage = new NotifiableMessage(message, fromName, timestamp);
if (notif == null) { if (notif == null) {
@ -260,7 +261,7 @@ public class NotificationsManager {
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
Uri pictureUri = contact != null ? contact.getPhotoUri() : null; Uri pictureUri = contact != null ? contact.getPhotoUri() : null;
Bitmap bm = LinphoneUtils.getRoundBitmapFromUri(mContext, pictureUri); Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, pictureUri);
String name = LinphoneUtils.getAddressDisplayName(address); String name = LinphoneUtils.getAddressDisplayName(address);
boolean showAnswerAction = call.getState() == Call.State.IncomingReceived || call.getState() == Call.State.IncomingEarlyMedia; boolean showAnswerAction = call.getState() == Call.State.IncomingReceived || call.getState() == Call.State.IncomingEarlyMedia;

View file

@ -30,7 +30,7 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.xmlrpc.XmlRpcHelper; import org.linphone.xmlrpc.XmlRpcHelper;

View file

@ -31,7 +31,7 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;

View file

@ -37,7 +37,7 @@ import com.android.vending.billing.IInAppBillingService;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.xmlrpc.XmlRpcHelper; import org.linphone.xmlrpc.XmlRpcHelper;
import org.linphone.xmlrpc.XmlRpcListenerBase; import org.linphone.xmlrpc.XmlRpcListenerBase;

View file

@ -24,7 +24,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
public class AccountEnableReceiver extends BroadcastReceiver { public class AccountEnableReceiver extends BroadcastReceiver {
private static final String TAG = "AccountEnableReceiver"; private static final String TAG = "AccountEnableReceiver";

View file

@ -24,7 +24,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;

View file

@ -25,9 +25,9 @@ import android.os.Build;
import android.os.PowerManager; import android.os.PowerManager;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;

View file

@ -27,11 +27,10 @@ import android.content.Intent;
import android.os.SystemClock; import android.os.SystemClock;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.compatibility.Compatibility;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;

View file

@ -24,7 +24,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;

View file

@ -1,4 +1,4 @@
package org.linphone.fragments; package org.linphone.settings;
/* /*
AccountPreferencesFragment.java AccountPreferencesFragment.java
Copyright (C) 2017 Belledonne Communications, Grenoble, France Copyright (C) 2017 Belledonne Communications, Grenoble, France
@ -32,19 +32,18 @@ import android.preference.PreferenceScreen;
import android.view.WindowManager; import android.view.WindowManager;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences.AccountBuilder;
import org.linphone.LinphonePreferences.AccountBuilder; import org.linphone.utils.LinphoneUtils;
import org.linphone.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.assistant.AssistantActivity; import org.linphone.assistant.AssistantActivity;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.AccountCreatorListener; import org.linphone.core.AccountCreatorListener;
import org.linphone.core.CoreException; import org.linphone.core.CoreException;
import org.linphone.core.NatPolicy; import org.linphone.core.NatPolicy;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
import org.linphone.fragments.FragmentsAvailable;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.ui.PreferencesListFragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package org.linphone; package org.linphone.settings;
/* /*
LinphonePreferences.java LinphonePreferences.java
@ -23,6 +23,9 @@ import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; 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.AVPFMode;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.AuthInfo; import org.linphone.core.AuthInfo;
@ -1553,7 +1556,7 @@ public class LinphonePreferences {
} }
public String getActivityToLaunchOnIncomingReceived() { 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) { public void setActivityToLaunchOnIncomingReceived(String name) {

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.settings;
/* /*
PreferencesListFragment.java PreferencesListFragment.java

View file

@ -1,4 +1,4 @@
package org.linphone.fragments; package org.linphone.settings;
/* /*
SettingsFragment.java SettingsFragment.java
@ -41,11 +41,11 @@ import android.preference.PreferenceScreen;
import android.provider.Settings; import android.provider.Settings;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences;
import org.linphone.LinphoneService; 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.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreException; import org.linphone.core.CoreException;
@ -59,11 +59,11 @@ import org.linphone.core.ProxyConfig;
import org.linphone.core.RegistrationState; import org.linphone.core.RegistrationState;
import org.linphone.core.VideoDefinition; import org.linphone.core.VideoDefinition;
import org.linphone.core.tools.OpenH264DownloadHelper; import org.linphone.core.tools.OpenH264DownloadHelper;
import org.linphone.fragments.FragmentsAvailable;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.mediastream.Version; import org.linphone.mediastream.Version;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import org.linphone.ui.LedPreference; import org.linphone.views.LedPreference;
import org.linphone.ui.PreferencesListFragment;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -142,7 +142,7 @@ public class SettingsFragment extends PreferencesListFragment {
editor.apply(); editor.apply();
File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs"); File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs");
LinphoneUtils.recursiveFileRemoval(dir); FileUtils.recursiveFileRemoval(dir);
} }
// Inits the values or the listener on some settings // Inits the values or the listener on some settings

View file

@ -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());
}
}
}

View file

@ -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;
}
}

View file

@ -1,4 +1,4 @@
package org.linphone.activities; package org.linphone.utils;
/* /*
LinphoneGenericActivity.java LinphoneGenericActivity.java
@ -24,6 +24,7 @@ import android.os.Bundle;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.LinphoneLauncherActivity;
public class LinphoneGenericActivity extends Activity { public class LinphoneGenericActivity extends Activity {

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.utils;
import android.content.Context; import android.content.Context;
import android.media.MediaScannerConnection; import android.media.MediaScannerConnection;

View file

@ -1,4 +1,4 @@
package org.linphone; package org.linphone.utils;
/* /*
LinphoneUtils.java LinphoneUtils.java
@ -24,36 +24,24 @@ import android.app.AlertDialog;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.content.Context; import android.content.Context;
import android.content.Intent; 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.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.provider.MediaStore;
import android.provider.OpenableColumns;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.Html; import android.text.Html;
import android.text.Spanned; import android.text.Spanned;
import android.text.TextUtils;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView; 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.contacts.ContactsManager;
import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreator;
import org.linphone.core.Address; import org.linphone.core.Address;
@ -72,29 +60,16 @@ import org.linphone.core.LoggingServiceListener;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
import org.linphone.mediastream.Log; import org.linphone.mediastream.Log;
import org.linphone.mediastream.video.capture.hwconf.Hacks; 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.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
/** /**
* Helpers. * Helpers.
*/ */
@ -217,8 +192,8 @@ public final class LinphoneUtils {
return true; return true;
} }
public static String timestampToHumanDate(Context context, long timestamp, int resFormat) { public static String timestampToHumanDate(Context context, long timestamp, int format) {
return LinphoneUtils.timestampToHumanDate(context, timestamp, context.getString(resFormat)); return timestampToHumanDate(context, timestamp, context.getString(format));
} }
public static String timestampToHumanDate(Context context, long timestamp, String format) { public static String timestampToHumanDate(Context context, long timestamp, String format) {
@ -270,88 +245,9 @@ public final class LinphoneUtils {
return true; 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<Call> getCalls(Core lc) {
// return a modifiable list
return new ArrayList<>(Arrays.asList(lc.getCalls()));
}
public static final List<Call> getCallsInState(Core lc, Collection<State> states) { public static final List<Call> getCallsInState(Core lc, Collection<State> states) {
List<Call> foundCalls = new ArrayList<>(); List<Call> foundCalls = new ArrayList<>();
for (Call call : getCalls(lc)) { for (Call call : lc.getCalls()) {
if (states.contains(call.getState())) { if (states.contains(call.getState())) {
foundCalls.add(call); foundCalls.add(call);
} }
@ -359,14 +255,6 @@ public final class LinphoneUtils {
return foundCalls; 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) { public static boolean isCallRunning(Call call) {
if (call == null) { if (call == null) {
return false; return false;
@ -413,44 +301,6 @@ public final class LinphoneUtils {
return true; 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) { public static String getDisplayableUsernameFromAddress(String sipAddress) {
String username = sipAddress; String username = sipAddress;
Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
@ -496,12 +346,6 @@ public final class LinphoneUtils {
return sipAddress; 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) { public static void displayError(boolean isOk, TextView error, String errorText) {
if (isOk) { if (isOk) {
error.setVisibility(View.INVISIBLE); 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) { public static Spanned getTextWithHttpLinks(String text) {
if (text == null) return null; if (text == null) return null;
@ -771,32 +492,6 @@ public final class LinphoneUtils {
return Html.fromHtml(text); 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) { public static void hideKeyboard(Activity activity) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus(); View view = activity.getCurrentFocus();
@ -806,56 +501,10 @@ public final class LinphoneUtils {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} }
public static void scanFile(ChatMessage message) { private static Context getContext() {
String appData = message.getAppdata(); if (context == null && LinphoneManager.isInstanciated())
if (appData == null) { context = LinphoneManager.getInstance().getContext();
for (Content c : message.getContents()) { return context;
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;
} }
} }

View file

@ -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. 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.BaseAdapter;
import android.widget.CompoundButton; import android.widget.CompoundButton;

View file

@ -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. 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.app.Dialog;
import android.content.Context; import android.content.Context;
@ -27,7 +27,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
public class ListSelectionHelper { public class ListSelectionHelper {
private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton; private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton;

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.utils;
/* /*
SelectableAdapter.java SelectableAdapter.java

View file

@ -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. 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.app.Dialog;
import android.content.Context; import android.content.Context;
@ -28,7 +28,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
public class SelectableHelper { public class SelectableHelper {
private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton; private ImageView mEditButton, mSelectAllButton, mDeselectAllButton, mDeleteSelectionButton, mCancelButton;

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
AddressAwareWidget.java AddressAwareWidget.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
AddressView.java AddressView.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
CallButton.java CallButton.java
@ -28,7 +28,7 @@ import android.widget.ImageView;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.CallLog; import org.linphone.core.CallLog;

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
CallIncomingAnswerButton.java CallIncomingAnswerButton.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
CallIncomingButtonListener.java CallIncomingButtonListener.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
CallIncomingDeclineButton.java CallIncomingDeclineButton.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
ContactAvatar.java ContactAvatar.java
@ -26,7 +26,8 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneService; 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.R;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.ChatRoomSecurityLevel; import org.linphone.core.ChatRoomSecurityLevel;
@ -120,7 +121,7 @@ public class ContactAvatar {
holder.init(); holder.init();
if (contact.getThumbnailUri() != null && contact.getThumbnailUri().getScheme().startsWith("http")) { if (contact.getThumbnailUri() != null && contact.getThumbnailUri().getScheme().startsWith("http")) {
bm = LinphoneUtils.downloadBitmap(contact.getThumbnailUri()); bm = ImageUtils.downloadBitmap(contact.getThumbnailUri());
} else { } else {
if (contact.getThumbnailUri() != null) { if (contact.getThumbnailUri() != null) {
try { try {

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
ContactSelectView.java ContactSelectView.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
Digit.java Digit.java
@ -30,7 +30,7 @@ import android.widget.Button;
import android.widget.Toast; import android.widget.Toast;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.call.CallActivity; import org.linphone.call.CallActivity;

View file

@ -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 along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 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.annotation.SuppressLint;
import android.content.Context; import android.content.Context;

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
LedPreference.java LedPreference.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
LinphoneOverlay.java LinphoneOverlay.java
@ -33,7 +33,7 @@ import android.view.WindowManager;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.activities.LinphoneActivity; import org.linphone.LinphoneActivity;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.CallParams; import org.linphone.core.CallParams;
import org.linphone.mediastream.Version; import org.linphone.mediastream.Version;

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
NumpadView.java NumpadView.java

View file

@ -1,4 +1,4 @@
package org.linphone.ui; package org.linphone.views;
/* /*
* Copyright (C) 2008 The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project

View file

@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.core.XmlRpcArgType; import org.linphone.core.XmlRpcArgType;
import org.linphone.core.XmlRpcRequest; import org.linphone.core.XmlRpcRequest;
import org.linphone.core.XmlRpcRequestListener; import org.linphone.core.XmlRpcRequestListener;

View file

@ -414,7 +414,7 @@
android:layout_above="@id/main_bar" android:layout_above="@id/main_bar"
android:layout_marginBottom="60dp"> android:layout_marginBottom="60dp">
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:visibility="gone" android:visibility="gone"
android:background="@color/colorF" android:background="@color/colorF"

View file

@ -23,7 +23,7 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_alignParentTop="true"> android:layout_alignParentTop="true">
<org.linphone.ui.EraseButton <org.linphone.views.EraseButton
android:id="@+id/erase" android:id="@+id/erase"
android:src="@drawable/backspace" android:src="@drawable/backspace"
android:contentDescription="@string/content_description_backspace" android:contentDescription="@string/content_description_backspace"
@ -34,7 +34,7 @@
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginLeft="10dp" /> android:layout_marginLeft="10dp" />
<org.linphone.ui.AddressText <org.linphone.views.AddressText
android:id="@+id/address" android:id="@+id/address"
android:background="@color/colorF" android:background="@color/colorF"
android:textColorHint="@color/colorE" android:textColorHint="@color/colorE"
@ -51,7 +51,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -92,7 +92,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.CallButton <org.linphone.views.CallButton
android:id="@+id/call" android:id="@+id/call"
android:src="@drawable/call_audio_start" android:src="@drawable/call_audio_start"
android:background="@drawable/call" android:background="@drawable/call"

View file

@ -27,7 +27,7 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_alignParentTop="true"> android:layout_alignParentTop="true">
<org.linphone.ui.EraseButton <org.linphone.views.EraseButton
android:id="@+id/erase" android:id="@+id/erase"
android:src="@drawable/backspace" android:src="@drawable/backspace"
android:contentDescription="@string/content_description_backspace" android:contentDescription="@string/content_description_backspace"
@ -38,7 +38,7 @@
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginLeft="10dp" /> android:layout_marginLeft="10dp" />
<org.linphone.ui.AddressText <org.linphone.views.AddressText
android:id="@+id/address" android:id="@+id/address"
android:background="@color/colorF" android:background="@color/colorF"
android:textColorHint="@color/colorE" android:textColorHint="@color/colorE"
@ -55,7 +55,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -89,7 +89,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.CallButton <org.linphone.views.CallButton
android:id="@+id/call" android:id="@+id/call"
android:src="@drawable/call_audio_start" android:src="@drawable/call_audio_start"
android:contentDescription="@string/content_description_call" android:contentDescription="@string/content_description_call"

View file

@ -27,7 +27,7 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_alignParentTop="true"> android:layout_alignParentTop="true">
<org.linphone.ui.EraseButton <org.linphone.views.EraseButton
android:id="@+id/erase" android:id="@+id/erase"
android:src="@drawable/backspace" android:src="@drawable/backspace"
android:contentDescription="@string/content_description_backspace" android:contentDescription="@string/content_description_backspace"
@ -38,7 +38,7 @@
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginLeft="10dp" /> android:layout_marginLeft="10dp" />
<org.linphone.ui.AddressText <org.linphone.views.AddressText
android:id="@+id/address" android:id="@+id/address"
android:background="@color/colorF" android:background="@color/colorF"
android:textColorHint="@color/colorE" android:textColorHint="@color/colorE"
@ -55,7 +55,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -89,7 +89,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.CallButton <org.linphone.views.CallButton
android:id="@+id/call" android:id="@+id/call"
android:src="@drawable/call_audio_start" android:src="@drawable/call_audio_start"
android:background="@drawable/call" android:background="@drawable/call"

View file

@ -414,7 +414,7 @@
android:layout_above="@id/main_bar" android:layout_above="@id/main_bar"
android:layout_marginBottom="120dp"> android:layout_marginBottom="120dp">
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:visibility="gone" android:visibility="gone"
android:background="@color/colorF" android:background="@color/colorF"

View file

@ -93,13 +93,13 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:orientation="horizontal"> android:orientation="horizontal">
<org.linphone.ui.CallIncomingDeclineButton <org.linphone.views.CallIncomingDeclineButton
android:id="@+id/decline_button" android:id="@+id/decline_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" /> android:layout_weight="1" />
<org.linphone.ui.CallIncomingAnswerButton <org.linphone.views.CallIncomingAnswerButton
android:id="@+id/answer_button" android:id="@+id/answer_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"

View file

@ -23,7 +23,7 @@
android:layout_height="60dp" android:layout_height="60dp"
android:layout_alignParentTop="true"> android:layout_alignParentTop="true">
<org.linphone.ui.EraseButton <org.linphone.views.EraseButton
android:id="@+id/erase" android:id="@+id/erase"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -34,7 +34,7 @@
android:contentDescription="@string/content_description_backspace" android:contentDescription="@string/content_description_backspace"
android:src="@drawable/backspace"/> android:src="@drawable/backspace"/>
<org.linphone.ui.AddressText <org.linphone.views.AddressText
android:id="@+id/address" android:id="@+id/address"
android:background="@color/transparent" android:background="@color/transparent"
android:backgroundTint="@color/transparent" android:backgroundTint="@color/transparent"
@ -52,7 +52,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.Numpad <org.linphone.views.Numpad
android:id="@+id/numpad" android:id="@+id/numpad"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -86,7 +86,7 @@
</RelativeLayout> </RelativeLayout>
<org.linphone.ui.CallButton <org.linphone.views.CallButton
android:id="@+id/call" android:id="@+id/call"
android:src="@drawable/call_audio_start" android:src="@drawable/call_audio_start"
android:background="@drawable/call" android:background="@drawable/call"

View file

@ -4,27 +4,39 @@
android:layout_width="match_parent" android:layout_height="match_parent" > android:layout_width="match_parent" android:layout_height="match_parent" >
<TableRow android:layout_weight="1" android:gravity="center"> <TableRow android:layout_weight="1" android:gravity="center">
<org.linphone.ui.Digit android:id="@+id/Digit1" android:text="1" style="@style/DialerDigit" android:background="@drawable/numpad_one" android:soundEffectsEnabled="true"/> <org.linphone.views.Digit
<org.linphone.ui.Digit android:id="@+id/Digit2" android:text="2" style="@style/DialerDigit" android:background="@drawable/numpad_two" android:soundEffectsEnabled="true" /> android:id="@+id/Digit1" android:text="1" style="@style/DialerDigit" android:background="@drawable/numpad_one" android:soundEffectsEnabled="true"/>
<org.linphone.ui.Digit android:id="@+id/Digit3" android:text="3" style="@style/DialerDigit" android:background="@drawable/numpad_three" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
android:id="@+id/Digit2" android:text="2" style="@style/DialerDigit" android:background="@drawable/numpad_two" android:soundEffectsEnabled="true" />
<org.linphone.views.Digit
android:id="@+id/Digit3" android:text="3" style="@style/DialerDigit" android:background="@drawable/numpad_three" android:soundEffectsEnabled="true" />
</TableRow> </TableRow>
<TableRow android:layout_weight="1" android:gravity="center"> <TableRow android:layout_weight="1" android:gravity="center">
<org.linphone.ui.Digit android:id="@+id/Digit4" android:text="4" style="@style/DialerDigit" android:background="@drawable/numpad_four" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
<org.linphone.ui.Digit android:id="@+id/Digit5" android:text="5" style="@style/DialerDigit" android:background="@drawable/numpad_five" android:soundEffectsEnabled="true" /> android:id="@+id/Digit4" android:text="4" style="@style/DialerDigit" android:background="@drawable/numpad_four" android:soundEffectsEnabled="true" />
<org.linphone.ui.Digit android:id="@+id/Digit6" android:text="6" style="@style/DialerDigit" android:background="@drawable/numpad_six" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
android:id="@+id/Digit5" android:text="5" style="@style/DialerDigit" android:background="@drawable/numpad_five" android:soundEffectsEnabled="true" />
<org.linphone.views.Digit
android:id="@+id/Digit6" android:text="6" style="@style/DialerDigit" android:background="@drawable/numpad_six" android:soundEffectsEnabled="true" />
</TableRow> </TableRow>
<TableRow android:layout_weight="1" android:gravity="center"> <TableRow android:layout_weight="1" android:gravity="center">
<org.linphone.ui.Digit android:id="@+id/Digit7" android:text="7" style="@style/DialerDigit" android:background="@drawable/numpad_seven" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
<org.linphone.ui.Digit android:id="@+id/Digit8" android:text="8" style="@style/DialerDigit" android:background="@drawable/numpad_eight" android:soundEffectsEnabled="true" /> android:id="@+id/Digit7" android:text="7" style="@style/DialerDigit" android:background="@drawable/numpad_seven" android:soundEffectsEnabled="true" />
<org.linphone.ui.Digit android:id="@+id/Digit9" android:text="9" style="@style/DialerDigit" android:background="@drawable/numpad_nine" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
android:id="@+id/Digit8" android:text="8" style="@style/DialerDigit" android:background="@drawable/numpad_eight" android:soundEffectsEnabled="true" />
<org.linphone.views.Digit
android:id="@+id/Digit9" android:text="9" style="@style/DialerDigit" android:background="@drawable/numpad_nine" android:soundEffectsEnabled="true" />
</TableRow> </TableRow>
<TableRow android:layout_weight="1" android:gravity="center"> <TableRow android:layout_weight="1" android:gravity="center">
<org.linphone.ui.Digit android:id="@+id/DigitStar" android:text="*" style="@style/DialerDigit" android:background="@drawable/numpad_star_digit" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
<org.linphone.ui.Digit android:id="@+id/Digit00" android:text="0+" style="@style/DialerDigit" android:background="@drawable/numpad_zero" android:soundEffectsEnabled="true" /> android:id="@+id/DigitStar" android:text="*" style="@style/DialerDigit" android:background="@drawable/numpad_star_digit" android:soundEffectsEnabled="true" />
<org.linphone.ui.Digit android:id="@+id/DigitHash" android:text="#" style="@style/DialerDigit" android:background="@drawable/numpad_sharp" android:soundEffectsEnabled="true" /> <org.linphone.views.Digit
android:id="@+id/Digit00" android:text="0+" style="@style/DialerDigit" android:background="@drawable/numpad_zero" android:soundEffectsEnabled="true" />
<org.linphone.views.Digit
android:id="@+id/DigitHash" android:text="#" style="@style/DialerDigit" android:background="@drawable/numpad_sharp" android:soundEffectsEnabled="true" />
</TableRow> </TableRow>
</TableLayout> </TableLayout>