Skip to content

Commit

Permalink
v1.1.3.0
Browse files Browse the repository at this point in the history
+added negative and positive button to temperature screen keypad
+added back note search
+- bug fixes with age and date difference calculators
+ added txt import to note edit screen
and more
  • Loading branch information
mamiyaso authored Jul 23, 2024
1 parent 11399fc commit 84e4ea4
Show file tree
Hide file tree
Showing 13 changed files with 680 additions and 388 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ Note Engineer, Flutter ile geliştirilmiş ve Supabase ile desteklenen, kullanı
- **Not Oluşturma ve Düzenleme:** Düşüncelerinizi, fikirlerinizi veya yapılacaklar listelerinizi hızlıca yazın. Metninizi kolayca biçimlendirin ve başlıklar ekleyin.
- **Matematiksel Hesaplamalar:** Notlarınızın içinden karmaşık matematiksel hesaplamalar yapın. Çeşitli matematiksel semboller, fonksiyonlar ve operatörler kullanın.
- **Favoriler:** Önemli notlarınızı kolayca erişim için yıldızlayın.
- **Düzenleme ve Arama:** Notlarınızı anahtar kelimeler veya ifadeler kullanarak arayın.
- **Çöp Kutusu:** Yanlışlıkla not mu sildiniz? Endişelenmeyin! Çöp kutusundan kurtarın.
- **Metin Dosyasına Kaydetme:** Notlarınızı paylaşmak veya yedeklemek için düz metin dosyasına aktarın.
- **Metin Dosyasına Kaydetme ve Metin Dosyasını içe Aktarma :** Notlarınızı paylaşmak veya yedeklemek için düz metin dosyasına aktarın veya txt dosyalarını açıp düzenleyin.
- **Güvenli ve Senkronize Edilmiş:** Notlarınız, verilerinizin güvenli ve her cihazdan erişilebilir olmasını sağlayan Supabase'de güvenli bir şekilde saklanır.
- **Tema Seçenekleri:** Açık tema, koyu tema veya kendi özel temanızı seçin. Vurgu rengi, arkaplan rengi ve metin rengini özelleştirin.
- **Kategorilenmiş Hesap Makineleri:** Hesap makinelerine kolayca erişin ve farklı kategoriler (Tarih & Zaman, Dönüşümler, Matematik) arasında gezinin.
Expand Down
19 changes: 14 additions & 5 deletions assets/translations/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
"title": "Age Calculator",
"selectBirthDate": "Select Birth Date",
"selectCurrentDate": "Select Current Date",
"agePrefix": "Age: {age}",
"age": "{0} years, {1} months, {2} days old"
"agePrefix": "Age:",
"years": "years",
"months": "months",
"days": "days",
"selectBothDates": "Please select both birth date and current date"
},

"areaConverter":
Expand Down Expand Up @@ -61,8 +64,9 @@
"title": "Date Difference Calculator",
"selectStartDate": "Select Start Date",
"selectEndDate": "Select End Date",
"differencePrefix": "Difference: {difference}",
"difference": "{0} days"
"differencePrefix": "Difference:",
"differenceSuffix": "days",
"selectBothDates": "Please select both dates"
},

"deletedNotesScreen":
Expand Down Expand Up @@ -165,7 +169,12 @@
"enterMathExpression": "Enter mathematical expression here...",
"invalidMathExpression": "Invalid mathematical expression!",
"noteSaved": "Note saved as {filename}",
"errorSavingFile": "An error occurred while saving the file: {error}"
"errorSavingFile": "An error occurred while saving the file: {error}",
"addFromDevice": "Add from Device",
"warningTitle": "Warning",
"warningContent": "Current note has content. What would you like to do?",
"overwrite": "Overwrite",
"createNew": "Create New Note"
},

