1.0.0-pre7

only show AutoFill question when about to close
allow to send error report "manually" from AutoFill service
This commit is contained in:
Philipp Crocoll 2016-01-30 08:40:39 +01:00
parent 3b5c28c02a
commit 9ddc142d98
12 changed files with 485 additions and 649 deletions

View File

@ -8,4 +8,3 @@
android:canRetrieveWindowContent="true"
/>
<!--android:settingsActivity="md58dca69cf5ce118dfdacac1ed5b2bbacf.MainActivity"-->

View File

@ -5,6 +5,9 @@
<config />
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component>
<component name="ChangeListManager">
<list default="true" id="d4fa0d1a-5b1d-4c4c-9674-0eb896f6d066" name="Default" comment="" />
<ignored path="java.iws" />
@ -40,46 +43,20 @@
<state vertical-scroll-proportion="0.0">
<caret line="2618" column="0" selection-start-line="2618" selection-start-column="0" selection-end-line="2618" selection-end-column="0" />
<folding>
<element signature="e#17350#17396#0" expanded="true" />
<element signature="e#17428#17478#0" expanded="true" />
<element signature="e#39322#39384#0" expanded="true" />
<element signature="e#51293#51294#0" expanded="true" />
<element signature="e#51354#51355#0" expanded="true" />
<element signature="e#53061#53091#0" expanded="true" />
<element signature="e#53167#53199#0" expanded="true" />
<element signature="e#53556#53613#0" expanded="true" />
<element signature="e#59864#59865#0" expanded="true" />
<element signature="e#59905#59906#0" expanded="true" />
<element signature="e#59939#59940#0" expanded="true" />
<element signature="e#59981#59982#0" expanded="true" />
<element signature="e#67589#67590#0" expanded="true" />
<element signature="e#67625#67626#0" expanded="true" />
<element signature="e#67674#67675#0" expanded="true" />
<element signature="e#67733#67734#0" expanded="true" />
<element signature="e#68330#68331#0" expanded="true" />
<element signature="e#68387#68388#0" expanded="true" />
<element signature="e#81359#81360#0" expanded="true" />
<element signature="e#81428#81429#0" expanded="true" />
<element signature="e#85149#85150#0" expanded="true" />
<element signature="e#85187#85188#0" expanded="true" />
<element signature="e#85712#85713#0" expanded="true" />
<element signature="e#85765#85766#0" expanded="true" />
<element signature="e#87861#87862#0" expanded="true" />
<element signature="e#87890#87891#0" expanded="true" />
<element signature="e#91923#91924#0" expanded="true" />
<element signature="e#91951#91952#0" expanded="true" />
<element signature="e#91993#91994#0" expanded="true" />
<element signature="e#92024#92025#0" expanded="true" />
<element signature="e#93068#93069#0" expanded="true" />
<element signature="e#93122#93123#0" expanded="true" />
<element signature="e#93163#93164#0" expanded="true" />
<element signature="e#93222#93223#0" expanded="true" />
<element signature="e#95957#96010#0" expanded="true" />
<element signature="e#96648#96688#0" expanded="true" />
<element signature="e#96729#96766#0" expanded="true" />
<element signature="e#96878#97414#0" expanded="true" />
<element signature="e#97413#97414#0" expanded="true" />
<element signature="e#97442#97498#0" expanded="true" />
<element signature="e#0#100279#0" expanded="false" />
<element signature="imports" expanded="false" />
<element signature="e#8691#8692#0" expanded="false" />
<element signature="e#8739#8740#0" expanded="false" />
<element signature="e#8790#8791#0" expanded="false" />
<element signature="e#8843#8844#0" expanded="false" />
<element signature="e#8947#8948#0" expanded="false" />
<element signature="e#8989#8990#0" expanded="false" />
<element signature="e#9468#9469#0" expanded="false" />
<element signature="e#9518#9519#0" expanded="false" />
<element signature="e#9591#9592#0" expanded="false" />
<element signature="e#9647#9648#0" expanded="false" />
<element signature="e#89833#89834#0" expanded="false" />
<element signature="e#89875#89876#0" expanded="false" />
</folding>
</state>
</provider>
@ -98,7 +75,7 @@
<file leaf-file-name="build.gradle" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.76">
<state vertical-scroll-proportion="0.0">
<caret line="7" column="24" selection-start-line="7" selection-start-column="24" selection-end-line="7" selection-end-column="24" />
<folding />
</state>
@ -118,7 +95,7 @@
<file leaf-file-name="strings.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-7.56">
<state vertical-scroll-proportion="0.0">
<caret line="378" column="0" selection-start-line="378" selection-start-column="0" selection-end-line="378" selection-end-column="0" />
<folding />
</state>
@ -138,22 +115,12 @@
<file leaf-file-name="AutoFillService.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7568306">
<caret line="104" column="5" selection-start-line="104" selection-start-column="5" selection-end-line="104" selection-end-column="5" />
<state vertical-scroll-proportion="0.76775956">
<caret line="219" column="0" selection-start-line="219" selection-start-column="0" selection-end-line="219" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1549#1550#0" expanded="true" />
<element signature="e#1585#1586#0" expanded="true" />
<element signature="e#1660#1661#0" expanded="true" />
<element signature="e#1712#1713#0" expanded="true" />
<element signature="e#2880#2881#0" expanded="true" />
<element signature="e#2913#2914#0" expanded="true" />
<element signature="e#9594#9692#0" expanded="true" />
<element signature="e#9727#9793#0" expanded="true" />
<element signature="e#11813#11814#0" expanded="true" />
<element signature="e#11867#11868#0" expanded="true" />
<element signature="e#11925#11926#0" expanded="true" />
<element signature="e#11979#11980#0" expanded="true" />
</folding>
</state>
</provider>
@ -164,9 +131,7 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="60" column="46" selection-start-line="60" selection-start-column="46" selection-end-line="60" selection-end-column="46" />
<folding>
<element signature="e#2450#2474#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -174,7 +139,7 @@
<file leaf-file-name="KeyboardData.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/kbbridge/KeyboardData.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-12.24">
<state vertical-scroll-proportion="0.0">
<caret line="18" column="30" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
@ -192,7 +157,10 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="54" column="0" selection-start-line="54" selection-start-column="0" selection-end-line="54" selection-end-column="0" />
<folding />
<folding>
<element signature="e#0#3436#0" expanded="false" />
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -1490,9 +1458,9 @@
<option value="$PROJECT_DIR$/app/build.gradle" />
<option value="$PROJECT_DIR$/app/src/main/res/xml/accserviceconfig.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/keepass2android/kbbridge/KeyboardData.java" />
<option value="$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java" />
<option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/values/strings_autofill.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java" />
</list>
</option>
</component>
@ -1535,7 +1503,21 @@
<sortByType />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -1571,21 +1553,7 @@
</subPane>
</pane>
<pane id="Scope" />
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@ -1775,33 +1743,33 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="7" />
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<editor active="false" />
<layout>
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3270869" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.5121029" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.5181543" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.48789713" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.48184568" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879046" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879046" sideWeight="0.4969743" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24886535" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24962178" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24886535" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24962178" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3270869" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
@ -1824,11 +1792,79 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/src/main/res/xml/accserviceconfig.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="38" selection-start-line="0" selection-start-column="38" selection-end-line="0" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="378" column="0" selection-start-line="378" selection-start-column="0" selection-end-line="378" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings_autofill.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#2880#2881#0" expanded="true" />
<element signature="e#2913#2914#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/xml/prefs.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="60" column="46" selection-start-line="60" selection-start-column="46" selection-end-line="60" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/kbbridge/KeyboardData.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="18" column="30" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#362#363#0" expanded="true" />
<element signature="e#404#405#0" expanded="true" />
<element signature="e#438#439#0" expanded="true" />
<element signature="e#479#480#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/softkeyboard/LatinIMESettings.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="54" column="0" selection-start-line="54" selection-start-column="0" selection-end-line="54" selection-end-column="0" />
<folding>
<element signature="e#0#3436#0" expanded="false" />
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/import-summary.txt">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1836,7 +1872,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1852,9 +1887,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="436" column="65" selection-start-line="436" selection-start-column="65" selection-end-line="436" selection-end-column="65" />
<folding>
<element signature="method#LatinKeyboardBaseView#1;class#LatinKeyboardBaseView#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -1870,7 +1902,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1878,7 +1909,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1886,7 +1916,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1902,7 +1931,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1910,7 +1938,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1926,7 +1953,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1934,7 +1960,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1942,7 +1967,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1958,7 +1982,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1966,7 +1989,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1982,7 +2004,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -1990,7 +2011,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="434" column="65" selection-start-line="434" selection-start-column="65" selection-end-line="434" selection-end-column="65" />
<folding />
</state>
</provider>
</entry>
@ -1998,7 +2018,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -2006,7 +2025,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -2014,14 +2032,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="92" column="16" selection-start-line="92" selection-start-column="16" selection-end-line="92" selection-end-column="16" />
<folding>
<element signature="e#0#5655#0" expanded="false" />
<element signature="imports" expanded="false" />
<element signature="e#1509#1539#0" expanded="false" />
<element signature="e#2941#2964#0" expanded="false" />
<element signature="e#4545#4546#0" expanded="false" />
<element signature="e#4577#4578#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2029,7 +2039,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="62" column="13" selection-start-line="62" selection-start-column="13" selection-end-line="62" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
@ -2037,7 +2046,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
@ -2045,7 +2053,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="36" column="23" selection-start-line="36" selection-start-column="23" selection-end-line="36" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
@ -2053,10 +2060,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="397" column="24" selection-start-line="397" selection-start-column="24" selection-end-line="397" selection-end-column="24" />
<folding>
<element signature="e#15971#15972#0" expanded="false" />
<element signature="e#16007#16008#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2064,9 +2067,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="1234" column="25" selection-start-line="1234" selection-start-column="25" selection-end-line="1234" selection-end-column="25" />
<folding>
<element signature="method#LatinKeyboardBaseView#1;class#LatinKeyboardBaseView#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2074,17 +2074,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="476" column="38" selection-start-line="476" selection-start-column="38" selection-end-line="476" selection-end-column="38" />
<folding>
<element signature="e#5702#5728#0" expanded="false" />
<element signature="e#6920#6946#0" expanded="false" />
<element signature="e#8140#8166#0" expanded="false" />
<element signature="e#9357#9383#0" expanded="false" />
<element signature="e#10581#10607#0" expanded="false" />
<element signature="e#12082#12108#0" expanded="false" />
<element signature="e#13602#13628#0" expanded="false" />
<element signature="e#15124#15150#0" expanded="false" />
<element signature="e#16643#16669#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2092,9 +2081,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="146" column="46" selection-start-line="146" selection-start-column="35" selection-end-line="146" selection-end-column="46" />
<folding>
<element signature="e#5666#5692#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2102,7 +2088,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="147" column="38" selection-start-line="147" selection-start-column="38" selection-end-line="147" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
@ -2110,7 +2095,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="591" column="0" selection-start-line="591" selection-start-column="0" selection-end-line="591" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@ -2118,9 +2102,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="49" column="53" selection-start-line="49" selection-start-column="53" selection-end-line="49" selection-end-column="53" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2128,7 +2109,10 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="54" column="0" selection-start-line="54" selection-start-column="0" selection-end-line="54" selection-end-column="0" />
<folding />
<folding>
<element signature="e#0#3436#0" expanded="false" />
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -2145,53 +2129,27 @@
<state vertical-scroll-proportion="0.0">
<caret line="2618" column="0" selection-start-line="2618" selection-start-column="0" selection-end-line="2618" selection-end-column="0" />
<folding>
<element signature="e#17350#17396#0" expanded="true" />
<element signature="e#17428#17478#0" expanded="true" />
<element signature="e#39322#39384#0" expanded="true" />
<element signature="e#51293#51294#0" expanded="true" />
<element signature="e#51354#51355#0" expanded="true" />
<element signature="e#53061#53091#0" expanded="true" />
<element signature="e#53167#53199#0" expanded="true" />
<element signature="e#53556#53613#0" expanded="true" />
<element signature="e#59864#59865#0" expanded="true" />
<element signature="e#59905#59906#0" expanded="true" />
<element signature="e#59939#59940#0" expanded="true" />
<element signature="e#59981#59982#0" expanded="true" />
<element signature="e#67589#67590#0" expanded="true" />
<element signature="e#67625#67626#0" expanded="true" />
<element signature="e#67674#67675#0" expanded="true" />
<element signature="e#67733#67734#0" expanded="true" />
<element signature="e#68330#68331#0" expanded="true" />
<element signature="e#68387#68388#0" expanded="true" />
<element signature="e#81359#81360#0" expanded="true" />
<element signature="e#81428#81429#0" expanded="true" />
<element signature="e#85149#85150#0" expanded="true" />
<element signature="e#85187#85188#0" expanded="true" />
<element signature="e#85712#85713#0" expanded="true" />
<element signature="e#85765#85766#0" expanded="true" />
<element signature="e#87861#87862#0" expanded="true" />
<element signature="e#87890#87891#0" expanded="true" />
<element signature="e#91923#91924#0" expanded="true" />
<element signature="e#91951#91952#0" expanded="true" />
<element signature="e#91993#91994#0" expanded="true" />
<element signature="e#92024#92025#0" expanded="true" />
<element signature="e#93068#93069#0" expanded="true" />
<element signature="e#93122#93123#0" expanded="true" />
<element signature="e#93163#93164#0" expanded="true" />
<element signature="e#93222#93223#0" expanded="true" />
<element signature="e#95957#96010#0" expanded="true" />
<element signature="e#96648#96688#0" expanded="true" />
<element signature="e#96729#96766#0" expanded="true" />
<element signature="e#96878#97414#0" expanded="true" />
<element signature="e#97413#97414#0" expanded="true" />
<element signature="e#97442#97498#0" expanded="true" />
<element signature="e#0#100279#0" expanded="false" />
<element signature="imports" expanded="false" />
<element signature="e#8691#8692#0" expanded="false" />
<element signature="e#8739#8740#0" expanded="false" />
<element signature="e#8790#8791#0" expanded="false" />
<element signature="e#8843#8844#0" expanded="false" />
<element signature="e#8947#8948#0" expanded="false" />
<element signature="e#8989#8990#0" expanded="false" />
<element signature="e#9468#9469#0" expanded="false" />
<element signature="e#9518#9519#0" expanded="false" />
<element signature="e#9591#9592#0" expanded="false" />
<element signature="e#9647#9648#0" expanded="false" />
<element signature="e#89833#89834#0" expanded="false" />
<element signature="e#89875#89876#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.76">
<state vertical-scroll-proportion="0.0">
<caret line="7" column="24" selection-start-line="7" selection-start-column="24" selection-end-line="7" selection-end-column="24" />
<folding />
</state>
@ -2199,7 +2157,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/kbbridge/KeyboardData.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-12.24">
<state vertical-scroll-proportion="0.0">
<caret line="18" column="30" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
@ -2223,15 +2181,13 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="60" column="46" selection-start-line="60" selection-start-column="46" selection-end-line="60" selection-end-column="46" />
<folding>
<element signature="e#2450#2474#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-7.56">
<state vertical-scroll-proportion="0.0">
<caret line="378" column="0" selection-start-line="378" selection-start-column="0" selection-end-line="378" selection-end-column="0" />
<folding />
</state>
@ -2247,22 +2203,12 @@
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7568306">
<caret line="104" column="5" selection-start-line="104" selection-start-column="5" selection-end-line="104" selection-end-column="5" />
<state vertical-scroll-proportion="0.76775956">
<caret line="219" column="0" selection-start-line="219" selection-start-column="0" selection-end-line="219" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1549#1550#0" expanded="true" />
<element signature="e#1585#1586#0" expanded="true" />
<element signature="e#1660#1661#0" expanded="true" />
<element signature="e#1712#1713#0" expanded="true" />
<element signature="e#2880#2881#0" expanded="true" />
<element signature="e#2913#2914#0" expanded="true" />
<element signature="e#9594#9692#0" expanded="true" />
<element signature="e#9727#9793#0" expanded="true" />
<element signature="e#11813#11814#0" expanded="true" />
<element signature="e#11867#11868#0" expanded="true" />
<element signature="e#11925#11926#0" expanded="true" />
<element signature="e#11979#11980#0" expanded="true" />
</folding>
</state>
</provider>

