/* * Copyright (C) 2015 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. */ package com.android.deskclock.timer; import android.content.Context; import android.net.Uri; import com.android.deskclock.AsyncRingtonePlayer; import com.android.deskclock.LogUtils; import com.android.deskclock.data.DataModel; import com.android.deskclock.settings.SettingsActivity; public abstract class TimerKlaxon { private static boolean sStarted = false; private static AsyncRingtonePlayer sAsyncRingtonePlayer; private TimerKlaxon() { } public static void stop(Context context) { if (sStarted) { LogUtils.i("TimerKlaxon.stop()"); sStarted = false; getAsyncRingtonePlayer(context).stop(); } } public static void start(Context context) { // Make sure we are stopped before starting stop(context); LogUtils.i("TimerKlaxon.start()"); // Look up user-selected timer ringtone. if (DataModel.getDataModel().isTimerRingtoneSilent()) { // Special case: Silent ringtone LogUtils.i("Playing silent ringtone for timer"); } else { final Uri uri = DataModel.getDataModel().getTimerRingtoneUri(); getAsyncRingtonePlayer(context).play(uri); } sStarted = true; } private static synchronized AsyncRingtonePlayer getAsyncRingtonePlayer(Context context) { if (sAsyncRingtonePlayer == null) { sAsyncRingtonePlayer = new AsyncRingtonePlayer(context.getApplicationContext(), SettingsActivity.KEY_TIMER_CRESCENDO); } return sAsyncRingtonePlayer; } }