summaryrefslogtreecommitdiffstats
path: root/healthd/healthd_draw.h
diff options
context:
space:
mode:
authorLuke Song <songwalker@google.com>2017-07-13 15:10:35 -0700
committerLuke Song <songwalker@google.com>2017-07-19 22:46:54 +0000
commit1d540dd0f44c1c7d40878f6a7bb447e85e6207ad (patch)
tree3ca4ac0f5adece8b82b03e531e874b8106a7b989 /healthd/healthd_draw.h
parentd4f4a3fcf9bd63d8ba555b62944576045cb02bfc (diff)
downloadsystem_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.tar.gz
system_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.tar.bz2
system_core-1d540dd0f44c1c7d40878f6a7bb447e85e6207ad.zip
healthd: restructure healthd_mode_charger
Refactor drawing code into separate class, and allow for split screen drawing with offset. Cherry picked from commit 7f386dcab98b4a2827b5ffe29d7d3de7637841c0 Bug: 63541890 Test: Verify charging mode animation Change-Id: I6c089460f55b8c2f75f4aa3153a5736f6f434b51
Diffstat (limited to 'healthd/healthd_draw.h')
-rw-r--r--healthd/healthd_draw.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/healthd/healthd_draw.h b/healthd/healthd_draw.h
new file mode 100644
index 000000000..6a6ba7655
--- /dev/null
+++ b/healthd/healthd_draw.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HEALTHD_DRAW_H
+#define HEALTHD_DRAW_H
+
+#include <linux/input.h>
+#include <minui/minui.h>
+
+#include "animation.h"
+
+using namespace android;
+
+class HealthdDraw {
+ public:
+ // Configures font using given animation.
+ HealthdDraw(animation* anim);
+ virtual ~HealthdDraw();
+
+ // Redraws screen.
+ void redraw_screen(const animation* batt_anim, GRSurface* surf_unknown);
+
+ // Blanks screen if true, unblanks if false.
+ virtual void blank_screen(bool blank);
+
+ protected:
+ virtual void clear_screen();
+
+ // returns the last y-offset of where the surface ends.
+ virtual int draw_surface_centered(GRSurface* surface);
+ // Negative x or y coordinates center text.
+ virtual int draw_text(const GRFont* font, int x, int y, const char* str);
+
+ // Negative x or y coordinates position the text away from the opposite edge
+ // that positive ones do.
+ virtual void determine_xy(const animation::text_field& field,
+ const int length, int* x, int* y);
+
+ // Draws battery animation, if it exists.
+ virtual void draw_battery(const animation* anim);
+ // Draws clock text, if animation contains text_field data.
+ virtual void draw_clock(const animation* anim);
+ // Draws battery percentage text if animation contains text_field data.
+ virtual void draw_percent(const animation* anim);
+ // Draws charger->surf_unknown or basic text.
+ virtual void draw_unknown(GRSurface* surf_unknown);
+
+ // Pixel sizes of characters for default font.
+ int char_width_;
+ int char_height_;
+
+ // Width and height of screen in pixels.
+ int screen_width_;
+ int screen_height_;
+
+ // Device screen is split vertically.
+ const bool kSplitScreen;
+ // Pixels to offset graphics towards center split.
+ const int kSplitOffset;
+};
+
+#endif // HEALTHD_DRAW_H