/** * Copyright (c) 2012-2013 Nokia Corporation. All rights reserved. * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. * Oracle and Java are trademarks or registered trademarks of Oracle and/or its * affiliates. Other product and company names mentioned herein may be trademarks * or trade names of their respective owners. * See LICENSE.TXT for license information. */ package com.nokia.example.weatherapp.resources; import javax.microedition.lcdui.Font; /** * Singleton class containing visual theme of the application */ public class Visual { // Modes public static final int DAY_MODE = 0; public static final int NIGHT_MODE = 1; //Colors public final int COLOR_BACKGROUND; public final int COLOR_PRIMARY_TEXT; public final int COLOR_SECONDARY_TEXT; public final int COLOR_TERTIARY_TEXT; public final int COLOR_ERROR_TEXT; public final int COLOR_MESSAGE_TEXT; public final int COLOR_HEADER_TEXT; //Fonts public final Font FONT_SMALL = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); public final Font FONT_SMALL_BOLD = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL); public final Font FONT_MEDIUM = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM); public final Font FONT_MEDIUM_BOLD = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM); public final Font FONT_LARGE = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE); public final Font FONT_LARGE_BOLD = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE); //Other public final int HEIGHT_HEADER = (int) (FONT_MEDIUM_BOLD.getHeight() * 1.4); protected static Visual self = null; protected static int currentMode = DAY_MODE; private Visual() { // Common for both modes COLOR_ERROR_TEXT = 0xff3300; COLOR_MESSAGE_TEXT = 0x888888; if (currentMode == DAY_MODE) { COLOR_BACKGROUND = 0x45a4e7; COLOR_PRIMARY_TEXT = 0x333333; COLOR_SECONDARY_TEXT = 0x555555; COLOR_TERTIARY_TEXT = 0x888888; COLOR_HEADER_TEXT = 0x333333; } else { COLOR_BACKGROUND = 0x00002f; COLOR_PRIMARY_TEXT = 0xffffff; COLOR_SECONDARY_TEXT = 0x888888; COLOR_TERTIARY_TEXT = 0x444444; COLOR_HEADER_TEXT = 0xffffff; } } /** * Returns and/or instantiates a new Visual instance according to current mode * @return Visual theme */ public static Visual getInstance() { if (self == null) { self = new Visual(); } return self; } /** * Returns and/or instantiates a new Visual instance with specified mode * @return Visual theme */ public static Visual getInstance(int mode) { if (mode != currentMode) { currentMode = mode; self = new Visual(); } return self; } public int getMode() { return currentMode; } }