1182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski/* 2182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Copyright (C) 2013 The Android Open Source Project 3182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * 4182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * you may not use this file except in compliance with the License. 6182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * You may obtain a copy of the License at 7182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * 8182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * 10182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Unless required by applicable law or agreed to in writing, software 11182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * See the License for the specific language governing permissions and 14182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * limitations under the License. 15182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski */ 16182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 17182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinskipackage com.android.server.twilight; 18182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 19182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinskiimport java.text.DateFormat; 20182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinskiimport java.util.Date; 21182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 22182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski/** 23182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Describes whether it is day or night. 24182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * This object is immutable. 25182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski */ 26182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinskipublic class TwilightState { 27182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski private final boolean mIsNight; 285dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk private final float mAmount; 29182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 305dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk TwilightState(boolean isNight, float amount) { 31182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski mIsNight = isNight; 325dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk mAmount = amount; 33182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 34182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 35182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski /** 36182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski * Returns true if it is currently night time. 37182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski */ 38182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski public boolean isNight() { 39182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski return mIsNight; 40182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 41182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 42182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski /** 435dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk * For twilight affects that change gradually over time, this is the amount they 445dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk * should currently be in effect. 45182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski */ 465dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk public float getAmount() { 475dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk return mAmount; 48182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 49182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 50182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski @Override 51182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski public boolean equals(Object o) { 52182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski return o instanceof TwilightState && equals((TwilightState)o); 53182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 54182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 55182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski public boolean equals(TwilightState other) { 56182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski return other != null 57182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski && mIsNight == other.mIsNight 585dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk && mAmount == other.mAmount; 59182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 60182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 61182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski @Override 62182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski public int hashCode() { 63182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski return 0; // don't care 64182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 65182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski 66182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski @Override 67182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski public String toString() { 68182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski DateFormat f = DateFormat.getDateTimeInstance(); 69182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski return "{TwilightState: isNight=" + mIsNight 705dbd4aad809e6fec51df62280bcc1bfe05cc7df5Jason Monk + ", mAmount=" + mAmount 71182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski + "}"; 72182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski } 73182f73fc4da13a6417e5086ec9ecce80eb8423caAdam Lesinski} 74