185035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes/* 285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * Copyright (C) 2016 The Android Open Source Project 385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * 485035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 585035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * you may not use this file except in compliance with the License. 685035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * You may obtain a copy of the License at 785035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * 885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * http://www.apache.org/licenses/LICENSE-2.0 985035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * 1085035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * Unless required by applicable law or agreed to in writing, software 1185035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * distributed under the License is distributed on an "AS IS" BASIS, 1285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * See the License for the specific language governing permissions and 1485035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes * limitations under the License 1585035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes */ 1685035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 1785035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banespackage android.support.v7.app; 1885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 1985035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesimport android.content.Context; 208f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viveretteimport android.support.annotation.RequiresApi; 2185035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesimport android.view.KeyboardShortcutGroup; 2285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesimport android.view.Menu; 2385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesimport android.view.Window; 2485035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 2585035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesimport java.util.List; 2685035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 278f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viverette@RequiresApi(24) 2885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banesclass AppCompatDelegateImplN extends AppCompatDelegateImplV23 { 2985035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 3085035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes AppCompatDelegateImplN(Context context, Window window, AppCompatCallback callback) { 3185035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes super(context, window, callback); 3285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 3385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 3485035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes @Override 3585035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes Window.Callback wrapWindowCallback(Window.Callback callback) { 3685035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes return new AppCompatWindowCallbackN(callback); 3785035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 3885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 3985035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes class AppCompatWindowCallbackN extends AppCompatWindowCallbackV23 { 4085035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes AppCompatWindowCallbackN(Window.Callback callback) { 4185035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes super(callback); 4285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 4385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes 4485035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes @Override 4596af432b980d0216c22a874f79173e7523dff892Clara Bayarri public void onProvideKeyboardShortcuts( 4696af432b980d0216c22a874f79173e7523dff892Clara Bayarri List<KeyboardShortcutGroup> data, Menu menu, int deviceId) { 4785035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes final PanelFeatureState panel = getPanelState(Window.FEATURE_OPTIONS_PANEL, true); 4885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes if (panel != null && panel.menu != null) { 4985035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes // The menu provided is one created by PhoneWindow which we don't actually use. 5085035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes // Instead we'll pass through our own... 5196af432b980d0216c22a874f79173e7523dff892Clara Bayarri super.onProvideKeyboardShortcuts(data, panel.menu, deviceId); 5285035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } else { 5385035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes // If we don't have a menu, jump pass through the original instead 5496af432b980d0216c22a874f79173e7523dff892Clara Bayarri super.onProvideKeyboardShortcuts(data, menu, deviceId); 5585035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 5685035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 5785035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes } 5885035fae2e7f292a529dc70e8d41cebc799e7d4fChris Banes} 59