Search in sources :

Example 1 with StartMenuLayout

use of com.farmerbb.taskbar.widget.StartMenuLayout in project Taskbar by farmerbb.

the class StartMenuController method drawStartMenu.

private void drawStartMenu(UIHost host) {
    IconCache.getInstance(context).clearCache();
    final SharedPreferences pref = U.getSharedPreferences(context);
    boolean shouldShowSearchBox = shouldShowSearchBox(pref, hasHardwareKeyboard);
    // Initialize layout params
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    TaskbarPosition.setCachedRotation(windowManager.getDefaultDisplay().getRotation());
    final ViewParams params = new ViewParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, -1, shouldShowSearchBox ? 0 : WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, getBottomMargin(context));
    // Determine where to show the start menu on screen
    String taskbarPosition = TaskbarPosition.getTaskbarPosition(context);
    int layoutId = getStartMenuLayoutId(taskbarPosition);
    params.gravity = getStartMenuGravity(taskbarPosition);
    // Initialize views
    layout = (StartMenuLayout) LayoutInflater.from(U.wrapContext(context)).inflate(layoutId, null);
    layout.setAlpha(0);
    startMenu = layout.findViewById(R.id.start_menu);
    if ((shouldShowSearchBox && !hasHardwareKeyboard) || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
        layout.viewHandlesBackButton();
    boolean scrollbar = pref.getBoolean(PREF_SCROLLBAR, false);
    startMenu.setFastScrollEnabled(scrollbar);
    startMenu.setFastScrollAlwaysVisible(scrollbar);
    startMenu.setScrollBarStyle(scrollbar ? View.SCROLLBARS_OUTSIDE_INSET : View.SCROLLBARS_INSIDE_OVERLAY);
    if (pref.getBoolean(PREF_TRANSPARENT_START_MENU, false))
        startMenu.setBackgroundColor(0);
    if (pref.getBoolean(PREF_VISUAL_FEEDBACK, true))
        startMenu.setRecyclerListener(view -> view.setBackgroundColor(0));
    int columns = context.getResources().getInteger(R.integer.tb_start_menu_columns);
    boolean isGrid = pref.getString(PREF_START_MENU_LAYOUT, "grid").equals("grid");
    if (isGrid) {
        ViewGroup.LayoutParams startMenuParams = startMenu.getLayoutParams();
        startMenuParams.width = (int) (startMenuParams.width * (columns / 3f));
        startMenu.setLayoutParams(startMenuParams);
    }
    searchView = layout.findViewById(R.id.search);
    searchViewClicked = false;
    int backgroundTint = U.getBackgroundTint(context);
    FrameLayout startMenuFrame = layout.findViewById(R.id.start_menu_frame);
    FrameLayout searchViewLayout = layout.findViewById(R.id.search_view_layout);
    startMenuFrame.setBackgroundColor(backgroundTint);
    searchViewLayout.setBackgroundColor(backgroundTint);
    if (shouldShowSearchBox) {
        if (!hasHardwareKeyboard)
            searchView.setIconifiedByDefault(true);
        searchView.setOnTouchListener((v, event) -> {
            searchViewClicked = true;
            return false;
        });
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                if (!hasSubmittedQuery) {
                    ListAdapter adapter = startMenu.getAdapter();
                    if (adapter != null) {
                        hasSubmittedQuery = true;
                        if (adapter.getCount() > 0) {
                            View view = adapter.getView(0, null, startMenu);
                            LinearLayout layout = view.findViewById(R.id.entry);
                            layout.performClick();
                        } else {
                            if (U.shouldCollapse(context, true)) {
                                U.sendBroadcast(context, ACTION_HIDE_TASKBAR);
                            } else {
                                hideStartMenu(true);
                            }
                            Intent intent = generateQueryWebSearchIntent(query);
                            if (intent.resolveActivity(context.getPackageManager()) != null) {
                                context.startActivity(intent);
                            } else {
                                intent = generateQueryGoogleIntent(query);
                                try {
                                    context.startActivity(intent);
                                } catch (ActivityNotFoundException ignored) {
                                }
                            }
                        }
                    }
                }
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                searchView.setIconified(false);
                View closeButton = searchView.findViewById(R.id.search_close_btn);
                if (closeButton != null)
                    closeButton.setVisibility(View.GONE);
                refreshApps(newText, false);
                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
                    U.newHandler().postDelayed(() -> {
                        EditText editText = searchView.findViewById(R.id.search_src_text);
                        if (editText != null) {
                            editText.requestFocus();
                            editText.setSelection(editText.getText().length());
                        }
                    }, 50);
                }
                return true;
            }
        });
        searchView.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
        LinearLayout powerButton = layout.findViewById(R.id.power_button);
        powerButton.setOnClickListener(view -> {
            int[] location = new int[2];
            view.getLocationOnScreen(location);
            openContextMenu(location);
        });
        powerButton.setOnGenericMotionListener((view, motionEvent) -> {
            if (motionEvent.getAction() == MotionEvent.ACTION_BUTTON_PRESS && motionEvent.getButtonState() == MotionEvent.BUTTON_SECONDARY) {
                int[] location = new int[2];
                view.getLocationOnScreen(location);
                openContextMenu(location);
            }
            return false;
        });
        searchViewLayout.setOnClickListener(view -> searchView.setIconified(false));
        startMenu.setOnItemClickListener((viewParent, view, position, id) -> {
            hideStartMenu(true);
            AppEntry entry = (AppEntry) viewParent.getAdapter().getItem(position);
            U.launchApp(context, entry, null, false, false, view);
        });
        View childLayout = layout.findViewById(R.id.search_view_child_layout);
        if (pref.getBoolean(PREF_TRANSPARENT_START_MENU, false))
            childLayout.setBackgroundColor(0);
        if (isGrid) {
            ViewGroup.LayoutParams childLayoutParams = childLayout.getLayoutParams();
            childLayoutParams.width = (int) (childLayoutParams.width * (columns / 3f));
            childLayout.setLayoutParams(childLayoutParams);
        }
    } else
        searchViewLayout.setVisibility(View.GONE);
    applyMarginFix(host, layout, params);
    textView = layout.findViewById(R.id.no_apps_found);
    U.registerReceiver(context, toggleReceiver, ACTION_TOGGLE_START_MENU);
    U.registerReceiver(context, hideReceiver, ACTION_HIDE_START_MENU);
    U.registerReceiver(context, hideReceiverNoReset, ACTION_HIDE_START_MENU_NO_RESET);
    U.registerReceiver(context, showSpaceReceiver, ACTION_SHOW_START_MENU_SPACE);
    U.registerReceiver(context, hideSpaceReceiver, ACTION_HIDE_START_MENU_SPACE);
    U.registerReceiver(context, resetReceiver, ACTION_RESET_START_MENU);
    handler = U.newHandler();
    refreshApps(true);
    host.addView(layout, params);
}
Also used : LinearLayout(android.widget.LinearLayout) Bundle(android.os.Bundle) GridView(android.widget.GridView) PackageManager(android.content.pm.PackageManager) TaskbarPosition(com.farmerbb.taskbar.util.TaskbarPosition) Uri(android.net.Uri) WindowManager(android.view.WindowManager) FrameLayout(android.widget.FrameLayout) Drawable(android.graphics.drawable.Drawable) IconCache(com.farmerbb.taskbar.util.IconCache) Patterns(android.util.Patterns) TopApps(com.farmerbb.taskbar.util.TopApps) Handler(android.os.Handler) View(android.view.View) TargetApi(android.annotation.TargetApi) InvisibleActivityAlt(com.farmerbb.taskbar.activity.InvisibleActivityAlt) U(com.farmerbb.taskbar.util.U) AppEntry(com.farmerbb.taskbar.util.AppEntry) SearchView(androidx.appcompat.widget.SearchView) BroadcastReceiver(android.content.BroadcastReceiver) ViewGroup(android.view.ViewGroup) LauncherHelper(com.farmerbb.taskbar.helper.LauncherHelper) LauncherApps(android.content.pm.LauncherApps) FreeformHackHelper(com.farmerbb.taskbar.helper.FreeformHackHelper) List(java.util.List) TextView(android.widget.TextView) MenuHelper(com.farmerbb.taskbar.helper.MenuHelper) ListAdapter(android.widget.ListAdapter) ActivityNotFoundException(android.content.ActivityNotFoundException) LauncherActivityInfo(android.content.pm.LauncherActivityInfo) SearchManager(android.app.SearchManager) EditorInfo(android.view.inputmethod.EditorInfo) Context(android.content.Context) Intent(android.content.Intent) InvisibleActivity(com.farmerbb.taskbar.activity.InvisibleActivity) InputMethodManager(android.view.inputmethod.InputMethodManager) ArrayList(java.util.ArrayList) Blacklist(com.farmerbb.taskbar.util.Blacklist) SuppressLint(android.annotation.SuppressLint) MotionEvent(android.view.MotionEvent) StartMenuLayout(com.farmerbb.taskbar.widget.StartMenuLayout) UserHandle(android.os.UserHandle) Build(android.os.Build) Collator(java.text.Collator) UserManager(android.os.UserManager) URLUtil(android.webkit.URLUtil) R(com.farmerbb.taskbar.R) ComponentName(android.content.ComponentName) LayoutInflater(android.view.LayoutInflater) StartMenuAdapter(com.farmerbb.taskbar.adapter.StartMenuAdapter) Gravity(android.view.Gravity) SharedPreferences(android.content.SharedPreferences) Configuration(android.content.res.Configuration) Comparator(java.util.Comparator) VisibleForTesting(androidx.annotation.VisibleForTesting) Collections(java.util.Collections) EditText(android.widget.EditText) Constants(com.farmerbb.taskbar.util.Constants) EditText(android.widget.EditText) SharedPreferences(android.content.SharedPreferences) ViewGroup(android.view.ViewGroup) Intent(android.content.Intent) GridView(android.widget.GridView) View(android.view.View) SearchView(androidx.appcompat.widget.SearchView) TextView(android.widget.TextView) SuppressLint(android.annotation.SuppressLint) WindowManager(android.view.WindowManager) SearchView(androidx.appcompat.widget.SearchView) AppEntry(com.farmerbb.taskbar.util.AppEntry) ActivityNotFoundException(android.content.ActivityNotFoundException) FrameLayout(android.widget.FrameLayout) ListAdapter(android.widget.ListAdapter) LinearLayout(android.widget.LinearLayout)

