summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilal Alsharifi <bilal.alsharifi@gmail.com>2021-08-13 14:58:53 -0400
committerBilal Alsharifi <bilal.alsharifi@gmail.com>2021-08-13 14:58:53 -0400
commit372076351ac693712270ccf6e8e1d009714c7b57 (patch)
tree73440b6f728f386a1229694a705d3f1c9e67fa8c
parent7a3557996fad3426173318471a1de6813cdee38e (diff)
downloadsdl_android-372076351ac693712270ccf6e8e1d009714c7b57.tar.gz
Transfer listeners from new kepts cells to old kep cells
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java5
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java13
2 files changed, 14 insertions, 4 deletions
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
index 26e2f2816..4cc00e518 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
@@ -169,10 +169,7 @@ abstract class BaseMenuManager extends BaseSubManager {
return;
}
- if (cells.equals(this.menuCells)) {
- DebugTool.logError(TAG, "The set menu cells are identical to previously set menu cells. Skipping...");
- return;
- } else if (!menuCellsAreUnique(cells, new ArrayList<String>())) {
+ if (!menuCellsAreUnique(cells, new ArrayList<String>())) {
DebugTool.logError(TAG, "Not all set menu cells are unique, but that is required");
return;
}
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java
index 0a1f92e03..121bf70f7 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java
@@ -131,6 +131,8 @@ class MenuReplaceOperation extends Task {
// We will transfer the ids for subCells later
transferCellIDsFromOldCells(oldKeeps, newKeeps);
+ transferListenersFromNewCells(newKeeps, oldKeeps);
+
// Upload the Artworks, then we will start updating the main menu
uploadMenuArtworks(new CompletionListener() {
@Override
@@ -253,6 +255,8 @@ class MenuReplaceOperation extends Task {
transferCellIDsFromOldCells(oldKeeps, newKeeps);
+ transferListenersFromNewCells(newKeeps, oldKeeps);
+
sendDeleteCurrentMenu(cellsToDelete, new CompletionListener() {
@Override
public void onComplete(boolean success) {
@@ -406,6 +410,15 @@ class MenuReplaceOperation extends Task {
}
}
+ private void transferListenersFromNewCells(List<MenuCell> newCells, List<MenuCell> oldCells) {
+ if (oldCells == null || oldCells.isEmpty()) {
+ return;
+ }
+ for (int i = 0; i < newCells.size(); i++) {
+ oldCells.get(i).setMenuSelectionListener(newCells.get(i).getMenuSelectionListener());
+ }
+ }
+
private String convertErrorsMapToString(Map<RPCRequest, String> errors) {
if (errors == null) {
return null;