summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Automatic translation importMichael Bestas2019-05-268-23/+313
| | | | Change-Id: I738dd7b46f552a3cbeb28593d01c0d16b27c63ac
* Automatic translation importMichael W2019-03-111-35/+15
| | | | Change-Id: I909d96ddb183effd5fb7208acff0a4640910e148
* Automatic translation importMichael W2019-03-103-0/+130
| | | | Change-Id: If7a506926ab8cdc8b7975ab27a4473e2b8a6fc20
* Automatic translation importMichael W2019-03-01127-5703/+92
| | | | Change-Id: I4b5082ad9848675382184c6cabd5584ccff43a6d
* Discovery: Add missing SQLiteFullException importrazorloves2019-01-091-0/+1
| | | | | | Fix for d17b08e4a Change-Id: I24fb9423ec6d0070cbf682c87e9bab9c0f368ffe
* Discovery: fix crash when saving suggestions while disk is fullAlexander Martinz2019-01-091-10/+11
| | | | | Change-Id: If7e678f35f7e2f767f43b19b407009007a33ef1d Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Automatic translation importMichael W2019-01-055-0/+197
| | | | Change-Id: Ie066bd3c8b817446d64613734e6c24f50bf549e3
* Automatic translation importMichael Bestas2018-12-142-0/+5
| | | | Change-Id: I6d3fad9e69f28039f04ea5aa7f51f9499221296e
* Automatic translation importMichael Bestas2018-12-043-1/+6
| | | | Change-Id: I082f8f3893d9334616674acfb120eb3028322c78
* Trebuchet: move to default screen on home intentEdward Cross2018-11-271-1/+1
| | | | | Change-Id: Ic39b483658fca493fa0cb51af267883ea491051a Signed-off-by: Edward Cross <edward.k.cross@gmail.com>
* Automatic translation importMichael Bestas2018-11-151-0/+43
| | | | Change-Id: Id46932dc0e231093742deebb4f5326ad33929e11
* Automatic translation importMichael Bestas2018-11-05127-5547/+5570
| | | | Change-Id: I1be32b3a98983de05860e549ccd356d20ce86f5a
* Automatic translation importMichael Bestas2018-10-1328-40/+39
| | | | Change-Id: I2e0bcc848bb89c7c6100720019d1355b4c7a92c6
* Fix direction of swipe stringsElektroschmock2018-09-241-2/+2
| | | | | | | On a LTR system the -1 page is on the left, so you need to swipe to the right to access it. Change-Id: I092f5ed1a27045f8a42b62b93f74c4d3f278d6d7
* Automatic translation importMichael Bestas2018-08-1611-1/+30
| | | | Change-Id: Iccc22f28b921fd82292f2fd09a67b28b60fccfc8
* Automatic translation importMichael Bestas2018-08-05105-30/+353
| | | | Change-Id: If95c76daa61514f587e55edce8dea7349b258b83
* Fix another typoMichael Bestas2018-08-041-1/+1
| | | | Change-Id: I68b97ade4a16f1c7d309ba7686845c35876410f0
* Fix Google app stringsMichael Bestas2018-08-041-3/+3
| | | | | | | | * Don't use camel case * Fix typo * Uniform usage of homescreen Change-Id: Ib18375d8b02486f71a36b036e30ba90c4a573bc2
* Trebuchet: fix derpEdward Cross2018-07-311-5/+1
| | | | | | | | * a77601a96c9dc0f7489e87a6ab0bb2499b8a9461 made it load predictive apps through the SearchLauncherCallback instead of our implementation Change-Id: I939adb6e0c4009cd22df4f81eb0ce5ecb30134ad
* Launcher3: Google Feed integrationEdward Cross2018-07-1814-19/+395
| | | | | | | | If Google Search is installed, the Google Feed can be found at the -1 screen (which is the very left). This feature is enabled by default. Change-Id: I495196818699fd378cd60e6dd61b07a0ab951762
* Revert "Trebuchet: feed integration support"Joey2018-07-1810-1026/+0
| | | | | | This reverts commit 8dee56deeed7b09a9e5e9f4d21f27aa9d495930c. Change-Id: I911aff9099b69c07f784b89689dfeae0ec0e223c
* gradle: update, compatibility with newer AS versionsAlexander Martinz2018-07-141-18/+18
| | | | | | | | | | | | | | | | | *) Remove buildToolsVersion to let the gradle plugin pick the best one automatically. "If you're using Android plugin for Gradle 3.0.0 or higher, your project automatically uses a default version of the build tools that the plugin specifies." *) Upgrade android gradle plugin to latest stable version *) Upgrade protobuf plugin to 0.8.6, which does not depend on private APIs anymore and allows using newer AS versions. *) Update to new syntax, replace "compile" with "implementation" Change-Id: I87a3e444011fa46795908e85bafd9ed96cd78a97 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Edit dialog: dynamically apply foreground to iconAlexander Martinz2018-07-142-18/+25
| | | | | | | | | | | If there are no icon packs installed, we can not edit the icon, though it always applied a foreground and click listener. Only apply foreground and set click listener, if there are icon packs installed and clicking on it actually does something. Change-Id: I09ac1473c75d5edcf5e940a0e5bb2ec7f2296e8f Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Edit dialog: change brush color from black to whiteAlexander Martinz2018-07-141-2/+2
| | | | | | | | | | This looks really weird on dark color accents. As we are supporting dynamic color accents with RRO overlays, we might need to switch to something dynamically in future. Change-Id: I71fccc301de43d55bf7e9a31a3166b7a59a2c236 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* WallpaperManager: do not crash because of insufficient permissionsAlexander Martinz2018-07-141-1/+4
| | | | | | | | | | In order to get the wallpaper, the app needs to be able to read external storage. Check if READ_EXTERNAL_STORAGE is granted before using it. Change-Id: I1559a3b9fa3dc3e20180bc380ddd4fa70eda1be3 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* IconsHandler: use ViewHolder, prevent AsyncTask leaks, cleanupAlexander Martinz2018-07-141-28/+55
| | | | | | | | | *) Use a ViewHolder pattern for the list *) Make the AsyncTask static to prevent leaks *) Remove unnecessary null checks when using instanceOf Change-Id: I333758874c98341552a1cce626e208cc6096ecb1 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* logging: prevent NPE at logDeepShortcutsOpenAlexander Martinz2018-07-141-1/+1
| | | | | | | | | getLaunchProviderRecursive(View) can return null. Check if provider is null before using it. Change-Id: I8cd157ba315e1dcc1fed428e0474b55b774bbd2f Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* IconsHandler: prevent resource not found exception when getting xmlAlexander Martinz2018-07-141-3/+3
| | | | | | | | | JavaDoc of Resources#getIdentifier(...): Returns - The associated resource identifier. Returns 0 if no such resource was found. (0 is not a valid resource ID.) Change-Id: Ia9f4ea9efb56bb54d94729f70a3afcec5bce7999 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Automatic translation importMichael Bestas2018-07-092-0/+4
| | | | Change-Id: Ic02d71841ded552fe7c1b370607b5afada970126
* Trebuchet: use system's accentJoey2018-07-063-5/+0
| | | | | Change-Id: Ic4d084179736aba1559fdd4ab0fef20c452dedf5 Signed-off-by: Joey <joey@lineageos.org>
* Trebuchet: the superior siege weapon doesn't need paddings in allApps' iconsJoey2018-07-061-2/+2
| | | | | Change-Id: Ia46972410d357cf167d2bdb60a617647e8d5b6cb Signed-off-by: Joey <joey@lineageos.org>
* IconPicker: clone drawables array to prevent IOOBEAlexander Martinz2018-07-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When binding the view holder, we are making use of lists, which can change. In case the lists are changing after binding, we can get an IOOBE when the click listener gets called. To work around this create a shallow copy of the lists and use it. ----- Stack Trace: java.lang.IndexOutOfBoundsException: Index: 44, Size: 44 at java.util.ArrayList.get(ArrayList.java:437) at com.android.launcher3.icons.IconPickerActivity$GridAdapter.lambda$-com_android_launcher3_icons_IconPickerActivity$GridAdapter_9734(IconPickerActivity.java:248) at com.android.launcher3.icons.-$Lambda$aHbfyH3p1fvGkmuJq2f35Z_cj_A$2.$m$0 at com.android.launcher3.icons.-$Lambda$aHbfyH3p1fvGkmuJq2f35Z_cj_A$2.onClick at android.view.View.performClick(View.java:6320) at android.view.View$PerformClick.run(View.java:25087) at android.os.Handler.handleCallback(Handler.java:869) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:206) at android.app.ActivityThread.main(ActivityThread.java:6733) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845) ----- Change-Id: Id3bc8a01c29517230765a032f220bccccda2b386 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Automatic translation importMichael Bestas2018-06-1812-1/+37
| | | | Change-Id: Ia8c9ff9630d094826c53ecd38f2a46cdd62d333f
* IconCache: fix nullpointer exceptionsAlexander Martinz2018-06-181-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | LauncherActivityInfo's or resolved activities can be null. Example crash: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ComponentName android.content.pm.LauncherActivityInfo.getComponentName()' on a null object reference at com.android.launcher3.IconCache.getCacheEntry(IconCache.java:392) at com.android.launcher3.Launcher.startEdit(Launcher.java:3988) at com.android.launcher3.popup.SystemShortcut$AppEdit.lambda$-com_android_launcher3_popup_SystemShortcut$AppEdit_4399(SystemShortcut.java:115) at com.android.launcher3.popup.-$Lambda$_SMHeS1Apq5nUPo60kvmkZszeNE.$m$0 at com.android.launcher3.popup.-$Lambda$_SMHeS1Apq5nUPo60kvmkZszeNE.onClick at android.view.View.performClick(View.java:6320) at android.view.View$PerformClick.run(View.java:25087) at android.os.Handler.handleCallback(Handler.java:869) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:206) at android.app.ActivityThread.main(ActivityThread.java:6733) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845) Issue: SHIFTOS-SW-31 Change-Id: If5f027e3146b358036b1ac1a1e973467d4fca2c4 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Trebuchet: don't log apps for predictive suggestions when disabledJoey2018-06-123-0/+12
| | | | | Change-Id: I5d9b8174431cfbfa8c0227c31a9ec288433d6d4c Signed-off-by: Joey <joey@lineageos.org>
* Automatic translation importMichael Bestas2018-06-0320-3/+69
| | | | Change-Id: Ia5aebbd0346dfcb066d159807349c73f21c5902b
* Trebuchet: make forced adaptive icons optionalJoey2018-05-216-4/+58
| | | | | Change-Id: Ie84af7114118f54b2d267a35ce24dd5e58c0be22 Signed-off-by: Joey <joey@lineageos.org>
* config: enable LEGACY_ICON_TREATMENTAlexander Martinz2018-05-211-1/+1
| | | | | Change-Id: I724990a78d96b55724ee6387eb243cfb95871360 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Icons: wrap all legacy icons to adaptive iconsAlexander Martinz2018-05-212-3/+9
| | | | | | | | | | Previously only apps targetting API 26 (O) would get wrapped as adaptive icon, resulting in legacy icons still looking out of place. Wrap all icons, independent of target API. Change-Id: I3647d95c7f4f5c0515a14cbf4eebd5afcdfb38ae Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Icons: fix non-adaptive icon handlingAlexander Martinz2018-05-213-25/+28
| | | | | | | The icon pack support broke this feature, fix it up to make it work again. Change-Id: I22e1ba953fc8cabb0e7633a3c5cf3ce5c07cf762 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Trebuchet: improve predictive appsJoey2018-05-215-97/+298
| | | | | | | | | | | | | | - Store data in a sql db - Categorize app launch between - Day - Night - Headphones The suggestions will change on the go basing on whether an headset is plugged in or it's day or night Change-Id: Ic9d8dd4dafbb1a56157140119df71efd6fb4349a Signed-off-by: Joey <joey@lineageos.org>
* Automatic translation importMichael Bestas2018-05-086-5/+51
| | | | Change-Id: Ie7169cfe1308493ebd515434d5d8e07848e2c416
* Trebuchet: update build.gradleJoey2018-05-021-2/+6
| | | | | Change-Id: If9f4d4ccddd2ea8e9cc44881964d698827609465 Signed-off-by: Joey <joey@lineageos.org>
* LauncherProvider: fix crash when disk is fullAlexander Martinz2018-04-291-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Stacktrace: android.database.sqlite.SQLiteFullException: database or disk is full (code 13) at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(SQLiteConnection.java) at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:750) at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754) at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64) at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1604) at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1550) at com.android.launcher3.LauncherProvider.update(LauncherProvider.java:360) at android.content.ContentProvider$Transport.update(ContentProvider.java:359) at android.content.ContentResolver.update(ContentResolver.java:1672) at com.android.launcher3.model.ModelWriter$UpdateItemRunnable.run(ModelWriter.java:290) at com.android.launcher3.util.LooperExecutor.execute(LooperExecutor.java:39) at com.android.launcher3.model.ModelWriter.updateItemInDatabase(ModelWriter.java:197) at com.android.launcher3.model.PackageUpdatedTask.execute(PackageUpdatedTask.java:258) at com.android.launcher3.model.BaseModelUpdateTask.run(BaseModelUpdateTask.java:67) at android.os.Handler.handleCallback(Handler.java:869) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:206) at android.os.HandlerThread.run(HandlerThread.java:65) Issue: SHIFTOS-SW-18 Change-Id: I4c4fa9239b9ff14a6614187c450d12b6006fde82 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* PagedView: fix pointer index out of rangeAlexander Martinz2018-04-291-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stacktrace: java.lang.IllegalArgumentException: pointerIndex out of range at android.view.MotionEvent.nativeGetAxisValue(MotionEvent.java) at android.view.MotionEvent.getX(MotionEvent.java:2201) at com.android.launcher3.PagedView.onTouchEvent(PagedView.java:1557) at android.view.View.dispatchTouchEvent(View.java:11842) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3068) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2700) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3074) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2714) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3074) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2714) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3074) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2714) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3074) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2714) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3074) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2714) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:464) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1854) at android.app.Activity.dispatchTouchEvent(Activity.java:3292) at com.android.launcher3.Launcher.dispatchTouchEvent(Launcher.java:2781) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:426) at android.view.View.dispatchPointerEvent(View.java:12092) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5279) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5084) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4581) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4634) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4600) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4747) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4608) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4804) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4581) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4634) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4600) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4608) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4581) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7259) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7233) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7176) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7431) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:325) at android.os.Looper.loop(Looper.java:147) at android.app.ActivityThread.main(ActivityThread.java:6733) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845) Issue: SHIFTOS-SW-19 Change-Id: Idcab340d65ee2a4782052b4d1a9de73a886afef7 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* PredictiveAppsProvider: fix null pointer exceptionAlexander Martinz2018-04-271-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If component is null, we call ComponentName#getPackageName() on a null object reference. Happened when opening an app while it was upgraded. ---------- Stacktrace: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.ComponentName.getPackageName()' on a null object reference at com.android.launcher3.allapps.PredictiveAppsProvider.buildComponentString(PredictiveAppsProvider.java:99) at com.android.launcher3.allapps.PredictiveAppsProvider.updateComponentCount(PredictiveAppsProvider.java:32) at com.android.launcher3.Launcher.startActivitySafely(Launcher.java:2764) at com.android.launcher3.Launcher.startAppShortcutOrInfoActivity(Launcher.java:2520) at com.android.launcher3.Launcher.onClick(Launcher.java:2352) at android.view.View.performClick(View.java:6320) at android.view.View$PerformClick.run(View.java:25087) at android.os.Handler.handleCallback(Handler.java:869) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:206) at android.app.ActivityThread.main(ActivityThread.java:6733) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845) ---------- Issue: BUGBASH-1524 Change-Id: I970453f5da87c36e9915b8c0bbe9f1cd2302ec93 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
* Avoid crash when widget previews have no intrinsic sizeRoger Olsson2018-04-271-3/+4
| | | | | | | | | | Intrinsic size for widget preview drawable checked. Needed since some drawables, like color drawables, do not have any intrinsic size. Bug: 78452220 Test: manual, see Bug info. Change-Id: I815353773e38b1fce2fe19962f07c1727e1b0768
* Automatic translation importMichael Bestas2018-04-202-3/+3
| | | | Change-Id: I29bd10eb84c8d86fec836530cbcadea978e2dd75
* Increased folder icon previewEmre Harbutoğlu2018-04-121-1/+1
| | | | | | It was very little. Change-Id: I2883c8ffb1eac927e67efd45639bad2fb2c5207e
* config: enable LAUNCHER3_PROMISE_APPS_IN_ALL_APPSAlexander Martinz2018-04-121-1/+1
| | | | | Change-Id: If8a0e5595734eacb038f31c38bf7b4f151fd4825 Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>