Search in sources :

Example 96 with HandlerThread

use of android.os.HandlerThread in project android_frameworks_base by AOSPA.

the class SettingsProvider method onCreate.

@Override
public boolean onCreate() {
    synchronized (mLock) {
        mUserManager = UserManager.get(getContext());
        mPackageManager = AppGlobals.getPackageManager();
        mHandlerThread = new HandlerThread(LOG_TAG, Process.THREAD_PRIORITY_BACKGROUND);
        mHandlerThread.start();
        mSettingsRegistry = new SettingsRegistry();
    }
    registerBroadcastReceivers();
    startWatchingUserRestrictionChanges();
    return true;
}
Also used : HandlerThread(android.os.HandlerThread)

Example 97 with HandlerThread

use of android.os.HandlerThread in project android_frameworks_base by AOSPA.

the class PhoneStatusBar method makeStatusBarView.

// ================================================================================
// Constructing the view
// ================================================================================
protected PhoneStatusBarView makeStatusBarView() {
    final Context context = mContext;
    // populates mDisplayMetrics
    updateDisplaySize();
    updateResources();
    inflateStatusBarWindow(context);
    mStatusBarWindow.setService(this);
    mStatusBarWindow.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            checkUserAutohide(v, event);
            checkRemoteInputOutside(event);
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                if (mExpandedVisible) {
                    animateCollapsePanels();
                }
            }
            return mStatusBarWindow.onTouchEvent(event);
        }
    });
    mNotificationPanel = (NotificationPanelView) mStatusBarWindow.findViewById(R.id.notification_panel);
    mNotificationPanel.setStatusBar(this);
    mNotificationPanel.setGroupManager(mGroupManager);
    mStatusBarView = (PhoneStatusBarView) mStatusBarWindow.findViewById(R.id.status_bar);
    mStatusBarView.setBar(this);
    mStatusBarView.setPanel(mNotificationPanel);
    if (!ActivityManager.isHighEndGfx()) {
        mStatusBarWindow.setBackground(null);
        mNotificationPanel.setBackground(new FastColorDrawable(context.getColor(R.color.notification_panel_solid_background)));
    }
    mHeadsUpManager = new HeadsUpManager(context, mStatusBarWindow, mGroupManager);
    mHeadsUpManager.setBar(this);
    mHeadsUpManager.addListener(this);
    mHeadsUpManager.addListener(mNotificationPanel);
    mHeadsUpManager.addListener(mGroupManager);
    mHeadsUpManager.addListener(mVisualStabilityManager);
    mNotificationPanel.setHeadsUpManager(mHeadsUpManager);
    mNotificationData.setHeadsUpManager(mHeadsUpManager);
    mGroupManager.setHeadsUpManager(mHeadsUpManager);
    mHeadsUpManager.setVisualStabilityManager(mVisualStabilityManager);
    if (MULTIUSER_DEBUG) {
        mNotificationPanelDebugText = (TextView) mNotificationPanel.findViewById(R.id.header_debug_info);
        mNotificationPanelDebugText.setVisibility(View.VISIBLE);
    }
    mBurnInProtectionController = new BurnInProtectionController(mContext, mStatusBarView);
    try {
        boolean showNav = mWindowManagerService.hasNavigationBar();
        if (DEBUG)
            Log.v(TAG, "hasNavigationBar=" + showNav);
        if (showNav) {
            createNavigationBarView(context);
        }
    } catch (RemoteException ex) {
    // no window manager? good luck with that
    }
    mAssistManager = SystemUIFactory.getInstance().createAssistManager(this, context);
    // figure out which pixel-format to use for the status bar.
    mPixelFormat = PixelFormat.OPAQUE;
    mStackScroller = (NotificationStackScrollLayout) mStatusBarWindow.findViewById(R.id.notification_stack_scroller);
    mStackScroller.setLongPressListener(getNotificationLongClicker());
    mStackScroller.setPhoneStatusBar(this);
    mStackScroller.setGroupManager(mGroupManager);
    mStackScroller.setHeadsUpManager(mHeadsUpManager);
    mGroupManager.setOnGroupChangeListener(mStackScroller);
    mVisualStabilityManager.setVisibilityLocationProvider(mStackScroller);
    inflateOverflowContainer();
    inflateEmptyShadeView();
    inflateDismissView();
    mExpandedContents = mStackScroller;
    mBackdrop = (BackDropView) mStatusBarWindow.findViewById(R.id.backdrop);
    mBackdropFront = (ImageView) mBackdrop.findViewById(R.id.backdrop_front);
    mBackdropBack = (ImageView) mBackdrop.findViewById(R.id.backdrop_back);
    if (ENABLE_LOCKSCREEN_WALLPAPER) {
        mLockscreenWallpaper = new LockscreenWallpaper(mContext, this, mHandler);
    }
    ScrimView scrimBehind = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_behind);
    ScrimView scrimInFront = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_in_front);
    View headsUpScrim = mStatusBarWindow.findViewById(R.id.heads_up_scrim);
    mScrimController = SystemUIFactory.getInstance().createScrimController(scrimBehind, scrimInFront, headsUpScrim, mLockscreenWallpaper);
    if (mScrimSrcModeEnabled) {
        Runnable runnable = new Runnable() {

            @Override
            public void run() {
                boolean asSrc = mBackdrop.getVisibility() != View.VISIBLE;
                mScrimController.setDrawBehindAsSrc(asSrc);
                mStackScroller.setDrawBackgroundAsSrc(asSrc);
            }
        };
        mBackdrop.setOnVisibilityChangedRunnable(runnable);
        runnable.run();
    }
    mHeadsUpManager.addListener(mScrimController);
    mStackScroller.setScrimController(mScrimController);
    mStatusBarView.setScrimController(mScrimController);
    mDozeScrimController = new DozeScrimController(mScrimController, context);
    mKeyguardStatusBar = (KeyguardStatusBarView) mStatusBarWindow.findViewById(R.id.keyguard_header);
    mKeyguardStatusView = mStatusBarWindow.findViewById(R.id.keyguard_status_view);
    mKeyguardBottomArea = (KeyguardBottomAreaView) mStatusBarWindow.findViewById(R.id.keyguard_bottom_area);
    mKeyguardBottomArea.setActivityStarter(this);
    mKeyguardBottomArea.setAssistManager(mAssistManager);
    mKeyguardIndicationController = new KeyguardIndicationController(mContext, (KeyguardIndicationTextView) mStatusBarWindow.findViewById(R.id.keyguard_indication_text), mKeyguardBottomArea.getLockIcon());
    mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController);
    // set the initial view visibility
    setAreThereNotifications();
    createIconController();
    // Background thread for any controllers that need it.
    mHandlerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND);
    mHandlerThread.start();
    // Other icons
    mLocationController = new LocationControllerImpl(mContext, // will post a notification
    mHandlerThread.getLooper());
    mBatteryController = createBatteryController();
    mBatteryController.addStateChangedCallback(new BatteryStateChangeCallback() {

        @Override
        public void onPowerSaveChanged(boolean isPowerSave) {
            mHandler.post(mCheckBarModes);
            if (mDozeServiceHost != null) {
                mDozeServiceHost.firePowerSaveChanged(isPowerSave);
            }
        }

        @Override
        public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
        // noop
        }
    });
    mNetworkController = new NetworkControllerImpl(mContext, mHandlerThread.getLooper());
    mNetworkController.setUserSetupComplete(mUserSetup);
    mHotspotController = new HotspotControllerImpl(mContext);
    mBluetoothController = new BluetoothControllerImpl(mContext, mHandlerThread.getLooper());
    mSecurityController = new SecurityControllerImpl(mContext);
    if (mContext.getResources().getBoolean(R.bool.config_showRotationLock)) {
        mRotationLockController = new RotationLockControllerImpl(mContext);
    }
    mUserInfoController = new UserInfoController(mContext);
    mVolumeComponent = getComponent(VolumeComponent.class);
    if (mVolumeComponent != null) {
        mZenModeController = mVolumeComponent.getZenController();
    }
    mCastController = new CastControllerImpl(mContext);
    initSignalCluster(mStatusBarView);
    initSignalCluster(mKeyguardStatusBar);
    initEmergencyCryptkeeperText();
    mCarrierLabel = (TextView) mStatusBarWindow.findViewById(R.id.carrier_label);
    final boolean showCarrierLabel = mContext.getResources().getBoolean(R.bool.config_showCarrierLabel);
    mShowCarrierInPanel = showCarrierLabel && (mCarrierLabel != null);
    if (DEBUG)
        Log.v(TAG, "carrierlabel=" + mCarrierLabel + " show=" + mShowCarrierInPanel);
    if (mShowCarrierInPanel) {
        mCarrierLabel.setVisibility(mShowCarrierInPanel ? View.VISIBLE : View.INVISIBLE);
    }
    // make sure carrier label is not covered by navigation bar
    if (mCarrierLabel != null && mNavigationBarView != null) {
        MarginLayoutParams mlp = (MarginLayoutParams) mCarrierLabel.getLayoutParams();
        if (mlp != null && mlp.bottomMargin < mNavigationBarView.mBarSize) {
            mlp.bottomMargin = mNavigationBarView.mBarSize;
            mCarrierLabel.setLayoutParams(mlp);
        }
    }
    mFlashlightController = new FlashlightController(mContext);
    mKeyguardBottomArea.setFlashlightController(mFlashlightController);
    mKeyguardBottomArea.setPhoneStatusBar(this);
    mKeyguardBottomArea.setUserSetupComplete(mUserSetup);
    mAccessibilityController = new AccessibilityController(mContext);
    mKeyguardBottomArea.setAccessibilityController(mAccessibilityController);
    mNextAlarmController = new NextAlarmController(mContext);
    mLightStatusBarController = new LightStatusBarController(mIconController, mBatteryController);
    mKeyguardMonitor = new KeyguardMonitor(mContext);
    mUserSwitcherController = new UserSwitcherController(mContext, mKeyguardMonitor, mHandler, this);
    if (UserManager.get(mContext).isUserSwitcherEnabled()) {
        createUserSwitcher();
    }
    // Set up the quick settings tile panel
    AutoReinflateContainer container = (AutoReinflateContainer) mStatusBarWindow.findViewById(R.id.qs_auto_reinflate_container);
    if (container != null) {
        final QSTileHost qsh = SystemUIFactory.getInstance().createQSTileHost(mContext, this, mBluetoothController, mLocationController, mRotationLockController, mNetworkController, mZenModeController, mHotspotController, mCastController, mFlashlightController, mUserSwitcherController, mUserInfoController, mKeyguardMonitor, mSecurityController, mBatteryController, mIconController, mNextAlarmController);
        mBrightnessMirrorController = new BrightnessMirrorController(mStatusBarWindow);
        container.addInflateListener(new InflateListener() {

            @Override
            public void onInflated(View v) {
                QSContainer qsContainer = (QSContainer) v.findViewById(R.id.quick_settings_container);
                qsContainer.setHost(qsh);
                mQSPanel = qsContainer.getQsPanel();
                mQSPanel.setBrightnessMirror(mBrightnessMirrorController);
                mKeyguardStatusBar.setQSPanel(mQSPanel);
                mHeader = qsContainer.getHeader();
                initSignalCluster(mHeader);
                mHeader.setActivityStarter(PhoneStatusBar.this);
            }
        });
    }
    // User info. Trigger first load.
    mKeyguardStatusBar.setUserInfoController(mUserInfoController);
    mKeyguardStatusBar.setUserSwitcherController(mUserSwitcherController);
    mUserInfoController.reloadUserInfo();
    ((BatteryMeterView) mStatusBarView.findViewById(R.id.battery)).setBatteryController(mBatteryController);
    ((BatteryLevelTextView) mStatusBarView.findViewById(R.id.battery_level)).setBatteryController(mBatteryController);
    mKeyguardStatusBar.setBatteryController(mBatteryController);
    mReportRejectedTouch = mStatusBarWindow.findViewById(R.id.report_rejected_touch);
    if (mReportRejectedTouch != null) {
        updateReportRejectedTouchVisibility();
        mReportRejectedTouch.setOnClickListener(v -> {
            Uri session = mFalsingManager.reportRejectedTouch();
            if (session == null) {
                return;
            }
            StringWriter message = new StringWriter();
            message.write("Build info: ");
            message.write(SystemProperties.get("ro.build.description"));
            message.write("\nSerial number: ");
            message.write(SystemProperties.get("ro.serialno"));
            message.write("\n");
            PrintWriter falsingPw = new PrintWriter(message);
            FalsingLog.dump(falsingPw);
            falsingPw.flush();
            startActivityDismissingKeyguard(Intent.createChooser(new Intent(Intent.ACTION_SEND).setType("*/*").putExtra(Intent.EXTRA_SUBJECT, "Rejected touch report").putExtra(Intent.EXTRA_STREAM, session).putExtra(Intent.EXTRA_TEXT, message.toString()), "Share rejected touch report").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), true, true);
        });
    }
    PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
    mBroadcastReceiver.onReceive(mContext, new Intent(pm.isScreenOn() ? Intent.ACTION_SCREEN_ON : Intent.ACTION_SCREEN_OFF));
    mGestureWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "GestureWakeLock");
    mVibrator = mContext.getSystemService(Vibrator.class);
    // receive broadcasts
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_SCREEN_ON);
    filter.addAction(DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG);
    context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
    IntentFilter demoFilter = new IntentFilter();
    if (DEBUG_MEDIA_FAKE_ARTWORK) {
        demoFilter.addAction(ACTION_FAKE_ARTWORK);
    }
    demoFilter.addAction(ACTION_DEMO);
    context.registerReceiverAsUser(mDemoReceiver, UserHandle.ALL, demoFilter, android.Manifest.permission.DUMP, null);
    // listen for USER_SETUP_COMPLETE setting (per-user)
    resetUserSetupObserver();
    // disable profiling bars, since they overlap and clutter the output on app windows
    ThreadedRenderer.overrideProperty("disableProfileBars", "true");
    // Private API call to make the shadows look better for Recents
    ThreadedRenderer.overrideProperty("ambientRatio", String.valueOf(1.5f));
    showOperatorName();
    // listen for NAVIGATION_BAR_ENABLED setting (per-user)
    resetNavBarObserver();
    // listen for SWAP_NAVIGATION_KEYS setting (per-user)
    resetSwapNavKeyObserver();
    return mStatusBarView;
}
Also used : CastControllerImpl(com.android.systemui.statusbar.policy.CastControllerImpl) BurnInProtectionController(com.android.systemui.statusbar.policy.BurnInProtectionController) BatteryLevelTextView(com.android.systemui.BatteryLevelTextView) PowerManager(android.os.PowerManager) HotspotControllerImpl(com.android.systemui.statusbar.policy.HotspotControllerImpl) LocationControllerImpl(com.android.systemui.statusbar.policy.LocationControllerImpl) BatteryMeterView(com.android.systemui.BatteryMeterView) HeadsUpManager(com.android.systemui.statusbar.policy.HeadsUpManager) InflateListener(com.android.systemui.AutoReinflateContainer.InflateListener) UserSwitcherController(com.android.systemui.statusbar.policy.UserSwitcherController) BrightnessMirrorController(com.android.systemui.statusbar.policy.BrightnessMirrorController) ScrimView(com.android.systemui.statusbar.ScrimView) RotationLockControllerImpl(com.android.systemui.statusbar.policy.RotationLockControllerImpl) Uri(android.net.Uri) VolumeComponent(com.android.systemui.volume.VolumeComponent) NextAlarmController(com.android.systemui.statusbar.policy.NextAlarmController) StringWriter(java.io.StringWriter) NetworkControllerImpl(com.android.systemui.statusbar.policy.NetworkControllerImpl) KeyguardMonitor(com.android.systemui.statusbar.policy.KeyguardMonitor) FlashlightController(com.android.systemui.statusbar.policy.FlashlightController) PrintWriter(java.io.PrintWriter) Context(android.content.Context) QSContainer(com.android.systemui.qs.QSContainer) IntentFilter(android.content.IntentFilter) BatteryStateChangeCallback(com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback) KeyguardIndicationController(com.android.systemui.statusbar.KeyguardIndicationController) BluetoothControllerImpl(com.android.systemui.statusbar.policy.BluetoothControllerImpl) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) ActivatableNotificationView(com.android.systemui.statusbar.ActivatableNotificationView) BatteryMeterView(com.android.systemui.BatteryMeterView) DismissView(com.android.systemui.statusbar.DismissView) SignalClusterView(com.android.systemui.statusbar.SignalClusterView) ImageView(android.widget.ImageView) BatteryLevelTextView(com.android.systemui.BatteryLevelTextView) BackDropView(com.android.systemui.statusbar.BackDropView) KeyButtonView(com.android.systemui.statusbar.policy.KeyButtonView) EmptyShadeView(com.android.systemui.statusbar.EmptyShadeView) View(android.view.View) TextView(android.widget.TextView) ScrimView(com.android.systemui.statusbar.ScrimView) Point(android.graphics.Point) MotionEvent(android.view.MotionEvent) AccessibilityController(com.android.systemui.statusbar.policy.AccessibilityController) SecurityControllerImpl(com.android.systemui.statusbar.policy.SecurityControllerImpl) AutoReinflateContainer(com.android.systemui.AutoReinflateContainer) HandlerThread(android.os.HandlerThread) UserInfoController(com.android.systemui.statusbar.policy.UserInfoController) Vibrator(android.os.Vibrator) RemoteException(android.os.RemoteException)

