diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d89ad3c..43f7e18 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -63,9 +63,13 @@ dependencies { implementation(libs.transition) implementation(libs.fragment) implementation(libs.activity) - implementation(project(":filetree")) + implementation(libs.terminal.view) + implementation(libs.terminal.emulator) + implementation(libs.utilcodex) + // with Paths + implementation(project(":filetree")) //tests coreLibraryDesugaring(libs.desugar.jdk.libs) diff --git a/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButton.java b/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButton.java new file mode 100755 index 0000000..a2b367c --- /dev/null +++ b/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButton.java @@ -0,0 +1,49 @@ +package com.sparkleseditor.components.virtualkeys; + +import androidx.annotation.NonNull; +import java.util.HashMap; + +/** The {@link Class} that implements special buttons for {@link VirtualKeysView}. */ +public class SpecialButton { + + private static final HashMap map = new HashMap<>(); + public static final SpecialButton CTRL = new SpecialButton("CTRL"); + public static final SpecialButton ALT = new SpecialButton("ALT"); + public static final SpecialButton SHIFT = new SpecialButton("SHIFT"); + public static final SpecialButton FN = new SpecialButton("FN"); + + /** The special button key. */ + private final String key; + + /** + * Initialize a {@link SpecialButton}. + * + * @param key The unique key name for the special button. The key is registered in {@link #map} + * with which the {@link SpecialButton} can be retrieved via a call to {@link + * #valueOf(String)}. + */ + public SpecialButton(@NonNull final String key) { + this.key = key; + map.put(key, this); + } + + /** + * Get the {@link SpecialButton} for {@code key}. + * + * @param key The unique key name for the special button. + */ + public static SpecialButton valueOf(String key) { + return map.get(key); + } + + /** Get {@link #key} for this {@link SpecialButton}. */ + public String getKey() { + return key; + } + + @NonNull + @Override + public String toString() { + return key; + } +} diff --git a/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButtonState.java b/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButtonState.java new file mode 100755 index 0000000..ffa11ad --- /dev/null +++ b/app/src/main/java/com/sparkleseditor/components/virtualkeys/SpecialButtonState.java @@ -0,0 +1,56 @@ +package com.sparkleseditor.components.virtualkeys; + +import android.widget.Button; +import java.util.ArrayList; +import java.util.List; + +/** The {@link Class} that maintains a state of a {@link SpecialButton} */ +public class SpecialButtonState { + + /** If special button has been created for the {@link VirtualKeysView}. */ + boolean isCreated = false; + + /** If special button is active. */ + boolean isActive = false; + + /** + * If special button is locked due to long hold on it and should not be deactivated if its state + * is read. + */ + boolean isLocked = false; + + List