Search in sources :

Example 21 with KeyboardShortcutGroup

use of android.view.KeyboardShortcutGroup in project android_frameworks_base by ResurrectionRemix.

the class Activity method onProvideKeyboardShortcuts.

@Override
public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu, int deviceId) {
    if (menu == null) {
        return;
    }
    KeyboardShortcutGroup group = null;
    int menuSize = menu.size();
    for (int i = 0; i < menuSize; ++i) {
        final MenuItem item = menu.getItem(i);
        final CharSequence title = item.getTitle();
        final char alphaShortcut = item.getAlphabeticShortcut();
        if (title != null && alphaShortcut != MIN_VALUE) {
            if (group == null) {
                final int resource = mApplication.getApplicationInfo().labelRes;
                group = new KeyboardShortcutGroup(resource != 0 ? getString(resource) : null);
            }
            group.addItem(new KeyboardShortcutInfo(title, alphaShortcut, KeyEvent.META_CTRL_ON));
        }
    }
    if (group != null) {
        data.add(group);
    }
}
Also used : KeyboardShortcutGroup(android.view.KeyboardShortcutGroup) KeyboardShortcutInfo(android.view.KeyboardShortcutInfo) MenuItem(android.view.MenuItem)

Example 22 with KeyboardShortcutGroup

use of android.view.KeyboardShortcutGroup in project android_frameworks_base by DirtyUnicorns.

the class KeyboardShortcuts method getSystemShortcuts.

private KeyboardShortcutGroup getSystemShortcuts() {
    final KeyboardShortcutGroup systemGroup = new KeyboardShortcutGroup(mContext.getString(R.string.keyboard_shortcut_group_system), true);
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_home), KeyEvent.KEYCODE_ENTER, KeyEvent.META_META_ON));
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_back), KeyEvent.KEYCODE_DEL, KeyEvent.META_META_ON));
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_recents), KeyEvent.KEYCODE_TAB, KeyEvent.META_ALT_ON));
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_notifications), KeyEvent.KEYCODE_N, KeyEvent.META_META_ON));
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_shortcuts_helper), KeyEvent.KEYCODE_SLASH, KeyEvent.META_META_ON));
    systemGroup.addItem(new KeyboardShortcutInfo(mContext.getString(R.string.keyboard_shortcut_group_system_switch_input), KeyEvent.KEYCODE_SPACE, KeyEvent.META_META_ON));
    return systemGroup;
}
Also used : KeyboardShortcutGroup(android.view.KeyboardShortcutGroup) KeyboardShortcutInfo(android.view.KeyboardShortcutInfo)

Example 23 with KeyboardShortcutGroup

use of android.view.KeyboardShortcutGroup in project android_frameworks_base by crdroidandroid.

the class Activity method onProvideKeyboardShortcuts.

@Override
public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu, int deviceId) {
    if (menu == null) {
        return;
    }
    KeyboardShortcutGroup group = null;
    int menuSize = menu.size();
    for (int i = 0; i < menuSize; ++i) {
        final MenuItem item = menu.getItem(i);
        final CharSequence title = item.getTitle();
        final char alphaShortcut = item.getAlphabeticShortcut();
        if (title != null && alphaShortcut != MIN_VALUE) {
            if (group == null) {
                final int resource = mApplication.getApplicationInfo().labelRes;
                group = new KeyboardShortcutGroup(resource != 0 ? getString(resource) : null);
            }
            group.addItem(new KeyboardShortcutInfo(title, alphaShortcut, KeyEvent.META_CTRL_ON));
        }
    }
    if (group != null) {
        data.add(group);
    }
}
Also used : KeyboardShortcutGroup(android.view.KeyboardShortcutGroup) KeyboardShortcutInfo(android.view.KeyboardShortcutInfo) MenuItem(android.view.MenuItem)

Example 24 with KeyboardShortcutGroup

use of android.view.KeyboardShortcutGroup in project android_frameworks_base by crdroidandroid.

