UI: double line ExtraKeysView.
This commit is contained in:
@ -9,7 +9,6 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.HorizontalScrollView;
|
import android.widget.HorizontalScrollView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ScrollView;
|
|
||||||
import android.widget.ToggleButton;
|
import android.widget.ToggleButton;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -32,7 +31,7 @@ import static io.neoterm.view.eks.ExtraButton.KEY_TAB;
|
|||||||
* A view showing extra keys (such as Escape, Ctrl, Alt) not normally available on an Android soft
|
* A view showing extra keys (such as Escape, Ctrl, Alt) not normally available on an Android soft
|
||||||
* keyboard.
|
* keyboard.
|
||||||
*/
|
*/
|
||||||
public final class ExtraKeysView extends HorizontalScrollView {
|
public final class ExtraKeysView extends LinearLayout {
|
||||||
|
|
||||||
public static final ControlButton ESC = new ControlButton(KEY_ESC);
|
public static final ControlButton ESC = new ControlButton(KEY_ESC);
|
||||||
public static final ControlButton TAB = new ControlButton(KEY_TAB);
|
public static final ControlButton TAB = new ControlButton(KEY_TAB);
|
||||||
@ -55,24 +54,35 @@ public final class ExtraKeysView extends HorizontalScrollView {
|
|||||||
private List<ExtraButton> builtinExtraKeys;
|
private List<ExtraButton> builtinExtraKeys;
|
||||||
private List<ExtraButton> userDefinedExtraKeys;
|
private List<ExtraButton> userDefinedExtraKeys;
|
||||||
|
|
||||||
private LinearLayout contentView;
|
private LinearLayout lineOne;
|
||||||
|
private LinearLayout lineTwo;
|
||||||
|
|
||||||
|
|
||||||
public ExtraKeysView(Context context, AttributeSet attrs) {
|
public ExtraKeysView(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
setFillViewport(true);
|
setGravity(Gravity.TOP);
|
||||||
contentView = new LinearLayout(context);
|
setOrientation(VERTICAL);
|
||||||
contentView.setGravity(Gravity.CENTER);
|
HorizontalScrollView scrollOne = new HorizontalScrollView(context);
|
||||||
contentView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
HorizontalScrollView scrollTwo = new HorizontalScrollView(context);
|
||||||
contentView.setOrientation(LinearLayout.HORIZONTAL);
|
|
||||||
contentView.setGravity(Gravity.LEFT);
|
|
||||||
addView(contentView);
|
|
||||||
builtinExtraKeys = new ArrayList<>(7);
|
|
||||||
userDefinedExtraKeys = new ArrayList<>(7);
|
|
||||||
loadDefaultBuiltinExtraKeys();
|
loadDefaultBuiltinExtraKeys();
|
||||||
loadDefaultUserDefinedExtraKeys();
|
loadDefaultUserDefinedExtraKeys();
|
||||||
|
lineOne = initLine(scrollOne);
|
||||||
|
lineTwo = initLine(scrollTwo);
|
||||||
|
addView(scrollOne);
|
||||||
|
addView(scrollTwo);
|
||||||
updateButtons();
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private LinearLayout initLine(HorizontalScrollView scroll) {
|
||||||
|
scroll.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1f));
|
||||||
|
scroll.setFillViewport(true);
|
||||||
|
LinearLayout line = new LinearLayout(getContext());
|
||||||
|
line.setGravity(Gravity.START);
|
||||||
|
line.setOrientation(LinearLayout.HORIZONTAL);
|
||||||
|
scroll.addView(line);
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean readControlButton() {
|
public boolean readControlButton() {
|
||||||
return CTRL.readState();
|
return CTRL.readState();
|
||||||
@ -91,6 +101,7 @@ public final class ExtraKeysView extends HorizontalScrollView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void loadDefaultUserDefinedExtraKeys() {
|
public void loadDefaultUserDefinedExtraKeys() {
|
||||||
|
userDefinedExtraKeys = new ArrayList<>(7);
|
||||||
File defaultFile = new File(NeoTermPath.EKS_DEFAULT_FILE);
|
File defaultFile = new File(NeoTermPath.EKS_DEFAULT_FILE);
|
||||||
if (!defaultFile.exists()) {
|
if (!defaultFile.exists()) {
|
||||||
generateDefaultFile(defaultFile);
|
generateDefaultFile(defaultFile);
|
||||||
@ -102,7 +113,8 @@ public final class ExtraKeysView extends HorizontalScrollView {
|
|||||||
parser.setInput(defaultFile);
|
parser.setInput(defaultFile);
|
||||||
ShortcutConfig config = parser.parse();
|
ShortcutConfig config = parser.parse();
|
||||||
userDefinedExtraKeys.addAll(config.getShortcutKeys());
|
userDefinedExtraKeys.addAll(config.getShortcutKeys());
|
||||||
} catch (Exception ignore) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,6 +123,7 @@ public final class ExtraKeysView extends HorizontalScrollView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loadDefaultBuiltinExtraKeys() {
|
void loadDefaultBuiltinExtraKeys() {
|
||||||
|
builtinExtraKeys = new ArrayList<>(7);
|
||||||
builtinExtraKeys.clear();
|
builtinExtraKeys.clear();
|
||||||
builtinExtraKeys.add(ESC);
|
builtinExtraKeys.add(ESC);
|
||||||
builtinExtraKeys.add(CTRL);
|
builtinExtraKeys.add(CTRL);
|
||||||
@ -122,16 +135,16 @@ public final class ExtraKeysView extends HorizontalScrollView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateButtons() {
|
public void updateButtons() {
|
||||||
for (final ExtraButton extraButton : builtinExtraKeys) {
|
|
||||||
addExtraButton(extraButton);
|
|
||||||
}
|
|
||||||
for (final ExtraButton extraButton : userDefinedExtraKeys) {
|
for (final ExtraButton extraButton : userDefinedExtraKeys) {
|
||||||
addExtraButton(extraButton);
|
addExtraButton(lineOne, extraButton);
|
||||||
|
}
|
||||||
|
for (final ExtraButton extraButton : builtinExtraKeys) {
|
||||||
|
addExtraButton(lineTwo, extraButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addExtraButton(final ExtraButton extraButton) {
|
private void addExtraButton(LinearLayout contentView, final ExtraButton extraButton) {
|
||||||
final Button button;
|
final Button button;
|
||||||
if (extraButton instanceof StatedControlButton) {
|
if (extraButton instanceof StatedControlButton) {
|
||||||
StatedControlButton btn = ((StatedControlButton) extraButton);
|
StatedControlButton btn = ((StatedControlButton) extraButton);
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
android:id="@+id/extra_keys"
|
android:id="@+id/extra_keys"
|
||||||
style="?android:buttonBarStyle"
|
style="?android:buttonBarStyle"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/eks_height_one_line"
|
android:layout_height="@dimen/eks_height_two_line"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
android:background="@color/terminal_background"
|
android:background="@color/terminal_background"
|
||||||
android:orientation="horizontal" />
|
android:orientation="horizontal" />
|
||||||
|
Reference in New Issue
Block a user