Example 98 with HandlerThread

use of android.os.HandlerThread in project NetGuard by M66B.

the class ServiceSinkhole method onCreate.

@Override
public void onCreate() {
    Log.i(TAG, "Create version=" + Util.getSelfVersionName(this) + "/" + Util.getSelfVersionCode(this));
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    // Native init
    jni_init();
    boolean pcap = prefs.getBoolean("pcap", false);
    setPcap(pcap, this);
    prefs.registerOnSharedPreferenceChangeListener(this);
    Util.setTheme(this);
    super.onCreate();
    HandlerThread commandThread = new HandlerThread(getString(R.string.app_name) + " command", Process.THREAD_PRIORITY_FOREGROUND);
    HandlerThread logThread = new HandlerThread(getString(R.string.app_name) + " log", Process.THREAD_PRIORITY_BACKGROUND);
    HandlerThread statsThread = new HandlerThread(getString(R.string.app_name) + " stats", Process.THREAD_PRIORITY_BACKGROUND);
    commandThread.start();
    logThread.start();
    statsThread.start();
    commandLooper = commandThread.getLooper();
    logLooper = logThread.getLooper();
    statsLooper = statsThread.getLooper();
    commandHandler = new CommandHandler(commandLooper);
    logHandler = new LogHandler(logLooper);
    statsHandler = new StatsHandler(statsLooper);
    // Listen for power save mode
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !Util.isPlayStoreInstall(this)) {
        PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
        powersaving = pm.isPowerSaveMode();
        IntentFilter ifPower = new IntentFilter();
        ifPower.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
        registerReceiver(powerSaveReceiver, ifPower);
        registeredPowerSave = true;
    }
    // Listen for user switches
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        IntentFilter ifUser = new IntentFilter();
        ifUser.addAction(Intent.ACTION_USER_BACKGROUND);
        ifUser.addAction(Intent.ACTION_USER_FOREGROUND);
        registerReceiver(userReceiver, ifUser);
        registeredUser = true;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        // Listen for idle mode state changes
        IntentFilter ifIdle = new IntentFilter();
        ifIdle.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
        registerReceiver(idleStateReceiver, ifIdle);
        registeredIdleState = true;
    }
    // Listen for connectivity updates
    IntentFilter ifConnectivity = new IntentFilter();
    ifConnectivity.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
    registerReceiver(connectivityChangedReceiver, ifConnectivity);
    registeredConnectivityChanged = true;
    // Listen for added applications
    IntentFilter ifPackage = new IntentFilter();
    ifPackage.addAction(Intent.ACTION_PACKAGE_ADDED);
    ifPackage.addAction(Intent.ACTION_PACKAGE_REMOVED);
    ifPackage.addDataScheme("package");
    registerReceiver(packageChangedReceiver, ifPackage);
    registeredPackageChanged = true;
    // Setup house holding
    Intent alarmIntent = new Intent(this, ServiceSinkhole.class);
    alarmIntent.setAction(ACTION_HOUSE_HOLDING);
    PendingIntent pi = PendingIntent.getService(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    am.setInexactRepeating(AlarmManager.RTC, SystemClock.elapsedRealtime() + 60 * 1000, AlarmManager.INTERVAL_HALF_DAY, pi);
}
Also used : PowerManager(android.os.PowerManager) IntentFilter(android.content.IntentFilter) HandlerThread(android.os.HandlerThread) SharedPreferences(android.content.SharedPreferences) AlarmManager(android.app.AlarmManager) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent)

