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

Commit 9621fa91 authored by Matt Pietal's avatar Matt Pietal Committed by android-build-merger
Browse files

Merge "Resolver - Fix NGA (voice interaction) crash in resolver" into qt-qpr1-dev

am: 636ae6a3

Change-Id: Id349a7a0f82f5ed252a04e2e89d6e422f4e04de1
parents cf213992 636ae6a3
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -1666,10 +1666,6 @@ public class ChooserActivity extends ResolverActivity {
        mServiceConnections.clear();
    }

    public void onSetupVoiceInteraction() {
        // Do nothing. We'll send the voice stuff ourselves.
    }

    private void logDirectShareTargetReceived(int logCategory) {
        final long queryTime =
                logCategory == MetricsEvent.ACTION_DIRECT_SHARE_TARGETS_LOADED_SHORTCUT_MANAGER
+8 −14
Original line number Diff line number Diff line
@@ -361,9 +361,6 @@ public class ResolverActivity extends Activity {

        initSuspendedColorMatrix();

        if (isVoiceInteraction()) {
            onSetupVoiceInteraction();
        }
        final Set<String> categories = intent.getCategories();
        MetricsLogger.action(this, mAdapter.hasFilteredItem()
                ? MetricsProto.MetricsEvent.ACTION_SHOW_APP_DISAMBIG_APP_FEATURED
@@ -442,24 +439,21 @@ public class ResolverActivity extends Activity {
        mSuspendedMatrixColorFilter = new ColorMatrixColorFilter(matrix);
    }

    /**
     * Perform any initialization needed for voice interaction.
     */
    public void onSetupVoiceInteraction() {
        // Do it right now. Subclasses may delay this and send it later.
        sendVoiceChoicesIfNeeded();
    }

    public void sendVoiceChoicesIfNeeded() {
        if (!isVoiceInteraction()) {
            // Clearly not needed.
            return;
        }


        final Option[] options = new Option[mAdapter.getCount()];
        for (int i = 0, N = options.length; i < N; i++) {
            options[i] = optionForChooserTarget(mAdapter.getItem(i), i);
            TargetInfo target = mAdapter.getItem(i);
            if (target == null) {
                // If this occurs, a new set of targets is being loaded. Let that complete,
                // and have the next call to send voice choices proceed instead.
                return;
            }
            options[i] = optionForChooserTarget(target, i);
        }

        mPickOptionRequest = new PickTargetOptionRequest(
@@ -1872,7 +1866,7 @@ public class ResolverActivity extends Activity {
                }
            }


            sendVoiceChoicesIfNeeded();
            postListReadyRunnable();
        }

+4 −0
Original line number Diff line number Diff line
@@ -609,6 +609,10 @@
                android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
                android:process=":ui"
                android:visibleToInstantApps="true">
            <intent-filter>
                <action android:name="android.intent.action.CHOOSER" />
                <category android:name="android.intent.category.VOICE" />
            </intent-filter>
        </activity>

        <!-- Doze with notifications, run in main sysui process for every user  -->