diff --git a/ring-android/app/src/main/java/cx/ring/model/Codec.java b/ring-android/app/src/main/java/cx/ring/model/Codec.java index 72cc8a626700ddecb54f5ca45abac1476345f254..58cc0278744be92dcde096052d2e62df5b63f202 100644 --- a/ring-android/app/src/main/java/cx/ring/model/Codec.java +++ b/ring-android/app/src/main/java/cx/ring/model/Codec.java @@ -115,8 +115,8 @@ public class Codec implements Parcelable { + "Channels: " + channels; } - public CharSequence getPayload() { - return Long.toString(payload); + public Long getPayload() { + return payload; } public CharSequence getName() { diff --git a/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java b/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java index cf691ab0be594f0eaa5b3a3e7f2640c5ae9fd73a..6217a7effbb98463c8cd11cba5ea8d7a04f20bba 100644 --- a/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java +++ b/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java @@ -73,14 +73,11 @@ public class ConfigurationManagerCallback extends ConfigurationCallback { mService.sendBroadcast(intent); } - public IntVect configGetHardwareAudioFormat(){ - IntVect result = new IntVect(); - + @Override + public void getHardwareAudioFormat(IntVect ret){ OpenSlParams audioParams = OpenSlParams.createInstance(mService); - result.add(audioParams.getSampleRate()); - result.add(audioParams.getBufferSize()); - - return result; + ret.add(audioParams.getSampleRate()); + ret.add(audioParams.getBufferSize()); } } diff --git a/ring-android/app/src/main/java/cx/ring/service/SipService.java b/ring-android/app/src/main/java/cx/ring/service/SipService.java index 575189cdeabae8fa4ed0e52a952194a6aa26b8d7..820b001710e5fad1e63049ed3904a3b1984fcf4f 100644 --- a/ring-android/app/src/main/java/cx/ring/service/SipService.java +++ b/ring-android/app/src/main/java/cx/ring/service/SipService.java @@ -59,7 +59,12 @@ public class SipService extends Service { private Runnable pollEvents = new Runnable() { @Override public void run() { - Ringservice.pollEvents(); + getExecutor().execute(new SipRunnable() { + @Override + protected void doRun() throws SameThreadException { + Ringservice.pollEvents(); + } + }); handler.postDelayed(this, POLLING_TIMEOUT); } }; @@ -69,7 +74,7 @@ public class SipService extends Service { protected HistoryManager mHistoryManager; protected MediaManager mMediaManager; - private HashMap<String, Conference> mConferences = new HashMap<String, Conference>(); + private HashMap<String, Conference> mConferences = new HashMap<>(); private ConfigurationManagerCallback configurationCallback; private CallManagerCallBack callManagerCallBack; @@ -201,12 +206,11 @@ public class SipService extends Service { public void execute(Runnable task) { // TODO: add wakelock Message.obtain(SipServiceExecutor.this, 0/* don't care */, task).sendToTarget(); - Log.w(TAG, "SenT!"); + //Log.w(TAG, "SenT!"); } @Override public void handleMessage(Message msg) { - Log.w(TAG, "handleMessage"); if (msg.obj instanceof Runnable) { executeInternal((Runnable) msg.obj); } else { @@ -535,7 +539,7 @@ public class SipService extends Service { // Hashmap runtime cast @Override public void setAccountDetails(final String accountId, final Map map) { - final StringMap swigmap = new StringMap(map); + final StringMap swigmap = StringMap.toSwig(map); getExecutor().execute(new SipRunnable() { @Override @@ -585,7 +589,7 @@ public class SipService extends Service { } } - final StringMap swigmap = new StringMap(map); + final StringMap swigmap = StringMap.toSwig(map); AddAccount runInstance = new AddAccount(swigmap); getExecutor().execute(runInstance); @@ -983,9 +987,8 @@ public class SipService extends Service { for (int i = 0; i < payloads.size(); ++i) { boolean isActive = false; for (Codec co : results) { - if (co.getPayload().toString().contentEquals(String.valueOf(payloads.get(i)))) + if (co.getPayload() == payloads.get(i)) isActive = true; - } if (isActive) continue; @@ -1178,7 +1181,7 @@ public class SipService extends Service { Log.i(TAG, "SipService.setActiveAudioCodecList() thread running..."); UintVect list = new UintVect(); for (Object codec : codecs) { - list.add((Integer) codec); + list.add((Long) codec); } Ringservice.setActiveCodecList(accountID, list); } diff --git a/ring-android/app/src/main/java/cx/ring/utils/SwigNativeConverter.java b/ring-android/app/src/main/java/cx/ring/utils/SwigNativeConverter.java index 379364472f0737113a2a5f75b5c7fb31dec99faa..0aa76e672c0b135e1fdb18e8ba20d8a42e2e6ecc 100644 --- a/ring-android/app/src/main/java/cx/ring/utils/SwigNativeConverter.java +++ b/ring-android/app/src/main/java/cx/ring/utils/SwigNativeConverter.java @@ -54,7 +54,7 @@ public class SwigNativeConverter { VectMap toReturn = new VectMap(); for (HashMap<String, String> aTodecode : todecode) { - toReturn.add(new StringMap(aTodecode)); + toReturn.add(StringMap.toSwig(aTodecode)); } return toReturn; } @@ -76,7 +76,7 @@ public class SwigNativeConverter { } public static ArrayList<String> convertSwigToNative(StringVect vector) { - ArrayList<String> toReturn = new ArrayList<String>(); + ArrayList<String> toReturn = new ArrayList<>(); for (int i = 0; i < vector.size(); ++i) { toReturn.add(vector.get(i)); } diff --git a/ring-android/app/src/main/jni/configurationmanager.i b/ring-android/app/src/main/jni/configurationmanager.i index 6374257f80566ddb5b62c1d744e00f5a2be8b6e7..e6ae5f6d2e5b99a8241966268ccaeea2f2658372 100644 --- a/ring-android/app/src/main/jni/configurationmanager.i +++ b/ring-android/app/src/main/jni/configurationmanager.i @@ -49,7 +49,7 @@ public: virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){} virtual void errorAlert(int alert){} - virtual std::vector<int32_t> configGetHardwareAudioFormat(void){} + virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){} }; %} @@ -186,5 +186,5 @@ public: virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){} virtual void errorAlert(int alert){} - virtual std::vector<int32_t> configGetHardwareAudioFormat(void){} + virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){} }; \ No newline at end of file diff --git a/ring-android/app/src/main/jni/jni_interface.i b/ring-android/app/src/main/jni/jni_interface.i index 153200b415e4e25fcb366b0f79efdd9c21ab9231..bb32d6d5546ad396bd7002cd0a27aee61df47df8 100644 --- a/ring-android/app/src/main/jni/jni_interface.i +++ b/ring-android/app/src/main/jni/jni_interface.i @@ -63,62 +63,64 @@ namespace std { - %typemap(javacode) map<string, string> %{ - public $javaclassname(java.util.Map<String,String> in) { - for (java.util.Map.Entry<String, String> entry : in.entrySet()) { - this.set(entry.getKey(), entry.getValue()); - } - } - public java.util.Map<String,String> toNative() { - java.util.Map<String,String> out = new java.util.HashMap<String,String>(); - StringVect keys = keys(); - for (String s : keys) - out.put(s, get(s)); - return out; - } - %} - %extend map<string, string> { - std::vector<std::string> keys() const { - std::vector<std::string> k; - k.reserve($self->size()); - for (const auto& i : *$self) - k.push_back(i.first); - return k; - } +%typemap(javacode) map<string, string> %{ + public static $javaclassname toSwig(java.util.Map<String,String> in) { + $javaclassname n = new $javaclassname(); + for (java.util.Map.Entry<String, String> entry : in.entrySet()) { + n.set(entry.getKey(), entry.getValue()); } - %template(StringMap) map<string, string>; - - %typemap(javabase) vector<string> "java.util.AbstractList<String>" - %typemap(javainterface) vector<string> "java.util.RandomAccess" - %extend vector<string> { - value_type set(int i, const value_type& in) throw (std::out_of_range) { - const std::string old = $self->at(i); - $self->at(i) = in; - return old; - } - bool add(const value_type& in) { - $self->push_back(in); - return true; - } - int32_t size() const { - return $self->size(); - } + return n; + } + public java.util.Map<String,String> toNative() { + java.util.Map<String,String> out = new java.util.HashMap<String,String>(); + StringVect keys = keys(); + for (String s : keys) + out.put(s, get(s)); + return out; + } +%} +%extend map<string, string> { + std::vector<std::string> keys() const { + std::vector<std::string> k; + k.reserve($self->size()); + for (const auto& i : *$self) + k.push_back(i.first); + return k; } - %template(StringVect) vector<string>; - - %typemap(javacode) vector< map<string,string> > %{ - public java.util.ArrayList<java.util.Map<String, String>> toNative() { - java.util.ArrayList<java.util.Map<String, String>> out = new java.util.ArrayList<>(); - for (int i = 0; i < size(); ++i) - out.add(get(i).toNative()); - return out; - } - %} - %template(VectMap) vector< map<string,string> >; - %template(IntegerMap) map<string,int>; - %template(IntVect) vector<int32_t>; - %template(UintVect) vector<uint32_t>; - %template(Blob) vector<uint8_t>; +} +%template(StringMap) map<string, string>; + +%typemap(javabase) vector<string> "java.util.AbstractList<String>" +%typemap(javainterface) vector<string> "java.util.RandomAccess" +%extend vector<string> { + value_type set(int i, const value_type& in) throw (std::out_of_range) { + const std::string old = $self->at(i); + $self->at(i) = in; + return old; + } + bool add(const value_type& in) { + $self->push_back(in); + return true; + } + int32_t size() const { + return $self->size(); + } +} +%template(StringVect) vector<string>; + +%typemap(javacode) vector< map<string,string> > %{ + public java.util.ArrayList<java.util.Map<String, String>> toNative() { + java.util.ArrayList<java.util.Map<String, String>> out = new java.util.ArrayList<>(); + for (int i = 0; i < size(); ++i) + out.add(get(i).toNative()); + return out; + } +%} +%template(VectMap) vector< map<string,string> >; +%template(IntegerMap) map<string,int>; +%template(IntVect) vector<int32_t>; +%template(UintVect) vector<uint32_t>; +%template(Blob) vector<uint8_t>; } /* not parsed by SWIG but needed by generated C files */ @@ -194,6 +196,7 @@ void init(ConfigurationCallback* confM, Callback* callM) { exportable_callback<ConfigurationSignal::CertificatePathPinned>(bind(&ConfigurationCallback::certificatePathPinned, confM, _1, _2 )), exportable_callback<ConfigurationSignal::CertificateExpired>(bind(&ConfigurationCallback::certificateExpired, confM, _1 )), exportable_callback<ConfigurationSignal::CertificateStateChanged>(bind(&ConfigurationCallback::certificateStateChanged, confM, _1, _2, _3 )), + exportable_callback<ConfigurationSignal::GetHardwareAudioFormat>(bind(&ConfigurationCallback::getHardwareAudioFormat, confM, _1 )), }; /*