blob: f336e91fedc46ad39544142ed2e641771962ecc6 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.support.v7.app;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.appcompat.test.R;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
abstract class BaseTestActivity extends AppCompatActivity {
private Menu mMenu;
private KeyEvent mOnKeyDownEvent;
private KeyEvent mOnKeyUpEvent;
private KeyEvent mOnKeyShortcutEvent;
private MenuItem mOptionsItemSelected;
private boolean mOnMenuOpenedCalled;
private boolean mOnPanelClosedCalled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
final int contentView = getContentViewLayoutResId();
if (contentView > 0) {
setContentView(contentView);
}
onContentViewSet();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
protected abstract int getContentViewLayoutResId();
protected void onContentViewSet() {
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
mOptionsItemSelected = item;
return super.onOptionsItemSelected(item);
}
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
mOnMenuOpenedCalled = true;
return super.onMenuOpened(featureId, menu);
}
@Override
public void onPanelClosed(int featureId, Menu menu) {
mOnPanelClosedCalled = true;
super.onPanelClosed(featureId, menu);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
mOnKeyDownEvent = event;
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
mOnKeyUpEvent = event;
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyShortcut(int keyCode, KeyEvent event) {
mOnKeyShortcutEvent = event;
return super.onKeyShortcut(keyCode, event);
}
public KeyEvent getInvokedKeyShortcutEvent() {
return mOnKeyShortcutEvent;
}
public boolean wasOnMenuOpenedCalled() {
return mOnMenuOpenedCalled;
}
public boolean wasOnPanelClosedCalled() {
return mOnPanelClosedCalled;
}
public KeyEvent getInvokedKeyDownEvent() {
return mOnKeyDownEvent;
}
public KeyEvent getInvokedKeyUpEvent() {
return mOnKeyUpEvent;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu;
getMenuInflater().inflate(R.menu.sample_actions, menu);
return true;
}
public boolean expandSearchView() {
return MenuItemCompat.expandActionView(mMenu.findItem(R.id.action_search));
}
public boolean collapseSearchView() {
return MenuItemCompat.collapseActionView(mMenu.findItem(R.id.action_search));
}
public boolean isSearchViewExpanded() {
return MenuItemCompat.isActionViewExpanded(mMenu.findItem(R.id.action_search));
}
public MenuItem getOptionsItemSelected() {
return mOptionsItemSelected;
}
public void reset() {
mOnKeyUpEvent = null;
mOnKeyDownEvent = null;
mOnKeyShortcutEvent = null;
mOnMenuOpenedCalled = false;
mOnPanelClosedCalled = false;
}
}