Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8af24bc1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Show sensor usage dialog for assistant" into sc-dev am: 49f6ccf6 am: bc1e5930

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14442497

Change-Id: Ib6df20c1711930e06e215e316303a49dfb86e743
parents 01f01dae bc1e5930
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -41,4 +41,9 @@ public abstract class VoiceInteractionManagerInternal {
    public abstract boolean supportsLocalVoiceInteraction();

    public abstract void stopLocalVoiceInteraction(IBinder callingActivity);

    /**
     * Returns whether the given package is currently in an active session
     */
    public abstract boolean hasActiveSession(String packageName);
}
 No newline at end of file
+11 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import android.provider.Settings;
import android.service.SensorPrivacyIndividualEnabledSensorProto;
import android.service.SensorPrivacyServiceDumpProto;
import android.service.SensorPrivacyUserProto;
import android.service.voice.VoiceInteractionManagerInternal;
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
@@ -172,6 +173,7 @@ public final class SensorPrivacyService extends SystemService {
        mActivityManager = context.getSystemService(ActivityManager.class);
        mActivityTaskManager = context.getSystemService(ActivityTaskManager.class);
        mTelephonyManager = context.getSystemService(TelephonyManager.class);

        mSensorPrivacyServiceImpl = new SensorPrivacyServiceImpl();
    }

@@ -402,6 +404,15 @@ public final class SensorPrivacyService extends SystemService {
                }
            }

            VoiceInteractionManagerInternal voiceInteractionManagerInternal =
                    LocalServices.getService(VoiceInteractionManagerInternal.class);

            if (sensor == MICROPHONE && voiceInteractionManagerInternal != null
                    && voiceInteractionManagerInternal.hasActiveSession(packageName)) {
                enqueueSensorUseReminderDialogAsync(-1, user, packageName, sensor);
                return;
            }

            Log.i(TAG, packageName + "/" + uid + " started using sensor " + sensor
                    + " but no activity or foreground service was running. The user will not be"
                    + " informed. System components should check if sensor privacy is enabled for"
+17 −0
Original line number Diff line number Diff line
@@ -234,6 +234,23 @@ public class VoiceInteractionManagerService extends SystemService {
            VoiceInteractionManagerService.this.mServiceStub.stopLocalVoiceInteraction(
                    callingActivity);
        }

        @Override
        public boolean hasActiveSession(String packageName) {
            VoiceInteractionManagerServiceImpl impl =
                    VoiceInteractionManagerService.this.mServiceStub.mImpl;
            if (impl == null) {
                return false;
            }

            VoiceInteractionSessionConnection session =
                    impl.mActiveSession;
            if (session == null) {
                return false;
            }

            return TextUtils.equals(packageName, session.mSessionComponentName.getPackageName());
        }
    }

    // implementation entry point and binder service