Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c698e6e authored by Bjorn Bringert's avatar Bjorn Bringert Committed by Android Git Automerger
Browse files

am c9dc1090: Merge "Build searchables list after boot" into froyo

Merge commit 'c9dc1090' into froyo-plus-aosp

* commit 'c9dc1090':
  Build searchables list after boot
parents 0915d0aa c9dc1090
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -21,9 +21,12 @@ import com.android.internal.content.PackageMonitor;
import android.app.ISearchManager;
import android.app.SearchManager;
import android.app.SearchableInfo;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Process;
import android.util.Log;

import java.util.List;
@@ -51,17 +54,37 @@ public class SearchManagerService extends ISearchManager.Stub {
     */
    public SearchManagerService(Context context)  {
        mContext = context;
        mContext.registerReceiver(new BootCompletedReceiver(),
                new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
    }

    private synchronized Searchables getSearchables() {
        if (mSearchables == null) {
            Log.i(TAG, "Building list of searchable activities");
            new MyPackageMonitor().register(mContext, true);
            mSearchables = new Searchables(mContext);
            mSearchables.buildSearchableList();
            new MyPackageMonitor().register(mContext, true);
        }
        return mSearchables;
    }

    /**
     * Creates the initial searchables list after boot.
     */
    private final class BootCompletedReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            new Thread() {
                @Override
                public void run() {
                    Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
                    mContext.unregisterReceiver(BootCompletedReceiver.this);
                    getSearchables();
                }
            }.start();
        }
    }

    /**
     * Refreshes the "searchables" list when packages are added/removed.
     */