Imported Converting Engine; Layout Animations; Copy and Share action

This commit is contained in:
mmk2410 2015-02-17 03:13:59 +01:00
parent 86fe38e263
commit 966bab857e
9 changed files with 1288 additions and 328 deletions

View file

@ -45,14 +45,13 @@
</component>
<component name="ChangeListManager">
<list default="true" id="5f42ecb6-1f27-452b-9bea-873556b497b4" name="Default" comment="">
<change type="DELETED" beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/app/src/main/res/menu/menu_main.xml" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/drawable/feature_graphics.png" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/feature_graphics.png" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeNormalMorseManager.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeWrittenMorseManager.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeNormalMorseManager.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeWrittenMorseManager.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java" afterPath="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" afterPath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/res/values/styles.xml" afterPath="$PROJECT_DIR$/app/src/main/res/values/styles.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
@ -77,107 +76,74 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="fragment_main.xml" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="fragment_main.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-16.384615" vertical-offset="1554" max-vertical-offset="2700">
<caret line="132" column="32" selection-start-line="132" selection-start-column="32" selection-end-line="132" selection-end-column="32" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.38448277" vertical-offset="272" max-vertical-offset="2670">
<caret line="33" column="39" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" />
<folding>
<element signature="e#5072#5096#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="styles.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="720" max-vertical-offset="885">
<caret line="48" column="43" selection-start-line="48" selection-start-column="43" selection-end-line="48" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fragment_morse.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-17.23077" vertical-offset="167" max-vertical-offset="2715">
<caret line="41" column="42" selection-start-line="41" selection-start-column="42" selection-end-line="41" selection-end-column="42" />
<folding>
<element signature="e#2618#2640#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="llnm.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llnm.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="3023" max-vertical-offset="3630">
<caret line="236" column="2" selection-start-line="236" selection-start-column="2" selection-end-line="236" selection-end-column="2" />
<folding>
<element signature="e#0#8443#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="llwm.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llwm.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="3008" max-vertical-offset="3615">
<caret line="237" column="2" selection-start-line="237" selection-start-column="2" selection-end-line="237" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="nmll.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/nmll.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2565">
<caret line="7" column="26" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
<folding>
<element signature="e#0#6264#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="share.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/share.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="225">
<caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="wmll.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/wmll.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="2078" max-vertical-offset="2685">
<caret line="171" column="13" selection-start-line="171" selection-start-column="13" selection-end-line="171" selection-end-column="13" />
<folding>
<element signature="e#0#6116#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MainActivity.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="2460">
<caret line="23" column="39" selection-start-line="23" selection-start-column="39" selection-end-line="23" selection-end-column="39" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3300">
<caret line="43" column="23" selection-start-line="43" selection-start-column="23" selection-end-line="43" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fragment_morse.xml" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.64646465" vertical-offset="2079" max-vertical-offset="3060">
<caret line="177" column="31" selection-start-line="177" selection-start-column="31" selection-end-line="177" selection-end-column="31" />
<folding>
<element signature="e#2618#2640#0" expanded="true" />
<element signature="e#3730#3753#0" expanded="true" />
<element signature="e#4061#4084#0" expanded="true" />
<element signature="e#5412#5436#0" expanded="true" />
<element signature="e#6505#6526#0" expanded="true" />
<element signature="e#6835#6857#0" expanded="true" />
</folding>
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="EncodeNormalMorseManager.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeNormalMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1858" max-vertical-offset="2775">
<caret line="156" column="25" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DecodeNormalMorseManager.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeNormalMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="105" max-vertical-offset="3600">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="EncodeWrittenMorseManager.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeWrittenMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="35" max-vertical-offset="2775">
<caret line="7" column="12" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
<folding />
</state>
</provider>
@ -185,12 +151,22 @@
</file>
<file leaf-file-name="fragment_about.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-6.3461537" vertical-offset="420" max-vertical-offset="2970">
<caret line="39" column="38" selection-start-line="39" selection-start-column="38" selection-end-line="39" selection-end-column="38" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="styles.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="420" max-vertical-offset="2970">
<caret line="28" column="29" selection-start-line="28" selection-start-column="29" selection-end-line="28" selection-end-column="29" />
<state vertical-scroll-proportion="0.0" vertical-offset="58" max-vertical-offset="975">
<caret line="40" column="35" selection-start-line="40" selection-start-column="35" selection-end-line="40" selection-end-column="35" />
<folding />
</state>
</provider>
@ -204,6 +180,11 @@
</FindUsagesManager>
</component>
<component name="Git.Settings">
<option name="PREVIOUS_COMMIT_AUTHORS">
<list>
<option value="mmk2410" />
</list>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
@ -822,18 +803,24 @@
<option value="$PROJECT_DIR$/app/build.gradle" />
<option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/values/styles.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/nmll.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llnm.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llwm.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/share.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/wmll.java" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/nmll.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llwm.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeWrittenMorseManager.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llnm.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeWrittenMorseManager.java" />
<option value="$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeNormalMorseManager.java" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/values/styles.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml" />
</list>
</option>
</component>
<component name="MavenProjectNavigator">
<treeState />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="1" />
<option name="y" value="39" />
@ -866,6 +853,9 @@
<sortByType />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane" />
<pane id="AndroidView">
<subPane>
<PATH>
@ -1024,9 +1014,6 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="ProjectPane" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@ -1050,6 +1037,7 @@
<property name="SHOW_ALL_PROCESSES" value="false" />
<property name="android.project.structure.last.selected" value="app" />
<property name="android.project.structure.proportion" value="0.15" />
<property name="LayoutCode.rearrangeEntriesJava" value="false" />
</component>
<component name="RecentsManager">
<key name="android.template.packageName">
@ -1256,10 +1244,14 @@
<created>1424019537735</created>
<updated>1424019537735</updated>
</task>
<option name="localTasksCounter" value="9" />
<task id="LOCAL-00009" summary="scrollable convert fragments">
<created>1424044537646</created>
<updated>1424044537646</updated>
</task>
<option name="localTasksCounter" value="10" />
<servers />
</component>
<component name="TodoView" selected-index="4">
<component name="TodoView" selected-index="0">
<todo-panel id="selected-file">
<are-packages-shown value="false" />
<are-modules-shown value="false" />
@ -1283,29 +1275,29 @@
<frame x="1" y="39" width="1918" height="1059" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Changes" 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="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="15" 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.32944915" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Palette" 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="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" 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="false" weight="0.32838982" sideWeight="0.5" order="13" side_tool="false" 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="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="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" 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="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="7" side_tool="true" 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="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="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3054371" 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="false" weight="0.32944915" sideWeight="0.5" order="7" side_tool="true" 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="8" 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.32995737" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3054371" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944915" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944915" sideWeight="0.5" order="7" 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.32944915" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32944915" 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.32944915" sideWeight="0.5" order="7" side_tool="true" 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="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944915" sideWeight="0.5" order="9" 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.32944915" sideWeight="0.5" order="10" 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.32944915" sideWeight="0.5" order="11" 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.32944915" sideWeight="0.5" order="12" side_tool="true" 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="4" 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.24946696" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Memory Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="7" side_tool="true" 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="Memory Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="14" side_tool="true" 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="6" 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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3993644" sideWeight="0.5" order="3" side_tool="false" 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="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" 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="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" />
@ -1321,28 +1313,28 @@
<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="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="7" side_tool="true" 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="8" 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="4" 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="5" 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="7" 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="4" 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="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="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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3993644" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" 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="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="10" 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="3" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="15" 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.32944915" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="13" 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="4" 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="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3054371" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3054371" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944915" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944915" sideWeight="0.5" order="11" 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.32944915" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32944915" sideWeight="0.5" order="13" 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.32944915" sideWeight="0.5" order="14" 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.32944915" sideWeight="0.5" order="9" 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.32944915" sideWeight="0.5" order="10" 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.32944915" sideWeight="0.5" order="11" 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.32944915" sideWeight="0.5" order="12" side_tool="true" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24946696" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Memory Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="15" side_tool="true" content_ui="tabs" />
<window_info id="Memory Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32838982" sideWeight="0.5" order="14" side_tool="true" content_ui="tabs" />
<window_info id="Find" 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="Gradle" active="false" anchor="right" 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="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" 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="6" side_tool="false" 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="3" side_tool="true" content_ui="tabs" />
</layout-to-restore>
</component>
<component name="Vcs.Log.UiProperties">
@ -1369,31 +1361,25 @@
<MESSAGE value="Change dp to sp on fonts" />
<MESSAGE value="handling about clicks" />
<MESSAGE value="designing all clickable objects" />
<option name="LAST_COMMIT_MESSAGE" value="designing all clickable objects" />
<MESSAGE value="scrollable convert fragments" />
<option name="LAST_COMMIT_MESSAGE" value="scrollable convert fragments" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="7" />
<option name="time" value="34" />
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainFragment.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="135" max-vertical-offset="345">
<caret line="9" column="29" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="200" max-vertical-offset="795">
<caret line="22" column="3" selection-start-line="22" selection-start-column="3" selection-end-line="22" selection-end-column="3" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
@ -1449,15 +1435,15 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="200" max-vertical-offset="795">
<caret line="22" column="3" selection-start-line="22" selection-start-column="3" selection-end-line="22" selection-end-column="3" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
@ -1484,28 +1470,26 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="215" max-vertical-offset="795">
<caret line="31" column="23" selection-start-line="31" selection-start-column="23" selection-end-line="31" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="699" max-vertical-offset="1590">
<caret line="58" column="27" selection-start-line="58" selection-start-column="27" selection-end-line="58" selection-end-column="27" />
<folding>
<element signature="e#5072#5096#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
@ -1515,17 +1499,22 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1020" max-vertical-offset="1290">
<caret line="68" column="0" selection-start-line="68" selection-start-column="0" selection-end-line="68" selection-end-column="0" />
<folding>
<element signature="e#2618#2640#0" expanded="true" />
<element signature="e#3730#3753#0" expanded="true" />
<element signature="e#4061#4084#0" expanded="true" />
<element signature="e#5412#5436#0" expanded="true" />
<element signature="e#6505#6526#0" expanded="true" />
<element signature="e#6835#6857#0" expanded="true" />
</folding>
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
@ -1559,28 +1548,26 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="645" max-vertical-offset="795">
<caret line="43" column="34" selection-start-line="43" selection-start-column="34" selection-end-line="43" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="872" max-vertical-offset="1590">
<caret line="73" column="23" selection-start-line="73" selection-start-column="23" selection-end-line="73" selection-end-column="23" />
<folding>
<element signature="e#5072#5096#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
@ -1590,17 +1577,22 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="710" max-vertical-offset="1290">
<caret line="68" column="0" selection-start-line="68" selection-start-column="0" selection-end-line="68" selection-end-column="0" />
<folding>
<element signature="e#2618#2640#0" expanded="true" />
<element signature="e#3730#3753#0" expanded="true" />
<element signature="e#4061#4084#0" expanded="true" />
<element signature="e#5412#5436#0" expanded="true" />
<element signature="e#6505#6526#0" expanded="true" />
<element signature="e#6835#6857#0" expanded="true" />
</folding>
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
@ -1623,14 +1615,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="405">
<caret line="11" column="44" selection-start-line="11" selection-start-column="44" selection-end-line="11" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/linearlayout_action.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="150">
@ -1672,13 +1656,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="570">
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/android-sdks/platforms/android-21/data/res/values/attrs.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6761178" vertical-offset="13780" max-vertical-offset="113280">
@ -1702,13 +1679,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainFragment.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="285">
<caret line="9" column="29" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MorseFragment.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="270">
@ -1716,104 +1686,129 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainFragment.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="885">
<caret line="48" column="43" selection-start-line="48" selection-start-column="43" selection-end-line="48" selection-end-column="43" />
<state vertical-scroll-proportion="0.08178844" vertical-offset="0" max-vertical-offset="917">
<caret line="9" column="29" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/android-sdks/sources/android-21/java/lang/String.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33260632" vertical-offset="190" max-vertical-offset="26820">
<caret line="59" column="19" selection-start-line="59" selection-start-column="19" selection-end-line="59" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeWrittenMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.24536532" vertical-offset="180" max-vertical-offset="3675">
<caret line="27" column="29" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.17993458" vertical-offset="0" max-vertical-offset="917">
<caret line="11" column="44" selection-start-line="11" selection-start-column="44" selection-end-line="11" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="420" max-vertical-offset="2970">
<caret line="28" column="29" selection-start-line="28" selection-start-column="29" selection-end-line="28" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llnm.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="3023" max-vertical-offset="3630">
<caret line="236" column="2" selection-start-line="236" selection-start-column="2" selection-end-line="236" selection-end-column="2" />
<folding>
<element signature="e#0#8443#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/llwm.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="3008" max-vertical-offset="3615">
<caret line="237" column="2" selection-start-line="237" selection-start-column="2" selection-end-line="237" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/nmll.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2565">
<caret line="7" column="26" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
<folding>
<element signature="e#0#6264#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/share.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="225">
<caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/wmll.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="2078" max-vertical-offset="2685">
<caret line="171" column="13" selection-start-line="171" selection-start-column="13" selection-end-line="171" selection-end-column="13" />
<folding>
<element signature="e#0#6116#0" expanded="true" />
</folding>
<state vertical-scroll-proportion="0.523446" vertical-offset="0" max-vertical-offset="917">
<caret line="32" column="0" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1080" max-vertical-offset="2460">
<caret line="23" column="39" selection-start-line="23" selection-start-column="39" selection-end-line="23" selection-end-column="39" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3300">
<caret line="43" column="23" selection-start-line="43" selection-start-column="23" selection-end-line="43" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_about.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-6.3461537" vertical-offset="420" max-vertical-offset="2970">
<caret line="39" column="38" selection-start-line="39" selection-start-column="38" selection-end-line="39" selection-end-column="38" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$USER_HOME$/android-sdks/sources/android-21/android/os/MessageQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="350" max-vertical-offset="8325">
<caret line="52" column="31" selection-start-line="52" selection-start-column="31" selection-end-line="52" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeWrittenMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="35" max-vertical-offset="2775">
<caret line="7" column="12" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/DecodeNormalMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="135" max-vertical-offset="3690">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/de/marcelkapfer/morseconverter/EncodeNormalMorseManager.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1858" max-vertical-offset="2775">
<caret line="156" column="25" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-16.384615" vertical-offset="1554" max-vertical-offset="2700">
<caret line="132" column="32" selection-start-line="132" selection-start-column="32" selection-end-line="132" selection-end-column="32" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="58" max-vertical-offset="975">
<caret line="40" column="35" selection-start-line="40" selection-start-column="35" selection-end-line="40" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_morse.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-17.23077" vertical-offset="167" max-vertical-offset="2715">
<caret line="41" column="42" selection-start-line="41" selection-start-column="42" selection-end-line="41" selection-end-column="42" />
<state vertical-scroll-proportion="0.64646465" vertical-offset="2079" max-vertical-offset="3060">
<caret line="177" column="31" selection-start-line="177" selection-start-column="31" selection-end-line="177" selection-end-column="31" />
<folding>
<element signature="e#2618#2640#0" expanded="true" />
<element signature="e#3730#3753#0" expanded="true" />
<element signature="e#4061#4084#0" expanded="true" />
<element signature="e#5412#5436#0" expanded="true" />
<element signature="e#6505#6526#0" expanded="true" />
<element signature="e#6835#6857#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_main.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.38448277" vertical-offset="272" max-vertical-offset="2670">
<caret line="33" column="39" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" />
<folding>
<element signature="e#5072#5096#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -0,0 +1,241 @@
package de.marcelkapfer.morseconverter;
public class DecodeNormalMorseManager {
private String inputMessage;
DecodeNormalMorseManager(String string) {
inputMessage = string;
}
public void setString(String string) {
inputMessage = string;
}
public String getString() {
return inputMessage;
}
/*
* Code for converting normal letters into morse code
*/
public String getDecodedString() {
StringBuffer message = new StringBuffer(inputMessage);
if (message.toString().endsWith(" ")) {
message = message.deleteCharAt(message.length() - 1);
}
// Variables
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), message.toString().toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
output.replace(0, output.length(), "Please enter at least one character");
} else if (input.toString().equals("LETTERSPACE")) {
output.replace(0, output.length(), " ");
} else if (input.toString().equals("END OF WORK")) {
output.replace(0, output.length(), "...-.-");
} else if (input.toString().equals("ERROR")) {
output.replace(0, output.length(), "........");
} else if (input.toString().equals("STARTING SIGNAL")) {
output.replace(0, output.length(), "-.-.-");
} else if (input.toString().equals("ENDING SIGNAL")) {
output.replace(0, output.length(), ".-.-.");
} else if (input.toString().equals("UNDERSTOOD")) {
output.replace(0, output.length(), "...-.");
} else if (input.toString().equals("WAIT")) {
output.replace(0, output.length(), ".-...");
} else if (input.toString().equals("SOS")) {
output.replace(0, output.length(), "...---...");
} else if (input.toString().equals("LETTER SPACE")) {
output.replace(0, output.length(), " ");
} else if (input.toString().equals("WORD SPACE")) {
output.replace(0, output.length(), " ");
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith(" ")) {
output.delete(output.length() - 3, output.length());
}
output.append(" ");
input.delete(0, 1);
} else if (input.toString().startsWith("A")) {
output.append(".- ");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("-... ");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("-.-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("-.. ");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append(". ");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("..-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("--. ");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append(".... ");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append(".. ");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append(".--- ");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("-.- ");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append(".-.. ");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("--- ");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append(".--. ");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("--.- ");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append(".-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("... ");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("- ");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("..- ");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("...- ");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append(".-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("-..- ");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("-.-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("--.. ");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("----- ");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append(".---- ");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("..--- ");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("...-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("....- ");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("..... ");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("-.... ");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("--... ");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("---.. ");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("----. ");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append(".-.- ");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("---. ");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("..-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("...--... ");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append(".-.-.- ");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("--..-- ");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("---... ");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("-.-.-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("..--.. ");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("-.-.-- ");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("-....- ");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("..--.- ");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("-.--. ");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("-.--.- ");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("-...- ");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append(".-.-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("-..-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append(".--.-. ");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append(".----. ");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("...-..- ");
input.delete(0, 1);
} else {
output.replace(0, output.length(), "Code not listed or wrong.");
}
}
if (output.toString().endsWith(" ")) {
output.delete(output.length() - 3, output.length());
}
}
return output.toString();
}
}

View file

@ -0,0 +1,240 @@
package de.marcelkapfer.morseconverter;
public class DecodeWrittenMorseManager {
private String inputMessage;
DecodeWrittenMorseManager(String string) {
inputMessage = string;
}
public void setString(String string) {
inputMessage = string;
}
public String getString() {
return inputMessage;
}
/*
* Code for converting latin letters into written morse
*/
public String getDecodedString() {
StringBuffer message = new StringBuffer(inputMessage);
if (message.toString().endsWith(" ")) {
message = message.deleteCharAt(message.length() - 1);
}
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), message.toString().toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
output.replace(0, output.length(), "Please enter at least one character");
} else if (input.toString().equals("LETTERSPACE")) {
output.replace(0, output.length(), "#");
} else if (input.toString().equals("END OF WORK")) {
output.replace(0, output.length(), "000101");
} else if (input.toString().equals("ERROR")) {
output.replace(0, output.length(), "00000000");
} else if (input.toString().equals("STARTING SIGNAL")) {
output.replace(0, output.length(), "10101");
} else if (input.toString().equals("ENDING SIGNAL")) {
output.replace(0, output.length(), "01010");
} else if (input.toString().equals("UNDERSTOOD")) {
output.replace(0, output.length(), "00010");
} else if (input.toString().equals("WAIT")) {
output.replace(0, output.length(), "01000");
} else if (input.toString().equals("SOS")) {
output.replace(0, output.length(), "000111000");
} else if (input.toString().equals("LETTER SPACE")) {
output.replace(0, output.length(), "##");
} else if (input.toString().equals("WORD SPACE")) {
output.replace(0, output.length(), "+");
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete(output.length() - 1, output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
output.replace(0, output.length(), "Code not listed or wrong.");
}
}
if (output.toString().endsWith("#")) {
output.delete(output.length() - 1, output.length());
}
}
return output.toString();
}
}

