1dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki/* 2dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * Copyright (C) 2012 The Android Open Source Project 3dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * 4dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 5dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * you may not use this file except in compliance with the License. 6dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * You may obtain a copy of the License at 7dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * 8dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 9dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * 10dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * Unless required by applicable law or agreed to in writing, software 11dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 12dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * See the License for the specific language governing permissions and 14dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki * limitations under the License 15dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki */ 16dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 17dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onukipackage com.android.providers.contacts.util; 18dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 19dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onukipublic class MockClock extends Clock { 20dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki /** Current time. Only updated with advance(). */ 2163630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki private long mCurrentTimeMillis; 22dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 23dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki public void install() { 24dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki Clock.injectInstance(this); 25dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 2663630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki mCurrentTimeMillis = 100000; 27dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki } 28dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 29dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki public void uninstall() { 30dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki Clock.resetInstance(); 31dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki } 32dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 33dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki @Override 34dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki public long currentTimeMillis() { 3563630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki return mCurrentTimeMillis; 3663630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki } 3763630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki 3863630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki public void setCurrentTimeMillis(long time) { 3963630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki mCurrentTimeMillis = time; 40dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki } 41dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki 42dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki public void advance() { 4363630bc7f962fd2b6f2c1bc41cbed45a8bc354baMakoto Onuki mCurrentTimeMillis++; 44dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki } 45dfab50ecd585e55769dea451cb3a47ff69b8b86dMakoto Onuki} 46