am 44b7ef54: Merge "SipService: add permission check for using API" into gingerbread
Merge commit '44b7ef5408f135892fe8e8643fa4946532902672' into gingerbread-plus-aosp * commit '44b7ef5408f135892fe8e8643fa4946532902672': SipService: add permission check for using API
This commit is contained in:
@@ -123,6 +123,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public synchronized SipProfile[] getListOfProfiles() {
|
public synchronized SipProfile[] getListOfProfiles() {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
boolean isCallerRadio = isCallerRadio();
|
boolean isCallerRadio = isCallerRadio();
|
||||||
ArrayList<SipProfile> profiles = new ArrayList<SipProfile>();
|
ArrayList<SipProfile> profiles = new ArrayList<SipProfile>();
|
||||||
for (SipSessionGroupExt group : mSipGroups.values()) {
|
for (SipSessionGroupExt group : mSipGroups.values()) {
|
||||||
@@ -134,6 +136,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void open(SipProfile localProfile) {
|
public void open(SipProfile localProfile) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
localProfile.setCallingUid(Binder.getCallingUid());
|
localProfile.setCallingUid(Binder.getCallingUid());
|
||||||
try {
|
try {
|
||||||
createGroup(localProfile);
|
createGroup(localProfile);
|
||||||
@@ -146,6 +150,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
public synchronized void open3(SipProfile localProfile,
|
public synchronized void open3(SipProfile localProfile,
|
||||||
PendingIntent incomingCallPendingIntent,
|
PendingIntent incomingCallPendingIntent,
|
||||||
ISipSessionListener listener) {
|
ISipSessionListener listener) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
localProfile.setCallingUid(Binder.getCallingUid());
|
localProfile.setCallingUid(Binder.getCallingUid());
|
||||||
if (incomingCallPendingIntent == null) {
|
if (incomingCallPendingIntent == null) {
|
||||||
Log.w(TAG, "incomingCallPendingIntent cannot be null; "
|
Log.w(TAG, "incomingCallPendingIntent cannot be null; "
|
||||||
@@ -159,7 +165,7 @@ public final class SipService extends ISipService.Stub {
|
|||||||
incomingCallPendingIntent, listener);
|
incomingCallPendingIntent, listener);
|
||||||
if (localProfile.getAutoRegistration()) {
|
if (localProfile.getAutoRegistration()) {
|
||||||
group.openToReceiveCalls();
|
group.openToReceiveCalls();
|
||||||
if (isWifiOn()) grabWifiLock();
|
if (isWifiActive()) grabWifiLock();
|
||||||
}
|
}
|
||||||
} catch (SipException e) {
|
} catch (SipException e) {
|
||||||
Log.e(TAG, "openToReceiveCalls()", e);
|
Log.e(TAG, "openToReceiveCalls()", e);
|
||||||
@@ -181,6 +187,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void close(String localProfileUri) {
|
public synchronized void close(String localProfileUri) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
||||||
if (group == null) return;
|
if (group == null) return;
|
||||||
if (!isCallerCreatorOrRadio(group)) {
|
if (!isCallerCreatorOrRadio(group)) {
|
||||||
@@ -191,10 +199,12 @@ public final class SipService extends ISipService.Stub {
|
|||||||
group = mSipGroups.remove(localProfileUri);
|
group = mSipGroups.remove(localProfileUri);
|
||||||
notifyProfileRemoved(group.getLocalProfile());
|
notifyProfileRemoved(group.getLocalProfile());
|
||||||
group.close();
|
group.close();
|
||||||
if (isWifiOn() && !anyOpened()) releaseWifiLock();
|
if (isWifiActive() && !anyOpened()) releaseWifiLock();
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized boolean isOpened(String localProfileUri) {
|
public synchronized boolean isOpened(String localProfileUri) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
||||||
if (group == null) return false;
|
if (group == null) return false;
|
||||||
if (isCallerCreatorOrRadio(group)) {
|
if (isCallerCreatorOrRadio(group)) {
|
||||||
@@ -206,6 +216,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public synchronized boolean isRegistered(String localProfileUri) {
|
public synchronized boolean isRegistered(String localProfileUri) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
||||||
if (group == null) return false;
|
if (group == null) return false;
|
||||||
if (isCallerCreatorOrRadio(group)) {
|
if (isCallerCreatorOrRadio(group)) {
|
||||||
@@ -218,6 +230,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
|
|
||||||
public synchronized void setRegistrationListener(String localProfileUri,
|
public synchronized void setRegistrationListener(String localProfileUri,
|
||||||
ISipSessionListener listener) {
|
ISipSessionListener listener) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
SipSessionGroupExt group = mSipGroups.get(localProfileUri);
|
||||||
if (group == null) return;
|
if (group == null) return;
|
||||||
if (isCallerCreator(group)) {
|
if (isCallerCreator(group)) {
|
||||||
@@ -229,6 +243,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
|
|
||||||
public synchronized ISipSession createSession(SipProfile localProfile,
|
public synchronized ISipSession createSession(SipProfile localProfile,
|
||||||
ISipSessionListener listener) {
|
ISipSessionListener listener) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
localProfile.setCallingUid(Binder.getCallingUid());
|
localProfile.setCallingUid(Binder.getCallingUid());
|
||||||
if (!mConnected) return null;
|
if (!mConnected) return null;
|
||||||
try {
|
try {
|
||||||
@@ -241,6 +257,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public synchronized ISipSession getPendingSession(String callId) {
|
public synchronized ISipSession getPendingSession(String callId) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.USE_SIP, null);
|
||||||
if (callId == null) return null;
|
if (callId == null) return null;
|
||||||
return mPendingSessions.get(callId);
|
return mPendingSessions.get(callId);
|
||||||
}
|
}
|
||||||
@@ -330,9 +348,8 @@ public final class SipService extends ISipService.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isWifiOn() {
|
private boolean isWifiActive() {
|
||||||
return "WIFI".equalsIgnoreCase(mNetworkType);
|
return "WIFI".equalsIgnoreCase(mNetworkType);
|
||||||
//return (mConnected && "WIFI".equalsIgnoreCase(mNetworkType));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void onConnectivityChanged(
|
private synchronized void onConnectivityChanged(
|
||||||
|
|||||||
Reference in New Issue
Block a user