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

Commit 7a348955 authored by Michael Jurka's avatar Michael Jurka
Browse files

Add shortcut for voice search

On phones with soft nav bar, make long press on
home launch a voice search intent

Change-Id: I69840a96a08524a76e33a306b799222c879db095
parent 69db4df4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -505,6 +505,7 @@
            0 - Nothing
            1 - Recent apps dialog
            2 - Recent apps view in SystemUI
            3 - Voice search
         This needs to match the constants in
         policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
    -->
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@
                android:layout_height="match_parent"
                android:src="@drawable/ic_sysbar_home"
                systemui:keyCode="3"
                systemui:keyRepeat="false"
                systemui:keyRepeat="true"
                android:layout_weight="0"
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
                android:contentDescription="@string/accessibility_home"
+19 −2
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ import android.database.ContentObserver;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.RectF;
import android.media.AudioManager;
import android.media.IAudioService;
import android.os.BatteryManager;
import android.os.Bundle;
import android.os.Handler;
@@ -64,6 +66,7 @@ import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.telephony.ITelephony;
import com.android.internal.widget.PointerLocationView;

import android.speech.RecognizerIntent;
import android.util.DisplayMetrics;
import android.util.EventLog;
import android.util.Log;
@@ -133,8 +136,6 @@ import android.view.KeyCharacterMap.FallbackAction;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.media.IAudioService;
import android.media.AudioManager;

import java.io.File;
import java.io.FileDescriptor;
@@ -176,6 +177,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    static final int LONG_PRESS_HOME_NOTHING = 0;
    static final int LONG_PRESS_HOME_RECENT_DIALOG = 1;
    static final int LONG_PRESS_HOME_RECENT_SYSTEM_UI = 2;
    static final int LONG_PRESS_HOME_VOICE_SEARCH = 3;

    // wallpaper is at the bottom, though the window manager may move it.
    static final int WALLPAPER_LAYER = 2;
@@ -710,6 +712,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    mLongPressOnHomeBehavior > LONG_PRESS_HOME_RECENT_SYSTEM_UI) {
                mLongPressOnHomeBehavior = LONG_PRESS_HOME_NOTHING;
            }
            if (hasNavigationBar()) {
                mLongPressOnHomeBehavior = LONG_PRESS_HOME_VOICE_SEARCH;
            }
        }

        if (mLongPressOnHomeBehavior != LONG_PRESS_HOME_NOTHING) {
@@ -729,6 +734,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            } catch (RemoteException e) {
                Slog.e(TAG, "RemoteException when showing recent apps", e);
            }
        } else if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_VOICE_SEARCH) {
            Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
            try {
                intent.setFlags(
                    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                mContext.startActivity(intent);
            } catch (ActivityNotFoundException e) {
                Log.e(TAG, "Unable to launch. tag=" + TAG + " intent=" + intent, e);
            } catch (SecurityException e) {
                Log.e(TAG, "PhoneWindowManager does not have the permission to launch " +
                      "tag=" + TAG + " intent=" + intent, e);
            }
        }
    }