Example 2 with StartMenuLayout

use of com.farmerbb.taskbar.widget.StartMenuLayout in project Taskbar by farmerbb.

the class StartMenuService method drawStartMenu.

@SuppressLint("RtlHardcoded")
private void drawStartMenu() {
    IconCache.getInstance(this).clearCache();
    final SharedPreferences pref = U.getSharedPreferences(this);
    final boolean hasHardwareKeyboard = getResources().getConfiguration().keyboard != Configuration.KEYBOARD_NOKEYS;
    switch(pref.getString("show_search_bar", "keyboard")) {
        case "always":
            shouldShowSearchBox = true;
            break;
        case "keyboard":
            shouldShowSearchBox = hasHardwareKeyboard;
            break;
        case "never":
            shouldShowSearchBox = false;
            break;
    }
    // Initialize layout params
    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    U.setCachedRotation(windowManager.getDefaultDisplay().getRotation());
    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, CompatUtils.getOverlayType(), shouldShowSearchBox ? 0 : WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, PixelFormat.TRANSLUCENT);
    // Determine where to show the start menu on screen
    switch(U.getTaskbarPosition(this)) {
        case "bottom_left":
            layoutId = R.layout.start_menu_left;
            params.gravity = Gravity.BOTTOM | Gravity.LEFT;
            break;
        case "bottom_vertical_left":
            layoutId = R.layout.start_menu_vertical_left;
            params.gravity = Gravity.BOTTOM | Gravity.LEFT;
            break;
        case "bottom_right":
            layoutId = R.layout.start_menu_right;
            params.gravity = Gravity.BOTTOM | Gravity.RIGHT;
            break;
        case "bottom_vertical_right":
            layoutId = R.layout.start_menu_vertical_right;
            params.gravity = Gravity.BOTTOM | Gravity.RIGHT;
            break;
        case "top_left":
            layoutId = R.layout.start_menu_top_left;
            params.gravity = Gravity.TOP | Gravity.LEFT;
            break;
        case "top_vertical_left":
            layoutId = R.layout.start_menu_vertical_left;
            params.gravity = Gravity.TOP | Gravity.LEFT;
            break;
        case "top_right":
            layoutId = R.layout.start_menu_top_right;
            params.gravity = Gravity.TOP | Gravity.RIGHT;
            break;
        case "top_vertical_right":
            layoutId = R.layout.start_menu_vertical_right;
            params.gravity = Gravity.TOP | Gravity.RIGHT;
            break;
    }
    // Initialize views
    layout = (StartMenuLayout) LayoutInflater.from(U.wrapContext(this)).inflate(layoutId, null);
    startMenu = U.findViewById(layout, R.id.start_menu);
    if ((shouldShowSearchBox && !hasHardwareKeyboard) || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
        layout.viewHandlesBackButton();
    boolean scrollbar = pref.getBoolean("scrollbar", false);
    startMenu.setFastScrollEnabled(scrollbar);
    startMenu.setFastScrollAlwaysVisible(scrollbar);
    startMenu.setScrollBarStyle(scrollbar ? View.SCROLLBARS_OUTSIDE_INSET : View.SCROLLBARS_INSIDE_OVERLAY);
    if (pref.getBoolean("transparent_start_menu", false))
        startMenu.setBackgroundColor(0);
    if (U.visualFeedbackEnabled(this))
        startMenu.setRecyclerListener(view -> view.setBackgroundColor(0));
    searchView = U.findViewById(layout, R.id.search);
    int backgroundTint = U.getBackgroundTint(this);
    FrameLayout startMenuFrame = U.findViewById(layout, R.id.start_menu_frame);
    FrameLayout searchViewLayout = U.findViewById(layout, R.id.search_view_layout);
    startMenuFrame.setBackgroundColor(backgroundTint);
    searchViewLayout.setBackgroundColor(backgroundTint);
    if (shouldShowSearchBox) {
        if (!hasHardwareKeyboard)
            searchView.setIconifiedByDefault(true);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                if (!hasSubmittedQuery) {
                    ListAdapter adapter = startMenu.getAdapter();
                    if (adapter != null) {
                        hasSubmittedQuery = true;
                        if (adapter.getCount() > 0) {
                            View view = adapter.getView(0, null, startMenu);
                            LinearLayout layout = U.findViewById(view, R.id.entry);
                            layout.performClick();
                        } else {
                            if (U.shouldCollapse(StartMenuService.this, true))
                                LocalBroadcastManager.getInstance(StartMenuService.this).sendBroadcast(new Intent("com.farmerbb.taskbar.HIDE_TASKBAR"));
                            else
                                LocalBroadcastManager.getInstance(StartMenuService.this).sendBroadcast(new Intent("com.farmerbb.taskbar.HIDE_START_MENU"));
                            Intent intent;
                            if (Patterns.WEB_URL.matcher(query).matches()) {
                                intent = new Intent(Intent.ACTION_VIEW);
                                intent.setData(Uri.parse(URLUtil.guessUrl(query)));
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            } else {
                                intent = new Intent(Intent.ACTION_WEB_SEARCH);
                                intent.putExtra(SearchManager.QUERY, query);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            }
                            if (intent.resolveActivity(getPackageManager()) != null)
                                startActivity(intent);
                            else {
                                Uri uri = new Uri.Builder().scheme("https").authority("www.google.com").path("search").appendQueryParameter("q", query).build();
                                intent = new Intent(Intent.ACTION_VIEW);
                                intent.setData(uri);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                try {
                                    startActivity(intent);
                                } catch (ActivityNotFoundException e) {
                                /* Gracefully fail */
                                }
                            }
                        }
                    }
                }
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                searchView.setIconified(false);
                View closeButton = searchView.findViewById(R.id.search_close_btn);
                if (closeButton != null)
                    closeButton.setVisibility(View.GONE);
                refreshApps(newText, false);
                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
                    new Handler().postDelayed(() -> {
                        EditText editText = U.findViewById(searchView, R.id.search_src_text);
                        if (editText != null) {
                            editText.requestFocus();
                            editText.setSelection(editText.getText().length());
                        }
                    }, 50);
                }
                return true;
            }
        });
        searchView.setOnQueryTextFocusChangeListener((view, b) -> {
            if (!hasHardwareKeyboard) {
                ViewGroup.LayoutParams params1 = startMenu.getLayoutParams();
                params1.height = getResources().getDimensionPixelSize(b && !isSecondScreenDisablingKeyboard() ? R.dimen.start_menu_height_half : R.dimen.start_menu_height);
                startMenu.setLayoutParams(params1);
            }
            if (!b) {
                if (hasHardwareKeyboard && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
                    LocalBroadcastManager.getInstance(StartMenuService.this).sendBroadcast(new Intent("com.farmerbb.taskbar.HIDE_START_MENU"));
                else {
                    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                }
            }
        });
        searchView.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
        LinearLayout powerButton = U.findViewById(layout, R.id.power_button);
        powerButton.setOnClickListener(view -> {
            int[] location = new int[2];
            view.getLocationOnScreen(location);
            openContextMenu(location);
        });
        powerButton.setOnGenericMotionListener((view, motionEvent) -> {
            if (motionEvent.getAction() == MotionEvent.ACTION_BUTTON_PRESS && motionEvent.getButtonState() == MotionEvent.BUTTON_SECONDARY) {
                int[] location = new int[2];
                view.getLocationOnScreen(location);
                openContextMenu(location);
            }
            return false;
        });
        searchViewLayout.setOnClickListener(view -> searchView.setIconified(false));
        startMenu.setOnItemClickListener((parent, view, position, id) -> {
            hideStartMenu(true);
            AppEntry entry = (AppEntry) parent.getAdapter().getItem(position);
            U.launchApp(StartMenuService.this, entry.getPackageName(), entry.getComponentName(), entry.getUserId(StartMenuService.this), null, false, false);
        });
        if (pref.getBoolean("transparent_start_menu", false))
            layout.findViewById(R.id.search_view_child_layout).setBackgroundColor(0);
    } else
        searchViewLayout.setVisibility(View.GONE);
    textView = U.findViewById(layout, R.id.no_apps_found);
    LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
    lbm.unregisterReceiver(toggleReceiver);
    lbm.unregisterReceiver(hideReceiver);
    lbm.unregisterReceiver(hideReceiverNoReset);
    lbm.unregisterReceiver(showSpaceReceiver);
    lbm.unregisterReceiver(hideSpaceReceiver);
    lbm.unregisterReceiver(resetReceiver);
    lbm.registerReceiver(toggleReceiver, new IntentFilter("com.farmerbb.taskbar.TOGGLE_START_MENU"));
    lbm.registerReceiver(hideReceiver, new IntentFilter("com.farmerbb.taskbar.HIDE_START_MENU"));
    lbm.registerReceiver(hideReceiverNoReset, new IntentFilter("com.farmerbb.taskbar.HIDE_START_MENU_NO_RESET"));
    lbm.registerReceiver(showSpaceReceiver, new IntentFilter("com.farmerbb.taskbar.SHOW_START_MENU_SPACE"));
    lbm.registerReceiver(hideSpaceReceiver, new IntentFilter("com.farmerbb.taskbar.HIDE_START_MENU_SPACE"));
    lbm.registerReceiver(resetReceiver, new IntentFilter("com.farmerbb.taskbar.RESET_START_MENU"));
    handler = new Handler();
    refreshApps(true);
    windowManager.addView(layout, params);
}
Also used : Rect(android.graphics.Rect) LinearLayout(android.widget.LinearLayout) GridView(android.widget.GridView) PackageManager(android.content.pm.PackageManager) SearchView(android.support.v7.widget.SearchView) Uri(android.net.Uri) WindowManager(android.view.WindowManager) FrameLayout(android.widget.FrameLayout) LocalBroadcastManager(android.support.v4.content.LocalBroadcastManager) MenuHelper(com.farmerbb.taskbar.util.MenuHelper) Drawable(android.graphics.drawable.Drawable) IconCache(com.farmerbb.taskbar.util.IconCache) IBinder(android.os.IBinder) Patterns(android.util.Patterns) TopApps(com.farmerbb.taskbar.util.TopApps) Handler(android.os.Handler) View(android.view.View) TargetApi(android.annotation.TargetApi) LauncherHelper(com.farmerbb.taskbar.util.LauncherHelper) InvisibleActivityAlt(com.farmerbb.taskbar.activity.InvisibleActivityAlt) Service(android.app.Service) IntentFilter(android.content.IntentFilter) U(com.farmerbb.taskbar.util.U) AppEntry(com.farmerbb.taskbar.util.AppEntry) CompatUtils(com.farmerbb.taskbar.util.CompatUtils) BroadcastReceiver(android.content.BroadcastReceiver) DisplayMetrics(android.util.DisplayMetrics) ViewGroup(android.view.ViewGroup) LauncherApps(android.content.pm.LauncherApps) List(java.util.List) TextView(android.widget.TextView) ListAdapter(android.widget.ListAdapter) ActivityNotFoundException(android.content.ActivityNotFoundException) LauncherActivityInfo(android.content.pm.LauncherActivityInfo) SearchManager(android.app.SearchManager) EditorInfo(android.view.inputmethod.EditorInfo) Context(android.content.Context) ContextMenuActivity(com.farmerbb.taskbar.activity.ContextMenuActivity) Intent(android.content.Intent) InvisibleActivity(com.farmerbb.taskbar.activity.InvisibleActivity) PixelFormat(android.graphics.PixelFormat) InputMethodManager(android.view.inputmethod.InputMethodManager) ArrayList(java.util.ArrayList) Blacklist(com.farmerbb.taskbar.util.Blacklist) SuppressLint(android.annotation.SuppressLint) MotionEvent(android.view.MotionEvent) StartMenuLayout(com.farmerbb.taskbar.widget.StartMenuLayout) UserHandle(android.os.UserHandle) Settings(android.provider.Settings) Build(android.os.Build) ContextMenuActivityDark(com.farmerbb.taskbar.activity.dark.ContextMenuActivityDark) Collator(java.text.Collator) UserManager(android.os.UserManager) ApplicationType(com.farmerbb.taskbar.util.ApplicationType) URLUtil(android.webkit.URLUtil) R(com.farmerbb.taskbar.R) ComponentName(android.content.ComponentName) LayoutInflater(android.view.LayoutInflater) StartMenuAdapter(com.farmerbb.taskbar.adapter.StartMenuAdapter) FreeformHackHelper(com.farmerbb.taskbar.util.FreeformHackHelper) Gravity(android.view.Gravity) SharedPreferences(android.content.SharedPreferences) Configuration(android.content.res.Configuration) Comparator(java.util.Comparator) Collections(java.util.Collections) EditText(android.widget.EditText) InputMethodManager(android.view.inputmethod.InputMethodManager) Uri(android.net.Uri) WindowManager(android.view.WindowManager) ListAdapter(android.widget.ListAdapter) EditText(android.widget.EditText) IntentFilter(android.content.IntentFilter) SharedPreferences(android.content.SharedPreferences) ViewGroup(android.view.ViewGroup) Handler(android.os.Handler) Intent(android.content.Intent) GridView(android.widget.GridView) SearchView(android.support.v7.widget.SearchView) View(android.view.View) TextView(android.widget.TextView) LocalBroadcastManager(android.support.v4.content.LocalBroadcastManager) SuppressLint(android.annotation.SuppressLint) SearchView(android.support.v7.widget.SearchView) AppEntry(com.farmerbb.taskbar.util.AppEntry) ActivityNotFoundException(android.content.ActivityNotFoundException) FrameLayout(android.widget.FrameLayout) LinearLayout(android.widget.LinearLayout) SuppressLint(android.annotation.SuppressLint)

Aggregations

SuppressLint (android.annotation.SuppressLint)2 TargetApi (android.annotation.TargetApi)2 SearchManager (android.app.SearchManager)2 ActivityNotFoundException (android.content.ActivityNotFoundException)2 BroadcastReceiver (android.content.BroadcastReceiver)2 ComponentName (android.content.ComponentName)2 Context (android.content.Context)2 Intent (android.content.Intent)2 SharedPreferences (android.content.SharedPreferences)2 LauncherActivityInfo (android.content.pm.LauncherActivityInfo)2 LauncherApps (android.content.pm.LauncherApps)2 PackageManager (android.content.pm.PackageManager)2 Configuration (android.content.res.Configuration)2 Drawable (android.graphics.drawable.Drawable)2 Uri (android.net.Uri)2 Build (android.os.Build)2 Handler (android.os.Handler)2 UserHandle (android.os.UserHandle)2 UserManager (android.os.UserManager)2 Patterns (android.util.Patterns)2