the class KeyboardShortcuts method populateKeyboardShortcuts.

private void populateKeyboardShortcuts(LinearLayout keyboardShortcutsLayout, List<KeyboardShortcutGroup> keyboardShortcutGroups) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    final int keyboardShortcutGroupsSize = keyboardShortcutGroups.size();
    TextView shortcutsKeyView = (TextView) inflater.inflate(R.layout.keyboard_shortcuts_key_view, null, false);
    shortcutsKeyView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    final int shortcutKeyTextItemMinWidth = shortcutsKeyView.getMeasuredHeight();
    // Needed to be able to scale the image items to the same height as the text items.
    final int shortcutKeyIconItemHeightWidth = shortcutsKeyView.getMeasuredHeight() - shortcutsKeyView.getPaddingTop() - shortcutsKeyView.getPaddingBottom();
    for (int i = 0; i < keyboardShortcutGroupsSize; i++) {
        KeyboardShortcutGroup group = keyboardShortcutGroups.get(i);
        TextView categoryTitle = (TextView) inflater.inflate(R.layout.keyboard_shortcuts_category_title, keyboardShortcutsLayout, false);
        categoryTitle.setText(group.getLabel());
        categoryTitle.setTextColor(group.isSystemGroup() ? Utils.getColorAccent(mContext) : mContext.getColor(R.color.ksh_application_group_color));
        keyboardShortcutsLayout.addView(categoryTitle);
        LinearLayout shortcutContainer = (LinearLayout) inflater.inflate(R.layout.keyboard_shortcuts_container, keyboardShortcutsLayout, false);
        final int itemsSize = group.getItems().size();
        for (int j = 0; j < itemsSize; j++) {
            KeyboardShortcutInfo info = group.getItems().get(j);
            List<StringDrawableContainer> shortcutKeys = getHumanReadableShortcutKeys(info);
            if (shortcutKeys == null) {
                // Ignore shortcuts we can't display keys for.
                Log.w(TAG, "Keyboard Shortcut contains unsupported keys, skipping.");
                continue;
            }
            View shortcutView = inflater.inflate(R.layout.keyboard_shortcut_app_item, shortcutContainer, false);
            if (info.getIcon() != null) {
                ImageView shortcutIcon = (ImageView) shortcutView.findViewById(R.id.keyboard_shortcuts_icon);
                shortcutIcon.setImageIcon(info.getIcon());
                shortcutIcon.setVisibility(View.VISIBLE);
            }
            TextView shortcutKeyword = (TextView) shortcutView.findViewById(R.id.keyboard_shortcuts_keyword);
            shortcutKeyword.setText(info.getLabel());
            if (info.getIcon() != null) {
                RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) shortcutKeyword.getLayoutParams();
                lp.removeRule(RelativeLayout.ALIGN_PARENT_START);
                shortcutKeyword.setLayoutParams(lp);
            }
            ViewGroup shortcutItemsContainer = (ViewGroup) shortcutView.findViewById(R.id.keyboard_shortcuts_item_container);
            final int shortcutKeysSize = shortcutKeys.size();
            for (int k = 0; k < shortcutKeysSize; k++) {
                StringDrawableContainer shortcutRepresentation = shortcutKeys.get(k);
                if (shortcutRepresentation.mDrawable != null) {
                    ImageView shortcutKeyIconView = (ImageView) inflater.inflate(R.layout.keyboard_shortcuts_key_icon_view, shortcutItemsContainer, false);
                    Bitmap bitmap = Bitmap.createBitmap(shortcutKeyIconItemHeightWidth, shortcutKeyIconItemHeightWidth, Bitmap.Config.ARGB_8888);
                    Canvas canvas = new Canvas(bitmap);
                    shortcutRepresentation.mDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
                    shortcutRepresentation.mDrawable.draw(canvas);
                    shortcutKeyIconView.setImageBitmap(bitmap);
                    shortcutKeyIconView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
                    shortcutKeyIconView.setAccessibilityDelegate(new ShortcutKeyAccessibilityDelegate(shortcutRepresentation.mString));
                    shortcutItemsContainer.addView(shortcutKeyIconView);
                } else if (shortcutRepresentation.mString != null) {
                    TextView shortcutKeyTextView = (TextView) inflater.inflate(R.layout.keyboard_shortcuts_key_view, shortcutItemsContainer, false);
                    shortcutKeyTextView.setMinimumWidth(shortcutKeyTextItemMinWidth);
                    shortcutKeyTextView.setText(shortcutRepresentation.mString);
                    shortcutKeyTextView.setAccessibilityDelegate(new ShortcutKeyAccessibilityDelegate(shortcutRepresentation.mString));
                    shortcutItemsContainer.addView(shortcutKeyTextView);
                }
            }
            shortcutContainer.addView(shortcutView);
        }
        keyboardShortcutsLayout.addView(shortcutContainer);
        if (i < keyboardShortcutGroupsSize - 1) {
            View separator = inflater.inflate(R.layout.keyboard_shortcuts_category_separator, keyboardShortcutsLayout, false);
            keyboardShortcutsLayout.addView(separator);
        }
    }
}
Also used : KeyboardShortcutGroup(android.view.KeyboardShortcutGroup) ViewGroup(android.view.ViewGroup) Canvas(android.graphics.Canvas) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) Bitmap(android.graphics.Bitmap) LayoutInflater(android.view.LayoutInflater) RelativeLayout(android.widget.RelativeLayout) KeyboardShortcutInfo(android.view.KeyboardShortcutInfo) TextView(android.widget.TextView) ImageView(android.widget.ImageView) LinearLayout(android.widget.LinearLayout)

