wear_ui: Expose menu_unusable_rows via Makefile var.

This variable is useful on small screens (e.g. on watches) to handle
long menus. We should have better way to handle this value smartly.
Prior to that, expose the value to be overridable by using the generic
wearable UI module (librecovery_ui_wear).

Bug: 64307776
Test: Define the variable, build and boot into recovery image and check
      the UI menu.
Change-Id: I5d7a6baa8bb4cc852bfcc2a7b3cc9686c1c8817e
diff --git a/Android.mk b/Android.mk
index b1ee244..776e6ea 100644
--- a/Android.mk
+++ b/Android.mk
@@ -131,6 +131,12 @@
 LOCAL_CFLAGS += -DRECOVERY_UI_ANIMATION_FPS=30
 endif
 
+ifneq ($(TARGET_RECOVERY_UI_MENU_UNUSABLE_ROWS),)
+LOCAL_CFLAGS += -DRECOVERY_UI_MENU_UNUSABLE_ROWS=$(TARGET_RECOVERY_UI_MENU_UNUSABLE_ROWS)
+else
+LOCAL_CFLAGS += -DRECOVERY_UI_MENU_UNUSABLE_ROWS=9
+endif
+
 ifneq ($(TARGET_RECOVERY_UI_VR_STEREO_OFFSET),)
 LOCAL_CFLAGS += -DRECOVERY_UI_VR_STEREO_OFFSET=$(TARGET_RECOVERY_UI_VR_STEREO_OFFSET)
 else
diff --git a/wear_ui.cpp b/wear_ui.cpp
index b8801a0..169ef20 100644
--- a/wear_ui.cpp
+++ b/wear_ui.cpp
@@ -51,8 +51,9 @@
 }
 
 WearRecoveryUI::WearRecoveryUI()
-    : kProgressBarBaseline(RECOVERY_UI_PROGRESS_BAR_BASELINE), menu_unusable_rows(9) {
-  // TODO: menu_unusable_rows should be computed based on the lines in draw_screen_locked().
+    : kProgressBarBaseline(RECOVERY_UI_PROGRESS_BAR_BASELINE),
+      kMenuUnusableRows(RECOVERY_UI_MENU_UNUSABLE_ROWS) {
+  // TODO: kMenuUnusableRows should be computed based on the lines in draw_screen_locked().
 
   // TODO: The following three variables are likely not needed. The first two are detected
   // automatically in ScreenRecoveryUI::LoadAnimation(), based on the actual files seen on device.
@@ -268,7 +269,7 @@
     show_menu = true;
     menu_sel = initial_selection;
     menu_start = 0;
-    menu_end = visible_text_rows - 1 - menu_unusable_rows;
+    menu_end = visible_text_rows - 1 - kMenuUnusableRows;
     if (menu_items <= menu_end) menu_end = menu_items;
     update_screen_locked();
   }
diff --git a/wear_ui.h b/wear_ui.h
index c2bbdb6..3bd90b6 100644
--- a/wear_ui.h
+++ b/wear_ui.h
@@ -46,7 +46,7 @@
 
   // Unusable rows when displaying the recovery menu, including the lines for headers (Android
   // Recovery, build id and etc) and the bottom lines that may otherwise go out of the screen.
-  int menu_unusable_rows;
+  const int kMenuUnusableRows;
 
   int GetProgressBaseline() const override;