View File

@ -198,13 +198,21 @@ public class AutoFillService extends AccessibilityService {
{
android.util.Log.e(_logTag, e.toString());
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
String to = "crocoapps@gmail.com";
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{to});
intent.putExtra(Intent.EXTRA_SUBJECT, "Error report");
intent.putExtra(Intent.EXTRA_TEXT,
"Please send the following text as an error report to crocoapps@gmail.com. You may also add additional information about the workflow you tried to perform. This will help me improve the app. Thanks! \n"+e.toString() );
Notification.Builder builder = new Notification.Builder(this);
//TODO remove on release
builder.setSmallIcon(keepass2android.softkeyboard.R.drawable.ic_notify_autofill)
.setContentText(e.toString())
.setContentTitle("error information")
.setWhen(java.lang.System.currentTimeMillis());
.setWhen(java.lang.System.currentTimeMillis())
.setContentIntent(PendingIntent.getActivity(this, 0, Intent.createChooser(intent, "Send error report"), PendingIntent.FLAG_CANCEL_CURRENT));
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(autoFillNotificationId+1, builder.build());

View File

@ -13,7 +13,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component>
<component name="ChangeListManager">
<list default="true" id="1d588b4b-01e2-423e-b0a4-87c8f358f512" name="Default" comment="" />
<ignored path="PluginInputStick.iws" />
@ -31,7 +34,7 @@
<file leaf-file-name="PortugueseBrazilianLayout.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/PortugueseBrazilianLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-56.13793">
<state vertical-scroll-proportion="0.0">
<caret line="295" column="41" selection-start-line="295" selection-start-column="41" selection-end-line="295" selection-end-column="41" />
<folding>
<element signature="e#13093#13094#0" expanded="false" />
@ -58,7 +61,7 @@
<file leaf-file-name="SlovakLayout.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SlovakLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-62.58621">
<state vertical-scroll-proportion="0.0">
<caret line="318" column="43" selection-start-line="318" selection-start-column="43" selection-end-line="318" selection-end-column="43" />
<folding>
<element signature="e#16943#16944#0" expanded="false" />
@ -85,7 +88,7 @@
<file leaf-file-name="SpanishLayout.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SpanishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-53.5">
<state vertical-scroll-proportion="0.0">
<caret line="286" column="13" selection-start-line="286" selection-start-column="13" selection-end-line="286" selection-end-column="13" />
<folding>
<element signature="e#13147#13148#0" expanded="false" />
@ -112,7 +115,7 @@
<file leaf-file-name="SwedishLayout.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwedishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-50.568966">
<state vertical-scroll-proportion="0.0">
<caret line="280" column="12" selection-start-line="280" selection-start-column="12" selection-end-line="280" selection-end-column="12" />
<folding>
<element signature="e#13050#13051#0" expanded="false" />
@ -139,7 +142,7 @@
<file leaf-file-name="SwissFrenchLayout.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwissFrenchLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-47.63793">
<state vertical-scroll-proportion="0.0">
<caret line="266" column="9" selection-start-line="266" selection-start-column="9" selection-end-line="266" selection-end-column="9" />
<folding>
<element signature="e#11977#11978#0" expanded="false" />
@ -220,7 +223,7 @@
<file leaf-file-name="strings.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.3">
<state vertical-scroll-proportion="0.0">
<caret line="30" column="0" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding />
</state>
@ -240,7 +243,7 @@
<file leaf-file-name="strings.xml" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values-pl/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33170733">
<state vertical-scroll-proportion="0.03902439">
<caret line="33" column="0" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
<folding />
</state>
@ -2863,9 +2866,7 @@
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane" />
<pane id="Scratches" />
<pane id="AndroidView">
<subPane>
<PATH>
@ -2896,6 +2897,8 @@
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@ -2906,6 +2909,7 @@
<property name="ExportApk.BuildType" value="release" />
<property name="settings.editor.selected.configurable" value="Errors" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="FullScreen" value="false" />
</component>
<component name="RunManager" selected="Android Application.pluginInputStick">
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
@ -3107,32 +3111,32 @@
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<editor active="false" />
<layout>
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5432526" sideWeight="0.4969651" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.5178876" sideWeight="0.5060514" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.5178876" sideWeight="0.49394855" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.4969651" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.5178876" sideWeight="0.50907713" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5178876" sideWeight="0.49092284" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.4969651" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24886535" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5432526" sideWeight="0.4969651" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
</layout>
</component>
<component name="Vcs.Log.UiProperties">
@ -3151,115 +3155,9 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/import-summary.txt">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/GermanLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.5689654">
<caret line="268" column="9" selection-start-line="268" selection-start-column="9" selection-end-line="268" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/DanishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.3275862">
<caret line="107" column="37" selection-start-line="107" selection-start-column="37" selection-end-line="107" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/FinnishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-52.03448">
<caret line="280" column="45" selection-start-line="280" selection-start-column="45" selection-end-line="280" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/FrenchLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-47.63793">
<caret line="268" column="44" selection-start-line="268" selection-start-column="44" selection-end-line="268" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/GermanMacLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-48.517242">
<caret line="266" column="41" selection-start-line="266" selection-start-column="41" selection-end-line="266" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/HebrewLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-36.793102">
<caret line="227" column="24" selection-start-line="227" selection-start-column="24" selection-end-line="227" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/ItalianLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-36.206898">
<caret line="229" column="46" selection-start-line="229" selection-start-column="46" selection-end-line="229" selection-end-column="46" />
<folding>
<element signature="e#9271#9272#0" expanded="false" />
<element signature="e#9293#9294#0" expanded="false" />
<element signature="e#9333#9334#0" expanded="false" />
<element signature="e#9350#9351#0" expanded="false" />
<element signature="e#9393#9394#0" expanded="false" />
<element signature="e#9415#9416#0" expanded="false" />
<element signature="e#9460#9461#0" expanded="false" />
<element signature="e#9502#9503#0" expanded="false" />
<element signature="e#9565#9566#0" expanded="false" />
<element signature="e#9609#9610#0" expanded="false" />
<element signature="e#9820#9821#0" expanded="false" />
<element signature="e#9847#9848#0" expanded="false" />
<element signature="e#9895#9896#0" expanded="false" />
<element signature="e#9922#9923#0" expanded="false" />
<element signature="e#9964#9965#0" expanded="false" />
<element signature="e#9986#9987#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/PolishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-2.7931035">
<caret line="119" column="30" selection-start-line="119" selection-start-column="30" selection-end-line="119" selection-end-column="30" />
<folding>
<element signature="e#9873#9874#0" expanded="false" />
<element signature="e#9895#9896#0" expanded="false" />
<element signature="e#9935#9936#0" expanded="false" />
<element signature="e#9952#9953#0" expanded="false" />
<element signature="e#9995#9996#0" expanded="false" />
<element signature="e#10017#10018#0" expanded="false" />
<element signature="e#10062#10063#0" expanded="false" />
<element signature="e#10104#10105#0" expanded="false" />
<element signature="e#10167#10168#0" expanded="false" />
<element signature="e#10211#10212#0" expanded="false" />
<element signature="e#10419#10420#0" expanded="false" />
<element signature="e#10446#10447#0" expanded="false" />
<element signature="e#10494#10495#0" expanded="false" />
<element signature="e#10521#10522#0" expanded="false" />
<element signature="e#10563#10564#0" expanded="false" />
<element signature="e#10585#10586#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/PortugueseBrazilianLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-56.13793">
<state vertical-scroll-proportion="0.0">
<caret line="295" column="41" selection-start-line="295" selection-start-column="41" selection-end-line="295" selection-end-column="41" />
<folding>
<element signature="e#13093#13094#0" expanded="false" />
@ -3284,7 +3182,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SlovakLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-62.58621">
<state vertical-scroll-proportion="0.0">
<caret line="318" column="43" selection-start-line="318" selection-start-column="43" selection-end-line="318" selection-end-column="43" />
<folding>
<element signature="e#16943#16944#0" expanded="false" />
@ -3309,7 +3207,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SpanishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-53.5">
<state vertical-scroll-proportion="0.0">
<caret line="286" column="13" selection-start-line="286" selection-start-column="13" selection-end-line="286" selection-end-column="13" />
<folding>
<element signature="e#13147#13148#0" expanded="false" />
@ -3334,7 +3232,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwedishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-50.568966">
<state vertical-scroll-proportion="0.0">
<caret line="280" column="12" selection-start-line="280" selection-start-column="12" selection-end-line="280" selection-end-column="12" />
<folding>
<element signature="e#13050#13051#0" expanded="false" />
@ -3359,7 +3257,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwissFrenchLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-47.63793">
<state vertical-scroll-proportion="0.0">
<caret line="266" column="9" selection-start-line="266" selection-start-column="9" selection-end-line="266" selection-end-column="9" />
<folding>
<element signature="e#11977#11978#0" expanded="false" />
@ -3434,7 +3332,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.3">
<state vertical-scroll-proportion="0.0">
<caret line="30" column="0" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding />
</state>
@ -3450,7 +3348,269 @@
</entry>
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values-pl/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33170733">
<state vertical-scroll-proportion="0.0">
<caret line="33" column="0" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/import-summary.txt">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/GermanLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.5689654">
<caret line="268" column="9" selection-start-line="268" selection-start-column="9" selection-end-line="268" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/DanishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.3275862">
<caret line="107" column="37" selection-start-line="107" selection-start-column="37" selection-end-line="107" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/FinnishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-52.03448">
<caret line="280" column="45" selection-start-line="280" selection-start-column="45" selection-end-line="280" selection-end-column="45" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/FrenchLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-47.63793">
<caret line="268" column="44" selection-start-line="268" selection-start-column="44" selection-end-line="268" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/GermanMacLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-48.517242">
<caret line="266" column="41" selection-start-line="266" selection-start-column="41" selection-end-line="266" selection-end-column="41" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/HebrewLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-36.793102">
<caret line="227" column="24" selection-start-line="227" selection-start-column="24" selection-end-line="227" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/ItalianLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-36.206898">
<caret line="229" column="46" selection-start-line="229" selection-start-column="46" selection-end-line="229" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/PolishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-2.7931035">
<caret line="119" column="30" selection-start-line="119" selection-start-column="30" selection-end-line="119" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/PortugueseBrazilianLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="295" column="41" selection-start-line="295" selection-start-column="41" selection-end-line="295" selection-end-column="41" />
<folding>
<element signature="e#13093#13094#0" expanded="false" />
<element signature="e#13115#13116#0" expanded="false" />
<element signature="e#13155#13156#0" expanded="false" />
<element signature="e#13172#13173#0" expanded="false" />
<element signature="e#13215#13216#0" expanded="false" />
<element signature="e#13237#13238#0" expanded="false" />
<element signature="e#13282#13283#0" expanded="false" />
<element signature="e#13324#13325#0" expanded="false" />
<element signature="e#13387#13388#0" expanded="false" />
<element signature="e#13431#13432#0" expanded="false" />
<element signature="e#13639#13640#0" expanded="false" />
<element signature="e#13666#13667#0" expanded="false" />
<element signature="e#13714#13715#0" expanded="false" />
<element signature="e#13741#13742#0" expanded="false" />
<element signature="e#13783#13784#0" expanded="false" />
<element signature="e#13805#13806#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SlovakLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="318" column="43" selection-start-line="318" selection-start-column="43" selection-end-line="318" selection-end-column="43" />
<folding>
<element signature="e#16943#16944#0" expanded="false" />
<element signature="e#16965#16966#0" expanded="false" />
<element signature="e#17006#17007#0" expanded="false" />
<element signature="e#17023#17024#0" expanded="false" />
<element signature="e#17066#17067#0" expanded="false" />
<element signature="e#17088#17089#0" expanded="false" />
<element signature="e#17133#17134#0" expanded="false" />
<element signature="e#17175#17176#0" expanded="false" />
<element signature="e#17238#17239#0" expanded="false" />
<element signature="e#17282#17283#0" expanded="false" />
<element signature="e#17493#17494#0" expanded="false" />
<element signature="e#17520#17521#0" expanded="false" />
<element signature="e#17569#17570#0" expanded="false" />
<element signature="e#17596#17597#0" expanded="false" />
<element signature="e#17638#17639#0" expanded="false" />
<element signature="e#17660#17661#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SpanishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="286" column="13" selection-start-line="286" selection-start-column="13" selection-end-line="286" selection-end-column="13" />
<folding>
<element signature="e#13147#13148#0" expanded="false" />
<element signature="e#13169#13170#0" expanded="false" />
<element signature="e#13210#13211#0" expanded="false" />
<element signature="e#13227#13228#0" expanded="false" />
<element signature="e#13270#13271#0" expanded="false" />
<element signature="e#13292#13293#0" expanded="false" />
<element signature="e#13337#13338#0" expanded="false" />
<element signature="e#13379#13380#0" expanded="false" />
<element signature="e#13442#13443#0" expanded="false" />
<element signature="e#13486#13487#0" expanded="false" />
<element signature="e#13697#13698#0" expanded="false" />
<element signature="e#13724#13725#0" expanded="false" />
<element signature="e#13771#13772#0" expanded="false" />
<element signature="e#13798#13799#0" expanded="false" />
<element signature="e#13840#13841#0" expanded="false" />
<element signature="e#13862#13863#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwedishLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="280" column="12" selection-start-line="280" selection-start-column="12" selection-end-line="280" selection-end-column="12" />
<folding>
<element signature="e#13050#13051#0" expanded="false" />
<element signature="e#13072#13073#0" expanded="false" />
<element signature="e#13113#13114#0" expanded="false" />
<element signature="e#13130#13131#0" expanded="false" />
<element signature="e#13173#13174#0" expanded="false" />
<element signature="e#13195#13196#0" expanded="false" />
<element signature="e#13240#13241#0" expanded="false" />
<element signature="e#13282#13283#0" expanded="false" />
<element signature="e#13345#13346#0" expanded="false" />
<element signature="e#13389#13390#0" expanded="false" />
<element signature="e#13600#13601#0" expanded="false" />
<element signature="e#13627#13628#0" expanded="false" />
<element signature="e#13676#13677#0" expanded="false" />
<element signature="e#13703#13704#0" expanded="false" />
<element signature="e#13745#13746#0" expanded="false" />
<element signature="e#13767#13768#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwissFrenchLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="266" column="9" selection-start-line="266" selection-start-column="9" selection-end-line="266" selection-end-column="9" />
<folding>
<element signature="e#11977#11978#0" expanded="false" />
<element signature="e#11999#12000#0" expanded="false" />
<element signature="e#12040#12041#0" expanded="false" />
<element signature="e#12057#12058#0" expanded="false" />
<element signature="e#12100#12101#0" expanded="false" />
<element signature="e#12122#12123#0" expanded="false" />
<element signature="e#12167#12168#0" expanded="false" />
<element signature="e#12209#12210#0" expanded="false" />
<element signature="e#12272#12273#0" expanded="false" />
<element signature="e#12316#12317#0" expanded="false" />
<element signature="e#12527#12528#0" expanded="false" />
<element signature="e#12554#12555#0" expanded="false" />
<element signature="e#12603#12604#0" expanded="false" />
<element signature="e#12630#12631#0" expanded="false" />
<element signature="e#12672#12673#0" expanded="false" />
<element signature="e#12694#12695#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/SwissGermanLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="110" column="49" selection-start-line="110" selection-start-column="49" selection-end-line="110" selection-end-column="49" />
<folding>
<element signature="e#13107#13108#0" expanded="false" />
<element signature="e#13129#13130#0" expanded="false" />
<element signature="e#13170#13171#0" expanded="false" />
<element signature="e#13187#13188#0" expanded="false" />
<element signature="e#13230#13231#0" expanded="false" />
<element signature="e#13252#13253#0" expanded="false" />
<element signature="e#13297#13298#0" expanded="false" />
<element signature="e#13339#13340#0" expanded="false" />
<element signature="e#13402#13403#0" expanded="false" />
<element signature="e#13446#13447#0" expanded="false" />
<element signature="e#13657#13658#0" expanded="false" />
<element signature="e#13684#13685#0" expanded="false" />
<element signature="e#13733#13734#0" expanded="false" />
<element signature="e#13760#13761#0" expanded="false" />
<element signature="e#13802#13803#0" expanded="false" />
<element signature="e#13824#13825#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/inputStickAPI/src/main/java/com/inputstick/api/layout/UnitedKingdomLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="109" column="33" selection-start-line="109" selection-start-column="33" selection-end-line="109" selection-end-column="33" />
<folding>
<element signature="e#9489#9490#0" expanded="false" />
<element signature="e#9511#9512#0" expanded="false" />
<element signature="e#9551#9552#0" expanded="false" />
<element signature="e#9568#9569#0" expanded="false" />
<element signature="e#9611#9612#0" expanded="false" />
<element signature="e#9633#9634#0" expanded="false" />
<element signature="e#9678#9679#0" expanded="false" />
<element signature="e#9720#9721#0" expanded="false" />
<element signature="e#9783#9784#0" expanded="false" />
<element signature="e#9827#9828#0" expanded="false" />
<element signature="e#10039#10040#0" expanded="false" />
<element signature="e#10066#10067#0" expanded="false" />
<element signature="e#10114#10115#0" expanded="false" />
<element signature="e#10141#10142#0" expanded="false" />
<element signature="e#10183#10184#0" expanded="false" />
<element signature="e#10205#10206#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="30" column="0" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pluginInputStick/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pluginInputStick/src/main/res/values-pl/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.03902439">
<caret line="33" column="0" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
<folding />
</state>

View File

@ -1,295 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Views.Accessibility;
using Android.Widget;
using KeePassLib;
/*
namespace keepass2android.AutoFill
{
//<meta-data android:name="android.accessibilityservice" android:resource="@xml/serviceconfig" />
[Service(Enabled =true, Permission= "android.permission.BIND_ACCESSIBILITY_SERVICE")]
[IntentFilter(new[] { "android.accessibilityservice.AccessibilityService" })]
[MetaData("android.accessibilityservice", Resource = "@xml/accserviceconfig")]
public class AccessibilityService : Android.AccessibilityServices.AccessibilityService
{
private static bool _hasUsedData;
const string _logTag = "KP2AAS";
private const int autoFillNotificationId = 98810;
private const string androidAppPrefix = "androidapp://";
public override void OnCreate()
{
base.OnCreate();
Android.Util.Log.Debug(_logTag, "OnCreate Service");
}
protected override void OnServiceConnected()
{
Android.Util.Log.Debug(_logTag, "service connected");
base.OnServiceConnected();
}
public override void OnAccessibilityEvent(AccessibilityEvent e)
{
Android.Util.Log.Debug(_logTag, "OnAccEvent");
if (e.EventType == EventTypes.WindowContentChanged || e.EventType == EventTypes.WindowStateChanged)
{
Android.Util.Log.Debug(_logTag, "event: " + e.EventType + ", package = " + e.PackageName);
if (e.PackageName == "com.android.systemui")
return; //avoid that the notification is cancelled when pulling down notif drawer
var root = RootInActiveWindow;
int eventWindowId = e.WindowId;
if ((ExistsNodeOrChildren(root, n => n.WindowId == eventWindowId) && !ExistsNodeOrChildren(root, IsSystemUi)))
{
bool cancelNotification = true;
string url = androidAppPrefix + root.PackageName;
if (root.PackageName == "com.android.chrome")
{
var addressField = root.FindAccessibilityNodeInfosByViewId("com.android.chrome:id/url_bar").FirstOrDefault();
UrlFromAddressField(ref url, addressField);
}
else if (root.PackageName == "com.android.browser")
{
var addressField = root.FindAccessibilityNodeInfosByViewId("com.android.browser:id/url").FirstOrDefault();
UrlFromAddressField(ref url, addressField);
}
if (ExistsNodeOrChildren(root, IsPasswordField))
{
if ((LastReceivedCredentialsUser != null) && IsSame(GetCredentialsField(PwDefs.UrlField), url))
{
Android.Util.Log.Debug ("KP2AAS", "Filling credentials for " + url);
List<AccessibilityNodeInfo> emptyPasswordFields = new List<AccessibilityNodeInfo>();
GetNodeOrChildren(root, IsPasswordField, ref emptyPasswordFields);
List<AccessibilityNodeInfo> allEditTexts = new List<AccessibilityNodeInfo>();
GetNodeOrChildren(root, IsEditText, ref allEditTexts);
var usernameEdit = allEditTexts.TakeWhile(edit => (edit.Password == false)).LastOrDefault();
FillPassword(url, usernameEdit, emptyPasswordFields);
allEditTexts.Clear();
emptyPasswordFields.Clear();
}
else
{
Android.Util.Log.Debug ("KP2AAS", "Notif for " + url );
if (LastReceivedCredentialsUser != null)
{
Android.Util.Log.Debug ("KP2AAS", GetCredentialsField(PwDefs.UrlField));
Android.Util.Log.Debug ("KP2AAS", url);
}
AskFillPassword(url);
cancelNotification = false;
}
}
if (cancelNotification)
{
((NotificationManager)GetSystemService(NotificationService)).Cancel(autoFillNotificationId);
Android.Util.Log.Debug ("KP2AAS","Cancel notif");
}
}
}
GC.Collect();
Java.Lang.JavaSystem.Gc();
}
private bool IsSystemUi(AccessibilityNodeInfo n)
{
return (n.ViewIdResourceName != null) && (n.ViewIdResourceName.StartsWith("com.android.systemui"));
}
private static void UrlFromAddressField(ref string url, AccessibilityNodeInfo addressField)
{
if (addressField != null)
{
url = addressField.Text;
if (!url.Contains("://"))
url = "http://" + url;
}
}
private bool IsSame(string url1, string url2)
{
if (url1.StartsWith ("androidapp://"))
return url1 == url2;
return KeePassLib.Utility.UrlUtil.GetHost (url1) == KeePassLib.Utility.UrlUtil.GetHost (url2);
}
private static bool IsPasswordField(AccessibilityNodeInfo n)
{
//if (n.Password) Android.Util.Log.Debug(_logTag, "pwdx with " + (n.Text == null ? "null" : n.Text));
var res = n.Password && string.IsNullOrEmpty(n.Text);
// if (n.Password) Android.Util.Log.Debug(_logTag, "pwd with " + n.Text + res);
return res;
}
private static bool IsEditText(AccessibilityNodeInfo n)
{
//it seems like n.Editable is not a good check as this is false for some fields which are actually editable, at least in tests with Chrome.
return (n.ClassName != null) && (n.ClassName.Contains("EditText"));
}
private static bool IsNonPasswordEditText(AccessibilityNodeInfo n)
{
return IsEditText(n) && n.Password == false;
}
private void AskFillPassword(string url)
{
Intent startKp2aIntent = PackageManager.GetLaunchIntentForPackage(ApplicationContext.PackageName);
if (startKp2aIntent != null)
{
startKp2aIntent.AddCategory(Intent.CategoryLauncher);
startKp2aIntent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
string taskName = "SearchUrlTask";
startKp2aIntent.PutExtra("KP2A_APPTASK", taskName);
startKp2aIntent.PutExtra("UrlToSearch", url);
}
var pending = PendingIntent.GetActivity(this, 0, startKp2aIntent, PendingIntentFlags.UpdateCurrent);
var targetName = url;
if (url.StartsWith(androidAppPrefix))
{
var packageName = url.Substring(androidAppPrefix.Length);
try
{
var appInfo = PackageManager.GetApplicationInfo(packageName, 0);
targetName = (string) (appInfo != null ? PackageManager.GetApplicationLabel(appInfo) : packageName);
}
catch (Exception e)
{
Android.Util.Log.Debug(_logTag, e.ToString());
targetName = packageName;
}
}
else
{
targetName = KeePassLib.Utility.UrlUtil.GetHost(url);
}
var builder = new Notification.Builder(this);
//TODO icon
//TODO plugin icon
builder.SetSmallIcon(Resource.Drawable.ic_notify_autofill)
.SetContentText(GetString(Resource.String.NotificationContentText, new Java.Lang.Object[] { targetName }))
.SetContentTitle(GetString(Resource.String.NotificationTitle))
.SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis())
.SetVisibility(Android.App.NotificationVisibility.Secret)
.SetContentIntent(pending);
var notificationManager = (NotificationManager)GetSystemService(NotificationService);
notificationManager.Notify(autoFillNotificationId, builder.Build());
}
private void FillPassword(string url, AccessibilityNodeInfo usernameEdit, List<AccessibilityNodeInfo> passwordFields)
{
if ((Keepass2android.Kbbridge.KeyboardData.HasData) && (_hasUsedData == false))
{
FillDataInTextField(usernameEdit, LastReceivedCredentialsUser);
foreach (var pwd in passwordFields)
FillDataInTextField(pwd, LastReceivedCredentialsPassword);
_hasUsedData = true;
}
//LookupCredentialsActivity.LastReceivedCredentials = null;
}
public string LastReceivedCredentialsPassword
{
get { return GetCredentialsField(PwDefs.PasswordField); }
}
public string GetCredentialsField(string key)
{
var field = Keepass2android.Kbbridge.KeyboardData.AvailableFields
.Cast<Keepass2android.Kbbridge.StringForTyping>().SingleOrDefault(x => x.Key == key);
if (field == null)
return null;
return field.Value;
}
public string LastReceivedCredentialsUser
{
get { return GetCredentialsField(PwDefs.UserNameField); }
}
private static void FillDataInTextField(AccessibilityNodeInfo edit, string newValue)
{
if (newValue == null)
return;
Bundle b = new Bundle();
b.PutString(AccessibilityNodeInfo.ActionArgumentSetTextCharsequence, newValue);
edit.PerformAction(Android.Views.Accessibility.Action.SetText, b);
}
private bool ExistsNodeOrChildren(AccessibilityNodeInfo n, Func<AccessibilityNodeInfo, bool> p)
{
if (n == null) return false;
if (p(n))
return true;
for (int i = 0; i < n.ChildCount; i++)
{
if (ExistsNodeOrChildren(n.GetChild(i), p))
return true;
}
return false;
}
private void GetNodeOrChildren(AccessibilityNodeInfo n, Func<AccessibilityNodeInfo, bool> p, ref List<AccessibilityNodeInfo> result)
{
if (n != null)
{
if (p(n))
result.Add(n);
for (int i = 0; i < n.ChildCount; i++)
{
GetNodeOrChildren(n.GetChild(i), p, ref result);
}
}
}
public override void OnInterrupt()
{
}
public void OnCancel(IDialogInterface dialog)
{
}
public static void NotifyNewData()
{
_hasUsedData = false;
}
}
}*/

View File

@ -30,6 +30,16 @@
<category android:name="android.intent.category.OPENABLE" />
</intent-filter>
</activity>
<service android:name="keepass2android.autofill.AutoFillService"
android:enabled="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accserviceconfig" />
</service>
<service android:name="keepass2android.softkeyboard.KP2AKeyboard" android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
@ -55,11 +65,16 @@
</activity>
<service android:name="keepass2android.autofill.AutoFillService"
android:enabled="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accserviceconfig" />
</service>
<activity android:configChanges="orientation" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.PasswordActivity" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/app_name">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="73"
android:versionName="1.0.0 preview 6"
android:versionCode="74"
android:versionName="1.0.0 preview 7"
package="keepass2android.keepass2android"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
@ -34,10 +34,14 @@
</intent-filter>
</activity>
<service android:name="keepass2android.autofill.AutoFillService"
android:enabled="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accserviceconfig" />
</service>
<service android:name="keepass2android.softkeyboard.KP2AKeyboard" android:permission="android.permission.BIND_INPUT_METHOD">

View File

@ -301,8 +301,8 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="ShowCopyToClipboardNotification_summary">Benutzername und Passwort über die Benachrichtigungsleiste und die Zwischenablage verfügbar machen. Achtung vor Passwort-Sniffern!</string>
<string name="ShowSeparateNotifications_title">Separate Benachrichtigungen</string>
<string name="ShowSeparateNotifications_summary">Zeige separate Benachrichtigungen zum Kopieren von Benutzername und Passwort in die Zwischenablage und zur Aktivierung der Eingabemethode.</string>
<string name="ShowKp2aKeyboardNotification_title">KP2A-Tastatur Benachrichtigung</string>
<string name="ShowKp2aKeyboardNotification_summary">Kompletten Eintrag über die KP2A-Tastatur bereitstellen (empfohlen).</string>
<string name="ShowKp2aKeyboardNotification_title">Tastatur/AutoFill-Benachrichtigung</string>
<string name="ShowKp2aKeyboardNotification_summary">Kompletten Eintrag über die KP2A-Tastatur und den AutoFill-Service bereitstellen (empfohlen).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Tastatur umschalten</string>
<string name="OpenKp2aKeyboardAutomatically_summary">Dialog zum Auswählen der Eingabemethode öffnen wenn ein Eintrag nach Suche aus dem Browser heraus verfügbar ist.</string>
<string name="kp2a_switch_rooted">Auto-umschalten auf gerooteten Geräten</string>

View File

@ -353,7 +353,7 @@
<string name="ShowSeparateNotifications_title">Separate notifications</string>
<string name="ShowSeparateNotifications_summary">Show separate notifications for copying username and password to clipboard and activating the keyboard.</string>
<string name="ShowKp2aKeyboardNotification_title">KP2A keyboard notification</string>
<string name="ShowKp2aKeyboardNotification_title">Keyboard/AutoFill notification</string>
<string name="ShowKp2aKeyboardNotification_summary">Make full entry accessible through the KP2A keyboard and AutoFill service (recommended).</string>
<string name="OpenKp2aKeyboardAutomatically_title">Switch keyboard</string>
<string name="OpenKp2aKeyboardAutomatically_summary">Open keyboard selection dialog when entry is available through KP2A keyboard after search from the browser.</string>
@ -660,8 +660,9 @@
</string>
<string name="ChangeLog_1_0_0">
Version 1.0.0 - preview 6\n
Version 1.0.0 - preview 7\n
* Fingerprint Unlock (requires Android 6.0+ or a Samsung device)\n
* Added Auto-Fill service (requires Android 5.0+)\n
* Added support for entry templates\n
* Added "work offline" mode\n
* Allow to copy entries\n
@ -671,7 +672,6 @@
* Bug fixes (in built-in keyboard, when selecting icons)\n
* Included option to send error reports\n
* Added help messages at several points\n
* more to come...\n
</string>

View File

@ -156,7 +156,6 @@
<Compile Include="icons\DrawableFactory.cs" />
<Compile Include="KeeChallenge.cs" />
<Compile Include="FixedDrawerLayout.cs" />
<Compile Include="AccessibilityService.cs" />
<Compile Include="KpEntryTemplatedEdit.cs" />
<Compile Include="MeasuringRelativeLayout.cs" />
<Compile Include="NfcOtpActivity.cs" />

View File

@ -421,7 +421,7 @@ namespace keepass2android
{
notBuilder.AddKeyboardAccess();
if (Keepass2android.Autofill.AutoFillService.IsAvailable && (!Keepass2android.Autofill.AutoFillService.IsRunning))
if (closeAfterCreate && Keepass2android.Autofill.AutoFillService.IsAvailable && (!Keepass2android.Autofill.AutoFillService.IsRunning))
{
if (!prefs.GetBoolean("has_asked_autofillservice", false))
{