Example 99 with HandlerThread

use of android.os.HandlerThread in project android_frameworks_base by AOSPA.

the class DelayedDiskWrite method write.

public void write(final String filePath, final Writer w, final boolean open) {
    if (TextUtils.isEmpty(filePath)) {
        throw new IllegalArgumentException("empty file path");
    }
    /* Do a delayed write to disk on a separate handler thread */
    synchronized (this) {
        if (++mWriteSequence == 1) {
            mDiskWriteHandlerThread = new HandlerThread("DelayedDiskWriteThread");
            mDiskWriteHandlerThread.start();
            mDiskWriteHandler = new Handler(mDiskWriteHandlerThread.getLooper());
        }
    }
    mDiskWriteHandler.post(new Runnable() {

        @Override
        public void run() {
            doWrite(filePath, w, open);
        }
    });
}
Also used : HandlerThread(android.os.HandlerThread) Handler(android.os.Handler)

Example 100 with HandlerThread

use of android.os.HandlerThread in project android_frameworks_base by AOSPA.

the class NetworkStatsObservers method getHandlerLooperLocked.

@VisibleForTesting
protected Looper getHandlerLooperLocked() {
    HandlerThread handlerThread = new HandlerThread(TAG);
    handlerThread.start();
    return handlerThread.getLooper();
}
Also used : HandlerThread(android.os.HandlerThread) VisibleForTesting(com.android.internal.annotations.VisibleForTesting)

Aggregations

HandlerThread (android.os.HandlerThread)292 Handler (android.os.Handler)128 Message (android.os.Message)26 IntentFilter (android.content.IntentFilter)24 Intent (android.content.Intent)22 Context (android.content.Context)20 Test (org.junit.Test)20 PowerManager (android.os.PowerManager)15 Runnable (java.lang.Runnable)15 ComponentName (android.content.ComponentName)14 View (android.view.View)14 PendingIntent (android.app.PendingIntent)12 MediumTest (android.test.suitebuilder.annotation.MediumTest)12 Looper (android.os.Looper)11 RemoteException (android.os.RemoteException)11 MediaFormat (android.media.MediaFormat)10 Pair (android.util.Pair)10 SmallTest (android.test.suitebuilder.annotation.SmallTest)9 Uri (android.net.Uri)8 IOException (java.io.IOException)8