From 7f60898dd8d3679cb938dac754f3fe248ed84a14 Mon Sep 17 00:00:00 2001 From: Emil Kosz Date: Fri, 22 Nov 2024 17:44:08 +0100 Subject: [PATCH] Add a user manual screen --- app/src/main/AndroidManifest.xml | 12 +++++- .../cfpifpsi/titanboard/KeymapManager.java | 12 ------ .../titanboard/activities/ManualActivity.java | 40 +++++++++++++++++++ .../{ => activities}/SettingsActivity.java | 4 +- .../cfpifpsi/titanboard/views/InputView.java | 6 +-- app/src/main/res/drawable/button.xml | 3 +- app/src/main/res/layout/activity_manual.xml | 25 ++++++++++++ app/src/main/res/values/strings.xml | 31 ++++++++++++-- app/src/main/res/xml/method.xml | 2 +- app/src/main/res/xml/preferences.xml | 7 +++- 10 files changed, 116 insertions(+), 26 deletions(-) create mode 100644 app/src/main/java/eur/cfpifpsi/titanboard/activities/ManualActivity.java rename app/src/main/java/eur/cfpifpsi/titanboard/{ => activities}/SettingsActivity.java (93%) create mode 100644 app/src/main/res/layout/activity_manual.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5a3aa9d..65a8c9f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -47,13 +47,23 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/eur/cfpifpsi/titanboard/KeymapManager.java b/app/src/main/java/eur/cfpifpsi/titanboard/KeymapManager.java index 6d88f8b..0d13f04 100644 --- a/app/src/main/java/eur/cfpifpsi/titanboard/KeymapManager.java +++ b/app/src/main/java/eur/cfpifpsi/titanboard/KeymapManager.java @@ -51,9 +51,6 @@ public class KeymapManager { loadDeviceKeymaps(context.getResources().getXml(R.xml.keymaps_titan)); } - /** - * @noinspection BreakStatement - */ private void loadDeviceKeymaps(XmlPullParser parser) { Keymap keymap = null; int code = 0; @@ -202,25 +199,16 @@ public class KeymapManager { String latchedCode; String lockedCode; - /** - * @noinspection ReturnOfNull - */ public ArrayList getSymbolsBase(int keyCode) { Key key = mMap.get(keyCode); return key == null ? null : key.symbolsBase; } - /** - * @noinspection ReturnOfNull - */ public ArrayList getSymbolsAlt(int keyCode) { Key key = mMap.get(keyCode); return key == null ? null : key.symbolsAlt; } - /** - * @noinspection ReturnOfNull - */ public ArrayList getSymbolsShift(int keyCode) { Key key = mMap.get(keyCode); return key == null ? null : key.symbolsShift; diff --git a/app/src/main/java/eur/cfpifpsi/titanboard/activities/ManualActivity.java b/app/src/main/java/eur/cfpifpsi/titanboard/activities/ManualActivity.java new file mode 100644 index 0000000..6f378f9 --- /dev/null +++ b/app/src/main/java/eur/cfpifpsi/titanboard/activities/ManualActivity.java @@ -0,0 +1,40 @@ +/* + * An input method for physical keyboard phones + * Copyright (C) 2024 Emil Kosz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package eur.cfpifpsi.titanboard.activities; + +import android.app.Activity; +import android.os.Bundle; +import android.text.Html; +import android.text.Spanned; +import android.widget.TextView; + +import eur.cfpifpsi.titanboard.R; + +public class ManualActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_manual); + // Convert the HTML manual into a TextView format + String htmlString = getString(R.string.user_manual_html); + Spanned htmlSpanned = Html.fromHtml(htmlString); + TextView tv = findViewById(R.id.manual_text); + tv.setText(htmlSpanned); + } +} diff --git a/app/src/main/java/eur/cfpifpsi/titanboard/SettingsActivity.java b/app/src/main/java/eur/cfpifpsi/titanboard/activities/SettingsActivity.java similarity index 93% rename from app/src/main/java/eur/cfpifpsi/titanboard/SettingsActivity.java rename to app/src/main/java/eur/cfpifpsi/titanboard/activities/SettingsActivity.java index 70befd5..109cce7 100644 --- a/app/src/main/java/eur/cfpifpsi/titanboard/SettingsActivity.java +++ b/app/src/main/java/eur/cfpifpsi/titanboard/activities/SettingsActivity.java @@ -16,11 +16,13 @@ * along with this program. If not, see . */ -package eur.cfpifpsi.titanboard; +package eur.cfpifpsi.titanboard.activities; import android.os.Bundle; import android.preference.PreferenceActivity; +import eur.cfpifpsi.titanboard.R; + /** * @noinspection deprecation */ diff --git a/app/src/main/java/eur/cfpifpsi/titanboard/views/InputView.java b/app/src/main/java/eur/cfpifpsi/titanboard/views/InputView.java index 1a122c3..29a976d 100644 --- a/app/src/main/java/eur/cfpifpsi/titanboard/views/InputView.java +++ b/app/src/main/java/eur/cfpifpsi/titanboard/views/InputView.java @@ -18,7 +18,6 @@ package eur.cfpifpsi.titanboard.views; -import android.annotation.TargetApi; import android.content.ClipData; import android.content.Context; import android.content.Intent; @@ -35,8 +34,8 @@ import java.util.ArrayList; import eur.cfpifpsi.titanboard.KeymapManager; import eur.cfpifpsi.titanboard.MetaKeyManager; import eur.cfpifpsi.titanboard.R; -import eur.cfpifpsi.titanboard.SettingsActivity; import eur.cfpifpsi.titanboard.TitanboardIME; +import eur.cfpifpsi.titanboard.activities.SettingsActivity; public final class InputView extends RelativeLayout { private final int[] buttonStateToggled = {R.attr.state_toggled}; @@ -103,9 +102,6 @@ public final class InputView extends RelativeLayout { }); } - /** - * @noinspection FeatureEnvy - */ public void updateStateText() { MetaKeyManager metaManager = mTitanboardIME.mMetaKeyManager; KeymapManager keymapManager = mTitanboardIME.mKeymapManager; diff --git a/app/src/main/res/drawable/button.xml b/app/src/main/res/drawable/button.xml index dbb05e0..5106994 100644 --- a/app/src/main/res/drawable/button.xml +++ b/app/src/main/res/drawable/button.xml @@ -16,8 +16,7 @@ ~ along with this program. If not, see . --> - + diff --git a/app/src/main/res/layout/activity_manual.xml b/app/src/main/res/layout/activity_manual.xml new file mode 100644 index 0000000..e975ad0 --- /dev/null +++ b/app/src/main/res/layout/activity_manual.xml @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8b170fa..bd944f8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,6 +19,7 @@ Titanboard Titanboard preferences + Titanboard manual en 500 @@ -40,16 +41,40 @@ Symbol cycling speed/timeout Clipboard size Languages - - Copyleft 🄯 Emil Kosz, 2024. License: GPLv3 - + User manual Overrides the default behaviour of long pressing to cycle + + Copyleft 🄯 Emil Kosz, 2024. License: GPLv3 + cycle_manual selected_keymaps cycle_speed clipboard_size + + + Titanboard manual +

First steps

+

+ Thank you for trying out Titanboard! There are a few things in this program that can + make your typing experience better. First, set up your settings to fit what you want: +

+
    +
  1. + Pick your device from the device list. This will make sure that all characters on + the physical keyboard can be used, such as alt symbols. +
  2. +
  3. Pick the languages you use from the language list
  4. +
  5. + Choose your symbol inputting method. This applies to alphabetic and twelve key + keyboards only, as full keyboards use the shift and alt keys to access alternate + symbols. +
  6. +
+ ]]> +
\ No newline at end of file diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml index 3801938..30cab9b 100644 --- a/app/src/main/res/xml/method.xml +++ b/app/src/main/res/xml/method.xml @@ -19,7 +19,7 @@ + android:settingsActivity="eur.cfpifpsi.titanboard.activities.SettingsActivity"> + + + + android:summary="@string/preferences_summary_copyright_info" /> \ No newline at end of file