View file

@ -0,0 +1,186 @@
package de.marcelkapfer.morseconverter;
/*
* Code for converting morse code into latin letters
*/
public class EncodeNormalMorseManager {
private String inputMessage;
EncodeNormalMorseManager(String string) {
inputMessage = string;
}
public void setString(String string){
inputMessage = string;
}
public String getString(){
return inputMessage;
}
public String getEncodedString() {
// Converts the input string into a StringBuffer
StringBuffer message = new StringBuffer(inputMessage);
// Delete the space at the end which is automatically set through some keyboards
if (message.toString().endsWith(" ")) {
message = message.deleteCharAt(message.length() - 1);
}
// Declaring variables
String input;
StringBuffer output = new StringBuffer();
input = message.toString() + " ";
StringBuffer inputToSign = new StringBuffer(input);
while (!inputToSign.toString().equals(" ")) {
int d = 0;
boolean signFull = true;
StringBuffer sign = new StringBuffer();
while (signFull) {
if (inputToSign.toString().startsWith(" ")) {
output.append(" ");
inputToSign.delete(d, d + 7);
} else if (inputToSign.toString().substring(d, d + 3).equals(" ")) {
if (d == 0) {
inputToSign.delete(0, 3);
} else {
sign.replace(0, sign.length(), inputToSign
.toString().substring(0, d));
inputToSign.delete(0, d);
signFull = false;
}
} else {
d++;
}
}
if (sign.toString().equals(".-")) {
output.append("A");
} else if (sign.toString().equals("-...")) {
output.append("B");
} else if (sign.toString().equals("-.-.")) {
output.append("C");
} else if (sign.toString().equals("-..")) {
output.append("D");
} else if (sign.toString().equals(".")) {
output.append("E");
} else if (sign.toString().equals("..-.")) {
output.append("F");
} else if (sign.toString().equals("--.")) {
output.append("G");
} else if (sign.toString().equals("....")) {
output.append("H");
} else if (sign.toString().equals("..")) {
output.append("I");
} else if (sign.toString().equals(".---")) {
output.append("J");
} else if (sign.toString().equals("-.-")) {
output.append("K");
} else if (sign.toString().equals(".-..")) {
output.append("L");
} else if (sign.toString().equals("--")) {
output.append("M");
} else if (sign.toString().equals("-.")) {
output.append("N");
} else if (sign.toString().equals("---")) {
output.append("O");
} else if (sign.toString().equals(".--.")) {
output.append("P");
} else if (sign.toString().equals("--.-")) {
output.append("Q");
} else if (sign.toString().equals(".-.")) {
output.append("R");
} else if (sign.toString().equals("...")) {
output.append("S");
} else if (sign.toString().equals("-")) {
output.append("T");
} else if (sign.toString().equals("..-")) {
output.append("U");
} else if (sign.toString().equals("...-")) {
output.append("V");
} else if (sign.toString().equals(".--")) {
output.append("W");
} else if (sign.toString().equals("-..-")) {
output.append("X");
} else if (sign.toString().equals("-.--")) {
output.append("Y");
} else if (sign.toString().equals("--..")) {
output.append("Z");
} else if (sign.toString().equals("-----")) {
output.append(". (zero)");
} else if (sign.toString().equals(".----")) {
output.append("-");
} else if (sign.toString().equals("..---")) {
output.append("2");
} else if (sign.toString().equals("...--")) {
output.append("3");
} else if (sign.toString().equals("....-")) {
output.append("4");
} else if (sign.toString().equals(".....")) {
output.append("5");
} else if (sign.toString().equals("-....")) {
output.append("6");
} else if (sign.toString().equals("--...")) {
output.append("7");
} else if (sign.toString().equals("---..")) {
output.append("8");
} else if (sign.toString().equals("----.")) {
output.append("9");
} else if (sign.toString().equals(".-.-")) {
output.append("Ä");
} else if (sign.toString().equals("---.")) {
output.append("Ö");
} else if (sign.toString().equals("..--")) {
output.append("Ü");
} else if (sign.toString().equals("...--...")) {
output.append("ß");
} else if (sign.toString().equals("----")) {
output.append("CH");
} else if (sign.toString().equals(".-.-.-")) {
output.append(".");
} else if (sign.toString().equals("--..--")) {
output.append(",");
} else if (sign.toString().equals("---...")) {
output.append(":");
} else if (sign.toString().equals("-.-.-.")) {
output.append(";");
} else if (sign.toString().equals("..--..")) {
output.append("?");
} else if (sign.toString().equals("-.-.--")) {
output.append("!");
} else if (sign.toString().equals("-....-")) {
output.append("-");
} else if (sign.toString().equals("..--.-")) {
output.append("_");
} else if (sign.toString().equals("-.--.")) {
output.append("(");
} else if (sign.toString().equals("-.--.-")) {
output.append(")");
} else if (sign.toString().equals(".----.")) {
output.append("'");
} else if (sign.toString().equals("-...-")) {
output.append("=");
} else if (sign.toString().equals(".-.-.")) {
output.append("+ or End of the signal");
} else if (sign.toString().equals("-..-.")) {
output.append("/");
} else if (sign.toString().equals(".--.-.")) {
output.append("@");
} else if (sign.toString().equals("-.-.-")) {
output.append("Begin of the signal");
} else if (sign.toString().equals("-...-")) {
output.append("Wait");
} else if (sign.toString().equals("...-.")) {
output.append("Understood");
} else if (sign.toString().equals("...-.-")) {
output.append("End of work");
} else if (sign.toString().equals("...---...")) {
output.append("SOS");
} else if (sign.toString().equals("........")) {
output.append("Error");
} else {
output.replace(0, output.length(), "Code not listed or wrong.");
}
}
return output.toString();
}
}

