1 /* 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.android.test.activity; 18 19 import android.content.BroadcastReceiver; 20 import android.content.Context; 21 import android.content.Intent; 22 import android.os.SystemClock; 23 import android.util.Log; 24 25 public class SlowReceiver extends BroadcastReceiver { 26 private static final String TAG = "SlowReceiver"; 27 private static final long RECEIVER_DELAY = 6_000; 28 29 @Override onReceive(Context context, Intent intent)30 public void onReceive(Context context, Intent intent) { 31 final int extra = intent.getIntExtra(ActivityTestMain.SLOW_RECEIVER_EXTRA, -1); 32 if (extra == 1) { 33 Log.i(TAG, "Received broadcast 1; delaying return by " + RECEIVER_DELAY + " ms"); 34 long now = SystemClock.elapsedRealtime(); 35 final long end = now + RECEIVER_DELAY; 36 while (now < end) { 37 try { 38 Thread.sleep(end - now); 39 } catch (InterruptedException e) { } 40 now = SystemClock.elapsedRealtime(); 41 } 42 } else { 43 Log.i(TAG, "Extra parameter not 1, returning immediately"); 44 } 45 Log.i(TAG, "Returning from onReceive()"); 46 } 47 } 48