Update ActionBarSherlock
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="90" android:versionName="4.1.0" package="com.actionbarsherlock">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="100" android:versionName="4.2.0" package="com.actionbarsherlock">
|
||||
|
||||
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
|
||||
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16"/>
|
||||
|
||||
</manifest>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="com_actionbarsherlock" default="help">
|
||||
<project name="ActionBarSherlock" default="help">
|
||||
|
||||
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||
It contains the path to the SDK. It should *NOT* be checked into
|
||||
@ -28,6 +28,15 @@
|
||||
-->
|
||||
<property file="ant.properties" />
|
||||
|
||||
<!-- if sdk.dir was not set from one of the property file, then
|
||||
get it from the ANDROID_HOME env var.
|
||||
This must be done before we load project.properties since
|
||||
the proguard config can use sdk.dir -->
|
||||
<property environment="env" />
|
||||
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
|
||||
<isset property="env.ANDROID_HOME" />
|
||||
</condition>
|
||||
|
||||
<!-- The project.properties file is created and updated by the 'android'
|
||||
tool, as well as ADT.
|
||||
|
||||
@ -41,25 +50,23 @@
|
||||
|
||||
<!-- quick check on sdk.dir -->
|
||||
<fail
|
||||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
|
||||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
|
||||
unless="sdk.dir"
|
||||
/>
|
||||
|
||||
|
||||
<!-- extension targets. Uncomment the ones where you want to do custom work
|
||||
in between standard targets -->
|
||||
<!--
|
||||
<target name="-pre-build">
|
||||
</target>
|
||||
<target name="-pre-compile">
|
||||
</target>
|
||||
|
||||
/* This is typically used for code obfuscation.
|
||||
Compiled code location: ${out.classes.absolute.dir}
|
||||
If this is not done in place, override ${out.dex.input.absolute.dir} */
|
||||
<target name="-post-compile">
|
||||
</target>
|
||||
-->
|
||||
<!--
|
||||
Import per project custom build rules if present at the root of the project.
|
||||
This is the place to put custom intermediary targets such as:
|
||||
-pre-build
|
||||
-pre-compile
|
||||
-post-compile (This is typically used for code obfuscation.
|
||||
Compiled code location: ${out.classes.absolute.dir}
|
||||
If this is not done in place, override ${out.dex.input.absolute.dir})
|
||||
-post-package
|
||||
-post-build
|
||||
-pre-clean
|
||||
-->
|
||||
<import file="custom_rules.xml" optional="true" />
|
||||
|
||||
<!-- Import the actual build file.
|
||||
|
||||
|
@ -3,15 +3,14 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.actionbarsherlock</groupId>
|
||||
<artifactId>library</artifactId>
|
||||
<artifactId>actionbarsherlock</artifactId>
|
||||
<name>ActionBarSherlock</name>
|
||||
<packaging>apklib</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>com.actionbarsherlock</groupId>
|
||||
<artifactId>parent</artifactId>
|
||||
<version>4.1.0</version>
|
||||
<version>4.2.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -26,11 +25,6 @@
|
||||
<artifactId>support-v4</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.pivotallabs</groupId>
|
||||
<artifactId>robolectric</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
@ -47,6 +41,9 @@
|
||||
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
|
||||
<artifactId>android-maven-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<nativeLibrariesDirectory>ignored</nativeLibrariesDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
@ -132,7 +129,7 @@
|
||||
<pluginExecutionFilter>
|
||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
||||
<artifactId>maven-replacer-plugin</artifactId>
|
||||
<versionRange>[1.4.1,)</versionRange>
|
||||
<versionRange>[1.4.0,)</versionRange>
|
||||
<goals>
|
||||
<goal>replace</goal>
|
||||
</goals>
|
||||
|
20
APG/android-libs/ActionBarSherlock/proguard-project.txt
Normal file
@ -0,0 +1,20 @@
|
||||
# To enable ProGuard in your project, edit project.properties
|
||||
# to define the proguard.config property as described in that file.
|
||||
#
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in ${sdk.dir}/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the ProGuard
|
||||
# include property in project.properties.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 108 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 114 B |
After Width: | Height: | Size: 111 B |
After Width: | Height: | Size: 114 B |
After Width: | Height: | Size: 112 B |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 740 B |
After Width: | Height: | Size: 743 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 794 B |
After Width: | Height: | Size: 106 B |
After Width: | Height: | Size: 100 B |
After Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 107 B |
After Width: | Height: | Size: 107 B |
After Width: | Height: | Size: 109 B |
After Width: | Height: | Size: 109 B |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 836 B |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 125 B |
After Width: | Height: | Size: 127 B |
After Width: | Height: | Size: 128 B |
After Width: | Height: | Size: 128 B |
After Width: | Height: | Size: 114 B |
After Width: | Height: | Size: 126 B |
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_enabled="false"
|
||||
android:drawable="@drawable/abs__ic_clear_disabled" />
|
||||
<item
|
||||
android:drawable="@drawable/abs__ic_clear_normal" />
|
||||
</selector>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_enabled="false"
|
||||
android:drawable="@drawable/abs__ic_clear_search_api_disabled_holo_light" />
|
||||
<item
|
||||
android:drawable="@drawable/abs__ic_clear_search_api_holo_light" />
|
||||
</selector>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#F0A0A0A0"/>
|
||||
<stroke android:width="2dp" color="#A00080FF"/>
|
||||
<padding android:left="5dp" android:top="0dp"
|
||||
android:right="5dp" android:bottom="1dp" />
|
||||
</shape>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#F0FFFFFF"/>
|
||||
<stroke android:width="1dp" color="#A00080FF"/>
|
||||
<padding android:left="5dp" android:top="0dp"
|
||||
android:right="5dp" android:bottom="1dp" />
|
||||
</shape>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_focused="true"
|
||||
android:drawable="@drawable/abs__textfield_search_selected_holo_dark" />
|
||||
<item android:drawable="@drawable/abs__textfield_search_default_holo_dark" />
|
||||
</selector>
|
||||
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_focused="true"
|
||||
android:drawable="@drawable/abs__textfield_search_selected_holo_light" />
|
||||
<item android:drawable="@drawable/abs__textfield_search_default_holo_light" />
|
||||
</selector>
|
||||
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_focused="true"
|
||||
android:drawable="@drawable/abs__textfield_search_right_selected_holo_dark" />
|
||||
<item android:drawable="@drawable/abs__textfield_search_right_default_holo_dark" />
|
||||
</selector>
|
||||
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_focused="true"
|
||||
android:drawable="@drawable/abs__textfield_search_right_selected_holo_light" />
|
||||
<item android:drawable="@drawable/abs__textfield_search_right_default_holo_light" />
|
||||
</selector>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<com.actionbarsherlock.internal.widget.IcsLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/abs__activity_chooser_view_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
style="?attr/activityChooserViewStyle">
|
||||
|
||||
|
@ -35,7 +35,7 @@ enabled.
|
||||
android:layout_height="2dip"
|
||||
android:background="@color/abs__holo_blue_light" />
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content" android:layout_height="0dp"
|
||||
android:layout_width="match_parent" android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:foreground="?attr/windowContentOverlay">
|
||||
|
@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2008, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:paddingLeft="@dimen/abs__dropdownitem_text_padding_left"
|
||||
android:paddingRight="4dip"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/searchResultListItemHeight" >
|
||||
|
||||
<!-- Icons come first in the layout, since their placement doesn't depend on
|
||||
the placement of the text views. -->
|
||||
<ImageView android:id="@android:id/icon1"
|
||||
android:layout_width="@dimen/abs__dropdownitem_icon_width"
|
||||
android:layout_height="48dip"
|
||||
android:scaleType="centerInside"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<ImageView android:id="@+id/edit_query"
|
||||
android:layout_width="48dip"
|
||||
android:layout_height="48dip"
|
||||
android:scaleType="centerInside"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:src="?attr/searchViewEditQuery"
|
||||
android:background="?attr/searchViewEditQueryBackground"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView android:id="@android:id/icon2"
|
||||
android:layout_width="48dip"
|
||||
android:layout_height="48dip"
|
||||
android:scaleType="centerInside"
|
||||
android:layout_alignWithParentIfMissing="true"
|
||||
android:layout_toLeftOf="@id/edit_query"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="gone" />
|
||||
|
||||
|
||||
<!-- The subtitle comes before the title, since the height of the title depends on whether the
|
||||
subtitle is visible or gone. -->
|
||||
<TextView android:id="@android:id/text2"
|
||||
style="?android:attr/dropDownItemStyle"
|
||||
android:textAppearance="?attr/textAppearanceSearchResultSubtitle"
|
||||
android:singleLine="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="29dip"
|
||||
android:paddingBottom="4dip"
|
||||
android:gravity="top"
|
||||
android:layout_toRightOf="@android:id/icon1"
|
||||
android:layout_toLeftOf="@android:id/icon2"
|
||||
android:layout_alignWithParentIfMissing="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="gone" />
|
||||
|
||||
<!-- The title is placed above the subtitle, if there is one. If there is no
|
||||
subtitle, it fills the parent. -->
|
||||
<TextView android:id="@android:id/text1"
|
||||
style="?android:attr/dropDownItemStyle"
|
||||
android:textAppearance="?attr/textAppearanceSearchResultTitle"
|
||||
android:singleLine="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toRightOf="@android:id/icon1"
|
||||
android:layout_toLeftOf="@android:id/icon2"
|
||||
android:layout_above="@android:id/text2" />
|
||||
|
||||
</RelativeLayout>
|
@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
* Copyright (C) 2010 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.
|
||||
*/
|
||||
|
||||
-->
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/abs__search_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<!-- This is actually used for the badge icon *or* the badge label (or neither) -->
|
||||
<TextView
|
||||
android:id="@+id/abs__search_badge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginBottom="2dip"
|
||||
android:drawablePadding="0dip"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textColor="?attr/textColorPrimary"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/abs__search_button"
|
||||
style="?android:attr/actionButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="?attr/searchViewSearchIcon"
|
||||
android:contentDescription="@string/abs__searchview_description_search"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/abs__search_edit_frame"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="4dip"
|
||||
android:layout_marginBottom="4dip"
|
||||
android:layout_marginLeft="8dip"
|
||||
android:layout_marginRight="8dip"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/abs__search_mag_icon"
|
||||
android:layout_width="@dimen/abs__dropdownitem_icon_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerInside"
|
||||
android:layout_marginLeft="@dimen/abs__dropdownitem_text_padding_left"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="?attr/searchViewSearchIcon"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<!-- Inner layout contains the app icon, button(s) and EditText -->
|
||||
<LinearLayout
|
||||
android:id="@+id/abs__search_plate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:background="?attr/searchViewTextField">
|
||||
|
||||
<view class="com.actionbarsherlock.widget.SearchView$SearchAutoComplete"
|
||||
style="?attr/searchAutoCompleteTextView"
|
||||
android:id="@+id/abs__search_src_text"
|
||||
android:layout_height="36dip"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:minWidth="@dimen/abs__search_view_text_min_width"
|
||||
android:layout_gravity="bottom"
|
||||
android:paddingLeft="@dimen/abs__dropdownitem_text_padding_left"
|
||||
android:paddingRight="@dimen/abs__dropdownitem_text_padding_right"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:background="@null"
|
||||
android:inputType="text|textAutoComplete|textNoSuggestions"
|
||||
android:imeOptions="actionSearch"
|
||||
android:dropDownHeight="wrap_content"
|
||||
android:dropDownAnchor="@id/abs__search_edit_frame"
|
||||
android:dropDownVerticalOffset="0dip"
|
||||
android:dropDownHorizontalOffset="0dip"
|
||||
android:contentDescription="@string/abs__searchview_description_query"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/abs__search_close_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="8dip"
|
||||
android:paddingRight="8dip"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:src="?attr/searchViewCloseIcon"
|
||||
android:focusable="true"
|
||||
android:contentDescription="@string/abs__searchview_description_clear"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/abs__submit_area"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/searchViewTextFieldRight">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/abs__search_go_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingLeft="16dip"
|
||||
android:paddingRight="16dip"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:src="?attr/searchViewGoIcon"
|
||||
android:visibility="gone"
|
||||
android:focusable="true"
|
||||
android:contentDescription="@string/abs__searchview_description_submit"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/abs__search_voice_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingLeft="16dip"
|
||||
android:paddingRight="16dip"
|
||||
android:src="?attr/searchViewVoiceIcon"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:visibility="gone"
|
||||
android:focusable="true"
|
||||
android:contentDescription="@string/abs__searchview_description_voice"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2008, 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.
|
||||
*/
|
||||
-->
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@android:id/text1"
|
||||
android:textAppearance="?android:attr/dropDownHintAppearance"
|
||||
android:singleLine="true"
|
||||
android:layout_marginLeft="3dip"
|
||||
android:layout_marginTop="3dip"
|
||||
android:layout_marginRight="3dip"
|
||||
android:layout_marginBottom="3dip"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
@ -85,6 +85,11 @@
|
||||
<style name="Widget.Sherlock.Light.ProgressBar.Horizontal" parent="android:Widget.Holo.Light.ProgressBar.Horizontal">
|
||||
</style>
|
||||
|
||||
<style name="Widget.Sherlock.SearchAutoCompleteTextView" parent="android:Widget.Holo.AutoCompleteTextView">
|
||||
</style>
|
||||
<style name="Widget.Sherlock.Light.SearchAutoCompleteTextView" parent="android:Widget.Holo.Light.AutoCompleteTextView">
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.Sherlock.Widget.ActionBar.Menu" parent="android:TextAppearance.Holo.Widget.ActionBar.Menu">
|
||||
</style>
|
||||
|
||||
|
@ -10,10 +10,12 @@
|
||||
<item name="actionBarSize">?android:attr/actionBarSize</item>
|
||||
<!-- Needed for our bug-fix dropdown list navigation layout. :( -->
|
||||
<item name="dropdownListPreferredItemHeight">48dp</item>
|
||||
<!-- Needed for our ShareActionProvider implementation. -->
|
||||
<!-- Needed for our ShareActionProvider and SearchView implementation. -->
|
||||
<item name="android:actionBarWidgetTheme">@style/Theme.Sherlock</item>
|
||||
<!-- For crazy people who use IcsSpinner. -->
|
||||
<item name="dropDownListViewStyle">?android:attr/dropDownListViewStyle</item>
|
||||
<!-- Needed for our SearchView implementation. -->
|
||||
<item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Sherlock.NoActionBar">
|
||||
|
@ -74,6 +74,9 @@
|
||||
<!-- Small Button style. -->
|
||||
<attr name="buttonStyleSmall" format="reference" />
|
||||
|
||||
<!-- Background drawable for standalone items that need focus/pressed states. -->
|
||||
<attr name="selectableItemBackground" format="reference" />
|
||||
|
||||
|
||||
|
||||
<!-- This Drawable is overlaid over the foreground of the Window's content area, usually
|
||||
@ -97,6 +100,40 @@
|
||||
<attr name="spinnerItemStyle" format="reference" />
|
||||
<attr name="spinnerDropDownItemStyle" format="reference" />
|
||||
|
||||
<!-- ============================ -->
|
||||
<!-- SearchView styles and assets -->
|
||||
<!-- ============================ -->
|
||||
<eat-comment />
|
||||
<!-- SearchView AutoCompleteTextView style -->
|
||||
<attr name="searchAutoCompleteTextView" format="reference" />
|
||||
<!-- SearchView dropdown background -->
|
||||
<attr name="searchDropdownBackground" format="reference" />
|
||||
<!-- SearchView close button icon -->
|
||||
<attr name="searchViewCloseIcon" format="reference" />
|
||||
<!-- SearchView Go button icon -->
|
||||
<attr name="searchViewGoIcon" format="reference" />
|
||||
<!-- SearchView Search icon -->
|
||||
<attr name="searchViewSearchIcon" format="reference" />
|
||||
<!-- SearchView Voice button icon -->
|
||||
<attr name="searchViewVoiceIcon" format="reference" />
|
||||
<!-- SearchView query refinement icon -->
|
||||
<attr name="searchViewEditQuery" format="reference" />
|
||||
<!-- SearchView query refinement icon background -->
|
||||
<attr name="searchViewEditQueryBackground" format="reference" />
|
||||
<!-- SearchView text field background for the left section -->
|
||||
<attr name="searchViewTextField" format="reference" />
|
||||
<!-- SearchView text field background for the right section -->
|
||||
<attr name="searchViewTextFieldRight" format="reference" />
|
||||
<!-- Text color for urls in search suggestions, used by things like global search and the browser. @hide -->
|
||||
<attr name="textColorSearchUrl" format="reference|color" />
|
||||
<!-- The list item height for search results. @hide -->
|
||||
<attr name="searchResultListItemHeight" format="dimension" />
|
||||
<!-- Text color, typeface, size, and style for system search result title. Defaults to primary inverse text color. -->
|
||||
<attr name="textAppearanceSearchResultTitle" format="reference" />
|
||||
<!-- Text color, typeface, size, and style for system search result subtitle. Defaults to primary inverse text color. -->
|
||||
<attr name="textAppearanceSearchResultSubtitle" format="reference" />
|
||||
|
||||
|
||||
<!-- =========== -->
|
||||
<!-- List styles -->
|
||||
<!-- =========== -->
|
||||
@ -144,9 +181,6 @@
|
||||
<!-- Drawable used as a background for activated items. -->
|
||||
<attr name="activatedBackgroundIndicator" format="reference" />
|
||||
|
||||
<!-- Specified if we are forcing an action item overflow menu. -->
|
||||
<attr name="absForceOverflow" format="boolean" />
|
||||
|
||||
<attr name="android:windowIsFloating" />
|
||||
</declare-styleable>
|
||||
|
||||
@ -377,4 +411,22 @@
|
||||
<!-- Gravity setting for positioning the currently selected item. -->
|
||||
<attr name="android:gravity" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="SherlockSearchView">
|
||||
<!-- The default state of the SearchView. If true, it will be iconified when not in
|
||||
use and expanded when clicked. -->
|
||||
<attr name="iconifiedByDefault" format="boolean"/>
|
||||
<!-- An optional maximum width of the SearchView. -->
|
||||
<attr name="android:maxWidth" />
|
||||
<!-- An optional query hint string to be displayed in the empty query field. -->
|
||||
<attr name="queryHint" format="string" />
|
||||
<!-- The IME options to set on the query text field. -->
|
||||
<attr name="android:imeOptions" />
|
||||
<!-- The input type to set on the query text field. -->
|
||||
<attr name="android:inputType" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="SherlockView">
|
||||
<attr name="android:focusable"/>
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
|
@ -30,15 +30,15 @@
|
||||
<dimen name="abs__action_bar_subtitle_top_margin">-3dp</dimen>
|
||||
<!-- Bottom margin for action bar subtitles -->
|
||||
<dimen name="abs__action_bar_subtitle_bottom_margin">5dip</dimen>
|
||||
|
||||
|
||||
<integer name="abs__max_action_buttons">2</integer>
|
||||
|
||||
<!-- Minimum width for an action button in the menu area of an action bar -->
|
||||
<dimen name="abs__action_button_min_width">56dip</dimen>
|
||||
|
||||
|
||||
<!-- Dialog title height -->
|
||||
<dimen name="abs__alert_dialog_title_height">64dip</dimen>
|
||||
|
||||
|
||||
<!-- The platform's desired minimum size for a dialog's width when it
|
||||
is along the major axis (that is the screen is landscape). This may
|
||||
be either a fraction or a dimension. -->
|
||||
@ -47,4 +47,21 @@
|
||||
is along the minor axis (that is the screen is portrait). This may
|
||||
be either a fraction or a dimension. -->
|
||||
<item type="dimen" name="abs__dialog_min_width_minor">95%</item>
|
||||
|
||||
|
||||
<!-- Text padding for dropdown items -->
|
||||
<dimen name="abs__dropdownitem_text_padding_left">8dip</dimen>
|
||||
|
||||
<!-- Text padding for dropdown items -->
|
||||
<dimen name="abs__dropdownitem_text_padding_right">8dip</dimen>
|
||||
|
||||
<!-- Width of the icon in a dropdown list -->
|
||||
<dimen name="abs__dropdownitem_icon_width">32dip</dimen>
|
||||
|
||||
|
||||
<!-- Minimum width of the search view text entry area. -->
|
||||
<dimen name="abs__search_view_text_min_width">160dip</dimen>
|
||||
|
||||
<!-- Preferred width of the search view. -->
|
||||
<dimen name="abs__search_view_preferred_width">320dip</dimen>
|
||||
</resources>
|
||||
|
@ -39,4 +39,15 @@
|
||||
<string name="abs__shareactionprovider_share_with">Share with</string>
|
||||
<!-- Description of a share target (both in the list of such or the default share button) in a ShareActionProvider (share UI). [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__shareactionprovider_share_with_application">Share with <xliff:g id="application_name" example="Bluetooth">%s</xliff:g></string>
|
||||
|
||||
<!-- SearchView accessibility description for search button [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__searchview_description_search">Search</string>
|
||||
<!-- SearchView accessibility description for search text field [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__searchview_description_query">Search query</string>
|
||||
<!-- SearchView accessibility description for clear button [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__searchview_description_clear">Clear query</string>
|
||||
<!-- SearchView accessibility description for submit button [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__searchview_description_submit">Submit query</string>
|
||||
<!-- SearchView accessibility description for voice button [CHAR LIMIT=NONE] -->
|
||||
<string name="abs__searchview_description_voice">Voice search</string>
|
||||
</resources>
|
||||
|
@ -182,6 +182,7 @@
|
||||
<item name="android:divider">?attr/dividerVertical</item>
|
||||
<item name="android:showDividers">middle</item>
|
||||
<item name="android:dividerPadding">6dip</item>
|
||||
<item name="android:minHeight">?attr/actionBarSize</item>
|
||||
</style>
|
||||
<style name="Widget.Sherlock.ActivityChooserView" parent="Sherlock.__Widget.ActivityChooserView">
|
||||
</style>
|
||||
@ -279,6 +280,28 @@
|
||||
|
||||
|
||||
|
||||
<style name="Sherlock.__Widget.SearchAutoCompleteTextView" parent="Widget">
|
||||
<item name="android:focusable">true</item>
|
||||
<item name="android:focusableInTouchMode">true</item>
|
||||
<item name="android:clickable">true</item>
|
||||
<item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
|
||||
<item name="android:textColor">?attr/textColorPrimary</item>
|
||||
<item name="android:gravity">center_vertical</item>
|
||||
<item name="android:completionHintView">@layout/abs__simple_dropdown_hint</item>
|
||||
<item name="android:completionThreshold">2</item>
|
||||
<item name="android:dropDownWidth">wrap_content</item>
|
||||
</style>
|
||||
<style name="Widget.Sherlock.SearchAutoCompleteTextView" parent="Sherlock.__Widget.SearchAutoCompleteTextView">
|
||||
<item name="android:dropDownSelector">@drawable/abs__list_selector_holo_dark</item>
|
||||
<item name="android:popupBackground">@drawable/abs__menu_dropdown_panel_holo_dark</item>
|
||||
</style>
|
||||
<style name="Widget.Sherlock.Light.SearchAutoCompleteTextView" parent="Sherlock.__Widget.SearchAutoCompleteTextView">
|
||||
<item name="android:dropDownSelector">@drawable/abs__list_selector_holo_light</item>
|
||||
<item name="android:popupBackground">@drawable/abs__menu_dropdown_panel_holo_light</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<style name="DialogWindowTitle.Sherlock" parent="Widget">
|
||||
<item name="android:maxLines">1</item>
|
||||
<item name="android:scrollHorizontally">true</item>
|
||||
@ -381,4 +404,9 @@
|
||||
</style>
|
||||
<style name="TextAppearance.Sherlock.Light.Small" parent="TextAppearance.Sherlock.Small">
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.Sherlock.Widget.DropDownHint" parent="Widget">
|
||||
<item name="android:textColor">?textColorPrimary</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
@ -11,7 +11,7 @@
|
||||
</style>
|
||||
<style name="Sherlock.__Theme.Dialog" parent="android:Theme.Dialog">
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Sherlock" parent="Sherlock.__Theme">
|
||||
<!-- Action bar styles (from Theme.Holo) -->
|
||||
<item name="actionDropDownStyle">@style/Widget.Sherlock.Spinner.DropDown.ActionBar</item>
|
||||
@ -29,41 +29,53 @@
|
||||
<item name="actionBarSize">@dimen/abs__action_bar_default_height</item>
|
||||
<!-- Internal --><item name="actionModePopupWindowStyle">@style/Widget.Sherlock.PopupWindow.ActionMode</item>
|
||||
<item name="actionBarWidgetTheme">@null</item>
|
||||
|
||||
|
||||
<!-- Action bar styles (defaults from Theme) -->
|
||||
<item name="actionBarSplitStyle">?attr/actionBarStyle</item>
|
||||
<item name="actionMenuTextAppearance">@style/TextAppearance.Sherlock.Widget.ActionBar.Menu</item>
|
||||
<item name="actionMenuTextColor">?attr/textColorPrimary</item>
|
||||
<item name="actionBarDivider">?attr/dividerVertical</item>
|
||||
<item name="actionBarItemBackground">@drawable/abs__item_background_holo_dark</item>
|
||||
<item name="actionBarItemBackground">?attr/selectableItemBackground</item>
|
||||
|
||||
<item name="buttonStyleSmall">@style/Widget.Sherlock.Button.Small</item>
|
||||
|
||||
|
||||
<item name="selectableItemBackground">@drawable/abs__item_background_holo_dark</item>
|
||||
|
||||
<item name="activatedBackgroundIndicator">@drawable/abs__activated_background_holo_dark</item>
|
||||
<item name="actionModeShareDrawable">@drawable/abs__ic_menu_share_holo_dark</item>
|
||||
<item name="activityChooserViewStyle">@style/Widget.Sherlock.ActivityChooserView</item>
|
||||
|
||||
|
||||
<item name="homeAsUpIndicator">@drawable/abs__ic_ab_back_holo_dark</item>
|
||||
|
||||
|
||||
<item name="dividerVertical">@drawable/abs__list_divider_holo_dark</item>
|
||||
|
||||
|
||||
<item name="spinnerDropDownItemStyle">@style/Widget.Sherlock.DropDownItem.Spinner</item>
|
||||
<item name="spinnerItemStyle">@style/Widget.Sherlock.TextView.SpinnerItem</item>
|
||||
|
||||
|
||||
<item name="textColorPrimary">@color/abs__primary_text_holo_dark</item>
|
||||
<item name="textColorPrimaryDisableOnly">@color/abs__primary_text_disable_only_holo_dark</item>
|
||||
<item name="textColorPrimaryInverse">@color/abs__primary_text_holo_light</item>
|
||||
|
||||
|
||||
<!-- Internal --><item name="dropdownListPreferredItemHeight">48dip</item>
|
||||
<item name="dropDownListViewStyle">@style/Widget.Sherlock.ListView.DropDown</item>
|
||||
|
||||
<item name="textAppearanceSmall">@style/TextAppearance.Sherlock.Small</item>
|
||||
<item name="textAppearanceLargePopupMenu">@style/TextAppearance.Sherlock.Widget.PopupMenu.Large</item>
|
||||
<item name="textAppearanceSmallPopupMenu">@style/TextAppearance.Sherlock.Widget.PopupMenu.Small</item>
|
||||
|
||||
|
||||
<item name="popupMenuStyle">@style/Widget.Sherlock.PopupMenu</item>
|
||||
<!-- Internal --><item name="listPopupWindowStyle">@style/Widget.Sherlock.ListPopupWindow</item>
|
||||
|
||||
|
||||
<item name="searchDropdownBackground">@drawable/abs__search_dropdown_dark</item>
|
||||
<item name="searchViewTextField">@drawable/abs__textfield_searchview_holo_dark</item>
|
||||
<item name="searchViewTextFieldRight">@drawable/abs__textfield_searchview_right_holo_dark</item>
|
||||
<item name="searchViewCloseIcon">@drawable/abs__ic_clear</item>
|
||||
<item name="searchViewSearchIcon">@drawable/abs__ic_search</item>
|
||||
<item name="searchViewGoIcon">@drawable/abs__ic_go</item>
|
||||
<item name="searchViewVoiceIcon">@drawable/abs__ic_voice_search</item>
|
||||
<item name="searchAutoCompleteTextView">@style/Widget.Sherlock.SearchAutoCompleteTextView</item>
|
||||
<item name="android:dropDownHintAppearance">@style/TextAppearance.Sherlock.Widget.DropDownHint</item>
|
||||
|
||||
<item name="windowActionBar">true</item>
|
||||
<item name="windowActionModeOverlay">false</item>
|
||||
<item name="windowContentOverlay">@null</item>
|
||||
@ -85,41 +97,53 @@
|
||||
<item name="actionBarSize">@dimen/abs__action_bar_default_height</item>
|
||||
<!-- Internal --><item name="actionModePopupWindowStyle">@style/Widget.Sherlock.Light.PopupWindow.ActionMode</item>
|
||||
<item name="actionBarWidgetTheme">@null</item>
|
||||
|
||||
|
||||
<!-- Action bar styles (defaults from Theme) -->
|
||||
<item name="actionBarSplitStyle">?attr/actionBarStyle</item>
|
||||
<item name="actionMenuTextAppearance">@style/TextAppearance.Sherlock.Widget.ActionBar.Menu</item>
|
||||
<item name="actionMenuTextColor">?attr/textColorPrimary</item>
|
||||
<item name="actionBarDivider">?attr/dividerVertical</item>
|
||||
<item name="actionBarItemBackground">@drawable/abs__item_background_holo_light</item>
|
||||
<item name="actionBarItemBackground">?attr/selectableItemBackground</item>
|
||||
|
||||
<item name="buttonStyleSmall">@style/Widget.Sherlock.Light.Button.Small</item>
|
||||
|
||||
|
||||
<item name="selectableItemBackground">@drawable/abs__item_background_holo_light</item>
|
||||
|
||||
<item name="activatedBackgroundIndicator">@drawable/abs__activated_background_holo_light</item>
|
||||
<item name="actionModeShareDrawable">@drawable/abs__ic_menu_share_holo_light</item>
|
||||
<item name="activityChooserViewStyle">@style/Widget.Sherlock.Light.ActivityChooserView</item>
|
||||
|
||||
|
||||
<item name="homeAsUpIndicator">@drawable/abs__ic_ab_back_holo_light</item>
|
||||
|
||||
|
||||
<item name="dividerVertical">@drawable/abs__list_divider_holo_light</item>
|
||||
|
||||
|
||||
<item name="spinnerDropDownItemStyle">@style/Widget.Sherlock.Light.DropDownItem.Spinner</item>
|
||||
<item name="spinnerItemStyle">@style/Widget.Sherlock.TextView.SpinnerItem</item>
|
||||
|
||||
|
||||
<item name="textColorPrimary">@color/abs__primary_text_holo_light</item>
|
||||
<item name="textColorPrimaryDisableOnly">@color/abs__primary_text_disable_only_holo_light</item>
|
||||
<item name="textColorPrimaryInverse">@color/abs__primary_text_holo_dark</item>
|
||||
|
||||
|
||||
<!-- Internal --><item name="dropdownListPreferredItemHeight">48dip</item>
|
||||
<item name="dropDownListViewStyle">@style/Widget.Sherlock.Light.ListView.DropDown</item>
|
||||
|
||||
<item name="textAppearanceSmall">@style/TextAppearance.Sherlock.Light.Small</item>
|
||||
<item name="textAppearanceLargePopupMenu">@style/TextAppearance.Sherlock.Light.Widget.PopupMenu.Large</item>
|
||||
<item name="textAppearanceSmallPopupMenu">@style/TextAppearance.Sherlock.Light.Widget.PopupMenu.Small</item>
|
||||
|
||||
|
||||
<item name="popupMenuStyle">@style/Widget.Sherlock.Light.PopupMenu</item>
|
||||
<!-- Internal --><item name="listPopupWindowStyle">@style/Widget.Sherlock.Light.ListPopupWindow</item>
|
||||
|
||||
|
||||
<item name="searchDropdownBackground">@drawable/abs__search_dropdown_light</item>
|
||||
<item name="searchViewTextField">@drawable/abs__textfield_searchview_holo_light</item>
|
||||
<item name="searchViewTextFieldRight">@drawable/abs__textfield_searchview_right_holo_light</item>
|
||||
<item name="searchViewCloseIcon">@drawable/abs__ic_clear_holo_light</item>
|
||||
<item name="searchViewSearchIcon">@drawable/abs__ic_search_api_holo_light</item>
|
||||
<item name="searchViewGoIcon">@drawable/abs__ic_go_search_api_holo_light</item>
|
||||
<item name="searchViewVoiceIcon">@drawable/abs__ic_voice_search_api_holo_light</item>
|
||||
<item name="searchAutoCompleteTextView">@style/Widget.Sherlock.Light.SearchAutoCompleteTextView</item>
|
||||
<item name="android:dropDownHintAppearance">@style/TextAppearance.Sherlock.Widget.DropDownHint</item>
|
||||
|
||||
<item name="windowActionBar">true</item>
|
||||
<item name="windowActionModeOverlay">false</item>
|
||||
<item name="windowContentOverlay">@null</item>
|
||||
@ -145,11 +169,11 @@
|
||||
<item name="actionModeStyle">@style/Widget.Sherlock.Light.ActionMode.Inverse</item>
|
||||
<item name="actionModeCloseButtonStyle">@style/Widget.Sherlock.ActionButton.CloseMode</item>
|
||||
<item name="actionModePopupWindowStyle">@style/Widget.Sherlock.PopupWindow.ActionMode</item>
|
||||
|
||||
|
||||
<item name="actionModeShareDrawable">@drawable/abs__ic_menu_share_holo_dark</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
<style name="Theme.Sherlock.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
@ -158,19 +182,8 @@
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Sherlock.ForceOverflow">
|
||||
<item name="absForceOverflow">true</item>
|
||||
</style>
|
||||
<style name="Theme.Sherlock.Light.ForceOverflow">
|
||||
<item name="absForceOverflow">true</item>
|
||||
</style>
|
||||
<style name="Theme.Sherlock.Light.DarkActionBar.ForceOverflow">
|
||||
<item name="absForceOverflow">true</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
<style name="Theme.Sherlock.Dialog" parent="android:Theme">
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<item name="android:windowTitleStyle">@style/DialogWindowTitle.Sherlock</item>
|
||||
@ -179,21 +192,21 @@
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
||||
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
|
||||
|
||||
|
||||
<item name="android:windowActionBar">false</item>
|
||||
<item name="android:windowActionModeOverlay">true</item>
|
||||
<item name="android:windowCloseOnTouchOutside">true</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:backgroundDimAmount">0.6</item>
|
||||
|
||||
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
|
||||
|
||||
<item name="android:textColorPrimary">@color/abs__primary_text_holo_dark</item>
|
||||
<item name="android:textColorPrimaryInverse">@color/abs__primary_text_holo_light</item>
|
||||
|
||||
|
||||
<item name="windowMinWidthMajor">@dimen/abs__dialog_min_width_major</item>
|
||||
<item name="windowMinWidthMinor">@dimen/abs__dialog_min_width_minor</item>
|
||||
|
||||
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowContentOverlay">@null</item>
|
||||
</style>
|
||||
@ -205,21 +218,21 @@
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
||||
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
|
||||
|
||||
|
||||
<item name="android:windowActionBar">false</item>
|
||||
<item name="android:windowActionModeOverlay">true</item>
|
||||
<item name="android:windowCloseOnTouchOutside">true</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:backgroundDimAmount">0.6</item>
|
||||
|
||||
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
|
||||
|
||||
<item name="android:textColorPrimary">@color/abs__primary_text_holo_light</item>
|
||||
<item name="android:textColorPrimaryInverse">@color/abs__primary_text_holo_dark</item>
|
||||
|
||||
|
||||
<item name="windowMinWidthMajor">@dimen/abs__dialog_min_width_major</item>
|
||||
<item name="windowMinWidthMinor">@dimen/abs__dialog_min_width_minor</item>
|
||||
|
||||
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowContentOverlay">@null</item>
|
||||
</style>
|
||||
|
@ -0,0 +1,144 @@
|
||||
package android.support.v4.app;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener;
|
||||
import com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener;
|
||||
import com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener;
|
||||
import com.actionbarsherlock.view.Menu;
|
||||
import com.actionbarsherlock.view.MenuInflater;
|
||||
import com.actionbarsherlock.view.MenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/** I'm in ur package. Stealing ur variables. */
|
||||
public abstract class Watson extends FragmentActivity implements OnCreatePanelMenuListener, OnPreparePanelListener, OnMenuItemSelectedListener {
|
||||
private static final boolean DEBUG = false;
|
||||
private static final String TAG = "Watson";
|
||||
|
||||
/** Fragment interface for menu creation callback. */
|
||||
public interface OnCreateOptionsMenuListener {
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater);
|
||||
}
|
||||
/** Fragment interface for menu preparation callback. */
|
||||
public interface OnPrepareOptionsMenuListener {
|
||||
public void onPrepareOptionsMenu(Menu menu);
|
||||
}
|
||||
/** Fragment interface for menu item selection callback. */
|
||||
public interface OnOptionsItemSelectedListener {
|
||||
public boolean onOptionsItemSelected(MenuItem item);
|
||||
}
|
||||
|
||||
private ArrayList<Fragment> mCreatedMenus;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Sherlock menu handling
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Override
|
||||
public boolean onCreatePanelMenu(int featureId, Menu menu) {
|
||||
if (DEBUG) Log.d(TAG, "[onCreatePanelMenu] featureId: " + featureId + ", menu: " + menu);
|
||||
|
||||
if (featureId == Window.FEATURE_OPTIONS_PANEL) {
|
||||
boolean result = onCreateOptionsMenu(menu);
|
||||
if (DEBUG) Log.d(TAG, "[onCreatePanelMenu] activity create result: " + result);
|
||||
|
||||
MenuInflater inflater = getSupportMenuInflater();
|
||||
boolean show = false;
|
||||
ArrayList<Fragment> newMenus = null;
|
||||
if (mFragments.mAdded != null) {
|
||||
for (int i = 0; i < mFragments.mAdded.size(); i++) {
|
||||
Fragment f = mFragments.mAdded.get(i);
|
||||
if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnCreateOptionsMenuListener) {
|
||||
show = true;
|
||||
((OnCreateOptionsMenuListener)f).onCreateOptionsMenu(menu, inflater);
|
||||
if (newMenus == null) {
|
||||
newMenus = new ArrayList<Fragment>();
|
||||
}
|
||||
newMenus.add(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mCreatedMenus != null) {
|
||||
for (int i = 0; i < mCreatedMenus.size(); i++) {
|
||||
Fragment f = mCreatedMenus.get(i);
|
||||
if (newMenus == null || !newMenus.contains(f)) {
|
||||
f.onDestroyOptionsMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mCreatedMenus = newMenus;
|
||||
|
||||
if (DEBUG) Log.d(TAG, "[onCreatePanelMenu] fragments create result: " + show);
|
||||
result |= show;
|
||||
|
||||
if (DEBUG) Log.d(TAG, "[onCreatePanelMenu] returning " + result);
|
||||
return result;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreparePanel(int featureId, View view, Menu menu) {
|
||||
if (DEBUG) Log.d(TAG, "[onPreparePanel] featureId: " + featureId + ", view: " + view + " menu: " + menu);
|
||||
|
||||
if (featureId == Window.FEATURE_OPTIONS_PANEL) {
|
||||
boolean result = onPrepareOptionsMenu(menu);
|
||||
if (DEBUG) Log.d(TAG, "[onPreparePanel] activity prepare result: " + result);
|
||||
|
||||
boolean show = false;
|
||||
if (mFragments.mAdded != null) {
|
||||
for (int i = 0; i < mFragments.mAdded.size(); i++) {
|
||||
Fragment f = mFragments.mAdded.get(i);
|
||||
if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnPrepareOptionsMenuListener) {
|
||||
show = true;
|
||||
((OnPrepareOptionsMenuListener)f).onPrepareOptionsMenu(menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (DEBUG) Log.d(TAG, "[onPreparePanel] fragments prepare result: " + show);
|
||||
result |= show;
|
||||
|
||||
result &= menu.hasVisibleItems();
|
||||
if (DEBUG) Log.d(TAG, "[onPreparePanel] returning " + result);
|
||||
return result;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(int featureId, MenuItem item) {
|
||||
if (DEBUG) Log.d(TAG, "[onMenuItemSelected] featureId: " + featureId + ", item: " + item);
|
||||
|
||||
if (featureId == Window.FEATURE_OPTIONS_PANEL) {
|
||||
if (onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mFragments.mAdded != null) {
|
||||
for (int i = 0; i < mFragments.mAdded.size(); i++) {
|
||||
Fragment f = mFragments.mAdded.get(i);
|
||||
if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnOptionsItemSelectedListener) {
|
||||
if (((OnOptionsItemSelectedListener)f).onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public abstract boolean onCreateOptionsMenu(Menu menu);
|
||||
|
||||
public abstract boolean onPrepareOptionsMenu(Menu menu);
|
||||
|
||||
public abstract boolean onOptionsItemSelected(MenuItem item);
|
||||
|
||||
public abstract MenuInflater getSupportMenuInflater();
|
||||
}
|
@ -537,6 +537,9 @@ public abstract class ActionBarSherlock {
|
||||
*/
|
||||
public void dispatchDestroy() {}
|
||||
|
||||
public void dispatchSaveInstanceState(Bundle outState) {}
|
||||
|
||||
public void dispatchRestoreInstanceState(Bundle savedInstanceState) {}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
@ -769,7 +772,7 @@ public abstract class ActionBarSherlock {
|
||||
// Make sure that action views can get an appropriate theme.
|
||||
if (mMenuInflater == null) {
|
||||
if (getActionBar() != null) {
|
||||
mMenuInflater = new MenuInflater(getThemedContext());
|
||||
mMenuInflater = new MenuInflater(getThemedContext(), mActivity);
|
||||
} else {
|
||||
mMenuInflater = new MenuInflater(mActivity);
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
package com.actionbarsherlock.app;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.util.AttributeSet;
|
||||
@ -895,6 +896,10 @@ public abstract class ActionBar {
|
||||
* @attr ref android.R.styleable#ActionBar_LayoutParams_layout_gravity
|
||||
*/
|
||||
public static class LayoutParams extends MarginLayoutParams {
|
||||
private static final int[] ATTRS = new int[] {
|
||||
android.R.attr.layout_gravity
|
||||
};
|
||||
|
||||
/**
|
||||
* Gravity for the view associated with these LayoutParams.
|
||||
*
|
||||
@ -918,6 +923,10 @@ public abstract class ActionBar {
|
||||
|
||||
public LayoutParams(Context c, AttributeSet attrs) {
|
||||
super(c, attrs);
|
||||
|
||||
TypedArray a = c.obtainStyledAttributes(attrs, ATTRS);
|
||||
gravity = a.getInt(0, -1);
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
public LayoutParams(int width, int height) {
|
||||
|
@ -116,6 +116,17 @@ public abstract class SherlockActivity extends Activity implements OnCreatePanel
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
getSherlock().dispatchSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
getSherlock().dispatchRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Native menu handling
|
||||
|
@ -2,7 +2,7 @@ package com.actionbarsherlock.app;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app._ActionBarSherlockTrojanHorse;
|
||||
import android.support.v4.app.Watson;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
@ -17,8 +17,8 @@ import com.actionbarsherlock.view.MenuItem;
|
||||
import static com.actionbarsherlock.ActionBarSherlock.OnActionModeFinishedListener;
|
||||
import static com.actionbarsherlock.ActionBarSherlock.OnActionModeStartedListener;
|
||||
|
||||
/** @see {@link _ActionBarSherlockTrojanHorse} */
|
||||
public class SherlockFragmentActivity extends _ActionBarSherlockTrojanHorse implements OnActionModeStartedListener, OnActionModeFinishedListener {
|
||||
/** @see {@link android.support.v4.app.Watson} */
|
||||
public class SherlockFragmentActivity extends Watson implements OnActionModeStartedListener, OnActionModeFinishedListener {
|
||||
private static final boolean DEBUG = false;
|
||||
private static final String TAG = "SherlockFragmentActivity";
|
||||
|
||||
@ -122,6 +122,17 @@ public class SherlockFragmentActivity extends _ActionBarSherlockTrojanHorse impl
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
getSherlock().dispatchSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
getSherlock().dispatchRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Native menu handling
|
||||
|
@ -116,6 +116,17 @@ public abstract class SherlockListActivity extends ListActivity implements OnCre
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
getSherlock().dispatchSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
getSherlock().dispatchRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Native menu handling
|
||||
|
@ -116,6 +116,17 @@ public abstract class SherlockPreferenceActivity extends PreferenceActivity impl
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
getSherlock().dispatchSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
getSherlock().dispatchRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Native menu handling
|
||||
|
@ -52,6 +52,7 @@ public class ActionBarSherlockCompat extends ActionBarSherlock implements MenuBu
|
||||
/** Window features which are enabled by default. */
|
||||
protected static final int DEFAULT_FEATURES = 0;
|
||||
|
||||
static private final String PANELS_TAG = "sherlock:Panels";
|
||||
|
||||
public ActionBarSherlockCompat(Activity activity, int flags) {
|
||||
super(activity, flags);
|
||||
@ -71,8 +72,6 @@ public class ActionBarSherlockCompat extends ActionBarSherlock implements MenuBu
|
||||
private MenuBuilder mMenu;
|
||||
/** Map between native options items and sherlock items. */
|
||||
protected HashMap<android.view.MenuItem, MenuItemImpl> mNativeItemMap;
|
||||
/** Indication of a long-press on the hardware menu key. */
|
||||
private boolean mMenuKeyIsLongPress = false;
|
||||
|
||||
/** Parent view of the window decoration (action bar, mode, etc.). */
|
||||
private ViewGroup mDecor;
|
||||
@ -293,7 +292,10 @@ public class ActionBarSherlockCompat extends ActionBarSherlock implements MenuBu
|
||||
return false;
|
||||
}
|
||||
|
||||
return wActionBar.hideOverflowMenu();
|
||||
if (wActionBar != null) {
|
||||
return wActionBar.hideOverflowMenu();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -424,27 +426,8 @@ public class ActionBarSherlockCompat extends ActionBarSherlock implements MenuBu
|
||||
}
|
||||
}
|
||||
|
||||
boolean result = false;
|
||||
if (keyCode == KeyEvent.KEYCODE_MENU && isReservingOverflow()) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN && event.isLongPress()) {
|
||||
mMenuKeyIsLongPress = true;
|
||||
} else if (event.getAction() == KeyEvent.ACTION_UP) {
|
||||
if (!mMenuKeyIsLongPress) {
|
||||
if (mActionMode == null && wActionBar != null) {
|
||||
if (wActionBar.isOverflowMenuShowing()) {
|
||||
wActionBar.hideOverflowMenu();
|
||||
} else {
|
||||
wActionBar.showOverflowMenu();
|
||||
}
|
||||
}
|
||||
result = true;
|
||||
}
|
||||
mMenuKeyIsLongPress = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (DEBUG) Log.d(TAG, "[dispatchKeyEvent] returning " + result);
|
||||
return result;
|
||||
if (DEBUG) Log.d(TAG, "[dispatchKeyEvent] returning false");
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -452,6 +435,19 @@ public class ActionBarSherlockCompat extends ActionBarSherlock implements MenuBu
|
||||
mIsDestroyed = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchSaveInstanceState(Bundle outState) {
|
||||
if (mMenu != null) {
|
||||
mMenuFrozenActionViewState = new Bundle();
|
||||
mMenu.saveActionViewStates(mMenuFrozenActionViewState);
|
||||
}
|
||||
outState.putParcelable(PANELS_TAG, mMenuFrozenActionViewState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchRestoreInstanceState(Bundle savedInstanceState) {
|
||||
mMenuFrozenActionViewState = savedInstanceState.getParcelable(PANELS_TAG);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Menu callback lifecycle and creation
|
||||
|
@ -208,7 +208,12 @@ public class ActionBarSherlockNative extends ActionBarSherlock {
|
||||
//is where we will set the new instance to mActionMode since we need
|
||||
//to pass it through to the sherlock callbacks and the call below
|
||||
//will not have returned yet to store its value.
|
||||
mActivity.startActionMode(wrapped);
|
||||
if (mActivity.startActionMode(wrapped) == null) {
|
||||
mActionMode = null;
|
||||
}
|
||||
if (mActivity instanceof OnActionModeStartedListener && mActionMode != null) {
|
||||
((OnActionModeStartedListener)mActivity).onActionModeStarted(mActionMode);
|
||||
}
|
||||
|
||||
return mActionMode;
|
||||
}
|
||||
@ -241,6 +246,9 @@ public class ActionBarSherlockNative extends ActionBarSherlock {
|
||||
@Override
|
||||
public void onDestroyActionMode(android.view.ActionMode mode) {
|
||||
mCallback.onDestroyActionMode(mActionMode);
|
||||
if (mActivity instanceof OnActionModeFinishedListener) {
|
||||
((OnActionModeFinishedListener)mActivity).onActionModeFinished(mActionMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.util.TypedValue;
|
||||
import android.view.ContextThemeWrapper;
|
||||
@ -36,7 +37,6 @@ import android.view.accessibility.AccessibilityEvent;
|
||||
import android.widget.SpinnerAdapter;
|
||||
import com.actionbarsherlock.R;
|
||||
import com.actionbarsherlock.app.ActionBar;
|
||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||
import com.actionbarsherlock.internal.nineoldandroids.animation.Animator;
|
||||
import com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorListenerAdapter;
|
||||
import com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorSet;
|
||||
@ -506,8 +506,8 @@ public class ActionBarImpl extends ActionBar {
|
||||
}
|
||||
|
||||
FragmentTransaction trans = null;
|
||||
if (mActivity instanceof SherlockFragmentActivity) {
|
||||
trans = ((SherlockFragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
if (mActivity instanceof FragmentActivity) {
|
||||
trans = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
.disallowAddToBackStack();
|
||||
}
|
||||
|
||||
|
@ -6,12 +6,12 @@ import java.util.Set;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.view.View;
|
||||
import android.widget.SpinnerAdapter;
|
||||
|
||||
import com.actionbarsherlock.app.ActionBar;
|
||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||
|
||||
public class ActionBarWrapper extends ActionBar implements android.app.ActionBar.OnNavigationListener, android.app.ActionBar.OnMenuVisibilityListener {
|
||||
private final Activity mActivity;
|
||||
@ -319,8 +319,8 @@ public class ActionBarWrapper extends ActionBar implements android.app.ActionBar
|
||||
public void onTabReselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) {
|
||||
if (mListener != null) {
|
||||
FragmentTransaction trans = null;
|
||||
if (mActivity instanceof SherlockFragmentActivity) {
|
||||
trans = ((SherlockFragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
if (mActivity instanceof FragmentActivity) {
|
||||
trans = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
.disallowAddToBackStack();
|
||||
}
|
||||
|
||||
@ -336,8 +336,8 @@ public class ActionBarWrapper extends ActionBar implements android.app.ActionBar
|
||||
public void onTabSelected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) {
|
||||
if (mListener != null) {
|
||||
|
||||
if (mFragmentTransaction == null && mActivity instanceof SherlockFragmentActivity) {
|
||||
mFragmentTransaction = ((SherlockFragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
if (mFragmentTransaction == null && mActivity instanceof FragmentActivity) {
|
||||
mFragmentTransaction = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
.disallowAddToBackStack();
|
||||
}
|
||||
|
||||
@ -356,8 +356,8 @@ public class ActionBarWrapper extends ActionBar implements android.app.ActionBar
|
||||
public void onTabUnselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) {
|
||||
if (mListener != null) {
|
||||
FragmentTransaction trans = null;
|
||||
if (mActivity instanceof SherlockFragmentActivity) {
|
||||
trans = ((SherlockFragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
if (mActivity instanceof FragmentActivity) {
|
||||
trans = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
|
||||
.disallowAddToBackStack();
|
||||
mFragmentTransaction = trans;
|
||||
}
|
||||
|
@ -9,18 +9,10 @@ import com.actionbarsherlock.internal.nineoldandroids.view.animation.AnimatorPro
|
||||
public class NineFrameLayout extends FrameLayout {
|
||||
private final AnimatorProxy mProxy;
|
||||
|
||||
public NineFrameLayout(Context context) {
|
||||
super(context);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
public NineFrameLayout(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
public NineFrameLayout(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisibility(int visibility) {
|
||||
|
@ -9,18 +9,10 @@ import com.actionbarsherlock.internal.nineoldandroids.view.animation.AnimatorPro
|
||||
public class NineLinearLayout extends LinearLayout {
|
||||
private final AnimatorProxy mProxy;
|
||||
|
||||
public NineLinearLayout(Context context) {
|
||||
super(context);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
public NineLinearLayout(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
public NineLinearLayout(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
mProxy = AnimatorProxy.NEEDS_PROXY ? AnimatorProxy.wrap(this) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisibility(int visibility) {
|
||||
|
@ -23,7 +23,6 @@ import java.util.Set;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.os.Build;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
@ -119,14 +118,6 @@ public class ActionMenuPresenter extends BaseMenuPresenter
|
||||
}
|
||||
|
||||
public static boolean reserveOverflow(Context context) {
|
||||
//Check for theme-forced overflow action item
|
||||
TypedArray a = context.getTheme().obtainStyledAttributes(R.styleable.SherlockTheme);
|
||||
boolean result = a.getBoolean(R.styleable.SherlockTheme_absForceOverflow, false);
|
||||
a.recycle();
|
||||
if (result) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
||||
return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB);
|
||||
} else {
|
||||
@ -621,6 +612,8 @@ public class ActionMenuPresenter extends BaseMenuPresenter
|
||||
for (View_OnAttachStateChangeListener listener : mListeners) {
|
||||
listener.onViewDetachedFromWindow(this);
|
||||
}
|
||||
|
||||
if (mOverflowPopup != null) mOverflowPopup.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -520,6 +520,9 @@ public class ActionMenuView extends IcsLinearLayout implements MenuBuilder.ItemI
|
||||
|
||||
//@Override
|
||||
protected boolean hasDividerBeforeChildAt(int childIndex) {
|
||||
if (childIndex == 0) {
|
||||
return false;
|
||||
}
|
||||
final View childBefore = getChildAt(childIndex - 1);
|
||||
final View child = getChildAt(childIndex);
|
||||
boolean result = false;
|
||||
|
@ -2,10 +2,12 @@ package com.actionbarsherlock.internal.view.menu;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.View;
|
||||
import android.view.ContextMenu.ContextMenuInfo;
|
||||
import android.view.View;
|
||||
import com.actionbarsherlock.internal.view.ActionProviderWrapper;
|
||||
import com.actionbarsherlock.internal.widget.CollapsibleActionViewWrapper;
|
||||
import com.actionbarsherlock.view.ActionProvider;
|
||||
import com.actionbarsherlock.view.CollapsibleActionView;
|
||||
import com.actionbarsherlock.view.MenuItem;
|
||||
import com.actionbarsherlock.view.SubMenu;
|
||||
|
||||
@ -215,19 +217,35 @@ public class MenuItemWrapper implements MenuItem, android.view.MenuItem.OnMenuIt
|
||||
|
||||
@Override
|
||||
public MenuItem setActionView(View view) {
|
||||
if (view != null && view instanceof CollapsibleActionView) {
|
||||
view = new CollapsibleActionViewWrapper(view);
|
||||
}
|
||||
mNativeItem.setActionView(view);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MenuItem setActionView(int resId) {
|
||||
//Allow the native menu to inflate the resource
|
||||
mNativeItem.setActionView(resId);
|
||||
if (resId != 0) {
|
||||
//Get newly created view
|
||||
View view = mNativeItem.getActionView();
|
||||
if (view instanceof CollapsibleActionView) {
|
||||
//Wrap it and re-set it
|
||||
mNativeItem.setActionView(new CollapsibleActionViewWrapper(view));
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getActionView() {
|
||||
return mNativeItem.getActionView();
|
||||
View actionView = mNativeItem.getActionView();
|
||||
if (actionView instanceof CollapsibleActionViewWrapper) {
|
||||
return ((CollapsibleActionViewWrapper)actionView).unwrap();
|
||||
}
|
||||
return actionView;
|
||||
}
|
||||
|
||||
@Override
|
||||
|