diff --git a/src/org/linphone/AboutFragment.java b/src/org/linphone/AboutFragment.java index 86502d948..ed83cb7e7 100644 --- a/src/org/linphone/AboutFragment.java +++ b/src/org/linphone/AboutFragment.java @@ -23,7 +23,6 @@ import org.linphone.core.LinphoneCore.LogCollectionUploadState; import org.linphone.core.LinphoneCoreListenerBase; import org.linphone.mediastream.Log; -import android.app.Dialog; import android.app.Fragment; import android.app.ProgressDialog; import android.content.Context; @@ -32,11 +31,12 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; -import android.view.WindowManager; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.ImageView; import android.widget.TextView; @@ -104,7 +104,7 @@ public class AboutFragment extends Fragment implements OnClickListener { uploadInProgress = true; progress = ProgressDialog.show(LinphoneActivity.instance(), null, null); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorE)); + Drawable d = new ColorDrawable(ContextCompat.getColor(getActivity(), R.color.colorE)); d.setAlpha(200); progress.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); progress.getWindow().setBackgroundDrawable(d); diff --git a/src/org/linphone/CallActivity.java b/src/org/linphone/CallActivity.java index 321d0a80a..2184a9f23 100644 --- a/src/org/linphone/CallActivity.java +++ b/src/org/linphone/CallActivity.java @@ -57,6 +57,7 @@ import android.os.Handler; import android.os.PowerManager; import android.os.SystemClock; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.support.v4.widget.DrawerLayout; import android.view.Gravity; import android.view.KeyEvent; @@ -1401,7 +1402,7 @@ public class CallActivity extends Activity implements OnClickListener, SensorEve private void showAcceptCallUpdateDialog() { final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorC)); + Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorC)); d.setAlpha(200); dialog.setContentView(R.layout.dialog); dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT); diff --git a/src/org/linphone/CallAudioFragment.java b/src/org/linphone/CallAudioFragment.java index a2fed87da..1430b3074 100644 --- a/src/org/linphone/CallAudioFragment.java +++ b/src/org/linphone/CallAudioFragment.java @@ -18,8 +18,9 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ import android.app.Activity; -import android.os.Bundle; import android.app.Fragment; +import android.content.Context; +import android.os.Bundle; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -41,7 +42,7 @@ public class CallAudioFragment extends Fragment { @Override public void onAttach(Activity activity) { - super.onAttach(activity); + super.onAttach((Context)activity); incallActvityInstance = (CallActivity) activity; if (incallActvityInstance != null) { diff --git a/src/org/linphone/CallIncomingActivity.java b/src/org/linphone/CallIncomingActivity.java index e33b052ad..b1d35292f 100644 --- a/src/org/linphone/CallIncomingActivity.java +++ b/src/org/linphone/CallIncomingActivity.java @@ -21,6 +21,7 @@ package org.linphone; import java.util.ArrayList; import java.util.List; +import org.linphone.compatibility.Compatibility; import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall.State; @@ -35,7 +36,6 @@ import android.app.Activity; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; -import android.os.Build; import android.os.Bundle; import android.os.PowerManager; import android.support.v4.app.ActivityCompat; @@ -89,11 +89,7 @@ public class CallIncomingActivity extends Activity implements LinphoneSliderTrig getWindow().addFlags(flags); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { - isScreenActive = pm.isInteractive(); - } else { - isScreenActive = pm.isScreenOn(); - } + isScreenActive = Compatibility.isScreenOn(pm); final int screenWidth = getResources().getDisplayMetrics().widthPixels; diff --git a/src/org/linphone/CallVideoFragment.java b/src/org/linphone/CallVideoFragment.java index 31d65389e..e85bdcac4 100644 --- a/src/org/linphone/CallVideoFragment.java +++ b/src/org/linphone/CallVideoFragment.java @@ -27,6 +27,7 @@ import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import android.app.Activity; import android.app.Fragment; +import android.content.Context; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.OnDoubleTapListener; @@ -295,7 +296,7 @@ public class CallVideoFragment extends Fragment implements OnGestureListener, On @Override public void onAttach(Activity activity) { - super.onAttach(activity); + super.onAttach((Context)activity); inCallActivity = (CallActivity) activity; if (inCallActivity != null) { inCallActivity.bindVideoFragment(this); diff --git a/src/org/linphone/ContactsManager.java b/src/org/linphone/ContactsManager.java index 1fdbcbd74..1e4d0c3b5 100644 --- a/src/org/linphone/ContactsManager.java +++ b/src/org/linphone/ContactsManager.java @@ -53,7 +53,6 @@ public class ContactsManager extends ContentObserver { private static ContactsManager instance; private List contacts, sipContacts; - private Account mAccount; private boolean preferLinphoneContacts = false, isContactPresenceDisabled = true, hasContactAccess = false; private ContentResolver contentResolver; private Context context; @@ -179,17 +178,13 @@ public class ContactsManager extends ContentObserver { Account[] accounts = accountManager.getAccountsByType(context.getPackageName()); - if(accounts != null && accounts.length == 0) { + if (accounts != null && accounts.length == 0) { Account newAccount = new Account(context.getString(R.string.sync_account_name), context.getPackageName()); try { accountManager.addAccountExplicitly(newAccount, null, null); - mAccount = newAccount; } catch (Exception e) { Log.e(e); - mAccount = null; } - } else { - mAccount = accounts[0]; } initializeContactManager(context, contentResolver); } diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 895b9e1c5..65a39c662 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -70,6 +70,7 @@ import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.support.v4.widget.DrawerLayout; import android.view.Gravity; import android.view.KeyEvent; @@ -901,7 +902,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta public Dialog displayDialog(String text){ Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorC)); + Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorC)); d.setAlpha(200); dialog.setContentView(R.layout.dialog); dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); @@ -915,7 +916,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta public Dialog displayWrongPasswordDialog(final String username, final String realm, final String domain){ final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorC)); + Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorC)); d.setAlpha(200); dialog.setContentView(R.layout.input_dialog); dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index 582d4733b..92cc7f94a 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -31,12 +31,12 @@ import org.linphone.core.LinphoneAddress.TransportType; import org.linphone.core.LinphoneAuthInfo; import org.linphone.core.LinphoneCore; import org.linphone.core.LinphoneCore.AdaptiveRateAlgorithm; -import org.linphone.core.LinphoneCore.FirewallPolicy; import org.linphone.core.LinphoneCore.LinphoneLimeState; import org.linphone.core.LinphoneCore.MediaEncryption; import org.linphone.core.LinphoneCore.Transports; import org.linphone.core.LinphoneCoreException; import org.linphone.core.LinphoneCoreFactory; +import org.linphone.core.LinphoneNatPolicy; import org.linphone.core.LinphoneProxyConfig; import org.linphone.core.LpConfig; import org.linphone.core.TunnelConfig; @@ -909,40 +909,43 @@ public class LinphonePreferences { } public String getStunServer() { - return getLc().getStunServer(); + LinphoneNatPolicy nat = getLc().getNatPolicy(); + if (nat == null) return null; + return nat.getStunServer(); } public void setStunServer(String stun) { - getLc().setStunServer(stun); + LinphoneNatPolicy nat = getLc().getNatPolicy(); + if (nat == null) { + nat = getLc().createNatPolicy(); + } + nat.setStunServer(stun); } public void setIceEnabled(boolean enabled) { + LinphoneNatPolicy nat = getLc().createNatPolicy(); + if (enabled) { - getLc().setFirewallPolicy(FirewallPolicy.UseIce); + nat.enableIce(true); } else { String stun = getStunServer(); if (stun != null && stun.length() > 0) { - getLc().setFirewallPolicy(FirewallPolicy.UseStun); - } else { - getLc().setFirewallPolicy(FirewallPolicy.NoFirewall); + nat.enableStun(true); } - } + } + getLc().setNatPolicy(nat); } public void setUpnpEnabled(boolean enabled) { + LinphoneNatPolicy nat = getLc().getNatPolicy(); + if (enabled) { - if (isIceEnabled()) { - Log.e("Cannot have both ice and upnp enabled, disabling upnp"); - } else { - getLc().setFirewallPolicy(FirewallPolicy.UseUpnp); - } + nat.enableUpnp(true); } else { String stun = getStunServer(); if (stun != null && stun.length() > 0) { - getLc().setFirewallPolicy(FirewallPolicy.UseStun); - } else { - getLc().setFirewallPolicy(FirewallPolicy.NoFirewall); + nat.enableStun(true); } } } @@ -985,11 +988,15 @@ public class LinphonePreferences { } public boolean isUpnpEnabled() { - return getLc().upnpAvailable() && getLc().getFirewallPolicy() == FirewallPolicy.UseUpnp; + LinphoneNatPolicy nat = getLc().getNatPolicy(); + if (nat == null) return false; + return nat.upnpEnabled(); } public boolean isIceEnabled() { - return getLc().getFirewallPolicy() == FirewallPolicy.UseIce; + LinphoneNatPolicy nat = getLc().getNatPolicy(); + if (nat == null) return false; + return nat.iceEnabled(); } public MediaEncryption getMediaEncryption() { diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java index f558ee142..37bc5eb65 100644 --- a/src/org/linphone/StatusFragment.java +++ b/src/org/linphone/StatusFragment.java @@ -42,6 +42,7 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; +import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -159,7 +160,7 @@ public class StatusFragment extends Fragment { @Override public void onAttach(Activity activity) { - super.onAttach(activity); + super.onAttach((Context)activity); isAttached = true; if (activity instanceof LinphoneActivity) { @@ -399,7 +400,7 @@ public class StatusFragment extends Fragment { if(ZRTPdialog == null || !ZRTPdialog.isShowing()) { ZRTPdialog = new Dialog(getActivity()); ZRTPdialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorC)); + Drawable d = new ColorDrawable(ContextCompat.getColor(getActivity(), R.color.colorC)); d.setAlpha(200); ZRTPdialog.setContentView(R.layout.dialog); ZRTPdialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); diff --git a/src/org/linphone/assistant/AssistantActivity.java b/src/org/linphone/assistant/AssistantActivity.java index bb129d045..c2e767c42 100644 --- a/src/org/linphone/assistant/AssistantActivity.java +++ b/src/org/linphone/assistant/AssistantActivity.java @@ -49,6 +49,7 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; @@ -452,7 +453,7 @@ private static AssistantActivity instance; public void displayRegistrationInProgressDialog() { if(LinphoneManager.getLc().isNetworkReachable()) { progress = ProgressDialog.show(this, null, null); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorE)); + Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorE)); d.setAlpha(200); progress.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); progress.getWindow().setBackgroundDrawable(d); @@ -465,7 +466,7 @@ private static AssistantActivity instance; remoteProvisioningInProgress = true; progress = ProgressDialog.show(this, null, null); - Drawable d = new ColorDrawable(getResources().getColor(R.color.colorE)); + Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorE)); d.setAlpha(200); progress.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); progress.getWindow().setBackgroundDrawable(d); diff --git a/src/org/linphone/assistant/CreateAccountActivationFragment.java b/src/org/linphone/assistant/CreateAccountActivationFragment.java index 1bc6b5934..8bd601c63 100644 --- a/src/org/linphone/assistant/CreateAccountActivationFragment.java +++ b/src/org/linphone/assistant/CreateAccountActivationFragment.java @@ -38,7 +38,7 @@ import de.timroes.axmlrpc.XMLRPCServerException; * @author Sylvain Berfini */ public class CreateAccountActivationFragment extends Fragment { - private String username, password, domain; + private String username, password; private Handler mHandler = new Handler(); private Button checkAccount; diff --git a/src/org/linphone/assistant/CreateAccountFragment.java b/src/org/linphone/assistant/CreateAccountFragment.java index c0c1dd1a2..be5b447b8 100644 --- a/src/org/linphone/assistant/CreateAccountFragment.java +++ b/src/org/linphone/assistant/CreateAccountFragment.java @@ -63,11 +63,6 @@ public class CreateAccountFragment extends Fragment { private boolean confirmPasswordOk = false; private Button createAccount; private final Pattern UPPER_CASE_REGEX = Pattern.compile("[A-Z]"); - private char[] acceptedChars = new char[]{ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '_', '-' }; - private char[] acceptedCharsForPhoneNumbers = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+' }; - private String inputFilterCharacters; private String getUsername() { String username = usernameEdit.getText().toString(); @@ -96,9 +91,7 @@ public class CreateAccountFragment extends Fragment { addXMLRPCUsernameHandler(usernameEdit, null); - inputFilterCharacters = new String(acceptedChars); if (getResources().getBoolean(R.bool.allow_only_phone_numbers_in_wizard)) { - inputFilterCharacters = new String(acceptedCharsForPhoneNumbers); usernameEdit.setInputType(InputType.TYPE_CLASS_NUMBER); } diff --git a/src/org/linphone/compatibility/Compatibility.java b/src/org/linphone/compatibility/Compatibility.java index 9a6f1ec5a..bab06b2b9 100644 --- a/src/org/linphone/compatibility/Compatibility.java +++ b/src/org/linphone/compatibility/Compatibility.java @@ -36,6 +36,7 @@ import android.database.Cursor; import android.graphics.Bitmap; import android.media.AudioManager; import android.net.Uri; +import android.os.PowerManager; import android.preference.Preference; import android.provider.Settings; import android.view.ViewTreeObserver; @@ -344,4 +345,13 @@ public class Compatibility { } return true; } + + @SuppressWarnings("deprecation") + public static boolean isScreenOn(PowerManager pm) { + if (Version.sdkAboveOrEqual(20)) { + return pm.isInteractive(); + } else { + return pm.isScreenOn(); + } + } } diff --git a/src/org/linphone/purchase/InAppPurchaseActivity.java b/src/org/linphone/purchase/InAppPurchaseActivity.java index ecc993a0b..bc806fc66 100644 --- a/src/org/linphone/purchase/InAppPurchaseActivity.java +++ b/src/org/linphone/purchase/InAppPurchaseActivity.java @@ -39,7 +39,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; diff --git a/src/org/linphone/ui/BubbleChat.java b/src/org/linphone/ui/BubbleChat.java index 712c31933..9f0420d27 100644 --- a/src/org/linphone/ui/BubbleChat.java +++ b/src/org/linphone/ui/BubbleChat.java @@ -29,7 +29,6 @@ import java.util.Map.Entry; import org.linphone.LinphoneActivity; import org.linphone.LinphoneContact; import org.linphone.LinphoneManager; -import org.linphone.LinphonePreferences; import org.linphone.LinphoneUtils; import org.linphone.R; import org.linphone.core.LinphoneBuffer; diff --git a/src/org/linphone/ui/LinphoneOverlay.java b/src/org/linphone/ui/LinphoneOverlay.java index 51a6e1e3c..e4b2fd7f6 100644 --- a/src/org/linphone/ui/LinphoneOverlay.java +++ b/src/org/linphone/ui/LinphoneOverlay.java @@ -12,7 +12,6 @@ import android.content.Intent; import android.graphics.PixelFormat; import android.util.AttributeSet; import android.util.DisplayMetrics; -import android.view.DragEvent; import android.view.Gravity; import android.view.MotionEvent; import android.view.SurfaceView; diff --git a/src/org/linphone/ui/LinphoneSliders.java b/src/org/linphone/ui/LinphoneSliders.java index 4c6dc3f8e..b643255f2 100644 --- a/src/org/linphone/ui/LinphoneSliders.java +++ b/src/org/linphone/ui/LinphoneSliders.java @@ -1,7 +1,5 @@ package org.linphone.ui; -import org.linphone.R; - import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; diff --git a/src/org/linphone/ui/SlidingDrawer.java b/src/org/linphone/ui/SlidingDrawer.java index de1ee6e9e..f14139343 100644 --- a/src/org/linphone/ui/SlidingDrawer.java +++ b/src/org/linphone/ui/SlidingDrawer.java @@ -160,6 +160,7 @@ public class SlidingDrawer extends ViewGroup { * @param defStyle * The style to apply to this widget. */ + @SuppressWarnings("deprecation") public SlidingDrawer(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs,