- Created CMakeLists.txt for Flutter and runner components. - Implemented resource script (Runner.rc) for application metadata. - Developed main entry point (main.cpp) for the Windows application. - Added FlutterWindow class to manage the Flutter view within a Win32 window. - Implemented utility functions for console management and command line argument parsing. - Established Win32Window class for high DPI-aware window handling. - Included application icon and manifest for proper Windows integration. - Set up build configurations and dependencies for the Flutter application on Windows.
215 lines
4.9 KiB
Dart
215 lines
4.9 KiB
Dart
import 'dart:developer';
|
|
|
|
class MyStringUtils {
|
|
static bool isFirstCapital(String string) {
|
|
if (string.codeUnitAt(0) >= 65 && string.codeUnitAt(0) <= 90) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isFirstLetter(String string) {
|
|
if (string.codeUnitAt(0) >= 0 && string.codeUnitAt(0) <= 9) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isAlphabetIncluded(String string) {
|
|
string = string.toUpperCase();
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 65 && string.codeUnitAt(i) <= 90) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isDigitIncluded(String string) {
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 0 && string.codeUnitAt(i) <= 9) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isSpecialCharacterIncluded(String string) {
|
|
String ch = "~`!@#\$%^&*.?_";
|
|
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (ch.contains(string[i])) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isIncludedCharactersPresent(
|
|
String string, List<String>? includeCharacters) {
|
|
if (includeCharacters == null) {
|
|
return false;
|
|
}
|
|
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (includeCharacters.contains(string[i])) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool isIgnoreCharactersPresent(
|
|
String string, List<String>? ignoreCharacters) {
|
|
if (ignoreCharacters == null) {
|
|
return false;
|
|
}
|
|
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (ignoreCharacters.contains(string[i])) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool checkMaxAlphabet(String string, int maxAlphabet) {
|
|
int counter = 0;
|
|
string = string.toUpperCase();
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 65 && string.codeUnitAt(i) <= 90) {
|
|
counter++;
|
|
}
|
|
}
|
|
if (counter <= maxAlphabet) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool checkMaxDigit(String string, int maxDigit) {
|
|
int counter = 0;
|
|
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 0 && string.codeUnitAt(i) <= 9) {
|
|
counter++;
|
|
}
|
|
}
|
|
if (counter <= maxDigit) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool checkMinAlphabet(String string, int minAlphabet) {
|
|
int counter = 0;
|
|
string = string.toUpperCase();
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 65 && string.codeUnitAt(i) <= 90) {
|
|
counter++;
|
|
}
|
|
}
|
|
if (counter >= minAlphabet) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool checkMinDigit(String string, int minDigit) {
|
|
int counter = 0;
|
|
for (int i = 0; i < string.length; i++) {
|
|
if (string.codeUnitAt(i) >= 0 && string.codeUnitAt(i) <= 9) {
|
|
counter++;
|
|
}
|
|
}
|
|
if (counter >= minDigit) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static bool validateString(
|
|
String string, {
|
|
int minLength = 8,
|
|
int maxLength = 20,
|
|
bool firstCapital = false,
|
|
bool firstDigit = false,
|
|
bool includeDigit = false,
|
|
bool includeAlphabet = false,
|
|
bool includeSpecialCharacter = false,
|
|
List<String>? includeCharacters,
|
|
List<String>? ignoreCharacters,
|
|
int minAlphabet = 5,
|
|
int maxAlphabet = 20,
|
|
int minDigit = 0,
|
|
int maxDigit = 20,
|
|
}) {
|
|
if (string.length < minLength) {
|
|
return false;
|
|
}
|
|
|
|
if (string.length > maxLength) {
|
|
return false;
|
|
}
|
|
|
|
if (firstCapital && !isFirstCapital(string)) {
|
|
return false;
|
|
}
|
|
|
|
if (firstDigit && !isFirstLetter(string)) {
|
|
return false;
|
|
}
|
|
|
|
if (includeAlphabet && !isAlphabetIncluded(string)) {
|
|
return false;
|
|
}
|
|
|
|
if (includeDigit && !isDigitIncluded(string)) {
|
|
return false;
|
|
}
|
|
|
|
if (includeSpecialCharacter && !isSpecialCharacterIncluded(string)) {
|
|
return false;
|
|
}
|
|
|
|
if (!isIncludedCharactersPresent(string, includeCharacters)) {
|
|
return false;
|
|
}
|
|
|
|
if (isIgnoreCharactersPresent(string, ignoreCharacters)) {
|
|
return false;
|
|
}
|
|
|
|
if (!checkMaxAlphabet(string, maxAlphabet)) {
|
|
return false;
|
|
}
|
|
|
|
if (!checkMinAlphabet(string, minAlphabet)) {
|
|
return false;
|
|
}
|
|
|
|
if (!checkMaxDigit(string, maxAlphabet)) {
|
|
return false;
|
|
}
|
|
|
|
if (!checkMinDigit(string, minAlphabet)) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
static bool isEmail(String email) {
|
|
Pattern pattern =
|
|
r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{1,}))$';
|
|
RegExp regex = RegExp(pattern as String);
|
|
log(regex.hasMatch(email).toString());
|
|
return regex.hasMatch(email);
|
|
}
|
|
|
|
static bool validateStringRange(String text,
|
|
[int minLength = 8, int maxLength = 20]) {
|
|
return text.length >= minLength && text.length <= maxLength;
|
|
}
|
|
}
|