View file

@ -0,0 +1,185 @@
package de.marcelkapfer.morseconverter;
/*
* Code for converting writtenMorse to latin letters
*/
public class EncodeWrittenMorseManager {
private String inputMessage;
EncodeWrittenMorseManager(String string){
inputMessage = string;
}
public String getString(){
return inputMessage;
}
public void setString(String string){
inputMessage = string;
}
public String getEncodedString() {
StringBuffer message = new StringBuffer(inputMessage);
if (message.toString().endsWith(" ")) {
message = message.deleteCharAt(message.length() - 1);
}
// Variables
String input;
StringBuffer output = new StringBuffer();
input = message.toString().toUpperCase() + "#";
StringBuffer inputToSign = new StringBuffer(input);
while (!inputToSign.toString().equals("#")) {
int d = 0;
boolean signFull = true;
StringBuffer sign = new StringBuffer();
while (signFull) {
if (inputToSign.toString().charAt(d) == '+'
|| inputToSign.toString().charAt(d) == '#') {
if (d == 0) {
if (inputToSign.toString().startsWith("+")) {
output.append(" ");
}
inputToSign.deleteCharAt(0);
} else {
sign.replace(0, sign.length(), inputToSign
.toString().substring(0, d));
inputToSign.delete(0, d);
signFull = false;
}
} else {
d++;
}
}
if (sign.toString().equals("01")) {
output.append("A");
} else if (sign.toString().equals("1000")) {
output.append("B");
} else if (sign.toString().equals("1010")) {
output.append("C");
} else if (sign.toString().equals("100")) {
output.append("D");
} else if (sign.toString().equals("0")) {
output.append("E");
} else if (sign.toString().equals("0010")) {
output.append("F");
} else if (sign.toString().equals("110")) {
output.append("G");
} else if (sign.toString().equals("0000")) {
output.append("H");
} else if (sign.toString().equals("00")) {
output.append("I");
} else if (sign.toString().equals("0111")) {
output.append("J");
} else if (sign.toString().equals("101")) {
output.append("K");
} else if (sign.toString().equals("0100")) {
output.append("L");
} else if (sign.toString().equals("11")) {
output.append("M");
} else if (sign.toString().equals("10")) {
output.append("N");
} else if (sign.toString().equals("111")) {
output.append("O");
} else if (sign.toString().equals("0110")) {
output.append("P");
} else if (sign.toString().equals("1101")) {
output.append("Q");
} else if (sign.toString().equals("010")) {
output.append("R");
} else if (sign.toString().equals("000")) {
output.append("S");
} else if (sign.toString().equals("1")) {
output.append("T");
} else if (sign.toString().equals("001")) {
output.append("U");
} else if (sign.toString().equals("0001")) {
output.append("V");
} else if (sign.toString().equals("011")) {
output.append("W");
} else if (sign.toString().equals("1001")) {
output.append("X");
} else if (sign.toString().equals("1011")) {
output.append("Y");
} else if (sign.toString().equals("1100")) {
output.append("Z");
} else if (sign.toString().equals("11111")) {
output.append("0 (zero)");
} else if (sign.toString().equals("01111")) {
output.append("1");
} else if (sign.toString().equals("00111")) {
output.append("2");
} else if (sign.toString().equals("00011")) {
output.append("3");
} else if (sign.toString().equals("00001")) {
output.append("4");
} else if (sign.toString().equals("00000")) {
output.append("5");
} else if (sign.toString().equals("10000")) {
output.append("6");
} else if (sign.toString().equals("11000")) {
output.append("7");
} else if (sign.toString().equals("11100")) {
output.append("8");
} else if (sign.toString().equals("11110")) {
output.append("9");
} else if (sign.toString().equals("0101")) {
output.append("Ä");
} else if (sign.toString().equals("1110")) {
output.append("Ö");
} else if (sign.toString().equals("0011")) {
output.append("Ü");
} else if (sign.toString().equals("00011000")) {
output.append("ß");
} else if (sign.toString().equals("1111")) {
output.append("CH");
} else if (sign.toString().equals("010101")) {
output.append(".");
} else if (sign.toString().equals("110011")) {
output.append(",");
} else if (sign.toString().equals("111000")) {
output.append(":");
} else if (sign.toString().equals("101010")) {
output.append(";");
} else if (sign.toString().equals("001100")) {
output.append("?");
} else if (sign.toString().equals("101011")) {
output.append("!");
} else if (sign.toString().equals("100001")) {
output.append("-");
} else if (sign.toString().equals("001101")) {
output.append("_");
} else if (sign.toString().equals("10110")) {
output.append("(");
} else if (sign.toString().equals("101101")) {
output.append(")");
} else if (sign.toString().equals("011110")) {
output.append("'");
} else if (sign.toString().equals("10001")) {
output.append("=");
} else if (sign.toString().equals("01010")) {
output.append("+ or End of the signal");
} else if (sign.toString().equals("10010")) {
output.append("/");
} else if (sign.toString().equals("011010")) {
output.append("@");
} else if (sign.toString().equals("10101")) {
output.append("Begin of the signal");
} else if (sign.toString().equals("10001")) {
output.append("Wait");
} else if (sign.toString().equals("00010")) {
output.append("Understood");
} else if (sign.toString().equals("000101")) {
output.append("End of work");
} else if (sign.toString().equals("000111000")) {
output.append("SOS");
} else if (sign.toString().equals("00000000")) {
output.append("Error");
} else {
output.replace(0, output.length(), "Code not listed or wrong.");
}
}
return output.toString();
}
}

