├── .gitignore ├── Android.mk ├── AndroidManifest-common.xml ├── AndroidManifest.xml ├── CleanSpec.mk ├── MODULE_LICENSE_APACHE2 ├── NOTICE ├── build.gradle ├── fill_screens.py ├── print_db.py ├── proguard.flags ├── protos └── launcher_log.proto ├── res ├── anim │ ├── discovery_bounce.xml │ ├── no_anim.xml │ └── task_open_enter.xml ├── animator-v21 │ └── overview_button_anim.xml ├── drawable-hdpi │ ├── ic_action_set.png │ ├── ic_all_apps_bg_hand.png │ ├── ic_allapps.png │ ├── ic_info_launcher.png │ ├── ic_remove_launcher.png │ ├── ic_uninstall_launcher.png │ ├── ic_widget_resize_handle.png │ ├── page_hover_left.9.png │ ├── page_hover_left_active.9.png │ ├── page_hover_right.9.png │ ├── page_hover_right_active.9.png │ ├── quantum_panel_bitmap.9.png │ ├── quantum_panel_dark_bitmap.9.png │ ├── screenpanel.9.png │ ├── screenpanel_hover.9.png │ ├── virtual_preload.9.png │ ├── virtual_preload_folder.9.png │ ├── widget_resize_frame.9.png │ ├── widget_resize_shadow.9.png │ ├── widget_tile.png │ └── workspace_bg.9.png ├── drawable-ldrtl │ └── container_fastscroll_popup_bg.xml ├── drawable-mdpi │ ├── ic_all_apps_bg_hand.png │ ├── ic_allapps.png │ ├── ic_info_launcher.png │ ├── ic_remove_launcher.png │ ├── ic_uninstall_launcher.png │ ├── ic_widget_resize_handle.png │ ├── page_hover_left.9.png │ ├── page_hover_left_active.9.png │ ├── page_hover_right.9.png │ ├── page_hover_right_active.9.png │ ├── quantum_panel_bitmap.9.png │ ├── quantum_panel_dark_bitmap.9.png │ ├── screenpanel.9.png │ ├── screenpanel_hover.9.png │ ├── virtual_preload.9.png │ ├── virtual_preload_folder.9.png │ ├── widget_resize_frame.9.png │ ├── widget_resize_shadow.9.png │ ├── widget_tile.png │ └── workspace_bg.9.png ├── drawable-v21 │ ├── quantum_panel.xml │ └── quantum_panel_dark.xml ├── drawable-xhdpi │ ├── ic_action_set.png │ ├── ic_all_apps_bg_hand.png │ ├── ic_allapps.png │ ├── ic_info_launcher.png │ ├── ic_remove_launcher.png │ ├── ic_reset.png │ ├── ic_uninstall_launcher.png │ ├── ic_widget_resize_handle.png │ ├── page_hover_left.9.png │ ├── page_hover_left_active.9.png │ ├── page_hover_right.9.png │ ├── page_hover_right_active.9.png │ ├── quantum_panel_bitmap.9.png │ ├── quantum_panel_dark_bitmap.9.png │ ├── screenpanel.9.png │ ├── screenpanel_hover.9.png │ ├── virtual_preload.9.png │ ├── virtual_preload_folder.9.png │ ├── widget_resize_frame.9.png │ ├── widget_resize_shadow.9.png │ ├── widget_tile.png │ └── workspace_bg.9.png ├── drawable-xxhdpi │ ├── ic_action_set.png │ ├── ic_all_apps_bg_hand.png │ ├── ic_allapps.png │ ├── ic_info_launcher.png │ ├── ic_remove_launcher.png │ ├── ic_uninstall_launcher.png │ ├── ic_widget_resize_handle.png │ ├── page_hover_left.9.png │ ├── page_hover_left_active.9.png │ ├── page_hover_right.9.png │ ├── page_hover_right_active.9.png │ ├── quantum_panel_bitmap.9.png │ ├── quantum_panel_dark_bitmap.9.png │ ├── screenpanel.9.png │ ├── screenpanel_hover.9.png │ ├── virtual_preload.9.png │ ├── virtual_preload_folder.9.png │ ├── widget_resize_frame.9.png │ ├── widget_resize_shadow.9.png │ ├── widget_tile.png │ └── workspace_bg.9.png ├── drawable-xxxhdpi │ ├── ic_all_apps_bg_hand.png │ ├── ic_info_launcher.png │ ├── ic_remove_launcher.png │ ├── ic_uninstall_launcher.png │ ├── ic_widget_resize_handle.png │ ├── quantum_panel_bitmap.9.png │ ├── quantum_panel_dark_bitmap.9.png │ ├── widget_resize_frame.9.png │ ├── widget_resize_shadow.9.png │ └── workspace_bg.9.png ├── drawable │ ├── activities_icon.png │ ├── all_apps_divider.xml │ ├── all_apps_search_divider.xml │ ├── all_apps_search_hint.xml │ ├── bg_celllayout.xml │ ├── bg_pill_focused.xml │ ├── bg_screenpanel.xml │ ├── bg_white_pill.xml │ ├── container_fastscroll_popup_bg.xml │ ├── deep_shortcuts_drag_handle.xml │ ├── ic_all_apps_bg_icon_1.xml │ ├── ic_all_apps_bg_icon_2.xml │ ├── ic_all_apps_bg_icon_3.xml │ ├── ic_all_apps_bg_icon_4.xml │ ├── ic_allapps_search.xml │ ├── ic_setting.xml │ ├── ic_wallpaper.xml │ ├── ic_widget.xml │ ├── quantum_panel.xml │ ├── quantum_panel_dark.xml │ ├── quantum_panel_shape.xml │ ├── quantum_panel_shape_dark.xml │ ├── widget_internal_focus_bg.xml │ └── widgets_row_divider.xml ├── interpolator │ ├── decelerate_quart.xml │ ├── decelerate_quint.xml │ ├── disco_bounce_section1.xml │ ├── disco_bounce_section2.xml │ └── disco_bounce_section3.xml ├── layout-land │ └── launcher.xml ├── layout-port │ └── launcher.xml ├── layout-sw720dp │ └── launcher.xml ├── layout │ ├── all_apps.xml │ ├── all_apps_divider.xml │ ├── all_apps_empty_search.xml │ ├── all_apps_icon.xml │ ├── all_apps_search_divider.xml │ ├── all_apps_search_market.xml │ ├── app_icon.xml │ ├── appwidget_error.xml │ ├── appwidget_not_ready.xml │ ├── deep_shortcut.xml │ ├── deep_shortcuts_container.xml │ ├── dialog_color_picker.xml │ ├── double_number_picker_dialog.xml │ ├── drop_target_bar_horz.xml │ ├── drop_target_bar_vert.xml │ ├── folder_application.xml │ ├── folder_icon.xml │ ├── hotseat.xml │ ├── number_picker_dialog.xml │ ├── overview_panel.xml │ ├── page_indicator.xml │ ├── qsb_blocker_view.xml │ ├── qsb_container.xml │ ├── qsb_default_view.xml │ ├── user_folder.xml │ ├── user_folder_icon_normalized.xml │ ├── widget_cell.xml │ ├── widgets_list_row_view.xml │ ├── widgets_view.xml │ ├── workspace_screen.xml │ └── zzz_dummy_widget.xml ├── mipmap-hdpi │ ├── ic_launcher_home.png │ └── ic_launcher_settings.png ├── mipmap-mdpi │ ├── ic_launcher_home.png │ └── ic_launcher_settings.png ├── mipmap-xhdpi │ ├── ic_launcher_home.png │ └── ic_launcher_settings.png ├── mipmap-xxhdpi │ ├── ic_launcher_home.png │ └── ic_launcher_settings.png ├── mipmap-xxxhdpi │ ├── ic_launcher_home.png │ └── ic_launcher_settings.png ├── values-af │ ├── slim_strings.xml │ └── strings.xml ├── values-am │ ├── slim_strings.xml │ └── strings.xml ├── values-ar │ ├── slim_strings.xml │ └── strings.xml ├── values-az-rAZ │ ├── slim_strings.xml │ └── strings.xml ├── values-b+sr+Latn │ └── strings.xml ├── values-be-rBY │ └── strings.xml ├── values-be │ └── strings.xml ├── values-bg │ ├── slim_strings.xml │ └── strings.xml ├── values-bn-rBD │ └── strings.xml ├── values-bs-rBA │ └── strings.xml ├── values-ca │ ├── slim_strings.xml │ └── strings.xml ├── values-cs │ ├── slim_strings.xml │ └── strings.xml ├── values-cy │ └── slim_strings.xml ├── values-da │ ├── slim_strings.xml │ └── strings.xml ├── values-de │ ├── slim_strings.xml │ └── strings.xml ├── values-el │ ├── slim_strings.xml │ └── strings.xml ├── values-en-rAU │ └── strings.xml ├── values-en-rGB │ └── strings.xml ├── values-en-rIN │ └── strings.xml ├── values-es-rUS │ └── strings.xml ├── values-es │ ├── slim_strings.xml │ └── strings.xml ├── values-et-rEE │ └── strings.xml ├── values-et │ ├── slim_strings.xml │ └── strings.xml ├── values-eu-rES │ └── strings.xml ├── values-fa │ ├── slim_strings.xml │ └── strings.xml ├── values-fi │ ├── slim_strings.xml │ └── strings.xml ├── values-fr-rCA │ └── strings.xml ├── values-fr │ ├── slim_strings.xml │ └── strings.xml ├── values-gl-rES │ └── strings.xml ├── values-gu-rIN │ └── strings.xml ├── values-hi │ ├── slim_strings.xml │ └── strings.xml ├── values-hr │ ├── slim_strings.xml │ └── strings.xml ├── values-hu │ ├── slim_strings.xml │ └── strings.xml ├── values-hy-rAM │ └── strings.xml ├── values-hy │ └── slim_strings.xml ├── values-in │ ├── slim_strings.xml │ └── strings.xml ├── values-is-rIS │ └── strings.xml ├── values-it │ ├── slim_strings.xml │ └── strings.xml ├── values-iw │ ├── slim_strings.xml │ └── strings.xml ├── values-ja │ ├── slim_strings.xml │ └── strings.xml ├── values-ka-rGE │ └── strings.xml ├── values-ka │ └── slim_strings.xml ├── values-kk-rKZ │ └── strings.xml ├── values-km-rKH │ └── strings.xml ├── values-km │ └── slim_strings.xml ├── values-kn-rIN │ └── strings.xml ├── values-ko │ ├── slim_strings.xml │ └── strings.xml ├── values-ky-rKG │ └── strings.xml ├── values-land │ └── dimens.xml ├── values-lo-rLA │ ├── slim_strings.xml │ └── strings.xml ├── values-lt │ ├── slim_strings.xml │ └── strings.xml ├── values-lv │ ├── slim_strings.xml │ └── strings.xml ├── values-mk-rMK │ └── strings.xml ├── values-ml-rIN │ └── strings.xml ├── values-mn-rMN │ └── strings.xml ├── values-mn │ └── slim_strings.xml ├── values-mr-rIN │ └── strings.xml ├── values-ms-rMY │ └── strings.xml ├── values-ms │ ├── slim_strings.xml │ └── strings.xml ├── values-my-rMM │ └── strings.xml ├── values-nb │ ├── slim_strings.xml │ └── strings.xml ├── values-ne-rNP │ └── strings.xml ├── values-ne │ └── slim_strings.xml ├── values-nl │ ├── slim_strings.xml │ └── strings.xml ├── values-no-rNO │ └── slim_strings.xml ├── values-pa-rIN │ └── strings.xml ├── values-pl │ ├── slim_strings.xml │ └── strings.xml ├── values-pt-rBR │ └── slim_strings.xml ├── values-pt-rPT │ ├── slim_strings.xml │ └── strings.xml ├── values-pt │ └── strings.xml ├── values-rm │ ├── slim_strings.xml │ └── strings.xml ├── values-ro │ ├── slim_strings.xml │ └── strings.xml ├── values-ru │ ├── slim_strings.xml │ └── strings.xml ├── values-si-rLK │ └── strings.xml ├── values-si │ └── slim_strings.xml ├── values-sk │ ├── slim_strings.xml │ └── strings.xml ├── values-sl │ ├── slim_strings.xml │ └── strings.xml ├── values-sq-rAL │ └── strings.xml ├── values-sr │ ├── slim_strings.xml │ └── strings.xml ├── values-sv │ ├── slim_strings.xml │ └── strings.xml ├── values-sw │ ├── slim_strings.xml │ └── strings.xml ├── values-sw340dp │ └── dimens.xml ├── values-sw600dp │ ├── config.xml │ └── dimens.xml ├── values-sw720dp-land │ └── dimens.xml ├── values-sw720dp-port │ └── dimens.xml ├── values-sw720dp │ ├── config.xml │ ├── dimens.xml │ └── styles.xml ├── values-ta-rIN │ └── strings.xml ├── values-te-rIN │ └── strings.xml ├── values-th │ ├── slim_strings.xml │ └── strings.xml ├── values-tl │ ├── slim_strings.xml │ └── strings.xml ├── values-tr │ ├── slim_strings.xml │ └── strings.xml ├── values-uk │ ├── slim_strings.xml │ └── strings.xml ├── values-ur-rPK │ └── strings.xml ├── values-uz-rUZ │ └── strings.xml ├── values-v19 │ └── styles.xml ├── values-v21 │ └── styles.xml ├── values-v25 │ └── styles.xml ├── values-vi │ ├── slim_strings.xml │ └── strings.xml ├── values-zh-rCN │ ├── slim_strings.xml │ └── strings.xml ├── values-zh-rHK │ ├── slim_strings.xml │ └── strings.xml ├── values-zh-rTW │ ├── slim_strings.xml │ └── strings.xml ├── values-zu │ ├── slim_strings.xml │ └── strings.xml ├── values │ ├── attrs.xml │ ├── colors.xml │ ├── config.xml │ ├── dimens.xml │ ├── slim_arrays.xml │ ├── slim_dimnes.xml │ ├── slim_strings.xml │ ├── strings.xml │ └── styles.xml └── xml │ ├── app_target_browser.xml │ ├── app_target_camera.xml │ ├── app_target_email.xml │ ├── app_target_gallery.xml │ ├── app_target_messenger.xml │ ├── app_target_phone.xml │ ├── backupscheme.xml │ ├── default_workspace_3x3.xml │ ├── default_workspace_4x4.xml │ ├── default_workspace_5x5.xml │ ├── default_workspace_5x6.xml │ ├── device_profiles.xml │ ├── dock_preferences.xml │ ├── drawer_preferences.xml │ ├── dw_phone_hotseat.xml │ ├── dw_tablet_hotseat.xml │ ├── gesture_fragment.xml │ ├── homescreen_preferences.xml │ ├── launcher_preferences.xml │ └── preferences.xml ├── source ├── AndroidManifest.xml └── src │ └── com │ └── android │ └── launcher3 │ └── BuildConfig.java ├── src ├── com │ └── android │ │ └── launcher3 │ │ ├── Alarm.java │ │ ├── AllAppsList.java │ │ ├── AnotherWindowDropTarget.java │ │ ├── AppFilter.java │ │ ├── AppInfo.java │ │ ├── AppWidgetResizeFrame.java │ │ ├── AppWidgetsRestoredReceiver.java │ │ ├── AutoInstallsLayout.java │ │ ├── BaseContainerView.java │ │ ├── BaseRecyclerView.java │ │ ├── BaseRecyclerViewFastScrollBar.java │ │ ├── BaseRecyclerViewFastScrollPopup.java │ │ ├── BubbleTextView.java │ │ ├── ButtonDropTarget.java │ │ ├── CellLayout.java │ │ ├── CheckLongPressHelper.java │ │ ├── ClickShadowView.java │ │ ├── CommonAppTypeParser.java │ │ ├── CustomAppWidget.java │ │ ├── DefaultLayoutParser.java │ │ ├── DeferredHandler.java │ │ ├── DeleteDropTarget.java │ │ ├── DeviceProfile.java │ │ ├── DragSource.java │ │ ├── DropTarget.java │ │ ├── DropTargetBar.java │ │ ├── ExtendedEditText.java │ │ ├── FastBitmapDrawable.java │ │ ├── FirstFrameAnimatorHelper.java │ │ ├── FocusHelper.java │ │ ├── FolderInfo.java │ │ ├── HolographicOutlineHelper.java │ │ ├── Hotseat.java │ │ ├── IconCache.java │ │ ├── IconProvider.java │ │ ├── InfoDropTarget.java │ │ ├── Insettable.java │ │ ├── InsettableFrameLayout.java │ │ ├── InstallShortcutReceiver.java │ │ ├── InterruptibleInOutAnimator.java │ │ ├── InvariantDeviceProfile.java │ │ ├── ItemInfo.java │ │ ├── Launcher.java │ │ ├── LauncherAnimUtils.java │ │ ├── LauncherAppState.java │ │ ├── LauncherAppWidgetHost.java │ │ ├── LauncherAppWidgetHostView.java │ │ ├── LauncherAppWidgetInfo.java │ │ ├── LauncherAppWidgetProviderInfo.java │ │ ├── LauncherBackupAgent.java │ │ ├── LauncherCallbacks.java │ │ ├── LauncherClings.java │ │ ├── LauncherExterns.java │ │ ├── LauncherFiles.java │ │ ├── LauncherModel.java │ │ ├── LauncherProvider.java │ │ ├── LauncherProviderChangeListener.java │ │ ├── LauncherRootView.java │ │ ├── LauncherScroller.java │ │ ├── LauncherSettings.java │ │ ├── LauncherStateTransitionAnimation.java │ │ ├── LauncherTransitionable.java │ │ ├── LauncherViewPropertyAnimator.java │ │ ├── LogAccelerateInterpolator.java │ │ ├── LogDecelerateInterpolator.java │ │ ├── MainThreadExecutor.java │ │ ├── OnAlarmListener.java │ │ ├── PagedView.java │ │ ├── Partner.java │ │ ├── PendingAddItemInfo.java │ │ ├── PendingAppWidgetHostView.java │ │ ├── PinchAnimationManager.java │ │ ├── PinchThresholdManager.java │ │ ├── PinchToOverviewListener.java │ │ ├── PreloadIconDrawable.java │ │ ├── QsbBlockerView.java │ │ ├── QsbContainerView.java │ │ ├── SettingsActivity.java │ │ ├── ShortcutAndWidgetContainer.java │ │ ├── ShortcutInfo.java │ │ ├── SimpleOnStylusPressListener.java │ │ ├── StylusEventHelper.java │ │ ├── UninstallDropTarget.java │ │ ├── Utilities.java │ │ ├── WidgetPreviewLoader.java │ │ ├── Workspace.java │ │ ├── WorkspaceCallbacks.java │ │ ├── WorkspaceStateTransitionAnimation.java │ │ ├── accessibility │ │ ├── AccessibileDragListenerAdapter.java │ │ ├── DragAndDropAccessibilityDelegate.java │ │ ├── DragViewStateAnnouncer.java │ │ ├── FolderAccessibilityHelper.java │ │ ├── LauncherAccessibilityDelegate.java │ │ ├── OverviewAccessibilityDelegate.java │ │ ├── OverviewScreenAccessibilityDelegate.java │ │ ├── ShortcutMenuAccessibilityDelegate.java │ │ └── WorkspaceAccessibilityHelper.java │ │ ├── allapps │ │ ├── AllAppsBackgroundDrawable.java │ │ ├── AllAppsCaretController.java │ │ ├── AllAppsContainerView.java │ │ ├── AllAppsFastScrollHelper.java │ │ ├── AllAppsGridAdapter.java │ │ ├── AllAppsRecyclerView.java │ │ ├── AllAppsRecyclerViewContainerView.java │ │ ├── AllAppsSearchBarController.java │ │ ├── AllAppsTransitionController.java │ │ ├── AlphabeticalAppsList.java │ │ ├── DefaultAppSearchAlgorithm.java │ │ ├── DefaultAppSearchController.java │ │ ├── HeaderElevationController.java │ │ └── VerticalPullDetector.java │ │ ├── compat │ │ ├── AlphabeticIndexCompat.java │ │ ├── AppWidgetManagerCompat.java │ │ ├── AppWidgetManagerCompatV16.java │ │ ├── AppWidgetManagerCompatVL.java │ │ ├── DeferredLauncherActivityInfo.java │ │ ├── LauncherActivityInfoCompat.java │ │ ├── LauncherActivityInfoCompatV16.java │ │ ├── LauncherActivityInfoCompatVL.java │ │ ├── LauncherAppsCompat.java │ │ ├── LauncherAppsCompatV16.java │ │ ├── LauncherAppsCompatVL.java │ │ ├── PackageInstallerCompat.java │ │ ├── PackageInstallerCompatV16.java │ │ ├── PackageInstallerCompatVL.java │ │ ├── UserHandleCompat.java │ │ ├── UserManagerCompat.java │ │ ├── UserManagerCompatV16.java │ │ ├── UserManagerCompatV17.java │ │ ├── UserManagerCompatVL.java │ │ ├── UserManagerCompatVM.java │ │ ├── UserManagerCompatVN.java │ │ └── UserManagerCompatVNMr1.java │ │ ├── dragndrop │ │ ├── AnotherWindowDragSource.java │ │ ├── DragController.java │ │ ├── DragDriver.java │ │ ├── DragLayer.java │ │ ├── DragOptions.java │ │ ├── DragScroller.java │ │ ├── DragView.java │ │ ├── ExternalDragPreviewProvider.java │ │ └── SpringLoadedDragController.java │ │ ├── dynamicui │ │ ├── ColorExtractionService.java │ │ ├── ExtractedColors.java │ │ └── ExtractionUtils.java │ │ ├── folder │ │ ├── ClippedFolderIconLayoutRule.java │ │ ├── Folder.java │ │ ├── FolderIcon.java │ │ ├── FolderPagedView.java │ │ └── StackFolderIconLayoutRule.java │ │ ├── graphics │ │ ├── DragPreviewProvider.java │ │ ├── ShadowGenerator.java │ │ ├── TintedDrawableSpan.java │ │ └── TriangleShape.java │ │ ├── keyboard │ │ ├── FocusIndicatorHelper.java │ │ ├── FocusedItemDecorator.java │ │ └── ViewGroupFocusHelper.java │ │ ├── logging │ │ ├── FileLog.java │ │ ├── LoggerUtils.java │ │ └── UserEventDispatcher.java │ │ ├── model │ │ ├── AbstractUserComparator.java │ │ ├── AppNameComparator.java │ │ ├── GridSizeMigrationTask.java │ │ ├── PackageItemInfo.java │ │ ├── WidgetItem.java │ │ └── WidgetsModel.java │ │ ├── pageindicators │ │ ├── CaretDrawable.java │ │ ├── PageIndicator.java │ │ ├── PageIndicatorCaretLandscape.java │ │ ├── PageIndicatorDots.java │ │ └── PageIndicatorLineCaret.java │ │ ├── provider │ │ ├── ImportDataTask.java │ │ ├── LauncherDbUtils.java │ │ ├── LossyScreenMigrationTask.java │ │ └── RestoreDbTask.java │ │ ├── shortcuts │ │ ├── DeepShortcutManager.java │ │ ├── DeepShortcutTextView.java │ │ ├── DeepShortcutView.java │ │ ├── DeepShortcutsContainer.java │ │ ├── ShortcutCache.java │ │ ├── ShortcutDragPreviewProvider.java │ │ ├── ShortcutFilter.java │ │ ├── ShortcutInfoCompat.java │ │ └── ShortcutKey.java │ │ ├── testing │ │ ├── DummyWidget.java │ │ ├── LauncherExtension.java │ │ ├── MemoryDumpActivity.java │ │ ├── MemoryTracker.java │ │ ├── ToggleWeightWatcher.java │ │ └── WeightWatcher.java │ │ ├── util │ │ ├── ActivityResultInfo.java │ │ ├── CachedPackageTracker.java │ │ ├── CellAndSpan.java │ │ ├── CircleRevealOutlineProvider.java │ │ ├── ComponentKey.java │ │ ├── ConfigMonitor.java │ │ ├── CursorIconInfo.java │ │ ├── FlagOp.java │ │ ├── FlingAnimation.java │ │ ├── FocusLogic.java │ │ ├── GridOccupancy.java │ │ ├── IconNormalizer.java │ │ ├── ItemInfoMatcher.java │ │ ├── LauncherEdgeEffect.java │ │ ├── LongArrayMap.java │ │ ├── ManagedProfileHeuristic.java │ │ ├── MultiHashMap.java │ │ ├── MultiStateAlphaController.java │ │ ├── NoLocaleSqliteContext.java │ │ ├── PackageManagerHelper.java │ │ ├── ParcelableSparseArray.java │ │ ├── PendingRequestArgs.java │ │ ├── PillRevealOutlineProvider.java │ │ ├── PillWidthRevealOutlineProvider.java │ │ ├── Preconditions.java │ │ ├── RevealOutlineAnimation.java │ │ ├── SQLiteCacheHelper.java │ │ ├── StringFilter.java │ │ ├── TestingUtils.java │ │ ├── Thunk.java │ │ ├── TouchController.java │ │ ├── TransformingTouchDelegate.java │ │ ├── VerticalFlingDetector.java │ │ ├── ViewOnDrawExecutor.java │ │ └── WallpaperOffsetInterpolator.java │ │ └── widget │ │ ├── PendingAddShortcutInfo.java │ │ ├── PendingAddWidgetInfo.java │ │ ├── PendingItemPreviewProvider.java │ │ ├── WidgetCell.java │ │ ├── WidgetHostViewLoader.java │ │ ├── WidgetImageView.java │ │ ├── WidgetsContainerView.java │ │ ├── WidgetsListAdapter.java │ │ ├── WidgetsRecyclerView.java │ │ └── WidgetsRowViewHolder.java ├── net │ └── margaritov │ │ └── preference │ │ └── colorpicker │ │ ├── AlphaPatternDrawable.java │ │ ├── ColorPickerDialog.java │ │ ├── ColorPickerPanelView.java │ │ ├── ColorPickerPreference.java │ │ └── ColorPickerView.java └── org │ └── slim │ └── launcher │ ├── CreateShortcut.java │ ├── ShortcutHelper.java │ ├── SlimDeviceProfile.java │ ├── SlimLauncher.java │ ├── preference │ ├── DoubleNumberPickerPreference.java │ └── NumberPickerPreference.java │ ├── settings │ ├── DockFragment.java │ ├── DrawerFragment.java │ ├── FolderFragment.java │ ├── GeneralFragment.java │ ├── GestureFragment.java │ ├── HomescreenFragment.java │ ├── SettingsActivity.java │ ├── SettingsKeys.java │ ├── SettingsPreferenceFragment.java │ └── SettingsProvider.java │ └── util │ ├── AppHelper.java │ ├── GestureHelper.java │ └── ShortcutPickHelper.java ├── src_config └── com │ └── android │ └── launcher3 │ └── config │ ├── FeatureFlags.java │ └── ProviderConfig.java ├── src_proto └── com │ └── android │ └── launcher3 │ └── userevent │ └── nano │ └── LauncherLogProto.java └── tests ├── Android.mk ├── AndroidManifest.xml └── src └── com └── android └── launcher3 ├── BindWidgetTest.java ├── InvariantDeviceProfileTest.java ├── allapps └── DefaultAppSearchAlgorithmTest.java ├── logging └── FileLogTest.java ├── model └── GridSizeMigrationTaskTest.java ├── provider └── RestoreDbTaskTest.java ├── shortcuts └── ShortcutFilterTest.java ├── ui ├── AddWidgetTest.java ├── AllAppsAppLaunchTest.java ├── AllAppsIconToHomeTest.java ├── LauncherInstrumentationTestCase.java └── RotationPreferenceTest.java └── util ├── Condition.java ├── FocusLogicTest.java ├── GridOccupancyTest.java ├── TestLauncherProvider.java └── Wait.java /.gitignore: -------------------------------------------------------------------------------- 1 | db_files 2 | *.iml 3 | .project 4 | .classpath 5 | .project.properties 6 | gen/ 7 | tests/stress/gen/ 8 | WallpaperPicker/gen/ 9 | WallpaperPicker/.project.properties 10 | bin/ 11 | .idea/ 12 | .gradle/ 13 | local.properties 14 | gradle/ 15 | build/ 16 | gradlew* -------------------------------------------------------------------------------- /MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /res/anim/discovery_bounce.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 23 | 24 | 31 | 38 | 45 | 46 | -------------------------------------------------------------------------------- /res/anim/no_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | -------------------------------------------------------------------------------- /res/anim/task_open_enter.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | 23 | 28 | 29 | 34 | 35 | -------------------------------------------------------------------------------- /res/animator-v21/overview_button_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | 28 | 33 | 34 | 35 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_action_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_action_set.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_all_apps_bg_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_all_apps_bg_hand.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_allapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_allapps.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_info_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_info_launcher.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_remove_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_remove_launcher.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_uninstall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_uninstall_launcher.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-hdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/quantum_panel_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/quantum_panel_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/quantum_panel_dark_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/quantum_panel_dark_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/screenpanel.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/screenpanel.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/screenpanel_hover.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/screenpanel_hover.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/widget_tile.png -------------------------------------------------------------------------------- /res/drawable-hdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-hdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /res/drawable-ldrtl/container_fastscroll_popup_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 23 | 27 | -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_all_apps_bg_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_all_apps_bg_hand.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_allapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_allapps.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_info_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_info_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_remove_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_remove_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_uninstall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_uninstall_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-mdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/quantum_panel_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/quantum_panel_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/quantum_panel_dark_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/quantum_panel_dark_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/screenpanel.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/screenpanel.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/screenpanel_hover.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/screenpanel_hover.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /res/drawable-mdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/widget_tile.png -------------------------------------------------------------------------------- /res/drawable-mdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-mdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /res/drawable-v21/quantum_panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 23 | -------------------------------------------------------------------------------- /res/drawable-v21/quantum_panel_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 23 | -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_action_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_action_set.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_all_apps_bg_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_all_apps_bg_hand.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_allapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_allapps.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_info_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_info_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_remove_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_remove_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_reset.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_uninstall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_uninstall_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/quantum_panel_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/quantum_panel_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/quantum_panel_dark_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/quantum_panel_dark_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/screenpanel.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/screenpanel.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/screenpanel_hover.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/screenpanel_hover.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/widget_tile.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_action_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_action_set.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_all_apps_bg_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_all_apps_bg_hand.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_allapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_allapps.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_info_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_info_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_remove_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_remove_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_uninstall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_uninstall_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/quantum_panel_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/quantum_panel_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/quantum_panel_dark_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/quantum_panel_dark_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/screenpanel.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/screenpanel.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/screenpanel_hover.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/screenpanel_hover.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/widget_tile.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_all_apps_bg_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/ic_all_apps_bg_hand.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_info_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/ic_info_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_remove_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/ic_remove_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_uninstall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/ic_uninstall_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/quantum_panel_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/quantum_panel_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/quantum_panel_dark_bitmap.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/quantum_panel_dark_bitmap.9.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable-xxxhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /res/drawable/activities_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/drawable/activities_icon.png -------------------------------------------------------------------------------- /res/drawable/all_apps_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/all_apps_search_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/all_apps_search_hint.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/bg_celllayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /res/drawable/bg_pill_focused.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/bg_screenpanel.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /res/drawable/bg_white_pill.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /res/drawable/container_fastscroll_popup_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 23 | 27 | -------------------------------------------------------------------------------- /res/drawable/deep_shortcuts_drag_handle.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /res/drawable/ic_all_apps_bg_icon_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 27 | 31 | -------------------------------------------------------------------------------- /res/drawable/ic_all_apps_bg_icon_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 28 | 33 | -------------------------------------------------------------------------------- /res/drawable/ic_all_apps_bg_icon_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 28 | 33 | 36 | 37 | -------------------------------------------------------------------------------- /res/drawable/ic_all_apps_bg_icon_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 27 | 31 | 34 | -------------------------------------------------------------------------------- /res/drawable/ic_allapps_search.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/ic_setting.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/ic_wallpaper.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/ic_widget.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/quantum_panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | -------------------------------------------------------------------------------- /res/drawable/quantum_panel_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | -------------------------------------------------------------------------------- /res/drawable/quantum_panel_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /res/drawable/quantum_panel_shape_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | 23 | -------------------------------------------------------------------------------- /res/drawable/widget_internal_focus_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /res/drawable/widgets_row_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/interpolator/decelerate_quart.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /res/interpolator/decelerate_quint.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /res/interpolator/disco_bounce_section1.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /res/interpolator/disco_bounce_section2.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /res/interpolator/disco_bounce_section3.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /res/layout/all_apps_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /res/layout/all_apps_empty_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 31 | 32 | -------------------------------------------------------------------------------- /res/layout/all_apps_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 27 | 28 | -------------------------------------------------------------------------------- /res/layout/all_apps_search_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /res/layout/all_apps_search_market.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 31 | -------------------------------------------------------------------------------- /res/layout/app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /res/layout/appwidget_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /res/layout/appwidget_not_ready.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /res/layout/deep_shortcut.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 31 | 32 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /res/layout/deep_shortcuts_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 28 | 29 | -------------------------------------------------------------------------------- /res/layout/folder_application.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /res/layout/folder_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 29 | 30 | -------------------------------------------------------------------------------- /res/layout/hotseat.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /res/layout/number_picker_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 21 | 22 | 27 | 28 | -------------------------------------------------------------------------------- /res/layout/page_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 27 | 28 | -------------------------------------------------------------------------------- /res/layout/qsb_blocker_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /res/layout/qsb_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 24 | 25 | 30 | -------------------------------------------------------------------------------- /res/layout/workspace_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | -------------------------------------------------------------------------------- /res/layout/zzz_dummy_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 28 | 29 | 34 | 35 | -------------------------------------------------------------------------------- /res/mipmap-hdpi/ic_launcher_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-hdpi/ic_launcher_home.png -------------------------------------------------------------------------------- /res/mipmap-hdpi/ic_launcher_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-hdpi/ic_launcher_settings.png -------------------------------------------------------------------------------- /res/mipmap-mdpi/ic_launcher_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-mdpi/ic_launcher_home.png -------------------------------------------------------------------------------- /res/mipmap-mdpi/ic_launcher_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-mdpi/ic_launcher_settings.png -------------------------------------------------------------------------------- /res/mipmap-xhdpi/ic_launcher_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xhdpi/ic_launcher_home.png -------------------------------------------------------------------------------- /res/mipmap-xhdpi/ic_launcher_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xhdpi/ic_launcher_settings.png -------------------------------------------------------------------------------- /res/mipmap-xxhdpi/ic_launcher_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xxhdpi/ic_launcher_home.png -------------------------------------------------------------------------------- /res/mipmap-xxhdpi/ic_launcher_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xxhdpi/ic_launcher_settings.png -------------------------------------------------------------------------------- /res/mipmap-xxxhdpi/ic_launcher_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xxxhdpi/ic_launcher_home.png -------------------------------------------------------------------------------- /res/mipmap-xxxhdpi/ic_launcher_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlimRoms/packages_apps_SlimLauncher/872b16d20be335a96f4b4e1c61f39d754d320751/res/mipmap-xxxhdpi/ic_launcher_settings.png -------------------------------------------------------------------------------- /res/values-af/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-am/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-ar/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-cy/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-da/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-et/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-hi/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-hy/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-in/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-ja/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SlimLauncher 5 | リセット 6 | 設定する 7 | エラー 8 | 9 | アプリ 10 | アクティビティ 11 | 任意のアプリを選択 12 | 任意のアクティビティを選択 13 | 14 | グリッドサイズ 15 | 行と列の数を選択 16 | 17 | カラーピッカー 18 | 下から色を選択して適用 19 | 20 | ホーム画面 21 | 22 | ドロワー 23 | 検索バーを有効にする 24 | 25 | ドック 26 | ドック アイコン 27 | 28 | ジェスチャー 29 | なし 30 | 左上にスワイプ 31 | 右上にスワイプ 32 | 33 | すべてのアプリ 34 | 35 | -------------------------------------------------------------------------------- /res/values-ka/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-km/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/values-lo-rLA/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-lv/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-mn/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-ms/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-ne/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-no-rNO/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-rm/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-ro/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Lansator Slim 5 | Resetaţi 6 | Setare 7 | Eroare 8 | 9 | Aplicaţii 10 | Activități 11 | Selectați aplicație personalizată 12 | Selectați activitate personalizată 13 | 14 | Dimensiune grilă 15 | Selectaţi numărul de rânduri/coloane 16 | Rânduri 17 | Coloane 18 | 19 | Selector culoare 20 | Apăsaţi pe culoare mai jos pentru a aplica 21 | Hex: 22 | 23 | Ecranul de start 24 | 25 | Sertar 26 | 27 | 28 | 29 | Comenzi rapide lansator Slim 30 | Toate aplicațiile 31 | Modul de prezentare 32 | Setările de lansator 33 | Ecranul de start implicit 34 | 35 | -------------------------------------------------------------------------------- /res/values-si/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-sl/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-sr/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Поново покрени 5 | Постави 6 | Грешка 7 | 8 | Апликације 9 | Активности 10 | 11 | Величина мреже 12 | Ред 13 | Колоне 14 | 15 | Бирач боје 16 | 17 | 18 | 19 | 20 | ништа 21 | Ништа 22 | 23 | Све апликације 24 | 25 | -------------------------------------------------------------------------------- /res/values-sv/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Återställ 5 | Fel 6 | 7 | Appar 8 | Aktiviteter 9 | Välj anpassad aktivitet 10 | 11 | Rader 12 | Kolumner 13 | 14 | Färgväljare 15 | Hex: 16 | 17 | Hemskärm 18 | 19 | 20 | 21 | Gester 22 | Senaste app hittades inte. 23 | Inget 24 | Senaste app 25 | 26 | SlimLauncher-genvägar 27 | Alla appar 28 | 29 | -------------------------------------------------------------------------------- /res/values-sw/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-sw340dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 20dp 22 | 16sp 23 | 24 | -------------------------------------------------------------------------------- /res/values-sw600dp/config.xml: -------------------------------------------------------------------------------- 1 | 2 | true 3 | true 4 | 5 | -------------------------------------------------------------------------------- /res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 0dp 20 | 26sp 21 | 850dp 22 | 525dp 23 | 24 | 25 | 56dp 26 | 27 | 28 | -1000dp 29 | 30 | -------------------------------------------------------------------------------- /res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 20 | 100dip 21 | 22 | -------------------------------------------------------------------------------- /res/values-sw720dp-port/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 21 | 40dp 22 | 23 | -------------------------------------------------------------------------------- /res/values-sw720dp/config.xml: -------------------------------------------------------------------------------- 1 | 2 | true 3 | true 4 | 5 | 6 | 7 | 90 8 | 9 | 10 | false 11 | 12 | -------------------------------------------------------------------------------- /res/values-sw720dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 8dp 20 | 54dp 21 | 64dp 22 | 180dp 23 | 24 | 25 | -------------------------------------------------------------------------------- /res/values-sw720dp/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 29 | 30 | 31 | 39 | 40 | -------------------------------------------------------------------------------- /res/values-th/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-tl/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-v19/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 25 | 26 | -------------------------------------------------------------------------------- /res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 28 | 29 | -------------------------------------------------------------------------------- /res/values-v25/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/values-zh-rHK/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-zu/slim_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values/slim_arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @string/gesture_target_nothing 7 | @string/gesture_target_homescreen 8 | @string/gesture_target_drawer 9 | @string/gesture_target_previews 10 | @string/gesture_target_settings 11 | @string/gesture_target_last_app 12 | @string/gesture_target_custom 13 | 14 | 15 | 16 | nothing 17 | default_homescreen 18 | open_app_drawer 19 | show_previews 20 | show_settings 21 | last_app 22 | custom 23 | 24 | 25 | 26 | 27 | @string/shortcut_action_launcher_apps 28 | @string/shortcut_action_launcher_overview 29 | @string/shortcut_action_launcher_settings 30 | @string/shortcut_action_launcher_homescreen 31 | 32 | 33 | 34 | **open_app_drawer** 35 | **overview_mode** 36 | **launcher_settings** 37 | **default_homescreen** 38 | 39 | 40 | -------------------------------------------------------------------------------- /res/values/slim_dimnes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 70dip 5 | 6 | -------------------------------------------------------------------------------- /res/xml/app_target_browser.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/xml/app_target_camera.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/xml/app_target_email.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/xml/app_target_gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/xml/app_target_messenger.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /res/xml/app_target_phone.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/xml/backupscheme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /res/xml/default_workspace_4x4.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /res/xml/default_workspace_5x5.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 37 | 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /res/xml/default_workspace_5x6.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 28 | 29 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /res/xml/dock_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /res/xml/drawer_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /res/xml/homescreen_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/xml/launcher_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /res/xml/preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
8 | 9 |
13 | 14 |
18 | 19 | 23 | 24 |
28 | 29 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /source/src/com/android/launcher3/BuildConfig.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | public class BuildConfig { 4 | 5 | public static final String APPLICATION_ID = "com.slim.slimlauncher"; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/com/android/launcher3/AppFilter.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.content.ComponentName; 4 | import android.text.TextUtils; 5 | import android.util.Log; 6 | 7 | public abstract class AppFilter { 8 | 9 | private static final boolean DBG = false; 10 | private static final String TAG = "AppFilter"; 11 | 12 | public static AppFilter loadByName(String className) { 13 | if (TextUtils.isEmpty(className)) return null; 14 | if (DBG) Log.d(TAG, "Loading AppFilter: " + className); 15 | try { 16 | Class cls = Class.forName(className); 17 | return (AppFilter) cls.newInstance(); 18 | } catch (ClassNotFoundException e) { 19 | Log.e(TAG, "Bad AppFilter class", e); 20 | return null; 21 | } catch (InstantiationException e) { 22 | Log.e(TAG, "Bad AppFilter class", e); 23 | return null; 24 | } catch (IllegalAccessException e) { 25 | Log.e(TAG, "Bad AppFilter class", e); 26 | return null; 27 | } catch (ClassCastException e) { 28 | Log.e(TAG, "Bad AppFilter class", e); 29 | return null; 30 | } 31 | } 32 | 33 | public abstract boolean shouldShowApp(ComponentName app); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/com/android/launcher3/CustomAppWidget.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | public interface CustomAppWidget { 4 | public String getLabel(); 5 | 6 | public int getPreviewImage(); 7 | 8 | public int getIcon(); 9 | 10 | public int getWidgetLayout(); 11 | 12 | public int getSpanX(); 13 | 14 | public int getSpanY(); 15 | 16 | public int getMinSpanX(); 17 | 18 | public int getMinSpanY(); 19 | 20 | public int getResizeMode(); 21 | } 22 | -------------------------------------------------------------------------------- /src/com/android/launcher3/IconProvider.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.content.Context; 4 | import android.graphics.drawable.Drawable; 5 | import android.text.TextUtils; 6 | import android.util.Log; 7 | 8 | import com.android.launcher3.compat.LauncherActivityInfoCompat; 9 | 10 | import java.lang.reflect.InvocationTargetException; 11 | import java.util.Locale; 12 | 13 | public class IconProvider { 14 | 15 | private static final boolean DBG = false; 16 | private static final String TAG = "IconProvider"; 17 | 18 | protected String mSystemState; 19 | 20 | public IconProvider() { 21 | updateSystemStateString(); 22 | } 23 | 24 | public static IconProvider loadByName(String className, Context context) { 25 | if (TextUtils.isEmpty(className)) return new IconProvider(); 26 | if (DBG) Log.d(TAG, "Loading IconProvider: " + className); 27 | try { 28 | Class cls = Class.forName(className); 29 | return (IconProvider) cls.getDeclaredConstructor(Context.class).newInstance(context); 30 | } catch (ClassNotFoundException | InstantiationException | IllegalAccessException 31 | | ClassCastException | NoSuchMethodException | InvocationTargetException e) { 32 | Log.e(TAG, "Bad IconProvider class", e); 33 | return new IconProvider(); 34 | } 35 | } 36 | 37 | public void updateSystemStateString() { 38 | mSystemState = Locale.getDefault().toString(); 39 | } 40 | 41 | public String getIconSystemState(String packageName) { 42 | return mSystemState; 43 | } 44 | 45 | 46 | public Drawable getIcon(LauncherActivityInfoCompat info, int iconDpi) { 47 | return info.getIcon(iconDpi); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/com/android/launcher3/Insettable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 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.launcher3; 18 | 19 | import android.graphics.Rect; 20 | 21 | /** 22 | * Allows the implementing {@link View} to not draw underneath system bars. 23 | * e.g., notification bar on top and home key area on the bottom. 24 | */ 25 | public interface Insettable { 26 | 27 | void setInsets(Rect insets); 28 | } -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherBackupAgent.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.app.backup.BackupAgent; 4 | import android.app.backup.BackupDataInput; 5 | import android.app.backup.BackupDataOutput; 6 | import android.os.ParcelFileDescriptor; 7 | 8 | import com.android.launcher3.provider.RestoreDbTask; 9 | 10 | public class LauncherBackupAgent extends BackupAgent { 11 | 12 | @Override 13 | public void onRestore( 14 | BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) { 15 | // Doesn't do incremental backup/restore 16 | } 17 | 18 | @Override 19 | public void onBackup( 20 | ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) { 21 | // Doesn't do incremental backup/restore 22 | } 23 | 24 | @Override 25 | public void onRestoreFinished() { 26 | RestoreDbTask.setPending(this, true); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherClings.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 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.launcher3; 18 | 19 | import android.content.Context; 20 | 21 | @Deprecated 22 | public class LauncherClings { 23 | private static final String WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.workspace.dismissed"; 24 | 25 | public static void markFirstRunClingDismissed(Context ctx) { 26 | Utilities.getPrefs(ctx).edit() 27 | .putBoolean(WORKSPACE_CLING_DISMISSED_KEY, true) 28 | .apply(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherExterns.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3; 18 | 19 | import android.content.SharedPreferences; 20 | 21 | /** 22 | * This interface defines the set of methods that the Launcher activity exposes. Methods 23 | * here should be safe to call from classes outside of com.android.launcher3.* 24 | */ 25 | public interface LauncherExterns { 26 | 27 | public boolean setLauncherCallbacks(LauncherCallbacks callbacks); 28 | 29 | public SharedPreferences getSharedPrefs(); 30 | 31 | public void setLauncherOverlay(Launcher.LauncherOverlay overlay); 32 | 33 | void clearTypedText(); 34 | } 35 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherFiles.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | /** 8 | * Central list of files the Launcher writes to the application data directory. 9 | *

10 | * To add a new Launcher file, create a String constant referring to the filename, and add it to 11 | * ALL_FILES, as shown below. 12 | */ 13 | public class LauncherFiles { 14 | 15 | public static final String LAUNCHER_DB = "launcher.db"; 16 | public static final String SHARED_PREFERENCES_KEY = "com.android.launcher3.prefs"; 17 | public static final String MANAGED_USER_PREFERENCES_KEY = "com.android.launcher3.managedusers.prefs"; 18 | // This preference file is not backed up to cloud. 19 | public static final String DEVICE_PREFERENCES_KEY = "com.android.launcher3.device.prefs"; 20 | public static final String WIDGET_PREVIEWS_DB = "widgetpreviews.db"; 21 | public static final String APP_ICONS_DB = "app_icons.db"; 22 | private static final String XML = ".xml"; 23 | public static final List ALL_FILES = Collections.unmodifiableList(Arrays.asList( 24 | LAUNCHER_DB, 25 | SHARED_PREFERENCES_KEY + XML, 26 | WIDGET_PREVIEWS_DB, 27 | MANAGED_USER_PREFERENCES_KEY + XML, 28 | DEVICE_PREFERENCES_KEY + XML, 29 | APP_ICONS_DB)); 30 | } 31 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherProviderChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | /** 4 | * This class is a listener for {@link LauncherProvider} changes. It gets notified in the 5 | * sendNotify method. This listener is needed because by default the Launcher suppresses 6 | * standard data change callbacks. 7 | */ 8 | public interface LauncherProviderChangeListener { 9 | 10 | public void onLauncherProviderChange(); 11 | 12 | public void onExtractedColorsChanged(); 13 | } 14 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LauncherTransitionable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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.launcher3; 18 | 19 | /** 20 | * An interface to get callbacks during a launcher transition. 21 | */ 22 | public interface LauncherTransitionable { 23 | void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean multiplePagesVisible); 24 | 25 | void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace); 26 | 27 | void onLauncherTransitionStep(Launcher l, float t); 28 | 29 | void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace); 30 | } 31 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LogAccelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogAccelerateInterpolator implements TimeInterpolator { 6 | 7 | final float mLogScale; 8 | int mBase; 9 | int mDrift; 10 | 11 | public LogAccelerateInterpolator(int base, int drift) { 12 | mBase = base; 13 | mDrift = drift; 14 | mLogScale = 1f / computeLog(1, mBase, mDrift); 15 | } 16 | 17 | static float computeLog(float t, int base, int drift) { 18 | return (float) -Math.pow(base, -t) + 1 + (drift * t); 19 | } 20 | 21 | @Override 22 | public float getInterpolation(float t) { 23 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. 24 | // To account for this, we short-circuit to return 1 if the input is 1. 25 | return Float.compare(t, 1f) == 0 ? 1f : 1 - computeLog(1 - t, mBase, mDrift) * mLogScale; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LogDecelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogDecelerateInterpolator implements TimeInterpolator { 6 | 7 | final float mLogScale; 8 | int mBase; 9 | int mDrift; 10 | 11 | public LogDecelerateInterpolator(int base, int drift) { 12 | mBase = base; 13 | mDrift = drift; 14 | 15 | mLogScale = 1f / computeLog(1, mBase, mDrift); 16 | } 17 | 18 | static float computeLog(float t, int base, int drift) { 19 | return (float) -Math.pow(base, -t) + 1 + (drift * t); 20 | } 21 | 22 | @Override 23 | public float getInterpolation(float t) { 24 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. 25 | // To account for this, we short-circuit to return 1 if the input is 1. 26 | return Float.compare(t, 1f) == 0 ? 1f : computeLog(t, mBase, mDrift) * mLogScale; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/android/launcher3/OnAlarmListener.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | public interface OnAlarmListener { 4 | public void onAlarm(Alarm alarm); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/android/launcher3/PendingAddItemInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 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.launcher3; 18 | 19 | import android.content.ComponentName; 20 | 21 | /** 22 | * Meta data that is used for deferred binding. 23 | * e.g., this object is used to pass information on dragable targets when they are dropped onto 24 | * the workspace from another container. 25 | */ 26 | public class PendingAddItemInfo extends ItemInfo { 27 | 28 | /** 29 | * The component that will be created. 30 | */ 31 | public ComponentName componentName; 32 | 33 | @Override 34 | protected String dumpProperties() { 35 | return super.dumpProperties() + " componentName=" + componentName; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/com/android/launcher3/SimpleOnStylusPressListener.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.view.MotionEvent; 4 | import android.view.View; 5 | 6 | import com.android.launcher3.StylusEventHelper.StylusButtonListener; 7 | 8 | /** 9 | * Simple listener that performs a long click on the view after a stylus button press. 10 | */ 11 | public class SimpleOnStylusPressListener implements StylusButtonListener { 12 | private View mView; 13 | 14 | public SimpleOnStylusPressListener(View view) { 15 | mView = view; 16 | } 17 | 18 | public boolean onPressed(MotionEvent event) { 19 | return mView.isLongClickable() && mView.performLongClick(); 20 | } 21 | 22 | public boolean onReleased(MotionEvent event) { 23 | return false; 24 | } 25 | } -------------------------------------------------------------------------------- /src/com/android/launcher3/WorkspaceCallbacks.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.view.MotionEvent; 4 | 5 | public interface WorkspaceCallbacks { 6 | 7 | boolean onInterceptTouchEvent(MotionEvent event); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/android/launcher3/allapps/DefaultAppSearchController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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 | package com.android.launcher3.allapps; 17 | 18 | /** 19 | * The default search controller. 20 | */ 21 | public class DefaultAppSearchController extends AllAppsSearchBarController { 22 | 23 | public DefaultAppSearchAlgorithm onInitializeSearch() { 24 | return new DefaultAppSearchAlgorithm(mApps.getApps()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/android/launcher3/compat/LauncherActivityInfoCompat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 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.launcher3.compat; 18 | 19 | import android.content.ComponentName; 20 | import android.content.Context; 21 | import android.content.pm.ApplicationInfo; 22 | import android.content.pm.ResolveInfo; 23 | import android.graphics.drawable.Drawable; 24 | 25 | public abstract class LauncherActivityInfoCompat { 26 | 27 | LauncherActivityInfoCompat() { 28 | } 29 | 30 | /** 31 | * Creates a LauncherActivityInfoCompat for the primary user. 32 | */ 33 | public static LauncherActivityInfoCompat fromResolveInfo(ResolveInfo info, Context context) { 34 | return new LauncherActivityInfoCompatV16(context, info); 35 | } 36 | 37 | public abstract ComponentName getComponentName(); 38 | 39 | public abstract UserHandleCompat getUser(); 40 | 41 | public abstract CharSequence getLabel(); 42 | 43 | public abstract Drawable getIcon(int density); 44 | 45 | public abstract ApplicationInfo getApplicationInfo(); 46 | 47 | public abstract long getFirstInstallTime(); 48 | } 49 | -------------------------------------------------------------------------------- /src/com/android/launcher3/compat/PackageInstallerCompatV16.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 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.launcher3.compat; 18 | 19 | import java.util.HashMap; 20 | 21 | public class PackageInstallerCompatV16 extends PackageInstallerCompat { 22 | 23 | PackageInstallerCompatV16() { 24 | } 25 | 26 | @Override 27 | public void onStop() { 28 | } 29 | 30 | @Override 31 | public HashMap updateAndGetActiveSessionCache() { 32 | return new HashMap<>(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/com/android/launcher3/compat/UserManagerCompatVM.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.compat; 18 | 19 | import android.annotation.TargetApi; 20 | import android.content.Context; 21 | import android.os.Build; 22 | 23 | @TargetApi(Build.VERSION_CODES.M) 24 | public class UserManagerCompatVM extends UserManagerCompatVL { 25 | 26 | UserManagerCompatVM(Context context) { 27 | super(context); 28 | } 29 | 30 | @Override 31 | public long getUserCreationTime(UserHandleCompat user) { 32 | return mUserManager.getUserCreationTime(user.getUser()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/com/android/launcher3/compat/UserManagerCompatVN.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.compat; 18 | 19 | import android.annotation.TargetApi; 20 | import android.content.Context; 21 | import android.os.Build; 22 | 23 | @TargetApi(Build.VERSION_CODES.N) 24 | public class UserManagerCompatVN extends UserManagerCompatVM { 25 | 26 | UserManagerCompatVN(Context context) { 27 | super(context); 28 | } 29 | 30 | @Override 31 | public boolean isQuietModeEnabled(UserHandleCompat user) { 32 | return mUserManager.isQuietModeEnabled(user.getUser()); 33 | } 34 | 35 | @Override 36 | public boolean isUserUnlocked(UserHandleCompat user) { 37 | return mUserManager.isUserUnlocked(user.getUser()); 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /src/com/android/launcher3/compat/UserManagerCompatVNMr1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.compat; 18 | 19 | import android.annotation.TargetApi; 20 | import android.content.Context; 21 | import android.os.Build; 22 | 23 | @TargetApi(Build.VERSION_CODES.N_MR1) 24 | public class UserManagerCompatVNMr1 extends UserManagerCompatVN { 25 | 26 | UserManagerCompatVNMr1(Context context) { 27 | super(context); 28 | } 29 | 30 | @Override 31 | public boolean isDemoUser() { 32 | return mUserManager.isDemoUser(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/com/android/launcher3/dragndrop/DragScroller.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 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.launcher3.dragndrop; 18 | 19 | /** 20 | * Handles scrolling while dragging 21 | */ 22 | public interface DragScroller { 23 | void scrollLeft(); 24 | 25 | void scrollRight(); 26 | 27 | /** 28 | * The touch point has entered the scroll area; a scroll is imminent. 29 | * This event will only occur while a drag is active. 30 | * 31 | * @param direction The scroll direction 32 | */ 33 | boolean onEnterScrollArea(int x, int y, int direction); 34 | 35 | /** 36 | * The touch point has left the scroll area. 37 | * NOTE: This may not be called, if a drop occurs inside the scroll area. 38 | */ 39 | boolean onExitScrollArea(); 40 | } 41 | -------------------------------------------------------------------------------- /src/com/android/launcher3/keyboard/FocusedItemDecorator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.keyboard; 18 | 19 | import android.graphics.Canvas; 20 | import android.graphics.Rect; 21 | import android.support.v7.widget.RecyclerView; 22 | import android.support.v7.widget.RecyclerView.ItemDecoration; 23 | import android.support.v7.widget.RecyclerView.State; 24 | import android.view.View; 25 | import android.view.View.OnFocusChangeListener; 26 | 27 | /** 28 | * {@link ItemDecoration} for drawing and animating focused view background. 29 | */ 30 | public class FocusedItemDecorator extends ItemDecoration { 31 | 32 | private FocusIndicatorHelper mHelper; 33 | 34 | public FocusedItemDecorator(View container) { 35 | mHelper = new FocusIndicatorHelper(container) { 36 | 37 | @Override 38 | public void viewToRect(View v, Rect outRect) { 39 | outRect.set(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()); 40 | } 41 | }; 42 | } 43 | 44 | public OnFocusChangeListener getFocusListener() { 45 | return mHelper; 46 | } 47 | 48 | @Override 49 | public void onDraw(Canvas c, RecyclerView parent, State state) { 50 | mHelper.draw(c); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/com/android/launcher3/model/AbstractUserComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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 | package com.android.launcher3.model; 17 | 18 | import android.content.Context; 19 | 20 | import com.android.launcher3.ItemInfo; 21 | import com.android.launcher3.compat.UserHandleCompat; 22 | import com.android.launcher3.compat.UserManagerCompat; 23 | 24 | import java.util.Comparator; 25 | 26 | /** 27 | * A comparator to arrange items based on user profiles. 28 | */ 29 | public abstract class AbstractUserComparator implements Comparator { 30 | 31 | private final UserManagerCompat mUserManager; 32 | private final UserHandleCompat mMyUser; 33 | 34 | public AbstractUserComparator(Context context) { 35 | mUserManager = UserManagerCompat.getInstance(context); 36 | mMyUser = UserHandleCompat.myUserHandle(); 37 | } 38 | 39 | @Override 40 | public int compare(T lhs, T rhs) { 41 | if (mMyUser.equals(lhs.user)) { 42 | return -1; 43 | } else { 44 | Long aUserSerial = mUserManager.getSerialNumberForUser(lhs.user); 45 | Long bUserSerial = mUserManager.getSerialNumberForUser(rhs.user); 46 | return aUserSerial.compareTo(bUserSerial); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/com/android/launcher3/model/PackageItemInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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.launcher3.model; 18 | 19 | import android.graphics.Bitmap; 20 | 21 | import com.android.launcher3.ItemInfo; 22 | 23 | /** 24 | * Represents a {@link Package} in the widget tray section. 25 | */ 26 | public class PackageItemInfo extends ItemInfo { 27 | 28 | /** 29 | * A bitmap version of the application icon. 30 | */ 31 | public Bitmap iconBitmap; 32 | 33 | /** 34 | * Indicates whether we're using a low res icon. 35 | */ 36 | public boolean usingLowResIcon; 37 | 38 | /** 39 | * Package name of the {@link ItemInfo}. 40 | */ 41 | public String packageName; 42 | 43 | /** 44 | * Character that is used as a section name for the {@link ItemInfo#title}. 45 | * (e.g., "G" will be stored if title is "Google") 46 | */ 47 | public String titleSectionName; 48 | 49 | PackageItemInfo(String packageName) { 50 | this.packageName = packageName; 51 | } 52 | 53 | @Override 54 | protected String dumpProperties() { 55 | return super.dumpProperties() + " packageName=" + packageName; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/com/android/launcher3/shortcuts/ShortcutKey.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.shortcuts; 2 | 3 | import android.content.ComponentName; 4 | import android.content.Intent; 5 | 6 | import com.android.launcher3.ShortcutInfo; 7 | import com.android.launcher3.compat.UserHandleCompat; 8 | import com.android.launcher3.util.ComponentKey; 9 | 10 | /** 11 | * A key that uniquely identifies a shortcut using its package, id, and user handle. 12 | */ 13 | public class ShortcutKey extends ComponentKey { 14 | 15 | public ShortcutKey(String packageName, UserHandleCompat user, String id) { 16 | // Use the id as the class name. 17 | super(new ComponentName(packageName, id), user); 18 | } 19 | 20 | public static ShortcutKey fromInfo(ShortcutInfoCompat shortcutInfo) { 21 | return new ShortcutKey(shortcutInfo.getPackage(), shortcutInfo.getUserHandle(), 22 | shortcutInfo.getId()); 23 | } 24 | 25 | public static ShortcutKey fromIntent(Intent intent, UserHandleCompat user) { 26 | String shortcutId = intent.getStringExtra( 27 | ShortcutInfoCompat.EXTRA_SHORTCUT_ID); 28 | return new ShortcutKey(intent.getPackage(), user, shortcutId); 29 | } 30 | 31 | public static ShortcutKey fromShortcutInfo(ShortcutInfo info) { 32 | return fromIntent(info.getPromisedIntent(), info.user); 33 | } 34 | 35 | public String getId() { 36 | return componentName.getClassName(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/com/android/launcher3/testing/DummyWidget.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.testing; 2 | 3 | import android.appwidget.AppWidgetProviderInfo; 4 | 5 | import com.android.launcher3.CustomAppWidget; 6 | import com.android.launcher3.R; 7 | 8 | public class DummyWidget implements CustomAppWidget { 9 | @Override 10 | public String getLabel() { 11 | return "Dumb Launcher Widget"; 12 | } 13 | 14 | @Override 15 | public int getPreviewImage() { 16 | return 0; 17 | } 18 | 19 | @Override 20 | public int getIcon() { 21 | return 0; 22 | } 23 | 24 | @Override 25 | public int getWidgetLayout() { 26 | return R.layout.zzz_dummy_widget; 27 | } 28 | 29 | @Override 30 | public int getSpanX() { 31 | return 2; 32 | } 33 | 34 | @Override 35 | public int getSpanY() { 36 | return 2; 37 | } 38 | 39 | @Override 40 | public int getMinSpanX() { 41 | return 1; 42 | } 43 | 44 | @Override 45 | public int getMinSpanY() { 46 | return 1; 47 | } 48 | 49 | @Override 50 | public int getResizeMode() { 51 | return AppWidgetProviderInfo.RESIZE_BOTH; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/com/android/launcher3/testing/ToggleWeightWatcher.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.testing; 2 | 3 | import android.app.Activity; 4 | import android.content.SharedPreferences; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | 8 | import com.android.launcher3.Launcher; 9 | import com.android.launcher3.LauncherAppState; 10 | import com.android.launcher3.Utilities; 11 | import com.android.launcher3.util.TestingUtils; 12 | 13 | public class ToggleWeightWatcher extends Activity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | 19 | SharedPreferences sp = Utilities.getPrefs(this); 20 | boolean show = sp.getBoolean(TestingUtils.SHOW_WEIGHT_WATCHER, true); 21 | 22 | show = !show; 23 | sp.edit().putBoolean(TestingUtils.SHOW_WEIGHT_WATCHER, show).apply(); 24 | 25 | Launcher launcher = (Launcher) LauncherAppState.getInstance().getModel().getCallback(); 26 | if (launcher != null && launcher.mWeightWatcher != null) { 27 | launcher.mWeightWatcher.setVisibility(show ? View.VISIBLE : View.GONE); 28 | } 29 | finish(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/CellAndSpan.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | /** 4 | * Base class which represents an area on the grid. 5 | */ 6 | public class CellAndSpan { 7 | 8 | /** 9 | * Indicates the X position of the associated cell. 10 | */ 11 | public int cellX = -1; 12 | 13 | /** 14 | * Indicates the Y position of the associated cell. 15 | */ 16 | public int cellY = -1; 17 | 18 | /** 19 | * Indicates the X cell span. 20 | */ 21 | public int spanX = 1; 22 | 23 | /** 24 | * Indicates the Y cell span. 25 | */ 26 | public int spanY = 1; 27 | 28 | public CellAndSpan() { 29 | } 30 | 31 | public CellAndSpan(int cellX, int cellY, int spanX, int spanY) { 32 | this.cellX = cellX; 33 | this.cellY = cellY; 34 | this.spanX = spanX; 35 | this.spanY = spanY; 36 | } 37 | 38 | public void copyFrom(CellAndSpan copy) { 39 | cellX = copy.cellX; 40 | cellY = copy.cellY; 41 | spanX = copy.spanX; 42 | spanY = copy.spanY; 43 | } 44 | 45 | public String toString() { 46 | return "(" + cellX + ", " + cellY + ": " + spanX + ", " + spanY + ")"; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/FlagOp.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | public abstract class FlagOp { 4 | 5 | public static FlagOp NO_OP = new FlagOp() { 6 | }; 7 | 8 | private FlagOp() { 9 | } 10 | 11 | public static FlagOp addFlag(final int flag) { 12 | return new FlagOp() { 13 | @Override 14 | public int apply(int flags) { 15 | return flags | flag; 16 | } 17 | }; 18 | } 19 | 20 | public static FlagOp removeFlag(final int flag) { 21 | return new FlagOp() { 22 | @Override 23 | public int apply(int flags) { 24 | return flags & ~flag; 25 | } 26 | }; 27 | } 28 | 29 | public int apply(int flags) { 30 | return flags; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/MultiHashMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.util; 18 | 19 | import java.util.ArrayList; 20 | import java.util.HashMap; 21 | 22 | /** 23 | * A utility map from keys to an ArrayList of values. 24 | */ 25 | public class MultiHashMap extends HashMap> { 26 | 27 | public MultiHashMap() { 28 | } 29 | 30 | public MultiHashMap(int size) { 31 | super(size); 32 | } 33 | 34 | public void addToList(K key, V value) { 35 | ArrayList list = get(key); 36 | if (list == null) { 37 | list = new ArrayList<>(); 38 | list.add(value); 39 | put(key, list); 40 | } else { 41 | list.add(value); 42 | } 43 | } 44 | 45 | @Override 46 | public MultiHashMap clone() { 47 | MultiHashMap map = new MultiHashMap<>(size()); 48 | for (Entry> entry : entrySet()) { 49 | map.put(entry.getKey(), new ArrayList(entry.getValue())); 50 | } 51 | return map; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/NoLocaleSqliteContext.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import android.content.Context; 4 | import android.content.ContextWrapper; 5 | import android.database.DatabaseErrorHandler; 6 | import android.database.sqlite.SQLiteDatabase; 7 | import android.database.sqlite.SQLiteDatabase.CursorFactory; 8 | 9 | /** 10 | * A context wrapper which creates databases without support for localized collators. 11 | */ 12 | public class NoLocaleSqliteContext extends ContextWrapper { 13 | 14 | // TODO: Use the flag defined in Context when the new SDK is available 15 | private static final int MODE_NO_LOCALIZED_COLLATORS = 0x0010; 16 | 17 | public NoLocaleSqliteContext(Context context) { 18 | super(context); 19 | } 20 | 21 | @Override 22 | public SQLiteDatabase openOrCreateDatabase( 23 | String name, int mode, CursorFactory factory, DatabaseErrorHandler errorHandler) { 24 | return super.openOrCreateDatabase( 25 | name, mode | MODE_NO_LOCALIZED_COLLATORS, factory, errorHandler); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/PillWidthRevealOutlineProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 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.launcher3.util; 18 | 19 | import android.graphics.Rect; 20 | 21 | /** 22 | * Extension of {@link PillRevealOutlineProvider} which only changes the width of the pill. 23 | */ 24 | public class PillWidthRevealOutlineProvider extends PillRevealOutlineProvider { 25 | 26 | private final int mStartLeft; 27 | private final int mStartRight; 28 | 29 | public PillWidthRevealOutlineProvider(Rect pillRect, int left, int right) { 30 | super(0, 0, pillRect); 31 | mOutline.set(pillRect); 32 | mStartLeft = left; 33 | mStartRight = right; 34 | } 35 | 36 | @Override 37 | public void setProgress(float progress) { 38 | mOutline.left = (int) (progress * mPillRect.left + (1 - progress) * mStartLeft); 39 | mOutline.right = (int) (progress * mPillRect.right + (1 - progress) * mStartRight); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/StringFilter.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import java.util.Set; 4 | 5 | /** 6 | * Abstract class to filter a set of strings. 7 | */ 8 | public abstract class StringFilter { 9 | 10 | private StringFilter() { 11 | } 12 | 13 | public static StringFilter matchesAll() { 14 | return new StringFilter() { 15 | @Override 16 | public boolean matches(String str) { 17 | return true; 18 | } 19 | }; 20 | } 21 | 22 | public static StringFilter of(final Set validEntries) { 23 | return new StringFilter() { 24 | @Override 25 | public boolean matches(String str) { 26 | return validEntries.contains(str); 27 | } 28 | }; 29 | } 30 | 31 | public abstract boolean matches(String str); 32 | } 33 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/Thunk.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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.launcher3.util; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * Indicates that the given field or method has package visibility solely to prevent the creation 26 | * of a synthetic method. In practice, you should treat this field/method as if it were private. 27 | *

28 | *

29 | * When a private method is called from an inner class, the Java compiler generates a simple 30 | * package private shim method that the class generated from the inner class can call. This results 31 | * in unnecessary bloat and runtime method call overhead. It also gets us closer to the dex method 32 | * count limit. 33 | *

34 | *

35 | * If you'd like to see warnings for these synthetic methods in eclipse, turn on: 36 | * Window > Preferences > Java > Compiler > Errors/Warnings > "Access to a non-accessible member 37 | * of an enclosing type". 38 | *

39 | */ 40 | @Retention(RetentionPolicy.SOURCE) 41 | @Target({ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.TYPE}) 42 | public @interface Thunk { 43 | } -------------------------------------------------------------------------------- /src/com/android/launcher3/util/TouchController.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import android.view.MotionEvent; 4 | 5 | public interface TouchController { 6 | boolean onTouchEvent(MotionEvent ev); 7 | 8 | boolean onInterceptTouchEvent(MotionEvent ev); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/android/launcher3/widget/PendingAddShortcutInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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 | package com.android.launcher3.widget; 17 | 18 | import android.content.ComponentName; 19 | import android.content.pm.ActivityInfo; 20 | 21 | import com.android.launcher3.LauncherSettings; 22 | import com.android.launcher3.PendingAddItemInfo; 23 | 24 | /** 25 | * Meta data used for late binding of the short cuts. 26 | * 27 | * @see {@link PendingAddItemInfo} 28 | */ 29 | public class PendingAddShortcutInfo extends PendingAddItemInfo { 30 | 31 | ActivityInfo activityInfo; 32 | 33 | public PendingAddShortcutInfo(ActivityInfo activityInfo) { 34 | this.activityInfo = activityInfo; 35 | componentName = new ComponentName(activityInfo.packageName, activityInfo.name); 36 | itemType = LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/com/android/launcher3/widget/WidgetsRowViewHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 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 | package com.android.launcher3.widget; 17 | 18 | import android.support.v7.widget.RecyclerView.ViewHolder; 19 | import android.view.ViewGroup; 20 | 21 | import com.android.launcher3.BubbleTextView; 22 | import com.android.launcher3.R; 23 | 24 | public class WidgetsRowViewHolder extends ViewHolder { 25 | 26 | public final ViewGroup cellContainer; 27 | public final BubbleTextView title; 28 | 29 | public WidgetsRowViewHolder(ViewGroup v) { 30 | super(v); 31 | 32 | cellContainer = (ViewGroup) v.findViewById(R.id.widgets_cell_list); 33 | title = (BubbleTextView) v.findViewById(R.id.section); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/org/slim/launcher/SlimDeviceProfile.java: -------------------------------------------------------------------------------- 1 | package org.slim.launcher; 2 | 3 | import com.android.launcher3.DeviceProfile; 4 | 5 | import org.slim.launcher.settings.SettingsProvider; 6 | 7 | public class SlimDeviceProfile { 8 | 9 | public int workspacePaddingTop; 10 | 11 | @SuppressWarnings("unused") 12 | public SlimDeviceProfile(SlimLauncher slimLauncher) { 13 | } 14 | 15 | public void updateFromPreferences() { 16 | 17 | boolean showSearchBar = SettingsProvider.getBoolean(SlimLauncher.getInstance(), 18 | SettingsProvider.KEY_SHOW_SEARCH_BAR, true); 19 | 20 | DeviceProfile profile = SlimLauncher.getInstance().getDeviceProfile(); 21 | 22 | //Rect searchBarBounds = profile.getSearchBarBounds(false); 23 | 24 | workspacePaddingTop = 0; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/DockFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.os.Bundle; 20 | 21 | import com.android.launcher3.R; 22 | 23 | import org.slim.launcher.preference.NumberPickerPreference; 24 | 25 | public class DockFragment extends SettingsPreferenceFragment { 26 | 27 | @Override 28 | public void onCreate(Bundle savedInstanceState) { 29 | super.onCreate(savedInstanceState); 30 | addPreferencesFromResource(R.xml.dock_preferences); 31 | 32 | final NumberPickerPreference dockIcons = (NumberPickerPreference) 33 | findPreference(SettingsProvider.KEY_DOCK_ICONS); 34 | 35 | if (mProfile != null) { 36 | if (SettingsProvider.getInt(getActivity(), 37 | SettingsProvider.KEY_DOCK_ICONS, 0) < 1) { 38 | SettingsProvider.putInt(getActivity(), 39 | SettingsProvider.KEY_DOCK_ICONS, mProfile.numHotseatIcons); 40 | } 41 | dockIcons.setDefaultValue(mProfile.numHotseatIcons); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/DrawerFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.os.Bundle; 20 | 21 | import com.android.launcher3.R; 22 | 23 | public class DrawerFragment extends SettingsPreferenceFragment { 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | 29 | addPreferencesFromResource(R.xml.drawer_preferences); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/FolderFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.os.Bundle; 20 | import android.preference.Preference; 21 | 22 | public class FolderFragment extends SettingsPreferenceFragment 23 | implements Preference.OnPreferenceChangeListener { 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | } 29 | 30 | @Override 31 | public boolean onPreferenceChange(Preference preference, Object newValue) { 32 | return true; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/GeneralFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.os.Bundle; 20 | 21 | public class GeneralFragment extends SettingsPreferenceFragment { 22 | 23 | @Override 24 | public void onCreate(Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/HomescreenFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.os.Bundle; 20 | 21 | import com.android.launcher3.R; 22 | 23 | public class HomescreenFragment extends SettingsPreferenceFragment { 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | 29 | addPreferencesFromResource(R.xml.homescreen_preferences); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/SettingsKeys.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | public interface SettingsKeys { 20 | 21 | String DEFAULT_HOMESCREEN = "default_homescreen"; 22 | 23 | // Homescreen 24 | String KEY_SHOW_SEARCH_BAR = "show_search_bar"; 25 | String KEY_HOMESCREEN_GRID = "homescreen_grid"; 26 | String KEY_SHOW_SHADOW = "show_shadow"; 27 | 28 | // Drawer 29 | String KEY_DRAWER_SEARCH_ENABLED = "drawer_search_bar"; 30 | 31 | // Dock 32 | String KEY_DOCK_ICONS = "dock_icon_count"; 33 | 34 | // Gestures 35 | String LEFT_UP_GESTURE_ACTION = "left_up_gesture_action"; 36 | String MIDDLE_UP_GESTURE_ACTION = "middle_up_gesture_action"; 37 | String RIGHT_UP_GESTURE_ACTION = "right_up_gesture_action"; 38 | String LEFT_DOWN_GESTURE_ACTION = "left_down_gesture_action"; 39 | String MIDDLE_DOWN_GESTURE_ACTION = "middle_down_gesture_action"; 40 | String RIGHT_DOWN_GESTURE_ACTION = "right_down_gesture_action"; 41 | String PINCH_GESTURE_ACTION = "pinch_gesture_action"; 42 | String SPREAD_GESTURE_ACTION = "spread_gesture_action"; 43 | String DOUBLE_TAP_GESTURE_ACTION = "double_tap_gesture_action"; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/org/slim/launcher/settings/SettingsPreferenceFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 The SlimRoms 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 org.slim.launcher.settings; 18 | 19 | import android.content.Context; 20 | import android.os.Bundle; 21 | import android.preference.PreferenceFragment; 22 | import android.view.MenuItem; 23 | 24 | import com.android.launcher3.InvariantDeviceProfile; 25 | import com.android.launcher3.LauncherAppState; 26 | 27 | public class SettingsPreferenceFragment extends PreferenceFragment { 28 | 29 | InvariantDeviceProfile mProfile; 30 | 31 | Context mContext; 32 | 33 | @Override 34 | public void onCreate(Bundle savedInstanceState) { 35 | super.onCreate(savedInstanceState); 36 | 37 | mProfile = LauncherAppState.getInstanceNoCreate().getInvariantDeviceProfile(); 38 | 39 | mContext = getActivity(); 40 | } 41 | 42 | @Override 43 | public boolean onOptionsItemSelected(MenuItem item) { 44 | switch (item.getItemId()) { 45 | case android.R.id.home: 46 | getActivity().onBackPressed(); 47 | return true; 48 | } 49 | return super.onOptionsItemSelected(item); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src_config/com/android/launcher3/config/ProviderConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 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.launcher3.config; 18 | 19 | import com.android.launcher3.BuildConfig; 20 | 21 | public class ProviderConfig { 22 | 23 | public static final String AUTHORITY = BuildConfig.APPLICATION_ID + ".settings"; 24 | 25 | public static boolean IS_DOGFOOD_BUILD = true; 26 | } 27 | -------------------------------------------------------------------------------- /tests/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | 16 | LOCAL_PATH := $(call my-dir) 17 | include $(CLEAR_VARS) 18 | 19 | LOCAL_MODULE_TAGS := tests 20 | LOCAL_STATIC_JAVA_LIBRARIES := android-support-test ub-uiautomator 21 | 22 | LOCAL_SRC_FILES := $(call all-java-files-under, src) 23 | 24 | LOCAL_SDK_VERSION := current 25 | 26 | LOCAL_PACKAGE_NAME := SlimLauncherTests 27 | 28 | LOCAL_INSTRUMENTATION_FOR := SlimLauncher 29 | 30 | include $(BUILD_PACKAGE) 31 | -------------------------------------------------------------------------------- /tests/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /tests/src/com/android/launcher3/util/TestLauncherProvider.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteOpenHelper; 5 | 6 | import com.android.launcher3.LauncherProvider; 7 | 8 | /** 9 | * An extension of LauncherProvider backed up by in-memory database. 10 | */ 11 | public class TestLauncherProvider extends LauncherProvider { 12 | 13 | @Override 14 | public boolean onCreate() { 15 | return true; 16 | } 17 | 18 | @Override 19 | protected synchronized void createDbIfNotExists() { 20 | if (mOpenHelper == null) { 21 | mOpenHelper = new MyDatabaseHelper(getContext()); 22 | } 23 | } 24 | 25 | public SQLiteOpenHelper getHelper() { 26 | createDbIfNotExists(); 27 | return mOpenHelper; 28 | } 29 | 30 | @Override 31 | protected void notifyListeners() { } 32 | 33 | private static class MyDatabaseHelper extends DatabaseHelper { 34 | public MyDatabaseHelper(Context context) { 35 | super(context, null, null); 36 | initIds(); 37 | } 38 | 39 | @Override 40 | public long getDefaultUserSerial() { 41 | return 0; 42 | } 43 | 44 | @Override 45 | protected void onEmptyDbCreated() { } 46 | } 47 | } -------------------------------------------------------------------------------- /tests/src/com/android/launcher3/util/Wait.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import android.os.SystemClock; 4 | 5 | /** 6 | * A utility class for waiting for a condition to be true. 7 | */ 8 | public class Wait { 9 | 10 | private static final long DEFAULT_SLEEP_MS = 200; 11 | 12 | public static boolean atMost(Condition condition, long timeout) { 13 | return atMost(condition, timeout, DEFAULT_SLEEP_MS); 14 | } 15 | 16 | public static boolean atMost(Condition condition, long timeout, long sleepMillis) { 17 | long endTime = SystemClock.uptimeMillis() + timeout; 18 | while (SystemClock.uptimeMillis() < endTime) { 19 | try { 20 | if (condition.isTrue()) { 21 | return true; 22 | } 23 | } catch (Throwable t) { 24 | // Ignore 25 | } 26 | SystemClock.sleep(sleepMillis); 27 | } 28 | 29 | // Check once more before returning false. 30 | try { 31 | if (condition.isTrue()) { 32 | return true; 33 | } 34 | } catch (Throwable t) { 35 | // Ignore 36 | } 37 | return false; 38 | } 39 | } 40 | --------------------------------------------------------------------------------