"numeralSystemConverter":
Expand Down
19 changes: 14 additions & 5 deletions assets/translations/tr-TR.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
"title": "Yaş Hesaplama",
"selectBirthDate": "Doğum Tarihini Seç",
"selectCurrentDate": "Güncel Tarihi Seç",
"agePrefix": "Yaş: {age}",
"age": "{0} yıl, {1} ay, {2} gün"
"agePrefix": "Yaş:",
"years": "yıl",
"months": "ay",
"days": "gün",
"selectBothDates": "Lütfen doğum tarihi ve güncel tarihi seçin"
},

"areaConverter":
Expand Down Expand Up @@ -62,8 +65,9 @@
"title": "Tarih Farkı Hesaplama",
"selectStartDate": "Başlangıç Tarihini Seç",
"selectEndDate": "Bitiş Tarihini Seç",
"differencePrefix": "Fark: {difference}",
"difference": "{0} gün"
"differencePrefix": "Fark:",
"differenceSuffix": "gün",
"selectBothDates": "Lütfen iki tarih seçin"
},

"deletedNotesScreen":
Expand Down Expand Up @@ -166,7 +170,12 @@
"enterMathExpression": "Matematiksel ifadeyi buraya girin...",
"invalidMathExpression": "Geçersiz matematiksel ifade!",
"noteSaved": "Notunuz {filename} olarak kaydedildi",
"errorSavingFile": "Dosya kaydedilirken hata oluştu: {error}"
"errorSavingFile": "Dosya kaydedilirken hata oluştu: {error}",
"addFromDevice": "Cihazdan Ekle",
"warningTitle": "Uyarı",
"warningContent": "Mevcut notun içeriği var. Ne yapmak istersiniz?",
"overwrite": "Üzerine Yaz",
"createNew": "Yeni Not Oluştur"
},

"numeralSystemConverter":
Expand Down
74 changes: 74 additions & 0 deletions lib/components/converter_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ class ConverterScreenState extends State<ConverterScreen> {

final FocusNode _inputFocusNode = FocusNode();
final FocusNode _outputFocusNode = FocusNode();
bool _isPositive = true;


@override
void initState() {
Expand Down Expand Up @@ -116,6 +118,17 @@ class ConverterScreenState extends State<ConverterScreen> {
}
}

void _toggleSign() {
setState(() {
_isPositive = !_isPositive;
if (_inputController.text.isNotEmpty) {
double value = double.parse(_inputController.text);
_inputController.text = (_isPositive ? value.abs() : -value.abs()).toString();
}
_updateConversion();
});
}

void _onKeyPressed(String value) {
setState(() {
if (_isInputActive) {
Expand Down Expand Up @@ -280,6 +293,67 @@ class ConverterScreenState extends State<ConverterScreen> {
),
),
);
} else if (widget.title == 'temperatureConverter.title'.tr()) {
return Scaffold(
backgroundColor: themeProvider.backgroundColor,
appBar: AppBar(
title: Text(widget.title, style: TextStyle(color: themeProvider.textColor)),
backgroundColor: themeProvider.accentColor,
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
// Input Row
Row(
children: [
_buildButton(widget.initialInputUnit,
onPressed: () => _showUnitPicker(true), flex: 0.5),
const SizedBox(width: 10),
Expanded(
child: TextField(
controller: _inputController,
style: TextStyle(fontSize: 24, color: themeProvider.textColor),
textAlign: TextAlign.right,
readOnly: true,
decoration: InputDecoration(
prefixText: _isPositive ? '' : '-',
prefixStyle: TextStyle(fontSize: 24, color: themeProvider.textColor),
),
),
),
],
),
const SizedBox(height: 20),
// Output Row
Row(
children: [
_buildButton(widget.initialOutputUnit,
onPressed: () => _showUnitPicker(false), flex: 0.5),
const SizedBox(width: 10),
Expanded(
child: TextField(
controller: _outputController,
style: TextStyle(fontSize: 24, color: themeProvider.textColor),
textAlign: TextAlign.right,
readOnly: true,
),
),
],
),
const SizedBox(height: 20),
Expanded(
child: TemperatureKeyPad(
onKeyPressed: _onKeyPressed,
onDeletePressed: _onDeletePressed,
onToggleSign: _toggleSign,
),
),
],
),
),
);
} else {
return Scaffold(
backgroundColor: themeProvider.backgroundColor,
Expand Down
115 changes: 113 additions & 2 deletions lib/components/keypad.dart
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ class KeyPad extends StatelessWidget {
),
onPressed: () => onDeletePressed(context),
child: Icon(Icons.backspace_outlined,
color: themeProvider.accentColor),
color: themeProvider.accentColor
),
),
),
),
Expand Down Expand Up @@ -174,7 +175,8 @@ class HexKeyPad extends StatelessWidget {
),
onPressed: () => onDeletePressed(context),
child: Icon(Icons.backspace_outlined,
color: themeProvider.accentColor),
color: themeProvider.accentColor
),
),
),
),
Expand Down Expand Up @@ -300,3 +302,112 @@ class HexKeyPad extends StatelessWidget {
);
}
}

