I'm a Principal Software Engineer and UX/UI Designer.
My areas of focus are Android, Jetpack Compose, Design Systems and Kotlin Multiplatform.
I'm based in Cape Town, South Africa 🇿🇦
You can find me on:
A unique, efficient way to browse and launch your apps
Home Page: https://experiments.withgoogle.com/lens-launcher
License: Apache License 2.0
Very interesting design concept. Not sure if you're actively maintaining this, wanted to point out a few things.
When an app is uninstalled from system settings, it doesn't get removed from the icons. It seems there isn't a way to remove the icon except hiding it in the launcher settings. The app was installed before the launcher was installed and enabled. The app entry in the apps list of the launcher settings isn't removable either - it can only be hidden.
To reproduce:
Android 9
pick manually
This is because it uses a dynamic icon (the icon changes the bitmap every day to display the date on it), so there is no hardcoded bitmap for the app. In order to retrieve the bitmap, you must get the drawable then convert it to a bitmap.
Hello, could you please state the open source license type for this project?
Most popular ones are: (in the order of freedom - from most free to less free): the MIT license, the Apache V2 license, BSD license, GPL V3 license and so on...
error
I created a shortcut via my web browser (Chrome), and it didn't appeared in my home screen, everything is working as it should, in another launcher.
sometimes I can't find the app i am lookign for, a search icon would be helpful.
It could be part of the grid of app icons, a search icon that looks like an app icon ...
but it lets you search through you installed apps
I've been trying to merge new changes but the .idea/ (and some other auto generated files) are killing it for me! The following .gitignore would remove the unneeded files which are currently being tracked by git.
Replace the current .gitignore with this.
https://gist.github.com/vtanathip/9414323
As far as I know, you might need to remove the currently unneeded tracked files once from your repo and from then onwards git won't track them.
Android 9 device with boot encryption enabled
The launcher was stuck on the spinner for at least a minute and never loaded the app lens.
Workaround was to open the top drawer of functions, access the settings, and change the default home launcher back to Quickstep.
This is a nonstarter for using the launcher as the default.
It would be nice to have the ability to add widgets to the launcher as well (on another page, using a ViewPager)
On app start.
Android Studio 3.3
Build #AI-182.5107.16.33.5199772, built on December 25, 2018
JRE: 1.8.0_152-release-1248-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.2
2019-01-30 18:13:39.978 5901-5901/nickrout.lenslauncher E/RecyclerView: No adapter attached; skipping layout
2019-01-30 18:13:40.008 5901-5924/nickrout.lenslauncher E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-01-30 18:13:40.010 5901-5924/nickrout.lenslauncher E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-01-30 18:13:42.497 5901-5901/nickrout.lenslauncher E/SQLiteLog: (1) no such table: APP_PERSISTENT
2019-01-30 18:13:42.560 5901-5901/nickrout.lenslauncher E/AndroidRuntime: FATAL EXCEPTION: main
Process: nickrout.lenslauncher, PID: 5901
android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1165)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1036)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1242)
at com.orm.SugarRecord.find(SugarRecord.java:201)
at com.orm.query.Select.first(Select.java:154)
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter$AppViewHolder.setAppElement(AppRecyclerAdapter.java:108)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter.onBindViewHolder(AppRecyclerAdapter.java:74)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6356)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6389)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5335)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5598)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224)
at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595)
at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3312)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3844)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1795)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1391)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:870)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17637)
2019-01-30 18:13:42.577 5901-5901/nickrout.lenslauncher E/AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:726)
at android.view.View.layout(View.java:17637)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Hello,
Would you be interested in publishing this app on F-Droid?
To me and a couple users on Google Play, it feels weird having no animation on a single click. In fact, after the update I switched back to my default launcher and assumed it was a regression. While, perhaps I'm the exception, it'd be nice to have an option to turn that back on.
Thanks!
Dear Developers,
I am implementing a hang-bug detection tool and I am analyzing lens-launcher with it (commit number e41e6c6). I found that the main thread of lens-launcher frequently calls:
com.orm.SugarRecord.save(SugarRecord.java:416)
In particular, the above API is called as consequence of the following call:
nickrout.lenslauncher.model.AppPersistent.incrementAppCount(AppPersistent.java:108) -> com.orm.SugarRecord.save(SugarRecord.java:416)
which then performs a database operation by calling
android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
In my experiments, the execution of that function on the main thread may be the main cause of the eye-detectable delays (i.e., hang-bugs) experienced with lens-launcher .
As the developers guide of Android suggests, moving work off the main thread leads to higher responsiveness of the app. It is actually possible to move that operation off the main thread using background threads.
Therefore, do you think that the smoothness of the app would improve by executing the com.orm.SugarRecord.save API off the main thread?
Thanks for any information,
I hope I can help improve lens-launcher.
If a shortcut to the launcher view of lens-launcher was added to the system-wide shortcuts list, it could be used as the app drawer view for an arbitrary launcher. For example:
arbitrary launcher settings -> drawer settings -> use custom drawer -> shortcut -> lens-launcher-shortcut
Dear devs,
I import project to Android Studio, no issue but when I run. Force close occur immediately. Here are the log:
FATAL EXCEPTION: main Process: nickrout.lenslauncher, PID: 10440 android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
Error Code : 1 (SQLITE_ERROR)Caused By : SQL(query) error or missing database. (no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
...
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter$AppViewHolder.setAppElement(AppRecyclerAdapter.java:108)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter.onBindViewHolder(AppRecyclerAdapter.java:74)
sometimes cant see the name out screen area, possible try android:maxLines=2 or 3 ?
Right now the only way to delete an app (using lens launcher) would be to go into Settings -> Apps -> and delete the app you want to. It would be nice to be able to delete the app straight from the grid
I use kiss launcher as my default home screen (so I can have widgets and search bar) and lens launcher as app drawer (to access quickly to all my installed apps). I think that could be very handy to have the possibility to launch lens launcher as an assistant app so swiping from the bottom of the screen I can go to the default home screen and swiping from the bottom corner I can use immediately the lens launcher
the sort order "most used" is sometimes confusing because apps will move around.
A custom sort order would let me place my favorite apps near the top of the screen so i can easily find them.
Also this will leave apps at the same place, they wont move around and confuse me.
the tap "apps" could have a reorder icon on each list item to allow this
To replicate - open a fullscreen app such as Yahoo weather, Snapchat, etc. Then go back to your launcher. You'll see that the apps draw over the system bar. You need to redraw the launcher (i.e. by touch), then the apps draw correctly.
if you hover on an app for a long time it would be fun to open a menu list of actions for that app.
such as
basically is does what the tab "apps" does.
I faced issue when run code
Could you help to check
02-18 15:31:03.190 27242-27242/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: nickrout.lenslauncher, PID: 27242
android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1454)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1301)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1172)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1378)
at com.orm.SugarRecord.find(SugarRecord.java:201)
at com.orm.query.Select.first(Select.java:154)
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter$AppViewHolder.setAppElement(AppRecyclerAdapter.java:108)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter.onBindViewHolder(AppRecyclerAdapter.java:74)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6308)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6341)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5287)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5550)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5392)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5388)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2149)
at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1496)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:593)
at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3535)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3264)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3796)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1795)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1375)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:870)
at an
02-18 15:31:55.790 29018-29018/nickrout.lenslauncher E/AndroidRuntime: FATAL EXCEPTION: main
Process: nickrout.lenslauncher, PID: 29018
java.lang.RuntimeException: Unable to start receiver nickrout.lenslauncher.background.BroadcastReceivers$AppsLoadedReceiver: android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
#################################################################
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3641)
at android.app.ActivityThread.access$2000(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1876)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1454)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1301)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1172)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1378)
at com.orm.SugarRecord.find(SugarRecord.java:201)
at com.orm.query.Select.first(Select.java:154)
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.ui.HomeActivity.removeHiddenApps(HomeActivity.java:106)
at nickrout.lenslauncher.ui.HomeActivity.assignApps(HomeActivity.java:100)
at nickrout.lenslauncher.ui.HomeActivity.update(HomeActivity.java:129)
at java.util.Observable.notifyObservers(Observable.java:138)
at nickrout.lenslauncher.background.LoadedObservable.updateValue(LoadedObservable.java:21)
at nickrout.lenslauncher.background.LoadedObservable.update(LoadedObservable.java:26)
at nickrout.lenslauncher.background.BroadcastReceivers$AppsLoadedReceiver.onReceive(BroadcastReceivers.java:36)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3634)
... 8 more
02-18 15:34:30.090 31958-31958/com.fast.textoverlay.network E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.fast.textoverlay.network, PID: 31958
java.lang.RuntimeException: Unable to create service saschpe.textoverlay.service.TextOverlayService: java.lang.SecurityException: com.fast.textoverlay.network from uid 10408 not allowed to perform SYSTEM_ALERT_WINDOW
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3817)
at android.app.ActivityThread.access$2100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1882)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.SecurityException: com.fast.textoverlay.network from uid 10408 not allowed to perform SYSTEM_ALERT_WINDOW
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:791)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:813)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at saschpe.textoverlay.service.TextOverlayService.onCreate(Unknown Source)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3807)
at android.app.ActivityThread.access$2100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1882)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
02-18 15:34:35.675 32141-32141/com.fast.textoverlay.network E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.fast.textoverlay.network, PID: 32141
java.lang.RuntimeException: Unable to create service saschpe.textoverlay.service.TextOverlayService: java.lang.SecurityException: com.fast.textoverlay.network from uid 10408 not allowed to perform SYSTEM_ALERT_WINDOW
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3817)
at android.app.ActivityThread.access$2100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1882)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.SecurityException: com.fast.textoverlay.network from uid 10408 not allowed to perform SYSTEM_ALERT_WINDOW
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:791)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:813)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at saschpe.textoverlay.service.TextOverlayService.onCreate(Unknown Source)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3807)
at android.app.ActivityThread.access$2100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1882)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
02-18 15:39:41.205 2420-2420/nickrout.lenslauncher E/AndroidRuntime: FATAL EXCEPTION: main
Process: nickrout.lenslauncher, PID: 2420
android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1454)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1301)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1172)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1378)
at com.orm.SugarRecord.find(SugarRecord.java:201)
at com.orm.query.Select.first(Select.java:154)
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter$AppViewHolder.setAppElement(AppRecyclerAdapter.java:108)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter.onBindViewHolder(AppRecyclerAdapter.java:74)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6308)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6341)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5287)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5550)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5392)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5388)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2149)
at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1496)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:593)
at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3535)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3264)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3796)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1795)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1375)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:870)
at and
02-18 15:43:01.790 5174-5174/nickrout.lenslauncher E/AndroidRuntime: FATAL EXCEPTION: main
Process: nickrout.lenslauncher, PID: 5174
android.database.sqlite.SQLiteException: no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: APP_PERSISTENT (code 1): , while compiling: SELECT * FROM APP_PERSISTENT WHERE (M_IDENTIFIER = ? ) LIMIT 1)
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1454)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1301)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1172)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1378)
at com.orm.SugarRecord.find(SugarRecord.java:201)
at com.orm.query.Select.first(Select.java:154)
at nickrout.lenslauncher.model.AppPersistent.getAppVisibility(AppPersistent.java:129)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter$AppViewHolder.setAppElement(AppRecyclerAdapter.java:108)
at nickrout.lenslauncher.adapter.AppRecyclerAdapter.onBindViewHolder(AppRecyclerAdapter.java:74)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6308)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6341)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5287)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5550)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5392)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5388)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2149)
at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1496)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:593)
at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3535)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3264)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3796)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1795)
at android.view.View.layout(View.java:17938)
at android.view.ViewGroup.layout(ViewGroup.java:5814)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1375)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:870)
at and
I would like to see the possibility to rename apps in the settings.
I use alphabetical sorting and I use a gallery app that's named Q******* which I nonetheless want to be sorted as "Gallery."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.