fix peer tab translation and visibility

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2022-12-17 12:28:11 +08:00
parent 895d339d86
commit 747318827b

View File

@ -18,6 +18,7 @@ import '../../common.dart';
import '../../models/platform_model.dart'; import '../../models/platform_model.dart';
const int groupTabIndex = 4; const int groupTabIndex = 4;
const String defaultGroupTabname = 'Group';
class StatePeerTab { class StatePeerTab {
final RxInt currentTab = 0.obs; final RxInt currentTab = 0.obs;
@ -26,11 +27,11 @@ class StatePeerTab {
final RxList<int> visibleTabOrder = RxList.empty(growable: true); final RxList<int> visibleTabOrder = RxList.empty(growable: true);
int tabHiddenFlag = 0; int tabHiddenFlag = 0;
final RxList<String> tabNames = [ final RxList<String> tabNames = [
translate('Recent Sessions'), 'Recent Sessions',
translate('Favorites'), 'Favorites',
translate('Discovered'), 'Discovered',
translate('Address Book'), 'Address Book',
translate('Group'), defaultGroupTabname,
].obs; ].obs;
StatePeerTab._() { StatePeerTab._() {
@ -80,7 +81,7 @@ class StatePeerTab {
gFFI.userModel.groupName.isNotEmpty) { gFFI.userModel.groupName.isNotEmpty) {
tabNames[groupTabIndex] = gFFI.userModel.groupName.value; tabNames[groupTabIndex] = gFFI.userModel.groupName.value;
} else { } else {
tabNames[groupTabIndex] = translate('Group'); tabNames[groupTabIndex] = defaultGroupTabname;
} }
if (isTabHidden(groupTabIndex)) { if (isTabHidden(groupTabIndex)) {
visibleTabOrder.remove(groupTabIndex); visibleTabOrder.remove(groupTabIndex);
@ -301,7 +302,7 @@ class _PeerTabPageState extends State<PeerTabPage>
child: Align( child: Align(
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
statePeerTab.tabNames[t], // TODO translatedTabname(t),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
height: 1, height: 1,
@ -323,6 +324,23 @@ class _PeerTabPageState extends State<PeerTabPage>
}); });
} }
translatedTabname(int index) {
if (index < statePeerTab.tabNames.length) {
final name = statePeerTab.tabNames[index];
if (index == groupTabIndex) {
if (name == defaultGroupTabname) {
return translate(name);
} else {
return name;
}
} else {
return translate(name);
}
}
assert(false);
return index.toString();
}
Widget _createPeersView() { Widget _createPeersView() {
final verticalMargin = isDesktop ? 12.0 : 6.0; final verticalMargin = isDesktop ? 12.0 : 6.0;
statePeerTab.visibleTabOrder statePeerTab.visibleTabOrder
@ -414,7 +432,7 @@ class _PeerTabPageState extends State<PeerTabPage>
int bitMask = 1 << i; int bitMask = 1 << i;
menu.add(MenuEntrySwitch( menu.add(MenuEntrySwitch(
switchType: SwitchType.scheckbox, switchType: SwitchType.scheckbox,
text: statePeerTab.tabNames[i], text: translatedTabname(i),
getter: () async { getter: () async {
return statePeerTab.tabHiddenFlag & bitMask == 0; return statePeerTab.tabHiddenFlag & bitMask == 0;
}, },
@ -430,9 +448,9 @@ class _PeerTabPageState extends State<PeerTabPage>
statePeerTab.visibleTabOrder statePeerTab.visibleTabOrder
.removeWhere((e) => statePeerTab.isTabHidden(e)); .removeWhere((e) => statePeerTab.isTabHidden(e));
for (int j = 0; j < statePeerTab.tabNames.length; j++) { for (int j = 0; j < statePeerTab.tabNames.length; j++) {
if (!statePeerTab.visibleTabOrder.contains(j) && if (!statePeerTab.isTabHidden(j) &&
!statePeerTab.isTabHidden(j)) { !(j == groupTabIndex && statePeerTab.filterGroupCard())) {
statePeerTab.visibleTabOrder.add(j); statePeerTab.addTabInOrder(statePeerTab.visibleTabOrder, j);
} }
} }
statePeerTab.saveTabOrder(); statePeerTab.saveTabOrder();