diff --git a/android/gradle.properties b/android/gradle.properties index 6c1d873456149a8611e43a05ae56e4f50c73274f..24add27a90a4accaf6a1ee28ec651d0d6bda4f8e 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.19 -app.versionCode=19 +app.versionName=0.0.20 +app.versionCode=20 diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart index 4632c96fe9d929597b9ed51ab71c1ce2b59e4115..f8911de01c6e76945db1529dfe8926c8fd6bf738 100644 --- a/lib/entities/cell.dart +++ b/lib/entities/cell.dart @@ -35,7 +35,7 @@ class Cell { ), onTap: () { if (col != null && row != null) { - if (!this.isFixed && (col != myProvider.currentCellCol || row != myProvider.currentCellRow)) { + if (col != myProvider.currentCellCol || row != myProvider.currentCellRow) { myProvider.selectCell(col, row); } else { myProvider.selectCell(null, null); @@ -51,6 +51,8 @@ class Cell { Color editableCellColorConflict = Colors.pink[100]; Color fixedCellColor = Colors.grey[300]; Color fixedCellColorConflict = Colors.pink[200]; + Color editableSelectedValueColor = Colors.green[100]; + Color fixedSelectedValueColor = Colors.green[300]; Color backgroundColor = editableCellColor; @@ -66,6 +68,14 @@ class Cell { } } + if (myProvider.showConflicts && (this.value == myProvider.currentCellValue)) { + if (this.isFixed) { + backgroundColor = fixedSelectedValueColor; + } else { + backgroundColor = editableSelectedValueColor; + } + } + return backgroundColor; } diff --git a/lib/layout/game.dart b/lib/layout/game.dart index 6b09b41129a308d7fcb666bdb6a921479a19b669..60f7727392b1ecdc5b71a0e68fde416f5a931b1b 100644 --- a/lib/layout/game.dart +++ b/lib/layout/game.dart @@ -30,6 +30,7 @@ class Game { Color borderColor = Colors.blue; bool isCellSelected = (myProvider.currentCellCol != null && myProvider.currentCellRow != null); + bool isUpdatableCellSelected = isCellSelected ? !myProvider.cells[myProvider.currentCellRow][myProvider.currentCellCol].isFixed : false; int maxValue = myProvider.blockSizeHorizontal * myProvider.blockSizeVertical; return Container( @@ -45,7 +46,7 @@ class Game { Column( children: [ Cell( - isCellSelected ? value : 0, + isUpdatableCellSelected ? value : 0, false ).widgetUpdateValue(myProvider) ] diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 0225b29c001a8cc7671f8ef7ba95b0a9bf6a29e1..a4adb6f36ac3ad741afe9b014aad96b8def0f7e6 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -24,6 +24,7 @@ class Data extends ChangeNotifier { List _cells = []; int _currentCellCol = null; int _currentCellRow = null; + int _currentCellValue = null; String get level => _level; set updateLevel(String level) { @@ -104,9 +105,21 @@ class Data extends ChangeNotifier { notifyListeners(); } + int get currentCellValue => _currentCellValue; + set updateCurrentCellValue(int currentCellValue) { + _currentCellValue = currentCellValue; + notifyListeners(); + } + selectCell(int col, int row) { _currentCellCol = col; _currentCellRow = row; + _currentCellValue = null; + if (row != null && col != null) { + if (_cells[row][col].value != 0) { + _currentCellValue = _cells[row][col].value; + } + } notifyListeners(); }