1 /* 2 * Copyright 2014, 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.android.server.telecom; 18 19 import android.os.Looper; 20 21 /** 22 * Helper methods to deal with threading related tasks. 23 */ 24 public final class ThreadUtil { 25 private static final String TAG = ThreadUtil.class.getSimpleName(); 26 ThreadUtil()27 private ThreadUtil() {} 28 29 /** @return whether this method is being called from the main (UI) thread. */ isOnMainThread()30 public static boolean isOnMainThread() { 31 return Looper.getMainLooper() == Looper.myLooper(); 32 } 33 34 /** 35 * Checks that this is being executed on the main thread. If not, a message is logged at 36 * WTF-level priority. 37 */ checkOnMainThread()38 public static void checkOnMainThread() { 39 if (!isOnMainThread()) { 40 Log.wtf(TAG, new IllegalStateException(), "Must be on the main thread!"); 41 } 42 } 43 44 /** 45 * Checks that this is not being executed on the main thread. If so, a message is logged at 46 * WTF-level priority. 47 */ checkNotOnMainThread()48 public static void checkNotOnMainThread() { 49 if (isOnMainThread()) { 50 Log.wtf(TAG, new IllegalStateException(), "Must not be on the main thread!"); 51 } 52 } 53 } 54