View file

@ -1,5 +1,8 @@
package de.marcelkapfer.morseconverter;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
@ -39,43 +42,63 @@ public class MainActivity extends MaterialNavigationDrawer {
}
public void normalMorseEncode(View view){
EditText text = (EditText) findViewById(R.id.editTextNormalMorse);
TextView test = (TextView) findViewById(R.id.outputNormalMorse);
try{
EditText input = (EditText) findViewById(R.id.editTextNormalMorse);
TextView output = (TextView) findViewById(R.id.outputNormalMorse);
CardView cardView = (CardView) findViewById(R.id.cardViewNormalMorseOutput);
if(cardView.getVisibility() == View.INVISIBLE){
cardView.setVisibility(View.VISIBLE);
}
test.setText(text.getText());
EncodeNormalMorseManager message = new EncodeNormalMorseManager(input.getText().toString());
output.setText(message.getEncodedString());
} catch (Exception e){
e.printStackTrace();
}
}
public void normalMorseDecode(View view){
EditText text = (EditText) findViewById(R.id.editTextNormalMorse);
TextView test = (TextView) findViewById(R.id.outputNormalMorse);
try {
EditText input = (EditText) findViewById(R.id.editTextNormalMorse);
TextView output = (TextView) findViewById(R.id.outputNormalMorse);
CardView cardView = (CardView) findViewById(R.id.cardViewNormalMorseOutput);
if(cardView.getVisibility() == View.INVISIBLE){
cardView.setVisibility(View.VISIBLE);
}
test.setText(text.getText());
DecodeNormalMorseManager message = new DecodeNormalMorseManager(input.getText().toString());
output.setText(message.getDecodedString());
} catch (Exception e){
e.printStackTrace();
}
}
public void writtenMorseEncode(View view){
EditText text = (EditText) findViewById(R.id.editTextWrittenMorse);
TextView test = (TextView) findViewById(R.id.outputWrittenMorse);
try {
EditText input = (EditText) findViewById(R.id.editTextWrittenMorse);
TextView output = (TextView) findViewById(R.id.outputWrittenMorse);
CardView cardView = (CardView) findViewById(R.id.cardViewWrittenMorseOutput);
if(cardView.getVisibility() == View.INVISIBLE){
cardView.setVisibility(View.VISIBLE);
}
test.setText(text.getText());
EncodeWrittenMorseManager message = new EncodeWrittenMorseManager(input.getText().toString());
output.setText(message.getEncodedString());
} catch (Exception e){
e.printStackTrace();
}
}
public void writtenMorseDecode(View view){
EditText text = (EditText) findViewById(R.id.editTextWrittenMorse);
TextView test = (TextView) findViewById(R.id.outputWrittenMorse);
try {
EditText input = (EditText) findViewById(R.id.editTextWrittenMorse);
TextView output = (TextView) findViewById(R.id.outputWrittenMorse);
CardView cardView = (CardView) findViewById(R.id.cardViewWrittenMorseOutput);
if(cardView.getVisibility() == View.INVISIBLE){
cardView.setVisibility(View.VISIBLE);
}
test.setText(text.getText());
DecodeWrittenMorseManager message = new DecodeWrittenMorseManager(input.getText().toString());
output.setText(message.getDecodedString());
} catch (Exception e){
e.printStackTrace();
}
}
//called when clicking on the version entry in the about fragment
@ -165,4 +188,40 @@ public class MainActivity extends MaterialNavigationDrawer {
e.printStackTrace();
}
}
public void shareWrittenMorse(View view){
TextView message = (TextView) findViewById(R.id.outputWrittenMorse);
share(message.getText().toString());
}
public void shareNormalMorse(View view){
TextView message = (TextView) findViewById(R.id.outputNormalMorse);
share(message.getText().toString());
}
public void share(String string){
Intent intent = getIntent();
String message = intent.getStringExtra(string);
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
}
public void copyWrittenMorse(View view){
TextView message = (TextView) findViewById(R.id.outputWrittenMorse);
copy(message.getText().toString());
}
public void copyNormalMorse(View view){
TextView message = (TextView) findViewById(R.id.outputNormalMorse);
copy(message.getText().toString());
}
public void copy(String string){
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("Message", string);
clipboard.setPrimaryClip(clip);
}
}

