feat (SSH page): Added server sorting, search, and history features (#1097)
* feat (SSH page): Added server sorting, search, and history features - Added sorting functionality to the SSH page, supporting sorting by name or date added - Added a server search feature, allowing searches by name, username, or IP address - Implemented a server access history feature, allowing users to view and clear the history - Added persistent storage for sorting options in Settings - Updated the multilingual files to support the new features * fix(ssh/tab): Fixed an issue where tabs were not refreshed after sorting Added _tabRN.notify() to refresh tabs after sorting, while also changing _TabBar from ConsumerWidget to StatelessWidget and fixing the sorting logic * fix(ssh/tab): Fixed an issue where tabs were not refreshed after sorting Added _tabRN.notify() to refresh tabs after sorting, while also changing _TabBar from ConsumerWidget to StatelessWidget and fixing the sorting logic * fix(ssh): Fixed the sorting functionality and optimized the UI display - Fixed performance issues caused by using `indexOf` during server sorting; switched to pre-built index mappings - Optimized divider colors to use theme colors - Removed unnecessary nested `Column` and `Expanded` structures - Replaced hard-coded blue with theme colors - Added error handling to display a snackbar - Ensured all `ValueNotifier` instances are properly released upon disposal
This commit is contained in:
@@ -1709,6 +1709,54 @@ abstract class AppLocalizations {
|
||||
/// In en, this message translates to:
|
||||
/// **'Sponsor'**
|
||||
String get sponsor;
|
||||
|
||||
/// No description provided for @sort.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sort'**
|
||||
String get sort;
|
||||
|
||||
/// No description provided for @sortByName.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'By name'**
|
||||
String get sortByName;
|
||||
|
||||
/// No description provided for @sortByJoinTime.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'By join time'**
|
||||
String get sortByJoinTime;
|
||||
|
||||
/// No description provided for @ascending.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Ascending'**
|
||||
String get ascending;
|
||||
|
||||
/// No description provided for @descending.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Descending'**
|
||||
String get descending;
|
||||
|
||||
/// No description provided for @searchServer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Search server'**
|
||||
String get searchServer;
|
||||
|
||||
/// No description provided for @serverHistory.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Server history'**
|
||||
String get serverHistory;
|
||||
|
||||
/// No description provided for @clearHistory.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear history'**
|
||||
String get clearHistory;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -929,4 +929,28 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -920,4 +920,28 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -931,4 +931,28 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Patrocinador';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -934,4 +934,28 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Soutenir';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -920,4 +920,28 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -926,4 +926,28 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -890,4 +890,28 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => '赞助';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -889,4 +889,28 @@ class AppLocalizationsKo extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => '후원';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -927,4 +927,28 @@ class AppLocalizationsNl extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -922,4 +922,28 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Patrocinador';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -926,4 +926,28 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Спонсор';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -921,4 +921,28 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Sponsor';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -926,4 +926,28 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => 'Спонсор';
|
||||
|
||||
@override
|
||||
String get sort => 'Sort';
|
||||
|
||||
@override
|
||||
String get sortByName => 'By name';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => 'By join time';
|
||||
|
||||
@override
|
||||
String get ascending => 'Ascending';
|
||||
|
||||
@override
|
||||
String get descending => 'Descending';
|
||||
|
||||
@override
|
||||
String get searchServer => 'Search server';
|
||||
|
||||
@override
|
||||
String get serverHistory => 'Server history';
|
||||
|
||||
@override
|
||||
String get clearHistory => 'Clear history';
|
||||
}
|
||||
|
||||
@@ -868,6 +868,30 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get sponsor => '赞助';
|
||||
|
||||
@override
|
||||
String get sort => '排序';
|
||||
|
||||
@override
|
||||
String get sortByName => '按名称';
|
||||
|
||||
@override
|
||||
String get sortByJoinTime => '按加入时间';
|
||||
|
||||
@override
|
||||
String get ascending => '升序';
|
||||
|
||||
@override
|
||||
String get descending => '降序';
|
||||
|
||||
@override
|
||||
String get searchServer => '搜索服务器';
|
||||
|
||||
@override
|
||||
String get serverHistory => '服务器历史';
|
||||
|
||||
@override
|
||||
String get clearHistory => '清空历史';
|
||||
}
|
||||
|
||||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||||
|
||||
Reference in New Issue
Block a user