diff options
| author | 2024-02-29 19:14:18 +0000 | |
|---|---|---|
| committer | 2024-02-29 19:14:18 +0000 | |
| commit | b198c17356b9b3b3eb4347e4fe2adb4c2090bfad (patch) | |
| tree | 43525ed1b337a251665fb1b4b712ae0eae54ff69 | |
| parent | db7264edbf39f2dac2f6da6d513b40d6648fc58d (diff) | |
| parent | e0e8b3ffcd515f53ecd73eb4ee6c9319166f37ab (diff) | |
Merge "Don't use phone features without calling declared" into main
| -rw-r--r-- | services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index b3db2dea4a27..862aff9be9ce 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -31,12 +31,11 @@ import static android.hardware.soundtrigger.SoundTrigger.STATUS_OK; import static android.provider.Settings.Global.MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY; import static android.provider.Settings.Global.SOUND_TRIGGER_DETECTION_SERVICE_OP_TIMEOUT; -import static com.android.server.soundtrigger.SoundTriggerEvent.SessionEvent.Type; -import static com.android.server.utils.EventLogger.Event.ALOGW; - import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage; import static com.android.server.soundtrigger.DeviceStateHandler.DeviceStateListener; import static com.android.server.soundtrigger.DeviceStateHandler.SoundTriggerDeviceState; +import static com.android.server.soundtrigger.SoundTriggerEvent.SessionEvent.Type; +import static com.android.server.utils.EventLogger.Event.ALOGW; import android.Manifest; import android.annotation.NonNull; @@ -94,8 +93,8 @@ import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.ArraySet; -import android.util.SparseArray; import android.util.Slog; +import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.ISoundTriggerService; @@ -105,19 +104,17 @@ import com.android.server.SoundTriggerInternal; import com.android.server.SystemService; import com.android.server.soundtrigger.SoundTriggerEvent.ServiceEvent; import com.android.server.soundtrigger.SoundTriggerEvent.SessionEvent; -import com.android.server.utils.EventLogger.Event; import com.android.server.utils.EventLogger; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; -import java.util.function.Consumer; -import java.util.List; -import java.util.Set; import java.util.Deque; +import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.TreeMap; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -126,6 +123,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -257,6 +255,11 @@ public class SoundTriggerService extends SystemService { publishLocalService(SoundTriggerInternal.class, mLocalSoundTriggerService); } + private boolean hasCalling() { + return mContext.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_TELEPHONY_CALLING); + } + @Override public void onBootPhase(int phase) { Slog.d(TAG, "onBootPhase: " + phase + " : " + isSafeMode()); @@ -282,11 +285,13 @@ public class SoundTriggerService extends SystemService { // Do so after registering the listener so we ensure that we don't drop any events mDeviceStateHandler.onPowerModeChanged(powerManager.getSoundTriggerPowerSaveMode()); - // PhoneCallStateHandler initializes the original call state - mPhoneCallStateHandler = new PhoneCallStateHandler( - mContext.getSystemService(SubscriptionManager.class), - mContext.getSystemService(TelephonyManager.class), - mDeviceStateHandler); + if (hasCalling()) { + // PhoneCallStateHandler initializes the original call state + mPhoneCallStateHandler = new PhoneCallStateHandler( + mContext.getSystemService(SubscriptionManager.class), + mContext.getSystemService(TelephonyManager.class), + mDeviceStateHandler); + } } mMiddlewareService = ISoundTriggerMiddlewareService.Stub.asInterface( ServiceManager.waitForService(Context.SOUND_TRIGGER_MIDDLEWARE_SERVICE)); |