View file

@ -88,16 +88,28 @@
android:layout_gravity="right"
android:baselineAligned="false">
<TextView
style="@style/TextViewButton"
<LinearLayout
style="@style/LinearLayoutButton"
android:layout_marginRight="8dp"
android:onClick="writtenMorseDecode"
android:text="@string/button_decode" />
android:onClick="writtenMorseDecode" >
<TextView
style="@style/TextViewButton"
style="@style/LinearLayoutButtonText"
android:text="@string/button_decode"/>
</LinearLayout>
<LinearLayout
style="@style/LinearLayoutButton"
android:onClick="writtenMorseEncode"
android:text="@string/button_encode" >
<TextView
style="@style/LinearLayoutButtonText"
android:text="@string/button_encode"/>
</LinearLayout>
</LinearLayout>
@ -132,6 +144,8 @@
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="8dp"
android:minHeight="64dp"
android:gravity="center_vertical"
android:hint="@string/output_message"
android:singleLine="false"
android:background="@color/cardview_light_background"/>
@ -152,16 +166,27 @@
android:layout_gravity="right"
android:baselineAligned="false">
<TextView
style="@style/TextViewButton"
<LinearLayout
style="@style/LinearLayoutButton"
android:layout_marginRight="8dp"
android:onClick="writtenMorseDecode"
android:text="@string/button_copy" />
android:onClick="copyNormalMorse" >
<TextView
style="@style/TextViewButton"
android:onClick="writtenMorseEncode"
style="@style/LinearLayoutButtonText"
android:text="@string/button_copy" />
</LinearLayout>
<LinearLayout
style="@style/LinearLayoutButton"
android:onClick="shareNormalMorse" >
<TextView
style="@style/LinearLayoutButtonText"
android:text="@string/button_share"/>
</LinearLayout>
</LinearLayout>