class TemperatureKeyPad extends StatelessWidget {
final Function(String) onKeyPressed;
final Function(BuildContext) onDeletePressed;
final Function() onToggleSign;

const TemperatureKeyPad({
Key? key,
required this.onKeyPressed,
required this.onDeletePressed,
required this.onToggleSign,
}) : super(key: key);

@override
Widget build(BuildContext context) {
final themeProvider = Provider.of<ThemeProvider>(context);
return Column(
children: [
Expanded(
child: Row(
children: [
_buildButton('7', onPressed: () => onKeyPressed('7'), themeProvider: themeProvider),
_buildButton('8', onPressed: () => onKeyPressed('8'), themeProvider: themeProvider),
_buildButton('9', onPressed: () => onKeyPressed('9'), themeProvider: themeProvider),
_buildButton('+/-', onPressed: onToggleSign, themeProvider: themeProvider),
],
),
),
Expanded(
child: Row(
children: [
_buildButton('4', onPressed: () => onKeyPressed('4'), themeProvider: themeProvider),
_buildButton('5', onPressed: () => onKeyPressed('5'), themeProvider: themeProvider),
_buildButton('6', onPressed: () => onKeyPressed('6'), themeProvider: themeProvider),
Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: themeProvider.textColor,
backgroundColor: themeProvider.backgroundColor,
padding: const EdgeInsets.symmetric(vertical: 24),
),
onPressed: () => onDeletePressed(context),
child: Icon(Icons.backspace_outlined, color: themeProvider.accentColor),
),
),
),
],
),
),
Expanded(
child: Row(
children: [
_buildButton('1', onPressed: () => onKeyPressed('1'), themeProvider: themeProvider),
_buildButton('2', onPressed: () => onKeyPressed('2'), themeProvider: themeProvider),
_buildButton('3', onPressed: () => onKeyPressed('3'), themeProvider: themeProvider),
_buildButton('.', onPressed: () => onKeyPressed('.'), themeProvider: themeProvider),
],
),
),
Expanded(
child: Row(
children: [
_buildEmptyButton(themeProvider),
_buildButton('0', onPressed: () => onKeyPressed('0'), themeProvider: themeProvider),
_buildEmptyButton(themeProvider),
_buildEmptyButton(themeProvider),
],
),
),
],
);
}

Widget _buildButton(String text, {required Function() onPressed, required ThemeProvider themeProvider}) {
return Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: themeProvider.textColor,
backgroundColor: themeProvider.backgroundColor,
padding: const EdgeInsets.symmetric(vertical: 24),
),
onPressed: onPressed,
child: Text(
text,
style: TextStyle(
fontSize: 24,
color: themeProvider.accentColor,
),
),
),
),
);
}

Widget _buildEmptyButton(ThemeProvider themeProvider) {
return Expanded(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Container(
color: themeProvider.backgroundColor,
),
),
);
}
}
Loading

0 comments on commit 84e4ea4

Please sign in to comment.