Skip to content

Commit b698780

Browse files
tumuyanBambooin
authored andcommitted
feat: add sticky_lines_land for candidate window
1 parent 9c968de commit b698780

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

app/src/main/assets/rime/tongwenfeng.trime.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ style:
4545
min_length: 4 #候选窗口最小词长
4646
max_length: 14 #超过字数则换行
4747
sticky_lines: 1 #固顶行数
48+
sticky_lines_land: 0 #横屏模式下的固顶行数
4849
max_entries: 5 #候选窗口最大词条数
4950
border: 0 #候选窗口边框宽度
5051
max_width: 360 #最大宽度,超过则自动换行

app/src/main/assets/rime/trime.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ style:
3333
min_length: 5 #最小詞長
3434
max_length: 10 #超過字數則換行
3535
sticky_lines: 0 #固頂行數
36+
sticky_lines_land: 0 #横屏模式下的固顶行数
3637
max_entries: 1 #最大詞條數
3738
min_check: 3 #只要前n个候选词有长度大于等于min_length的词,就会把长度符合以及之前的词全部加到悬浮窗内。
3839
all_phrases: false #所有滿足條件的詞語都顯示在窗口
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package com.osfans.trime.ime.landscapeinput
22

3+
import java.util.Locale
4+
import kotlin.collections.HashMap
5+
36
enum class LandscapeInputUIMode {
47
AUTO_SHOW,
58
ALWAYS_SHOW,
69
NEVER_SHOW;
710

811
companion object {
9-
fun fromString(string: String): LandscapeInputUIMode {
10-
return valueOf(string.uppercase())
12+
private val convertMap: HashMap<String, LandscapeInputUIMode> = hashMapOf()
13+
fun fromString(mode: String): LandscapeInputUIMode {
14+
val type = convertMap[mode.uppercase(Locale.getDefault())]
15+
return type ?: AUTO_SHOW
1116
}
1217
}
1318
}

app/src/main/java/com/osfans/trime/ime/text/Composition.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import android.annotation.SuppressLint;
2222
import android.annotation.TargetApi;
2323
import android.content.Context;
24+
import android.content.res.Configuration;
2425
import android.content.res.Resources;
2526
import android.graphics.Typeface;
2627
import android.os.Build.VERSION;
@@ -60,7 +61,7 @@ public class Composition extends AppCompatTextView {
6061
private Integer key_back_color;
6162
private Typeface tfText, tfLabel, tfCandidate, tfComment;
6263
private final int[] composition_pos = new int[2];
63-
private int max_length, sticky_lines;
64+
private int max_length, sticky_lines, sticky_lines_land;
6465
private int max_entries = Candidate.getMaxCandidateCount();
6566
private boolean candidate_use_cursor, show_comment;
6667
private int highlightIndex;
@@ -261,6 +262,7 @@ public void reset(Context context) {
261262
setPadding(margin_x, margin_y, margin_x, margin_bottom);
262263
max_length = config.getInt("layout/max_length");
263264
sticky_lines = config.getInt("layout/sticky_lines");
265+
sticky_lines_land = config.getInt("layout/sticky_lines_land");
264266
movable = config.getString("layout/movable");
265267
all_phrases = config.getBoolean("layout/all_phrases");
266268
tfLabel = config.getFont("label_font");
@@ -366,6 +368,12 @@ private void appendCandidates(Map<?, ?> m, int length, int end_num) {
366368
String line = Config.getString(m, "sep");
367369

368370
int line_length = 0;
371+
int sticky_lines_now = sticky_lines;
372+
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
373+
sticky_lines_now = sticky_lines_land;
374+
}
375+
// Timber.d("sticky_lines_now = %d", sticky_lines_now);
376+
369377
String[] labels = Rime.getSelectLabels();
370378
int i = -1;
371379
candidate_num = 0;
@@ -384,7 +392,7 @@ private void appendCandidates(Map<?, ?> m, int length, int end_num) {
384392
final String line_sep;
385393
if (candidate_num == 0) {
386394
line_sep = sep;
387-
} else if ((sticky_lines > 0 && sticky_lines >= i)
395+
} else if ((sticky_lines_now > 0 && sticky_lines_now >= i)
388396
|| (max_length > 0 && line_length + cand.length() > max_length)) {
389397
line_sep = "\n";
390398
line_length = 0;

0 commit comments

Comments
 (0)