Example 25 with KeyboardShortcutGroup

use of android.view.KeyboardShortcutGroup in project android_frameworks_base by crdroidandroid.

the class KeyboardShortcuts method showKeyboardShortcuts.

private void showKeyboardShortcuts(int deviceId) {
    retrieveKeyCharacterMap(deviceId);
    Recents.getSystemServices().requestKeyboardShortcuts(mContext, new KeyboardShortcutsReceiver() {

        @Override
        public void onKeyboardShortcutsReceived(final List<KeyboardShortcutGroup> result) {
            result.add(getSystemShortcuts());
            final KeyboardShortcutGroup appShortcuts = getDefaultApplicationShortcuts();
            if (appShortcuts != null) {
                result.add(appShortcuts);
            }
            showKeyboardShortcutsDialog(result);
        }
    }, deviceId);
}
Also used : KeyboardShortcutGroup(android.view.KeyboardShortcutGroup) KeyboardShortcutsReceiver(android.view.WindowManager.KeyboardShortcutsReceiver)

Aggregations

KeyboardShortcutGroup (android.view.KeyboardShortcutGroup)26 KeyboardShortcutInfo (android.view.KeyboardShortcutInfo)21 ArrayList (java.util.ArrayList)6 ComponentName (android.content.ComponentName)5 PackageInfo (android.content.pm.PackageInfo)5 Bitmap (android.graphics.Bitmap)5 Canvas (android.graphics.Canvas)5 Icon (android.graphics.drawable.Icon)5 RemoteException (android.os.RemoteException)5 LayoutInflater (android.view.LayoutInflater)5 MenuItem (android.view.MenuItem)5 View (android.view.View)5 ViewGroup (android.view.ViewGroup)5 KeyboardShortcutsReceiver (android.view.WindowManager.KeyboardShortcutsReceiver)5 ImageView (android.widget.ImageView)5 LinearLayout (android.widget.LinearLayout)5 RelativeLayout (android.widget.RelativeLayout)5 TextView (android.widget.TextView)5 AssistUtils (com.android.internal.app.AssistUtils)5 TargetApi (android.annotation.TargetApi)1