package com.baidu.idl.face.platform.ui.utils; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; public class HomeUtils { private static final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; private static final String SYSTEM_DIALOG_REASON_KEY = "reason"; private static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; public static final String TAG = "HomeUtils"; public interface HomeCallback { void onClickHomeKey(); } public static class HomeReceiver extends BroadcastReceiver { private HomeCallback callback; public HomeReceiver(HomeCallback homeCallback) { this.callback = homeCallback; } public void onReceive(Context context, Intent intent) { String stringExtra; if ("android.intent.action.CLOSE_SYSTEM_DIALOGS".equals(intent.getAction()) && (stringExtra = intent.getStringExtra(HomeUtils.SYSTEM_DIALOG_REASON_KEY)) != null) { if (HomeUtils.SYSTEM_DIALOG_REASON_HOME_KEY.equals(stringExtra) || HomeUtils.SYSTEM_DIALOG_REASON_RECENT_APPS.equals(stringExtra)) { this.callback.onClickHomeKey(); } } } } public static BroadcastReceiver registerHomeReceiver(Context context, HomeCallback homeCallback) { IllegalArgumentException e; Exception e2; HomeReceiver homeReceiver = null; try { HomeReceiver homeReceiver2 = new HomeReceiver(homeCallback); try { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.CLOSE_SYSTEM_DIALOGS"); context.registerReceiver(homeReceiver2, intentFilter); return homeReceiver2; } catch (IllegalArgumentException e3) { e = e3; homeReceiver = homeReceiver2; } catch (Exception e4) { e2 = e4; homeReceiver = homeReceiver2; e2.printStackTrace(); return homeReceiver; } } catch (IllegalArgumentException e5) { e = e5; e.printStackTrace(); return homeReceiver; } catch (Exception e6) { e2 = e6; e2.printStackTrace(); return homeReceiver; } } public static void unRegisterHomeReceiver(Context context, BroadcastReceiver broadcastReceiver) { if (context != null && broadcastReceiver != null) { try { context.unregisterReceiver(broadcastReceiver); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Exception e2) { e2.printStackTrace(); } } } }