View file

@ -88,19 +88,29 @@
android:layout_gravity="right"
android:baselineAligned="false">
<TextView
style="@style/TextViewButton"
<LinearLayout
style="@style/LinearLayoutButton"
android:onClick="normalMorseDecode"
android:layout_marginRight="8dp"
android:text="@string/button_decode" />
android:layout_marginRight="8dp">
<TextView
style="@style/TextViewButton"
android:onClick="normalMorseEncode"
style="@style/LinearLayoutButtonText"
android:text="@string/button_decode"/>
</LinearLayout>
<LinearLayout
style="@style/LinearLayoutButton"
android:onClick="normalMorseEncode">
<TextView
style="@style/LinearLayoutButtonText"
android:text="@string/button_encode" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
@ -130,6 +140,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:minHeight="64dp"
android:gravity="center_vertical"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="8dp"
@ -154,16 +166,27 @@
android:layout_gravity="right"
android:baselineAligned="false">
<TextView
style="@style/TextViewButton"
<LinearLayout
style="@style/LinearLayoutButton"
android:layout_marginRight="8dp"
android:onClick="writtenMorseDecode"
android:text="@string/button_copy" />
android:onClick="copyNormalMorse" >
<TextView
style="@style/TextViewButton"
android:onClick="writtenMorseEncode"
style="@style/LinearLayoutButtonText"
android:text="@string/button_copy" />
</LinearLayout>
<LinearLayout
style="@style/LinearLayoutButton"
android:onClick="shareNormalMorse" >
<TextView
style="@style/LinearLayoutButtonText"
android:text="@string/button_share"/>
</LinearLayout>
</LinearLayout>

View file

@ -37,7 +37,7 @@
<item name="android:background">@color/ripple_material_light</item>
</style>
<style name="TextViewButton">
<style name="LinearLayoutButton">
<item name="android:layout_height">36dp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:minWidth">64dp</item>
@ -45,10 +45,16 @@
<item name="android:layout_marginRight">4dp</item>
<item name="android:paddingRight">8dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:gravity">center</item>
<item name="android:background">@drawable/button_action</item>
<item name="android:src">@color/cardview_light_background</item>
</style>
<style name="LinearLayoutButtonText">
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:gravity">center</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_width">match_parent</item>
</style>
</resources>