Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 498cda6e authored by Elliott Hughes's avatar Elliott Hughes
Browse files

Update the system update animation.

Switch to a Wear-like intro/loop system. We don't have an intro yet,
but hopefully this will let Wear delete more code when they move to N.
Unlike them, we don't hard-code the number of frames: we just look to
see what we have available. We do hard-code the fps though.

Also add a graphics test mode so you can see a demo of the UI components
without having to actually apply an OTA.

Also fix a bug where default locale is null rather than en-US: it's
more useful to show _some_ text if we don't have a locale (which should
only be during development anyway).

Bug: http://b/26548285
Change-Id: I63422e3fef3c41109f924d96fb5ded0b3ae7815d
parent 8febafa6
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ static const char* MENU_ITEMS[] = {
    "Wipe cache partition",
    "Mount /system",
    "View recovery logs",
    "Run graphics test",
    "Power off",
    NULL
};
@@ -43,7 +44,8 @@ Device::BuiltinAction Device::InvokeMenuItem(int menu_position) {
    case 5: return WIPE_CACHE;
    case 6: return MOUNT_SYSTEM;
    case 7: return VIEW_RECOVERY_LOGS;
    case 8: return SHUTDOWN;
    case 8: return RUN_GRAPHICS_TEST;
    case 9: return SHUTDOWN;
    default: return NO_ACTION;
  }
}
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ class Device {
        SHUTDOWN = 8,
        VIEW_RECOVERY_LOGS = 9,
        MOUNT_SYSTEM = 10,
        RUN_GRAPHICS_TEST = 11,
    };

    // Return the list of menu items (an array of strings,
+0 −2
Original line number Diff line number Diff line
@@ -32,8 +32,6 @@

#include "minui.h"

extern char* locale;

#define SURFACE_DATA_ALIGNMENT 8

static GRSurface* malloc_surface(size_t data_size) {
+36 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ static const int BATTERY_OK_PERCENTAGE = 20;
static const int BATTERY_WITH_CHARGER_OK_PERCENTAGE = 15;

RecoveryUI* ui = NULL;
char* locale = NULL;
static const char* locale = "en_US";
char* stage = NULL;
char* reason = NULL;
bool modified_flash = false;
@@ -910,6 +910,37 @@ static void choose_recovery_file(Device* device) {
    }
}

static void run_graphics_test(Device* device) {
    // Switch to graphics screen.
    ui->ShowText(false);

    ui->SetProgressType(RecoveryUI::INDETERMINATE);
    ui->SetBackground(RecoveryUI::INSTALLING_UPDATE);
    sleep(1);

    ui->SetBackground(RecoveryUI::ERROR);
    sleep(1);

    ui->SetBackground(RecoveryUI::NO_COMMAND);
    sleep(1);

    ui->SetBackground(RecoveryUI::ERASING);
    sleep(1);

    ui->SetBackground(RecoveryUI::INSTALLING_UPDATE);

    ui->SetProgressType(RecoveryUI::DETERMINATE);
    ui->ShowProgress(1.0, 10.0);
    float fraction = 0.0;
    for (size_t i = 0; i < 100; ++i) {
      fraction += .01;
      ui->SetProgress(fraction);
      usleep(100000);
    }

    ui->ShowText(true);
}

// How long (in seconds) we wait for the fuse-provided package file to
// appear, before timing out.
#define SDCARD_INSTALL_TIMEOUT 10
@@ -1068,6 +1099,10 @@ prompt_and_wait(Device* device, int status) {
                choose_recovery_file(device);
                break;

            case Device::RUN_GRAPHICS_TEST:
                run_graphics_test(device);
                break;

            case Device::MOUNT_SYSTEM:
                char system_root_image[PROPERTY_VALUE_MAX];
                property_get("ro.build.system_root_image", system_root_image, "");
−127 KiB
Loading image diff...
Loading