├── app ├── .gitignore ├── debug.jks └── src │ └── main │ ├── res │ ├── values-sw600dp │ │ ├── config.xml │ │ └── dimens.xml │ ├── drawable-hdpi │ │ ├── weather_01.png │ │ ├── weather_01n.png │ │ ├── weather_02.png │ │ ├── weather_02n.png │ │ ├── weather_03.png │ │ ├── weather_03n.png │ │ ├── weather_04.png │ │ ├── weather_04n.png │ │ ├── weather_09.png │ │ ├── weather_10.png │ │ ├── weather_10n.png │ │ ├── weather_11.png │ │ ├── weather_13.png │ │ ├── weather_50.png │ │ ├── widget_tile.png │ │ ├── ic_shortcut_home.png │ │ ├── workspace_bg.9.png │ │ ├── launcher_clock_top.png │ │ ├── page_hover_left.9.png │ │ ├── page_hover_right.9.png │ │ ├── tile_shadow_top.9.png │ │ ├── virtual_preload.9.png │ │ ├── launcher_clock_base.png │ │ ├── launcher_clock_hour.png │ │ ├── launcher_clock_minute.png │ │ ├── launcher_clock_second.png │ │ ├── tile_shadow_bottom.9.png │ │ ├── widget_resize_frame.9.png │ │ ├── weather_none_available.png │ │ ├── widget_resize_shadow.9.png │ │ ├── page_hover_left_active.9.png │ │ ├── page_hover_right_active.9.png │ │ └── virtual_preload_folder.9.png │ ├── drawable-mdpi │ │ ├── weather_01.png │ │ ├── weather_01n.png │ │ ├── weather_02.png │ │ ├── weather_02n.png │ │ ├── weather_03.png │ │ ├── weather_03n.png │ │ ├── weather_04.png │ │ ├── weather_04n.png │ │ ├── weather_09.png │ │ ├── weather_10.png │ │ ├── weather_10n.png │ │ ├── weather_11.png │ │ ├── weather_13.png │ │ ├── weather_50.png │ │ ├── widget_tile.png │ │ ├── ic_shortcut_home.png │ │ ├── workspace_bg.9.png │ │ ├── launcher_clock_top.png │ │ ├── page_hover_left.9.png │ │ ├── page_hover_right.9.png │ │ ├── tile_shadow_top.9.png │ │ ├── virtual_preload.9.png │ │ ├── launcher_clock_base.png │ │ ├── launcher_clock_hour.png │ │ ├── launcher_clock_minute.png │ │ ├── launcher_clock_second.png │ │ ├── tile_shadow_bottom.9.png │ │ ├── widget_resize_frame.9.png │ │ ├── weather_none_available.png │ │ ├── widget_resize_shadow.9.png │ │ ├── page_hover_left_active.9.png │ │ ├── page_hover_right_active.9.png │ │ └── virtual_preload_folder.9.png │ ├── drawable-xhdpi │ │ ├── weather_01.png │ │ ├── weather_02.png │ │ ├── weather_03.png │ │ ├── weather_04.png │ │ ├── weather_09.png │ │ ├── weather_10.png │ │ ├── weather_11.png │ │ ├── weather_13.png │ │ ├── weather_50.png │ │ ├── weather_01n.png │ │ ├── weather_02n.png │ │ ├── weather_03n.png │ │ ├── weather_04n.png │ │ ├── weather_10n.png │ │ ├── widget_tile.png │ │ ├── workspace_bg.9.png │ │ ├── ic_shortcut_home.png │ │ ├── page_hover_left.9.png │ │ ├── tile_shadow_top.9.png │ │ ├── virtual_preload.9.png │ │ ├── launcher_clock_base.png │ │ ├── launcher_clock_hour.png │ │ ├── launcher_clock_top.png │ │ ├── page_hover_right.9.png │ │ ├── tile_shadow_bottom.9.png │ │ ├── launcher_clock_minute.png │ │ ├── launcher_clock_second.png │ │ ├── weather_none_available.png │ │ ├── widget_resize_frame.9.png │ │ ├── widget_resize_shadow.9.png │ │ ├── page_hover_left_active.9.png │ │ ├── page_hover_right_active.9.png │ │ └── virtual_preload_folder.9.png │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── values │ │ ├── ids.xml │ │ ├── integers.xml │ │ └── arrays.xml │ ├── xml │ │ ├── provider_paths.xml │ │ ├── sleep_admin_policy.xml │ │ ├── backupscheme.xml │ │ ├── launcher_debug_preferences.xml │ │ ├── launcher_hidden_preferences.xml │ │ ├── shortcuts.xml │ │ ├── app_target_email.xml │ │ ├── launcher_backup_preferences.xml │ │ ├── app_target_browser.xml │ │ ├── app_target_camera.xml │ │ ├── app_target_gallery.xml │ │ ├── app_target_phone.xml │ │ └── app_target_messenger.xml │ ├── drawable-xxhdpi │ │ ├── weather_01.png │ │ ├── weather_01n.png │ │ ├── weather_02.png │ │ ├── weather_02n.png │ │ ├── weather_03.png │ │ ├── weather_03n.png │ │ ├── weather_04.png │ │ ├── weather_04n.png │ │ ├── weather_09.png │ │ ├── weather_10.png │ │ ├── weather_10n.png │ │ ├── weather_11.png │ │ ├── weather_13.png │ │ ├── weather_50.png │ │ ├── widget_tile.png │ │ ├── workspace_bg.9.png │ │ ├── ic_shortcut_home.png │ │ ├── launcher_clock_base.png │ │ ├── launcher_clock_hour.png │ │ ├── launcher_clock_top.png │ │ ├── page_hover_left.9.png │ │ ├── page_hover_right.9.png │ │ ├── tile_shadow_top.9.png │ │ ├── virtual_preload.9.png │ │ ├── launcher_clock_minute.png │ │ ├── launcher_clock_second.png │ │ ├── tile_shadow_bottom.9.png │ │ ├── widget_resize_frame.9.png │ │ ├── page_hover_left_active.9.png │ │ ├── virtual_preload_folder.9.png │ │ ├── weather_none_available.png │ │ ├── widget_resize_shadow.9.png │ │ └── page_hover_right_active.9.png │ ├── drawable-xxxhdpi │ │ ├── weather_01.png │ │ ├── weather_02.png │ │ ├── weather_03.png │ │ ├── weather_04.png │ │ ├── weather_09.png │ │ ├── weather_10.png │ │ ├── weather_11.png │ │ ├── weather_13.png │ │ ├── weather_50.png │ │ ├── weather_01n.png │ │ ├── weather_02n.png │ │ ├── weather_03n.png │ │ ├── weather_04n.png │ │ ├── weather_10n.png │ │ ├── workspace_bg.9.png │ │ ├── ic_shortcut_home.png │ │ ├── launcher_clock_top.png │ │ ├── launcher_clock_base.png │ │ ├── launcher_clock_hour.png │ │ ├── launcher_clock_minute.png │ │ ├── launcher_clock_second.png │ │ ├── weather_none_available.png │ │ ├── widget_resize_frame.9.png │ │ └── widget_resize_shadow.9.png │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── raw │ │ └── keep.xml │ ├── values-en-rGB │ │ └── strings.xml │ ├── drawable │ │ ├── bg_white_round_rect.xml │ │ ├── card_round_rect.xml │ │ ├── launcher_clock_background.xml │ │ ├── round_rect_primary.xml │ │ ├── gutter_horizontal.xml │ │ ├── ic_check_white.xml │ │ ├── ic_desktop.xml │ │ ├── ic_widget_resize_handle.xml │ │ ├── bg_pixel_qsb_connector.xml │ │ ├── ic_close.xml │ │ ├── plane.xml │ │ ├── ic_backup.xml │ │ ├── ic_list_remove.xml │ │ ├── ic_edit_no_shadow.xml │ │ ├── ic_restore_white.xml │ │ ├── bg_qsb_mic.xml │ │ ├── ic_behavior.xml │ │ ├── ic_restore.xml │ │ ├── ic_uninstall_no_shadow.xml │ │ ├── ic_file_restore.xml │ │ ├── ic_actionbar_accept.xml │ │ ├── ic_undo_black_24dp.xml │ │ ├── ic_check.xml │ │ ├── ic_remove_no_shadow.xml │ │ ├── horizontal_ellipsis.xml │ │ ├── ic_share.xml │ │ ├── bg_qsb_pill.xml │ │ ├── ic_information.xml │ │ ├── ic_info_no_shadow.xml │ │ ├── bg_search_bar_round.xml │ │ ├── ic_images.xml │ │ ├── ic_dock.xml │ │ ├── ic_import_export.xml │ │ ├── ic_ui.xml │ │ ├── opa_assistant_logo.xml │ │ ├── ic_twitter.xml │ │ ├── all_apps_divider.xml │ │ ├── quantum_panel_shape.xml │ │ ├── quantum_panel_shape_dark.xml │ │ ├── all_apps_search_hint.xml │ │ ├── ic_super_g_color.xml │ │ ├── quantum_panel.xml │ │ ├── quantum_panel_dark.xml │ │ ├── widget_internal_focus_bg.xml │ │ └── container_fastscroll_popup_bg.xml │ ├── layout │ │ ├── qsb_wide_experiment.xml │ │ ├── widget_list_divider.xml │ │ ├── planes.xml │ │ ├── qsb_connector.xml │ │ ├── system_shortcut_icons.xml │ │ ├── icon_item.xml │ │ ├── system_shortcut_icon_only.xml │ │ ├── fragment_selectable_apps.xml │ │ ├── popup_container.xml │ │ ├── main_item.xml │ │ ├── plane_widget.xml │ │ ├── widget_cell.xml │ │ ├── activity_icon_picker.xml │ │ ├── backup_blank.xml │ │ ├── shortcuts_item.xml │ │ ├── widgets_scroll_container.xml │ │ ├── activity_backup_list.xml │ │ ├── qsb_without_mic.xml │ │ ├── qsb_wide_without_mic.xml │ │ ├── app_icon.xml │ │ ├── appwidget_not_ready.xml │ │ ├── folder_application.xml │ │ ├── qsb_blocker_view.xml │ │ ├── workspace_screen.xml │ │ ├── icon_category_loading.xml │ │ ├── qsb_container.xml │ │ ├── activity_settings.xml │ │ ├── hotseat.xml │ │ ├── activity_edit_icon.xml │ │ ├── all_apps_icon.xml │ │ ├── appwidget_error.xml │ │ ├── all_apps_search_divider.xml │ │ └── icon_pack_item.xml │ ├── values-v26 │ │ └── styles.xml │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── menu │ │ ├── menu_edit_icon.xml │ │ ├── menu_hide_apps.xml │ │ └── cab_delete_wallpapers.xml │ ├── animator │ │ ├── fade_out.xml │ │ ├── fade_in.xml │ │ ├── fly_in.xml │ │ └── fly_out.xml │ ├── values-sw720dp │ │ ├── config.xml │ │ └── dimens.xml │ ├── values-v23 │ │ └── styles.xml │ ├── anim │ │ ├── no_anim.xml │ │ ├── decelerate_quart.xml │ │ ├── decelerate_quint.xml │ │ ├── disco_bounce_section1.xml │ │ ├── disco_bounce_section2.xml │ │ ├── disco_bounce_section3.xml │ │ └── fade_out.xml │ ├── values-zh-rHK │ │ └── strings.xml │ ├── drawable-anydpi │ │ └── launcher_clock.xml │ ├── values-sw340dp │ │ └── dimens.xml │ └── drawable-ldrtl │ │ └── container_fastscroll_popup_bg.xml │ ├── ic_launcher-web.png │ └── java │ └── ch │ └── deletescape │ ├── lawnchair │ ├── OnAlarmListener.java │ ├── gestures │ │ ├── GestureHandler.kt │ │ ├── Gesture.kt │ │ ├── dt2s │ │ │ └── SleepDeviceAdmin.kt │ │ └── GestureController.kt │ ├── AppFilter.java │ ├── popup │ │ └── theme │ │ │ ├── IPopupThemer.kt │ │ │ ├── PopupBaseTheme.kt │ │ │ └── PopupCardTheme.kt │ ├── util │ │ ├── TouchController.java │ │ ├── Provider.java │ │ ├── MapHashMap.java │ │ ├── FlagOp.java │ │ ├── LabelComparator.java │ │ ├── StringFilter.java │ │ ├── NoLocaleSqliteContext.java │ │ └── CellAndSpan.java │ ├── config │ │ ├── IThemer.kt │ │ ├── ThemeProvider.kt │ │ └── ProviderConfig.kt │ ├── allapps │ │ ├── UnicodeStrippedAppSearchController.java │ │ ├── theme │ │ │ ├── AllAppsVerticalTheme.kt │ │ │ └── IAllAppsThemer.kt │ │ ├── DefaultAppSearchController.java │ │ └── UnicodeStrippedAppSearchAlgorithm.java │ ├── LauncherProviderChangeListener.java │ ├── widget │ │ └── WidgetListRowEntry.java │ ├── ItemInfoWithIcon.java │ ├── pixelify │ │ └── Util.java │ ├── preferences │ │ ├── PreferenceProvider.kt │ │ └── GoogleNowPreference.kt │ ├── BlankActivity.kt │ ├── iconpack │ │ └── DefaultIconPack.java │ ├── App.java │ ├── PreferenceAppFilter.java │ ├── kustomsupport │ │ └── AutoFinishTransparentActivity.java │ ├── SimpleOnStylusPressListener.java │ ├── EditableItemInfo.kt │ ├── LauncherFiles.java │ ├── StringSetAppFilter.java │ ├── LauncherBackupAgent.java │ ├── LogAccelerateInterpolator.java │ ├── LogDecelerateInterpolator.java │ ├── Insettable.java │ ├── badge │ │ └── FolderBadgeInfo.java │ ├── LauncherTransitionable.java │ └── compat │ │ └── UserManagerCompatVNMr1.java │ └── wallpaperpicker │ ├── WallpaperFiles.java │ ├── glrenderer │ ├── GLES20IdImpl.java │ └── GLId.java │ └── common │ ├── WallpaperManagerCompatV16.java │ └── WallpaperManagerCompatVN.java ├── lawnfeed ├── .gitignore ├── src │ └── main │ │ ├── ic_launcher-web.png │ │ ├── res │ │ ├── xml │ │ │ └── file_paths.xml │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ └── java │ │ └── ch │ │ └── deletescape │ │ └── lawnchair │ │ └── lawnfeed │ │ └── LauncherClientProxyService.kt └── proguard-rules.pro ├── launcherclient ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── res │ │ └── values │ │ │ └── strings.xml │ │ ├── aidl │ │ └── ch │ │ │ └── deletescape │ │ │ └── lawnchair │ │ │ └── launcherclient │ │ │ ├── WindowLayoutParams.aidl │ │ │ ├── ILauncherClientProxyCallback.aidl │ │ │ └── ILauncherClientProxy.aidl │ │ └── java │ │ └── ch │ │ └── deletescape │ │ └── lawnchair │ │ └── launcherclient │ │ └── LauncherClientProxyConnection.kt ├── build.gradle └── proguard-rules.pro ├── settings.gradle ├── banner.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── scripts ├── changelog.sh ├── deploy-hockeyapp.sh └── s3-upload.sh ├── gradle.properties ├── crowdin.yml └── .gitignore /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lawnfeed/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /launcherclient/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':launcherclient', ':lawnfeed' 2 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/banner.png -------------------------------------------------------------------------------- /app/debug.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/debug.jks -------------------------------------------------------------------------------- /launcherclient/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/config.xml: -------------------------------------------------------------------------------- 1 | 2 | true 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /launcherclient/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | LauncherClient 3 | 4 | -------------------------------------------------------------------------------- /lawnfeed/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_01n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_02n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_03n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_04n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_10n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_50.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/widget_tile.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_01n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_02n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_03n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_04n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_10n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_50.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/widget_tile.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_50.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_01n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_02n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_03n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_04n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_10n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/widget_tile.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_01n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_02n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_03n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_04n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_10n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_50.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/widget_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/widget_tile.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_50.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_shortcut_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/ic_shortcut_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_shortcut_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/ic_shortcut_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_01n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_02n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_03n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_04n.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_10n.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/launcher_clock_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/launcher_clock_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/tile_shadow_top.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/tile_shadow_top.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/launcher_clock_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/launcher_clock_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/tile_shadow_top.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/tile_shadow_top.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_shortcut_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/ic_shortcut_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/tile_shadow_top.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/tile_shadow_top.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_shortcut_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/ic_shortcut_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/workspace_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/workspace_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/launcher_clock_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/launcher_clock_base.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/launcher_clock_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/launcher_clock_hour.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/launcher_clock_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/launcher_clock_minute.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/launcher_clock_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/launcher_clock_second.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/tile_shadow_bottom.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/tile_shadow_bottom.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/launcher_clock_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/launcher_clock_base.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/launcher_clock_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/launcher_clock_hour.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/launcher_clock_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/launcher_clock_minute.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/launcher_clock_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/launcher_clock_second.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/tile_shadow_bottom.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/tile_shadow_bottom.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/launcher_clock_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/launcher_clock_base.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/launcher_clock_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/launcher_clock_hour.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/launcher_clock_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/launcher_clock_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/tile_shadow_bottom.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/tile_shadow_bottom.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/launcher_clock_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/launcher_clock_base.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/launcher_clock_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/launcher_clock_hour.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/launcher_clock_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/launcher_clock_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/page_hover_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/page_hover_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/page_hover_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/page_hover_right.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/tile_shadow_top.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/tile_shadow_top.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/virtual_preload.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/virtual_preload.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_shortcut_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/ic_shortcut_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/launcher_clock_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/launcher_clock_top.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/weather_none_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/weather_none_available.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/weather_none_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/weather_none_available.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/launcher_clock_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/launcher_clock_minute.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/launcher_clock_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/launcher_clock_second.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weather_none_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/weather_none_available.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/launcher_clock_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/launcher_clock_minute.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/launcher_clock_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/launcher_clock_second.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/tile_shadow_bottom.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/tile_shadow_bottom.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/launcher_clock_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/launcher_clock_base.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/launcher_clock_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/launcher_clock_hour.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/raw/keep.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /launcherclient/src/main/aidl/ch/deletescape/lawnchair/launcherclient/WindowLayoutParams.aidl: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.launcherclient; 2 | 3 | parcelable WindowLayoutParams; -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/OnAlarmListener.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | public interface OnAlarmListener { 4 | void onAlarm(Alarm alarm); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-hdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-mdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xhdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/page_hover_left_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/page_hover_left_active.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/virtual_preload_folder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/virtual_preload_folder.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/weather_none_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/weather_none_available.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/launcher_clock_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/launcher_clock_minute.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/launcher_clock_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/launcher_clock_second.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/weather_none_available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/weather_none_available.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/widget_resize_frame.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/widget_resize_frame.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/widget_resize_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxxhdpi/widget_resize_shadow.9.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/page_hover_right_active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/app/src/main/res/drawable-xxhdpi/page_hover_right_active.9.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LawnchairLauncher/Lawnchair-V1/HEAD/lawnfeed/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/xml/sleep_admin_policy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-en-rGB/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | EEEE, d MMMM 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_white_round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card_round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/launcher_clock_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /lawnfeed/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/gestures/GestureHandler.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.gestures 2 | 3 | import ch.deletescape.lawnchair.Launcher 4 | 5 | abstract class GestureHandler(val launcher: Launcher) { 6 | 7 | abstract fun onGestureTrigger() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/gestures/Gesture.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.gestures 2 | 3 | import android.view.MotionEvent 4 | 5 | interface Gesture { 6 | 7 | val isEnabled: Boolean 8 | 9 | fun onTouchEvent(ev: MotionEvent): Boolean 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_wide_experiment.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Feb 23 08:18:40 SGT 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_rect_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-v26/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/AppFilter.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.content.ComponentName; 4 | import android.content.Context; 5 | 6 | public interface AppFilter { 7 | 8 | boolean shouldShowApp(ComponentName app, Context context); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_list_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/popup/theme/IPopupThemer.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.popup.theme 2 | 3 | interface IPopupThemer { 4 | 5 | val itemBg: Int 6 | val childItemBg: Int 7 | val itemSpacing: Int 8 | val backgroundRadius: Int 9 | val wrapInMain: Boolean 10 | } -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gutter_horizontal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/xml/backupscheme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/TouchController.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.util; 2 | 3 | import android.view.MotionEvent; 4 | 5 | public interface TouchController { 6 | 7 | boolean onControllerTouchEvent(MotionEvent ev); 8 | boolean onControllerInterceptTouchEvent(MotionEvent ev); 9 | } 10 | -------------------------------------------------------------------------------- /lawnfeed/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_edit_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/planes.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /scripts/changelog.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | if [ ! -z "$TRAVIS_TAG" ] 4 | then 5 | TRAVIS_COMMIT_RANGE="$(git describe --abbrev=0 --tags $TRAVIS_TAG^)..$TRAVIS_TAG" 6 | fi 7 | 8 | GIT_COMMIT_LOG="$(git log --format='%s (by %cn)' $TRAVIS_COMMIT_RANGE)" 9 | printf '%s\n' "$GIT_COMMIT_LOG" | while IFS= read -r line 10 | do 11 | echo "- ${line}" 12 | done 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_connector.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 200 4 | 200 5 | 6 | 245 7 | 75 8 | 0 9 | -------------------------------------------------------------------------------- /app/src/main/res/animator/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/animator/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_desktop.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/system_shortcut_icons.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/config/IThemer.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.config 2 | 3 | import android.content.Context 4 | import ch.deletescape.lawnchair.allapps.theme.IAllAppsThemer 5 | import ch.deletescape.lawnchair.popup.theme.IPopupThemer 6 | 7 | interface IThemer { 8 | 9 | fun allAppsTheme(context: Context): IAllAppsThemer 10 | fun popupTheme(context: Context): IPopupThemer 11 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_widget_resize_handle.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_pixel_qsb_connector.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/icon_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /scripts/deploy-hockeyapp.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | BRANCH=$1 4 | 5 | curl \ 6 | -F status="2" \ 7 | -F notify="1" \ 8 | -F tags="$BRANCH" \ 9 | -F dsym=@"proguard-$MAJOR_MINOR.$TRAVIS_BUILD_NUMBER.txt" \ 10 | -F ipa=@"Lawnchair-$MAJOR_MINOR.$TRAVIS_BUILD_NUMBER.apk" \ 11 | -H "X-HockeyAppToken: $HOCKEYAPP_TOKEN" \ 12 | https://rink.hockeyapp.net/api/2/apps/$HOCKEYAPP_APPID/app_versions/upload 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw720dp/config.xml: -------------------------------------------------------------------------------- 1 | 2 | true 3 | 4 | 5 | 6 | 90 7 | 8 | 9 | false 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/system_shortcut_icon_only.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /launcherclient/src/main/aidl/ch/deletescape/lawnchair/launcherclient/ILauncherClientProxyCallback.aidl: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.launcherclient; 2 | 3 | interface ILauncherClientProxyCallback { 4 | 5 | void overlayScrollChanged(float progress); 6 | 7 | void overlayStatusChanged(int status); 8 | 9 | void onServiceConnected(); 10 | 11 | void onServiceDisconnected(); 12 | 13 | void onQsbResult(int resultCode); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/allapps/UnicodeStrippedAppSearchController.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.allapps; 2 | 3 | /** 4 | * The unicode stripped search controller. 5 | */ 6 | public class UnicodeStrippedAppSearchController extends AllAppsSearchBarController { 7 | 8 | public DefaultAppSearchAlgorithm onInitializeSearch() { 9 | return new UnicodeStrippedAppSearchAlgorithm(mApps.getUnfilteredApps()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_selectable_apps.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/config/ThemeProvider.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.config 2 | 3 | object ThemeProvider { 4 | 5 | // single instance for whole app 6 | private var themerIMPL: IThemer? = null 7 | 8 | fun init(flags: IThemer) { 9 | themerIMPL = flags 10 | } 11 | 12 | fun getThemer(): IThemer { 13 | if (themerIMPL == null) 14 | return ThemerImpl() 15 | return themerIMPL as IThemer 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/plane.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /lawnfeed/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Lawnfeed 3 | Update available 4 | A new version of Lawnfeed is available to download! 5 | Downloading... 6 | Error downloading file 7 | Lawnfeed Updates 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backup.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/popup/theme/PopupBaseTheme.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.popup.theme 2 | 3 | import ch.deletescape.lawnchair.R 4 | 5 | class PopupBaseTheme : IPopupThemer { 6 | 7 | override val itemBg = R.drawable.bg_white_round_rect 8 | override val childItemBg = R.drawable.bg_white_round_rect 9 | override val itemSpacing = R.dimen.popup_items_spacing 10 | override val backgroundRadius = R.dimen.bg_round_rect_radius 11 | override val wrapInMain = false 12 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/popup/theme/PopupCardTheme.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.popup.theme 2 | 3 | import ch.deletescape.lawnchair.R 4 | 5 | class PopupCardTheme : IPopupThemer { 6 | 7 | override val itemBg = R.drawable.bg_white_round_rect 8 | override val childItemBg = R.drawable.card_round_rect 9 | override val itemSpacing = R.dimen.popup_items_spacing 10 | override val backgroundRadius = R.dimen.bg_round_rect_radius 11 | override val wrapInMain = false 12 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/LauncherProviderChangeListener.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 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 | void onLauncherProviderChange(); 11 | 12 | void onExtractedColorsChanged(); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_list_remove.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/gestures/dt2s/SleepDeviceAdmin.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.gestures.dt2s 2 | 3 | import android.app.admin.DeviceAdminReceiver 4 | import android.content.Context 5 | import android.content.Intent 6 | 7 | import ch.deletescape.lawnchair.R 8 | 9 | class SleepDeviceAdmin : DeviceAdminReceiver() { 10 | 11 | override fun onDisableRequested(context: Context, intent: Intent): CharSequence { 12 | return context.getString(R.string.dt2s_admin_warning) 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_hide_apps.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/popup_container.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/wallpaperpicker/WallpaperFiles.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.wallpaperpicker; 2 | 3 | /** 4 | * Central list of files the WallpaperPicker writes to the application data directory. 5 | */ 6 | public class WallpaperFiles { 7 | 8 | public static final String DEFAULT_WALLPAPER_THUMBNAIL = "default_thumb2.jpg"; 9 | public static final String DEFAULT_WALLPAPER_THUMBNAIL_OLD = "default_thumb.jpg"; 10 | public static final String WALLPAPER_IMAGES_DB = "saved_wallpaper_images.db"; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/allapps/theme/AllAppsVerticalTheme.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.allapps.theme 2 | 3 | import android.content.Context 4 | import ch.deletescape.lawnchair.R 5 | 6 | class AllAppsVerticalTheme(context: Context) : AllAppsBaseTheme(context) { 7 | 8 | override val iconLayout = R.layout.all_apps_icon_vertical 9 | override fun numIconPerRow(default: Int) = 1 10 | override fun iconHeight(default: Int) = context.resources.getDimensionPixelSize(R.dimen.all_apps_vertical_row_height) 11 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit_no_shadow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_qsb_mic.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/main_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/plane_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_behavior.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/xml/launcher_debug_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/widget/WidgetListRowEntry.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.widget; 2 | 3 | import java.util.ArrayList; 4 | 5 | import ch.deletescape.lawnchair.model.PackageItemInfo; 6 | 7 | public class WidgetListRowEntry { 8 | public final PackageItemInfo pkgItem; 9 | public String titleSectionName; 10 | public final ArrayList widgets; 11 | 12 | public WidgetListRowEntry(PackageItemInfo packageItemInfo, ArrayList arrayList) { 13 | this.pkgItem = packageItemInfo; 14 | this.widgets = arrayList; 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_uninstall_no_shadow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/ItemInfoWithIcon.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | public abstract class ItemInfoWithIcon extends ItemInfo { 6 | public Bitmap iconBitmap; 7 | public boolean usingLowResIcon; 8 | 9 | protected ItemInfoWithIcon() { 10 | } 11 | 12 | protected ItemInfoWithIcon(ItemInfoWithIcon itemInfoWithIcon) { 13 | super(itemInfoWithIcon); 14 | this.iconBitmap = itemInfoWithIcon.iconBitmap; 15 | this.usingLowResIcon = itemInfoWithIcon.usingLowResIcon; 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_cell.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/Provider.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.util; 2 | 3 | public abstract class Provider { 4 | public abstract Object get(); 5 | 6 | public static Provider of(Object obj) { 7 | return new ProviderImpl(obj); 8 | } 9 | 10 | static final class ProviderImpl extends Provider { 11 | final Object value; 12 | 13 | ProviderImpl(Object obj) { 14 | this.value = obj; 15 | } 16 | 17 | @Override 18 | public Object get() { 19 | return this.value; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_restore.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_icon_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /launcherclient/src/main/java/ch/deletescape/lawnchair/launcherclient/LauncherClientProxyConnection.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.launcherclient 2 | 3 | import android.content.Context 4 | 5 | class LauncherClientProxyConnection( 6 | private val context: Context, 7 | private val proxyPackage: String = "ch.deletescape.lawnchair.launcherclientproxy", 8 | private val overlayEnabled: Boolean) { 9 | 10 | 11 | companion object { 12 | const val SERVICE_DISCONNECTED = 0 13 | const val SERVICE_CONNECTED = 1 14 | const val SERVICE_CONNECTING = 2 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_actionbar_accept.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/pixelify/Util.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.pixelify; 2 | 3 | import android.content.IntentFilter; 4 | 5 | public class Util { 6 | 7 | public static IntentFilter createIntentFilter(String... Actions) { 8 | IntentFilter intentFilter = new IntentFilter(); 9 | for (String action : Actions) { 10 | intentFilter.addAction(action); 11 | } 12 | intentFilter.addDataScheme("package"); 13 | intentFilter.addDataSchemeSpecificPart("com.google.android.googlequicksearchbox", 0); 14 | return intentFilter; 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_undo_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/backup_blank.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/preferences/PreferenceProvider.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.preferences 2 | 3 | import android.content.Context 4 | 5 | object PreferenceProvider { 6 | 7 | // single instance for whole app 8 | private var preferenceIMPL: IPreferenceProvider? = null 9 | 10 | fun init(flags: IPreferenceProvider) { 11 | preferenceIMPL = flags 12 | } 13 | 14 | fun getPreferences(context: Context): IPreferenceProvider { 15 | if (preferenceIMPL == null) 16 | return PreferenceImpl(context) 17 | return preferenceIMPL as IPreferenceProvider 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/shortcuts_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/BlankActivity.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair 2 | 3 | import android.app.Activity 4 | import android.os.Bundle 5 | 6 | 7 | class BlankActivity : Activity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | 12 | if (intent == null || !intent.hasExtra("action")) { 13 | finish() 14 | return 15 | } 16 | 17 | when (intent.getStringExtra("action")) { 18 | "setDefaultLauncher" -> Utilities.setDefaultLauncher(this) 19 | } 20 | 21 | finish() 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/MapHashMap.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.util; 2 | 3 | import java.util.HashMap; 4 | 5 | public class MapHashMap extends HashMap> { 6 | 7 | public HashMap getOrCreate(K1 key) { 8 | HashMap list = get(key); 9 | if (list == null) { 10 | list = new HashMap<>(); 11 | put(key, list); 12 | } 13 | return list; 14 | } 15 | 16 | public void putAllToMap(K1 key, HashMap values) { 17 | HashMap map = getOrCreate(key); 18 | map.putAll(values); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_remove_no_shadow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/iconpack/DefaultIconPack.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.iconpack; 2 | 3 | import android.graphics.drawable.Drawable; 4 | 5 | import ch.deletescape.lawnchair.compat.LauncherActivityInfoCompat; 6 | 7 | public class DefaultIconPack extends IconPack { 8 | 9 | public DefaultIconPack() { 10 | super(null, null, null, null, null, null, 1f, null); 11 | } 12 | 13 | @Override 14 | public Drawable getIcon(LauncherActivityInfoCompat info) { 15 | return info.getIcon(0); 16 | } 17 | 18 | @Override 19 | public String getPackageName() { 20 | return ""; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/res/xml/launcher_hidden_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/App.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.app.Application; 4 | 5 | import ch.deletescape.lawnchair.preferences.PreferenceImpl; 6 | import ch.deletescape.lawnchair.preferences.PreferenceProvider; 7 | 8 | public class App extends Application { 9 | 10 | @Override 11 | public void onCreate() { 12 | super.onCreate(); 13 | 14 | PreferenceProvider.INSTANCE.init(new PreferenceImpl(this)); 15 | // Ensure we have a version value written so we can easily migrate in v2 16 | PreferenceProvider.INSTANCE.getPreferences(this).setConfigVersion(100); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/horizontal_ellipsis.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/animator/fly_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/PreferenceAppFilter.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.content.ComponentName; 4 | import android.content.Context; 5 | 6 | import ch.deletescape.lawnchair.preferences.IPreferenceProvider; 7 | 8 | public class PreferenceAppFilter implements AppFilter { 9 | 10 | @Override 11 | public boolean shouldShowApp(ComponentName app, Context context) { 12 | if (app.getPackageName().equals(context.getPackageName())) 13 | return false; 14 | IPreferenceProvider prefs = Utilities.getPrefs(context); 15 | return !Utilities.isAppHidden(context, app.flattenToString()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/animator/fly_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 15 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 13 | org.gradle.daemon=true 14 | org.gradle.parallel=true 15 | org.gradle.configureondemand=true 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widgets_scroll_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/kustomsupport/AutoFinishTransparentActivity.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.kustomsupport; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | import android.support.annotation.Nullable; 8 | 9 | public class AutoFinishTransparentActivity extends Activity { 10 | @Override 11 | protected void onCreate(@Nullable Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | finish(); 14 | } 15 | 16 | public static void start(Context context) { 17 | context.startActivity(new Intent(context, AutoFinishTransparentActivity.class)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/values-v23/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/SimpleOnStylusPressListener.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.view.View; 4 | 5 | import ch.deletescape.lawnchair.StylusEventHelper.StylusButtonListener; 6 | 7 | /** 8 | * Simple listener that performs a long click on the view after a stylus button press. 9 | */ 10 | public class SimpleOnStylusPressListener implements StylusButtonListener { 11 | private View mView; 12 | 13 | public SimpleOnStylusPressListener(View view) { 14 | mView = view; 15 | } 16 | 17 | public boolean onPressed() { 18 | return mView.isLongClickable() && mView.performLongClick(); 19 | } 20 | 21 | public boolean onReleased() { 22 | return false; 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_qsb_pill.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/EditableItemInfo.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair 2 | 3 | import android.content.ComponentName 4 | import android.content.Context 5 | import android.graphics.Bitmap 6 | import android.os.Parcelable 7 | import android.os.UserHandle 8 | 9 | interface EditableItemInfo : Parcelable { 10 | 11 | fun getTitle(): String 12 | fun getTitle(context: Context): String? 13 | fun setTitle(context: Context, title: String?) 14 | fun getIcon(context: Context): String? 15 | fun setIcon(context: Context, icon: String?) 16 | fun reloadIcon(launcher: Launcher) 17 | fun getIconBitmap(iconCache: IconCache): Bitmap 18 | 19 | val type: Int 20 | val user: UserHandle 21 | val componentName: ComponentName? 22 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_information.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_backup_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_no_shadow.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_search_bar_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /scripts/s3-upload.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # Upload files to custom S3 using curl 3 | # Example: ./s3-upload.sh play.minio.io example.txt bucket Q3AM3UQ867SPQQA43P2F zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG 4 | 5 | HOST=$3 6 | 7 | FILE=$1 8 | BUCKET=$2 9 | RESOURCE="/${BUCKET}/${FILE}" 10 | CONTENT_TYPE=$(mimetype -b $FILE) 11 | TIMESTAMP=$(date -R) 12 | STRING_TO_SIGN="PUT\n\n${CONTENT_TYPE}\n${TIMESTAMP}\n${RESOURCE}" 13 | 14 | S3_KEY=$4 15 | S3_SECRET=$5 16 | 17 | SIGNATURE=$(echo -n ${STRING_TO_SIGN} | openssl sha1 -hmac ${S3_SECRET} -binary | base64) 18 | curl -X PUT -T "${FILE}" \ 19 | -H "Host: ${HOST}" \ 20 | -H "Date: ${TIMESTAMP}" \ 21 | -H "Content-Type: ${CONTENT_TYPE}" \ 22 | -H "Authorization: AWS ${S3_KEY}:${SIGNATURE}" \ 23 | https://${HOST}${RESOURCE} 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_images.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /app/src/main/res/values/strings.xml 3 | translation: /app/src/main/res/values-%android_code%/%original_file_name% 4 | languages_mapping: 5 | android_code: 6 | ar: ar 7 | ca: ca 8 | cs: cs 9 | da: da 10 | de: de 11 | es-ES: es 12 | el: el 13 | fa: fa 14 | fi: fi 15 | fr: fr 16 | hi: hi 17 | hu: hu 18 | id: in 19 | it: it 20 | he: iw 21 | ja: ja 22 | ko: ko 23 | nl: nl 24 | no: no 25 | ro: ro 26 | pl: pl 27 | ru: ru 28 | sk: sk 29 | sr: sr 30 | sv-SE: sv 31 | tr: tr 32 | uk: uk 33 | vi: vi 34 | zh-CN: zh 35 | en-PT: pir 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_without_mic.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dock.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_import_export.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_wide_without_mic.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /lawnfeed/src/main/java/ch/deletescape/lawnchair/lawnfeed/LauncherClientProxyService.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.lawnfeed 2 | 3 | import android.app.Service 4 | import android.content.Intent 5 | import android.os.IBinder 6 | 7 | class LauncherClientProxyService : Service() { 8 | 9 | override fun onBind(intent: Intent): IBinder? { 10 | return getBinder() 11 | } 12 | 13 | override fun onUnbind(intent: Intent?): Boolean { 14 | binder?.onUnbind() 15 | binder = null 16 | stopSelf() 17 | return super.onUnbind(intent) 18 | } 19 | 20 | private fun getBinder(): ProxyImpl { 21 | if (binder == null) { 22 | binder = ProxyImpl(applicationContext) 23 | } 24 | return binder!! 25 | } 26 | 27 | private var binder: ProxyImpl? = null 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/LauncherFiles.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | /** 4 | * Central list of files the Launcher writes to the application data directory. 5 | */ 6 | public class LauncherFiles { 7 | 8 | public static final String LAUNCHER_DB = "launcher.db"; 9 | public static final String SHARED_PREFERENCES_KEY = BuildConfig.APPLICATION_ID + "_preferences"; 10 | public static final String OLD_SHARED_PREFERENCES_KEY = "ch.deletescape.lawnchair.prefs"; 11 | public static final String MANAGED_USER_PREFERENCES_KEY = "ch.deletescape.lawnchair.managedusers.prefs"; 12 | 13 | public static final String WIDGET_PREVIEWS_DB = "widgetpreviews.db"; 14 | public static final String APP_ICONS_DB = "app_icons.db"; 15 | public static final String APP_SHORTCUTS_DB = "app_shortcuts.db"; 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/allapps/theme/IAllAppsThemer.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.allapps.theme 2 | 3 | interface IAllAppsThemer { 4 | 5 | val backgroundColor : Int 6 | val backgroundColorBlur : Int 7 | fun iconTextColor(backgroundAlpha: Int) : Int 8 | val iconTextLines : Int 9 | val searchTextColor : Int 10 | /* 11 | * this color is also used for the market search button, the market item divider and the search bar divider 12 | * currently ignored as hint color for round search bar 13 | */ 14 | val searchBarHintTextColor : Int 15 | val fastScrollerHandleColor : Int 16 | val fastScrollerPopupTintColor: Int 17 | val fastScrollerPopupTextColor : Int 18 | 19 | val iconLayout: Int 20 | fun numIconPerRow(default: Int): Int 21 | fun iconHeight(default: Int): Int 22 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/FlagOp.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.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 int apply(int flags) { 12 | return flags; 13 | } 14 | 15 | public static FlagOp addFlag(final int flag) { 16 | return new FlagOp() { 17 | @Override 18 | public int apply(int flags) { 19 | return flags | flag; 20 | } 21 | }; 22 | } 23 | 24 | public static FlagOp removeFlag(final int flag) { 25 | return new FlagOp() { 26 | @Override 27 | public int apply(int flags) { 28 | return flags & ~flag; 29 | } 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/anim/no_anim.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ui.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/decelerate_quart.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/anim/decelerate_quint.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 21 | -------------------------------------------------------------------------------- /launcherclient/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion 27 6 | buildToolsVersion '27.0.3' 7 | 8 | defaultConfig { 9 | minSdkVersion 21 10 | targetSdkVersion 27 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation fileTree(include: ['*.jar'], dir: 'libs') 28 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 29 | } 30 | 31 | repositories { 32 | mavenCentral() 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/wallpaperpicker/glrenderer/GLES20IdImpl.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.wallpaperpicker.glrenderer; 2 | 3 | import android.opengl.GLES20; 4 | 5 | public class GLES20IdImpl implements GLId { 6 | private final int[] mTempIntArray = new int[1]; 7 | 8 | @Override 9 | public int generateTexture() { 10 | GLES20.glGenTextures(1, mTempIntArray, 0); 11 | GLES20Canvas.checkError(); 12 | return mTempIntArray[0]; 13 | } 14 | 15 | @Override 16 | public void glGenBuffers(int n, int[] buffers, int offset) { 17 | GLES20.glGenBuffers(n, buffers, offset); 18 | GLES20Canvas.checkError(); 19 | } 20 | 21 | @Override 22 | public void glDeleteTextures(int n, int[] textures, int offset) { 23 | GLES20.glDeleteTextures(n, textures, offset); 24 | GLES20Canvas.checkError(); 25 | } 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/LabelComparator.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.util; 2 | 3 | import java.text.Collator; 4 | import java.util.Comparator; 5 | 6 | public class LabelComparator implements Comparator { 7 | private final Collator mCollator = Collator.getInstance(); 8 | 9 | @Override 10 | public int compare(String str, String str2) { 11 | boolean isLetterOrDigit; 12 | boolean i = false; 13 | isLetterOrDigit = str.length() > 0 && Character.isLetterOrDigit(str.codePointAt(0)); 14 | if (str2.length() > 0) { 15 | i = Character.isLetterOrDigit(str2.codePointAt(0)); 16 | } 17 | if (isLetterOrDigit && !i) { 18 | return -1; 19 | } 20 | if (isLetterOrDigit || !i) { 21 | return this.mCollator.compare(str, str2); 22 | } 23 | return 1; 24 | } 25 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/StringSetAppFilter.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.content.ComponentName; 4 | import android.content.Context; 5 | 6 | import java.util.HashSet; 7 | import java.util.Set; 8 | 9 | public class StringSetAppFilter extends PreferenceAppFilter { 10 | private Set mHiddenComponents = new HashSet<>(); 11 | 12 | StringSetAppFilter() { 13 | mHiddenComponents.add(ComponentName.unflattenFromString("com.google.android.apps.wallpaper/.picker.CategoryPickerActivity")); 14 | mHiddenComponents.add(ComponentName.unflattenFromString("com.google.android.googlequicksearchbox/.VoiceSearchActivity")); 15 | } 16 | 17 | @Override 18 | public boolean shouldShowApp(ComponentName app, Context context) { 19 | return !mHiddenComponents.contains(app) && super.shouldShowApp(app, context); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/StringFilter.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.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 abstract boolean matches(String str); 14 | 15 | public static StringFilter matchesAll() { 16 | return new StringFilter() { 17 | @Override 18 | public boolean matches(String str) { 19 | return true; 20 | } 21 | }; 22 | } 23 | 24 | public static StringFilter of(final Set validEntries) { 25 | return new StringFilter() { 26 | @Override 27 | public boolean matches(String str) { 28 | return validEntries.contains(str); 29 | } 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/values-zh-rHK/strings.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | M月dd日EEEE 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_icon.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/xml/shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/launcher_clock.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/appwidget_not_ready.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/opa_assistant_logo.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/folder_application.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # macOS turds 2 | .DS_Store 3 | 4 | # Built application files 5 | *.apk 6 | *.ap_ 7 | 8 | # Calculated md5 checksums 9 | *.md5sum 10 | 11 | # Files for the ART/Dalvik VM 12 | *.dex 13 | 14 | # Java class files 15 | *.class 16 | 17 | # Generated files 18 | bin/ 19 | gen/ 20 | out/ 21 | 22 | # Gradle files 23 | .gradle/ 24 | build/ 25 | 26 | # Local configuration file (sdk path, etc) 27 | local.properties 28 | 29 | # Proguard folder generated by Eclipse 30 | proguard/ 31 | 32 | # Log Files 33 | *.log 34 | 35 | # Android Studio Navigation editor temp files 36 | .navigation/ 37 | 38 | # Android Studio captures folder 39 | captures/ 40 | 41 | # Intellij 42 | *.iml 43 | .idea 44 | 45 | # External native build folder generated in Android Studio 2.2 and later 46 | .externalNativeBuild 47 | 48 | # Google Services (e.g. APIs or Firebase) 49 | google-services.json 50 | 51 | # Freeline 52 | freeline.py 53 | freeline/ 54 | freeline_project_description.json 55 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twitter.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_blocker_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/LauncherBackupAgent.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 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 ch.deletescape.lawnchair.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 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/all_apps_divider.xml: -------------------------------------------------------------------------------- 1 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/anim/disco_bounce_section1.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/anim/disco_bounce_section2.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/anim/disco_bounce_section3.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/quantum_panel_shape.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/quantum_panel_shape_dark.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/workspace_screen.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/all_apps_search_hint.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/wallpaperpicker/common/WallpaperManagerCompatV16.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.wallpaperpicker.common; 2 | 3 | import android.app.WallpaperManager; 4 | import android.content.Context; 5 | import android.graphics.Rect; 6 | 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | 10 | public class WallpaperManagerCompatV16 extends WallpaperManagerCompat { 11 | protected WallpaperManager mWallpaperManager; 12 | 13 | public WallpaperManagerCompatV16(Context context) { 14 | mWallpaperManager = WallpaperManager.getInstance(context.getApplicationContext()); 15 | } 16 | 17 | @Override 18 | public void setStream(InputStream data, Rect visibleCropHint, boolean allowBackup, 19 | int whichWallpaper) throws IOException { 20 | mWallpaperManager.setStream(data); 21 | } 22 | 23 | @Override 24 | public void clear(int whichWallpaper) throws IOException { 25 | mWallpaperManager.clear(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/LogAccelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogAccelerateInterpolator implements TimeInterpolator { 6 | 7 | int mBase; 8 | int mDrift; 9 | final float mLogScale; 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 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/LogDecelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogDecelerateInterpolator implements TimeInterpolator { 6 | 7 | int mBase; 8 | int mDrift; 9 | final float mLogScale; 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 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_email.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @string/which_wallpaper_option_home_screen 4 | @string/which_wallpaper_option_lock_screen 5 | @string/which_wallpaper_option_home_screen_and_lock_screen 6 | 7 | 8 | 9 | @string/dt2s_disabled 10 | @string/dt2s_deviceadmin 11 | @string/dt2s_timeout 12 | @string/dt2s_root 13 | 14 | 15 | 16 | 17 | ch.deletescape.lawnchair.gestures.dt2s.DoubleTapGesture$SleepGestureHandlerDeviceAdmin 18 | ch.deletescape.lawnchair.gestures.dt2s.DoubleTapGesture$SleepGestureHandlerTimeout 19 | ch.deletescape.lawnchair.gestures.dt2s.DoubleTapGesture$SleepGestureHandlerRoot 20 | 21 | -------------------------------------------------------------------------------- /lawnfeed/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/xml/launcher_backup_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 12 | 13 | 14 | 15 | 18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /launcherclient/src/main/aidl/ch/deletescape/lawnchair/launcherclient/ILauncherClientProxy.aidl: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.launcherclient; 2 | 3 | import android.os.Bundle; 4 | import ch.deletescape.lawnchair.launcherclient.WindowLayoutParams; 5 | import ch.deletescape.lawnchair.launcherclient.ILauncherClientProxyCallback; 6 | 7 | interface ILauncherClientProxy { 8 | 9 | void closeOverlay(int options); 10 | 11 | void endScroll(); 12 | 13 | void onPause(); 14 | 15 | void onResume(); 16 | 17 | void onScroll(float progress); 18 | 19 | void openOverlay(int options); 20 | 21 | void startScroll(); 22 | 23 | void windowAttached(inout WindowLayoutParams attrs, int options); 24 | 25 | void windowAttached2(inout Bundle bundle); 26 | 27 | void setActivityState(int activityState); 28 | 29 | void windowDetached(boolean isChangingConfigurations); 30 | 31 | void onQsbClick(inout Intent intent); 32 | 33 | int init(ILauncherClientProxyCallback callback); 34 | 35 | int reconnect(); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/icon_category_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 18 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_browser.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_camera.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_gallery.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw340dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 20dp 21 | 16sp 22 | 23 | 6dp 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/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 ch.deletescape.lawnchair; 18 | 19 | import android.graphics.Rect; 20 | 21 | /** 22 | * Allows the implementing {@code 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 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/wallpaperpicker/glrenderer/GLId.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 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 ch.deletescape.wallpaperpicker.glrenderer; 18 | 19 | // This mimics corresponding GL functions. 20 | public interface GLId { 21 | int generateTexture(); 22 | 23 | void glGenBuffers(int n, int[] buffers, int offset); 24 | 25 | void glDeleteTextures(int n, int[] textures, int offset); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_super_g_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lawnfeed/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\papho\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /launcherclient/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\papho\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/config/ProviderConfig.kt: -------------------------------------------------------------------------------- 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 ch.deletescape.lawnchair.config 18 | 19 | import ch.deletescape.lawnchair.BuildConfig 20 | 21 | object ProviderConfig { 22 | 23 | @JvmField 24 | var AUTHORITY = BuildConfig.APPLICATION_ID + ".settings" 25 | 26 | fun init(packageName: String) { 27 | AUTHORITY = packageName + ".settings" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/res/menu/cab_delete_wallpapers.xml: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_phone.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/wallpaperpicker/common/WallpaperManagerCompatVN.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.wallpaperpicker.common; 2 | 3 | import android.content.Context; 4 | import android.graphics.Rect; 5 | import android.os.Build; 6 | import android.support.annotation.RequiresApi; 7 | 8 | import java.io.IOException; 9 | import java.io.InputStream; 10 | 11 | public class WallpaperManagerCompatVN extends WallpaperManagerCompatV16 { 12 | public WallpaperManagerCompatVN(Context context) { 13 | super(context); 14 | } 15 | 16 | @RequiresApi(api = Build.VERSION_CODES.N) 17 | @Override 18 | public void setStream(final InputStream data, Rect visibleCropHint, boolean allowBackup, 19 | int whichWallpaper) throws IOException { 20 | mWallpaperManager.setStream(data, visibleCropHint, allowBackup, whichWallpaper); 21 | } 22 | 23 | @RequiresApi(api = Build.VERSION_CODES.N) 24 | @Override 25 | public void clear(int whichWallpaper) throws IOException { 26 | mWallpaperManager.clear(whichWallpaper); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 0dp 19 | 20 | 21 | 56dp 22 | 23 | 24 | -1000dp 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/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 ch.deletescape.lawnchair.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 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/preferences/GoogleNowPreference.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.preferences 2 | 3 | import android.content.Context 4 | import android.support.v14.preference.SwitchPreference 5 | import android.util.AttributeSet 6 | import ch.deletescape.lawnchair.R 7 | import ch.deletescape.lawnchair.overlay.ILauncherClient 8 | 9 | class GoogleNowPreference(context: Context, attrs: AttributeSet) : SwitchPreference(context, attrs) { 10 | 11 | private val enabledState = ILauncherClient.getEnabledState(context) 12 | 13 | init { 14 | isEnabled = enabledState == ILauncherClient.ENABLED 15 | if (!isEnabled) { 16 | if (enabledState == ILauncherClient.DISABLED_NO_PROXY_APP) 17 | setSummary(R.string.lawnfeed_not_found) 18 | if (enabledState == ILauncherClient.DISABLED_CLIENT_OUTDATED) 19 | setSummary(R.string.lawnfeed_incompatible) 20 | if (enabledState == ILauncherClient.DISABLED_NO_GOOGLE_APP) 21 | setSummary(R.string.google_app_not_found) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/badge/FolderBadgeInfo.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.badge; 2 | 3 | import ch.deletescape.lawnchair.Utilities; 4 | 5 | public class FolderBadgeInfo extends BadgeInfo { 6 | private int mNumNotifications; 7 | 8 | public FolderBadgeInfo() { 9 | super(null); 10 | } 11 | 12 | public void addBadgeInfo(BadgeInfo badgeInfo) { 13 | if (badgeInfo != null) { 14 | mNumNotifications += badgeInfo.getNotificationKeys().size(); 15 | mNumNotifications = Utilities.boundToRange(mNumNotifications, 0, 999); 16 | } 17 | } 18 | 19 | public void subtractBadgeInfo(BadgeInfo badgeInfo) { 20 | if (badgeInfo != null) { 21 | mNumNotifications -= badgeInfo.getNotificationKeys().size(); 22 | mNumNotifications = Utilities.boundToRange(mNumNotifications, 0, 999); 23 | } 24 | } 25 | 26 | @Override 27 | public int getNotificationCount() { 28 | return 0; 29 | } 30 | 31 | public boolean hasBadge() { 32 | return mNumNotifications > 0; 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/NoLocaleSqliteContext.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.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 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/quantum_panel.xml: -------------------------------------------------------------------------------- 1 | 16 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/allapps/UnicodeStrippedAppSearchAlgorithm.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.allapps; 2 | 3 | import java.util.List; 4 | 5 | import ch.deletescape.lawnchair.AppInfo; 6 | import ch.deletescape.lawnchair.LauncherAppState; 7 | import ch.deletescape.lawnchair.util.UnicodeFilter; 8 | 9 | /** 10 | * A search algorithm that changes every non-ascii characters to theirs ascii equivalents and 11 | * then performs comparison. 12 | */ 13 | public class UnicodeStrippedAppSearchAlgorithm extends DefaultAppSearchAlgorithm { 14 | public UnicodeStrippedAppSearchAlgorithm(List apps) { 15 | super(apps); 16 | } 17 | 18 | @Override 19 | protected boolean matches(AppInfo info, String query) { 20 | if (info.componentName.getPackageName().equals(LauncherAppState.getInstanceNoCreate().getContext().getPackageName())) 21 | return false; 22 | 23 | String title = UnicodeFilter.filter(info.title.toString().toLowerCase()); 24 | String strippedQuery = UnicodeFilter.filter(query.trim()); 25 | 26 | return super.matches(title, strippedQuery); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/quantum_panel_dark.xml: -------------------------------------------------------------------------------- 1 | 16 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_target_messenger.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/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 ch.deletescape.lawnchair; 18 | 19 | /** 20 | * An interface to get callbacks during a launcher transition. 21 | */ 22 | public interface LauncherTransitionable { 23 | void onLauncherTransitionPrepare(boolean multiplePagesVisible); 24 | 25 | void onLauncherTransitionStart(); 26 | 27 | void onLauncherTransitionStep(float t); 28 | 29 | void onLauncherTransitionEnd(boolean toWorkspace); 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_internal_focus_bg.xml: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/qsb_container.xml: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/container_fastscroll_popup_bg.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 18 | 19 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldrtl/container_fastscroll_popup_bg.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/hotseat.xml: -------------------------------------------------------------------------------- 1 | 15 | 18 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_edit_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 23 | 24 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/all_apps_icon.xml: -------------------------------------------------------------------------------- 1 | 15 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw720dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 8dp 19 | 54dp 20 | 64dp 21 | 22 | 24 | 40dp 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/appwidget_error.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/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 ch.deletescape.lawnchair.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 | -------------------------------------------------------------------------------- /app/src/main/res/layout/all_apps_search_divider.xml: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/util/CellAndSpan.java: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.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 void copyFrom(CellAndSpan copy) { 32 | cellX = copy.cellX; 33 | cellY = copy.cellY; 34 | spanX = copy.spanX; 35 | spanY = copy.spanY; 36 | } 37 | 38 | public CellAndSpan(int cellX, int cellY, int spanX, int spanY) { 39 | this.cellX = cellX; 40 | this.cellY = cellY; 41 | this.spanX = spanX; 42 | this.spanY = spanY; 43 | } 44 | 45 | public String toString() { 46 | return "(" + cellX + ", " + cellY + ": " + spanX + ", " + spanY + ")"; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/ch/deletescape/lawnchair/gestures/GestureController.kt: -------------------------------------------------------------------------------- 1 | package ch.deletescape.lawnchair.gestures 2 | 3 | import android.text.TextUtils 4 | import android.view.MotionEvent 5 | import ch.deletescape.lawnchair.Launcher 6 | import ch.deletescape.lawnchair.gestures.dt2s.DoubleTapGesture 7 | import ch.deletescape.lawnchair.util.TouchController 8 | 9 | class GestureController(val launcher: Launcher) : TouchController { 10 | 11 | private val doubleTapGesture = DoubleTapGesture(this) 12 | 13 | override fun onControllerInterceptTouchEvent(ev: MotionEvent): Boolean { 14 | return false 15 | } 16 | 17 | override fun onControllerTouchEvent(ev: MotionEvent): Boolean { 18 | return false 19 | } 20 | 21 | fun createGestureHandler(className: String): GestureHandler? { 22 | if (!TextUtils.isEmpty(className)) { 23 | try { 24 | return Class.forName(className).getConstructor(Launcher::class.java).newInstance(launcher) as? GestureHandler 25 | } catch (t: Throwable) { 26 | } 27 | } 28 | return null 29 | } 30 | 31 | fun onBlankAreaTouch(ev: MotionEvent) { 32 | doubleTapGesture.isEnabled && doubleTapGesture.onTouchEvent(ev) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/icon_pack_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 19 | 20 | 30 | 31 | --------------------------------------------------------------------------------