Giter Club home page Giter Club logo

starlight's Introduction


Project StarLight

!! Project StarLight is still in development, any bugs can appear !!

`Project StarLight 🌟` is a Messenger auto-reply application that supports
a variety of script languages and a plugin platform

βœ” Any PRs are welcome, Watch nightly branch for recent updates!

Screenshots (WIP)

License

Designed and developed by 2021 mooner1022 (Minki Moon)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

starlight's People

Contributors

mooner1022 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

olabi scto bnasoft

starlight's Issues

Project alignment issues

Error log that occurs when sorting projects

               StarLight v0.2.0a-240208(build 2)
               PluginCore v0.2.0
               Build.VERSION.SDK_INT: 31
               Build.DEVICE: d1x
               thread  : main
               message : Two different ViewHolders have the same stable ID. Stable IDs in your adapter MUST BE unique and SHOULD NOT change.
ViewHolder 1:BindingViewHolder{58cf25c position=4 id=1087354647, oldPos=-1, pLpos:-1} 
View Holder 2:BindingViewHolder{d03acd0 position=3 id=1087354647, oldPos=-1, pLpos:-1} androidx.recyclerview.widget.RecyclerView{45b401e VFED..... ......ID 0,0-1006,1793 #7f0a0252 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@2dac75d, layout:androidx.recyclerview.widget.LinearLayoutManager@e5548ac, context:dev.mooner.starlight.MainActivity@6f1d031
               cause   : null
               ┉┉┉┉┉┉┉┉┉┉
               Stack Trace:
               java.lang.IllegalStateException: Two different ViewHolders have the same stable ID. Stable IDs in your adapter MUST BE unique and SHOULD NOT change.
 ViewHolder 1:BindingViewHolder{58cf25c position=4 id=1087354647, oldPos=-1, pLpos:-1} 
 View Holder 2:BindingViewHolder{d03acd0 position=3 id=1087354647, oldPos=-1, pLpos:-1} androidx.recyclerview.widget.RecyclerView{45b401e VFED..... ......ID 0,0-1006,1793 #7f0a0252 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@2dac75d, layout:androidx.recyclerview.widget.LinearLayoutManager@e5548ac, context:dev.mooner.starlight.MainActivity@6f1d031
	at androidx.recyclerview.widget.RecyclerView.handleMissingPreInfoForChangeError(RecyclerView.java:4778)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:4702)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4367)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.recyclerview.widget.RecyclerView$LayoutManager.layoutDecoratedWithMargins(RecyclerView.java:10407)
	at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1720)
	at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:535)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
	at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
	at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at com.android.internal.policy.DecorView.onLayout(DecorView.java:1331)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4614)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4036)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2924)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10513)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
	at android.view.Choreographer.doCallbacks(Choreographer.java:866)
	at android.view.Choreographer.doFrame(Choreographer.java:797)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8751)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

──────────

Project alignment issues

StarLight v0.2.1a-240209(build 3)
PluginCore v0.2.0
Build.VERSION.SDK_INT: 31
Build.DEVICE: d1x
thread  : main
message : Two different ViewHolders have the same stable ID. Stable IDs in your adapter MUST BE unique and SHOULD NOT change.
ViewHolder 1:BindingViewHolder{46478e5 position=9 id=1078290055, oldPos=-1, pLpos:-1} 
View Holder 2:BindingViewHolder{38e09b6 position=11 id=1078290055, oldPos=-1, pLpos:-1} androidx.recyclerview.widget.RecyclerView{47d2e26 VFED..... ......ID 0,0-1006,1793 #7f0a0252 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@9d1c605, layout:androidx.recyclerview.widget.LinearLayoutManager@73150d9, context:dev.mooner.starlight.MainActivity@461c289
               cause   : null
               ┉┉┉┉┉┉┉┉┉┉
               Stack Trace:
               java.lang.IllegalStateException: Two different ViewHolders have the same stable ID. Stable IDs in your adapter MUST BE unique and SHOULD NOT change.
 ViewHolder 1:BindingViewHolder{46478e5 position=9 id=1078290055, oldPos=-1, pLpos:-1} 
 View Holder 2:BindingViewHolder{38e09b6 position=11 id=1078290055, oldPos=-1, pLpos:-1} androidx.recyclerview.widget.RecyclerView{47d2e26 VFED..... ......ID 0,0-1006,1793 #7f0a0252 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@9d1c605, layout:androidx.recyclerview.widget.LinearLayoutManager@73150d9, context:dev.mooner.starlight.MainActivity@461c289
	at androidx.recyclerview.widget.RecyclerView.handleMissingPreInfoForChangeError(RecyclerView.java:4778)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:4702)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4367)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.recyclerview.widget.RecyclerView$LayoutManager.layoutDecoratedWithMargins(RecyclerView.java:10407)
	at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1720)
	at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:535)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
	at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
	at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
	at com.android.internal.policy.DecorView.onLayout(DecorView.java:1331)
	at android.view.View.layout(View.java:24461)
	at android.view.ViewGroup.layout(ViewGroup.java:7412)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4614)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4036)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2924)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10513)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
	at android.view.Choreographer.doCallbacks(Choreographer.java:866)
	at android.view.Choreographer.doFrame(Choreographer.java:797)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8751)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

──────────

Inconsistency detected. Invalid item position

──────────
StarLight v0.2.1a-240209(build 3)
PluginCore v0.2.0
Build.VERSION.SDK_INT: 31
Build.DEVICE: d1x
thread  : main
message : Inconsistency detected. Invalid item position 100(offset:100).state:117 androidx.recyclerview.widget.RecyclerView{984c425 VFED..... ........ 0,0-1006,1862 #7f0a0251 app:id/recyclerViewLogs}, adapter:dev.mooner.starlight.ui.logs.LogsRecyclerViewAdapter@87384f0, layout:androidx.recyclerview.widget.LinearLayoutManager@73794a4, context:dev.mooner.starlight.MainActivity@715dfb2
cause   : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 100(offset:100).state:117 androidx.recyclerview.widget.RecyclerView{984c425 VFED..... ........ 0,0-1006,1862 #7f0a0251 app:id/recyclerViewLogs}, adapter:dev.mooner.starlight.ui.logs.LogsRecyclerViewAdapter@87384f0, layout:androidx.recyclerview.widget.LinearLayoutManager@73794a4, context:dev.mooner.starlight.MainActivity@715dfb2
	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6821)
	at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
	at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
	at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
	at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
	at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8751)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

──────────

[Error]Api.replyRoom()

μ‚¬μš©ν•œ μ½”λ“œ : Api.replyRoom("Room", "TEST")
μ—λŸ¬ :
[JavaException] java.lang.NullPointerException: Can't toast on a thread that has not called Looper.prepare() line : #2

[Error]

*** 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑... ***
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]
──────────
StarLight v0.1.0a-230827(build 1)
PluginCore v0.1.0
Build.VERSION.SDK_INT: 33
Build.DEVICE: gta4xlwifi
thread : main
message : Unregistered event: dev.mooner.starlight.listener.event.OnNotificationPostedEvent
cause : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.IllegalStateException: Unregistered event: dev.mooner.starlight.listener.event.OnNotificationPostedEvent
at dev.mooner.starlight.listener.NotificationListener.onNotificationPosted(NotificationListener.kt:329)
at android.service.notification.NotificationListenerService.onNotificationPosted(NotificationListenerService.java:456)
at android.service.notification.NotificationListenerService$MyHandler.handleMessage(NotificationListenerService.java:2352)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

──────────

StarLight v0.1.0a-230903 Error

치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑...
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]

StarLight v0.1.0a-230903(build 1)
PluginCore v0.1.0
Build.VERSION.SDK_INT: 33
Build.DEVICE: gta4xlwifi
thread  : DefaultDispatcher-worker-8
message : Failed to allocate a 16 byte allocation with 839826 free bytes and 820KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
cause   : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.OutOfMemoryError: Failed to allocate a 16 byte allocation with 839826 free bytes and 820KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
	at dev.mooner.starlight.plugincore.logger.internal.Logger$log$1.invokeSuspend(Logger.kt:129)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@5cfca0e, LimitedDispatcher@4264bc5]

Milestone and to-dos of project

  • Add nested config category
  • Add user-created project template
  • Add implementations of Legacy API and API2
    • Legacy API
    • API2
  • Implement legacy event callbacks
    • API1
      • onNotificationPosted
      • onStartCompile
      • response
    • API2
      • Bot
      • Event
    • Consider moving legacy supports to external plugin
  • Load external scripts on compile
  • Finish incomplete plugin event listener load code
  • Add event broadcaster for plugins
  • Add compile pipeline
  • Migrate and rewrite list adapters
  • Add custom project button support for plugins
  • Implement project lifecycle
  • Redevelop ConfigAdapter and ConfigBuilder #33

App often shuts down when removing a project

Stack Trace:

*** 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑... ***
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]
──────────
StarLight v0.2.0a-231223(build 2)
PluginCore v0.2.0
Build.VERSION.SDK_INT: 33
Build.DEVICE: redfin
thread  : main
message : Inconsistency detected. Invalid item position 4(offset:-1).state:5 androidx.recyclerview.widget.RecyclerView{15a6525 VFED..... ......ID 0,0-1012,756 #7f0a0253 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@8e8b9f0, layout:androidx.recyclerview.widget.LinearLayoutManager@e932e7d, context:dev.mooner.starlight.MainActivity@fe790f8
cause   : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 4(offset:-1).state:5 androidx.recyclerview.widget.RecyclerView{15a6525 VFED..... ......ID 0,0-1012,756 #7f0a0253 app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@8e8b9f0, layout:androidx.recyclerview.widget.LinearLayoutManager@e932e7d, context:dev.mooner.starlight.MainActivity@fe790f8
   at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6821)
   at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6757)
   at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6753)
   at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
   at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
   at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
   at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
   at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4591)
   at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4346)
   at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at androidx.recyclerview.widget.RecyclerView$LayoutManager.layoutDecoratedWithMargins(RecyclerView.java:10407)
   at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1720)
   at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
   at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
   at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645)
   at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348)
   at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:535)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
   at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
   at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)
   at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
   at com.android.internal.policy.DecorView.onLayout(DecorView.java:799)
   at android.view.View.layout(View.java:23798)
   at android.view.ViewGroup.layout(ViewGroup.java:6413)
   at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4118)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3459)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2371)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9297)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
   at android.view.Choreographer.doCallbacks(Choreographer.java:899)
   at android.view.Choreographer.doFrame(Choreographer.java:832)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
   at android.os.Handler.handleCallback(Handler.java:942)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loopOnce(Looper.java:201)
   at android.os.Looper.loop(Looper.java:288)
   at android.app.ActivityThread.main(ActivityThread.java:7918)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

──────────

λ©”μ‹œμ§€ 2번 전솑및 디버그룸 μž‘λ™X

Screenshot_20230826-163856_StarLight

Starlight(μ΄ν•˜ λ³„λΉ›μœΌλ‘œ λΆ€λ₯΄κ² μŠ΅λ‹ˆλ””)λ₯Ό ν…ŒμŠ€νŠΈ ν•˜λŠ”λ° μ‚¬μš©ν•œ μ•„μ£Ό κ°„λ‹¨ν•œ μ†ŒμŠ€ μ½”λ“œμž…λ‹ˆλ‹€.

1693035526193
μ™œμΈμ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ 자꾸 λͺ…λ Ήμ–΄λ₯Ό μˆ˜ν–‰ν• λ•Œ 2번 λ©”μ‹œμ§€λ₯Ό λ³΄λƒ…λ‹ˆλ‹€.

λ‹€λ₯Έλ°©μ—μ„œλ„ 별빛 슀크립트 νƒœμŠ€νŠΈλ₯Ό ν•΄λ³΄μ•˜μ§€λ§Œ κ²°κ³ΌλŠ” κ°™μ•˜μŠ΅λ‹ˆλ‹€.

Screenshot_20230826-165526_StarLight

κ·Έλƒ₯ 제 폰이 λ¬Έμ œμΈκ°€ μ‹Άμ–΄μ„œ 별빛 λ‚΄λΆ€ λ””λ²„κ·Έλ£Έμ—μ„œ 확인을 μ‹œλ„ν–ˆμ§€λ§Œ 디버그룸은 κ·Έλƒ₯ λ¨Ήν†΅μ΄λ”λΌκ΅¬μš”...

개발 진행 μ—¬λΆ€

아직 ν”„λ‘œμ νŠΈκ°€ 개발되고 μžˆλŠ” μƒνƒœμΈκ°€μš”?
20μΌλ™μ•ˆ dev λΈŒλŸ°μΉ˜μ— 컀밋이 μ—†μ–΄ μ—¬μ­€λ΄…λ‹ˆλ‹€.

Memory leak from RecyclerViews

Allocated memory for RecyclerView adapter is not being released and remains which causes continuous memory leak. Should assign null to the adapter object when view is destroyed.

Starlight v230903 Error

*** 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑... ***
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]
──────────
StarLight v0.1.0a-230903(build 1)
PluginCore v0.1.0
Build.VERSION.SDK_INT: 33
Build.DEVICE: gta4xlwifi
thread : DefaultDispatcher-worker-12
message : Failed to allocate a 24 byte allocation with 132360 free bytes and 129KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
cause : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.OutOfMemoryError: Failed to allocate a 24 byte allocation with 132360 free bytes and 129KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at libcore.io.Linux.open(Native Method)
at libcore.io.ForwardingOs.open(ForwardingOs.java:563)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274)
at libcore.io.ForwardingOs.open(ForwardingOs.java:563)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8672)
at libcore.io.IoBridge.open(IoBridge.java:560)
at java.io.FileOutputStream.(FileOutputStream.java:236)
at kotlin.io.FilesKt__FileReadWriteKt.appendBytes(FileReadWrite.kt:115)
at kotlin.io.FilesKt__FileReadWriteKt.appendText(FileReadWrite.kt:142)
at kotlin.io.FilesKt__FileReadWriteKt.appendText$default(FileReadWrite.kt:142)
at dev.mooner.starlight.logging.LogCollector$onLogCreated$1.invokeSuspend(LogCollector.kt:50)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@6b3b077, LimitedDispatcher@d5094e4]

──────────

Feature request for an API server

apiserver

Currently Kakaotalk bot apps does not provide a built-in API server that receives requests from outside an app or a device. To send messages to bot apps, tcp/udp sockets could be used, but because of its complicated structure, it is not broadly used.

It would be very useful for bots that process events outside android environment, such as remote-kakao/pykakaodbbot.
There are Flask like java modules that creates an API server, and flak will be a good candidate.
https://github.com/pcdv/flak

μ‚­μ œν›„ 제기뢈λŠ₯

ν…ŒμŠ€νŠΈμš© ν”„λ‘œμ νŠΈλ₯Ό μ‚­μ œν•˜κ³  λ‚œ 뒀에 별빛 μž¬λΆ€νŒ… ν›„ 이게 λœ¨λ”κ΅°μš”.....

*** 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑... ***
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]
──────────
StarLight v0.1.0a-230827(build 1)
PluginCore v0.1.0
Build.VERSION.SDK_INT: 31
Build.DEVICE: a31
thread : main
message : Inconsistency detected. Invalid item position 3(offset:-1).state:4 androidx.recyclerview.widget.RecyclerView{ea3161c VFED..... ......ID 0,0-1006,1837 #7f0a024e app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@1ba3733, layout:androidx.recyclerview.widget.LinearLayoutManager@cfe9494, context:dev.mooner.starlight.MainActivity@9d97f0d
cause : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 3(offset:-1).state:4 androidx.recyclerview.widget.RecyclerView{ea3161c VFED..... ......ID 0,0-1006,1837 #7f0a024e app:id/recyclerViewProjectList}, adapter:com.mikepenz.fastadapter.FastAdapter@1ba3733, layout:androidx.recyclerview.widget.LinearLayoutManager@cfe9494, context:dev.mooner.starlight.MainActivity@9d97f0d
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6821)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6757)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6753)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4591)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4346)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.layoutDecoratedWithMargins(RecyclerView.java:10407)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1720)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:535)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:1331)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4609)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4031)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2919)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10491)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
at android.view.Choreographer.doCallbacks(Choreographer.java:866)
at android.view.Choreographer.doFrame(Choreographer.java:797)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8663)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

──────────

아직도 버그가 λ‚¨μ•„μžˆλ„€μš”..γ… γ… 

StarLight v0.2.0a-231221 Error

치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑...
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]

StarLight v0.2.0a-231221(build 2)
PluginCore v0.2.0
Build.VERSION.SDK_INT: 33
Build.DEVICE: gta4xlwifi
thread  : main
message : java.lang.reflect.InvocationTargetException
cause   : java.lang.reflect.InvocationTargetException
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:614)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.reflect.InvocationTargetException
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
	... 1 more
Caused by: java.lang.Exception: Expected error created from dev mode
	at dev.mooner.starlight.ui.settings.dev.DevModeActivityKt$startDevModeActivity$1$1$1$3$2.invoke(DevModeActivity.kt:61)
	at dev.mooner.starlight.ui.settings.dev.DevModeActivityKt$startDevModeActivity$1$1$1$3$2.invoke(DevModeActivity.kt:60)
	at dev.mooner.starlight.ui.config.CategoryRecyclerAdapter.onBindViewHolder$lambda$11(CategoryRecyclerAdapter.kt:263)
	at dev.mooner.starlight.ui.config.CategoryRecyclerAdapter.$r8$lambda$SvdHa6RXrtKDi7eUYjXyiSTs3hM(Unknown Source:0)
	at dev.mooner.starlight.ui.config.CategoryRecyclerAdapter$$ExternalSyntheticLambda3.onClick(Unknown Source:4)
	at android.view.View.performClick(View.java:7912)
	at android.view.View.performClickInternal(View.java:7889)
	at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
	at android.view.View$PerformClick.run(View.java:31082)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8810)
	... 3 more

λ³„λΉ›μ—μ„œ νŒŒμΌμŠ€νŠΈλ¦Όμ„ λΆˆλŸ¬μ˜€μ§€ λͺ»ν•©λ‹ˆλ‹€..?

Screenshot_20230828-002135_StarLight

λ©”μ‹ μ €λ΄‡μ—μ„œλŠ” 잘만 μž‘λ™λ˜λ˜ μ†ŒμŠ€κ°€ λ³„λΉ›μ—μ„œ κ°‘μžκΈ° μž‘λ™μ„ λ©ˆμΆ°μ„œ λ°œλ²ˆμ—­μ„ ν–ˆλŠ”λ° νŒŒμΌμŠ€νŠΈλ¦Όμ„ λͺ»ν•˜λŠ”κ±° κ°™λ”λΌκ΅¬μš”...

κ·Έλž˜μ„œ λ©”μ‹ μ €λ΄‡μ—μ„œ λ”°λ‘œ λ˜‘κ°™μ΄ λ§Œλ“€μ–΄μ„œ ν•΄λ΄€λŠ”λ°... 메신저봇은 파일슀트림으둜 데이터 생성을 ν•΄λ‚΄λ”λΌκ΅¬μš”...

κ·Έλž˜μ„œ λ²„κ·Έλ‘œ μ˜μ‹¬μ΄ λœλ‹€κ³  νŒλ‹¨ν•΄μ„œ μ˜¬λ €λ΄…λ‹ˆλ‹€...

ν•΄λ‹Ή μ˜μƒ

------ν•΄λ‹Ή μ†ŒμŠ€μ½”λ“œμž…λ‹ˆλ‹€..

var path = "/sdcard/Botdata/check/"; function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) { var command = msg.split(" ")[0]; var nick = msg.split(" ")[1]; var rank = ""; var pass = FileStream.read(path + "dailycheck.txt"); if (msg == "μ•Όμ‹λ¬΅μž" && sender == "λ°©μž₯봇") { FileStream.remove(path + "dailycheck.txt"); FileStream.remove(path + "dailyrank.txt"); FileStream.write(path + "dailycheck.txt"); FileStream.write(path + "dailyrank.txt", 1); replier.reply("[SYSTEM]" + "\nμΆœμ„μ²΄ν¬κ°€ λ¦¬μ…‹λ˜μ—ˆμŠ΅λ‹ˆλ‹€."); } if (command == "/γ…Šγ…Š" || command == "/좜첡" || command == "/μΆœμ„μ²΄ν¬") { pass = FileStream.read(path + "dailycheck.txt"); if (pass.includes(sender) == true||pass==null) { replier.reply("[SYSTEM]\n" + "이미 μΆœμ„μ²΄ν¬ ν•˜μ…¨μŠ΅λ‹ˆλ‹€."); } else { rank = FileStream.read(path + "dailyrank.txt"); FileStream.append(path + "dailycheck.txt", "\n" + rank + "λ“±: " + sender); replier.reply("[SYSTEM]" + "\n" + sender + "λ‹˜μ΄ μΆœμ„μ²΄ν¬λ₯Ό ν•˜μ…¨μŠ΅λ‹ˆλ‹€!"); rank = +rank + 1; FileStream.remove(path + "dailyrank.txt"); FileStream.write(path + "dailyrank.txt", rank); } } if (command == "/μΆœμ„μž₯λΆ€") { pass = FileStream.read(path + "dailycheck.txt"); if (pass == "") { replier.reply("[SYSTEM]\n아직 μΆœμ„μ²΄ν¬λ₯Ό ν•œ μ‚¬λžŒμ΄ μ—†μŠ΅λ‹ˆλ‹€."); } else { replier.reply("--였늘의 μΆœμ„λͺ…λΆ€--\n" + pass); } } }

별빛 λ¬΄ν•œλ‘œλ”©(제기뢈λŠ₯)

μ‚¬κ±΄μ˜ κ²½μœ„

  1. λŒ“κΈ€μ„ 보고 μž¬λΆ€νŒ…
  2. ν•˜μ§€λ§Œ 2번 λ³΄λ‚΄μ§€λŠ” ν˜„μƒμ€ 해결이 μ•ˆλ¨
  3. 이 μ‹œμ λΆ€ν„° μ΄μƒν•œ ν˜„μƒμ΄ λ°œμƒ
    --μ΄λ²€νŠΈκ°€ λ°œμƒν•¨μ—λ„ λΆˆκ΅¬ν•˜κ³  λ‹΅μž₯이 μ•ˆλ˜λŠ” ν˜„μƒ
    --μ΄λ²€νŠΈκ°€ λ°œμƒν•œ 방에 μ•„λ‹Œ λ‹€λ₯Έλ°©μ— μ‹œκ°„μ°¨λ₯Ό 두고 2번 λ‹΅μž₯을 ν•˜λŠ” ν˜„μƒ
    4.이상함을 느껴 μž¬μ»΄νŒŒμΌμ„ μœ„ν•΄ 별빛에 λ“€μ–΄κ°€λ € ν–ˆμœΌλ‚˜ λ…Έλž€ 창만 뜨고 μ•„λ¬΄ν„°μΉ˜λ„ μ•ˆλ¨Ήνžˆλ‹€κ°€ ν‹©κΉ€(λ…Έλž‘μ°½μ€ λ°‘μ˜ μ‚¬μ§„μž…λ‹ˆλ‹€)
    Screenshot_20230826-200849_StarLight
    5.μ•ˆλ“œλ‘œμ΄λ“œ μ‹œμŠ€ν…œμ—μ„œ 별빛에 λ²„κ·Έλ°œμƒμ„ 감지해 μΊμ‹œλ₯Ό μ‚­μ œν•˜λΌν•΄μ„œ μ•½ 400kbμ •λ„μ˜ μΊμ‹œλ₯Ό μ‚­μ œν•¨
    6.이후 20뢄이 μ§€λ‚˜λ„ λ‘œλ”©λ§Œ λ°˜λ³΅λ˜λŠ” λ¬΄ν•œλ‘œλ”©μ— κ±Έλ¦Ό
    Screenshot_20230826-200948_StarLight
    7.λ‹΅λ‹΅ν•΄μ„œ μ΅œν›„μ˜ μˆ˜λ‹¨μœΌλ‘œ κ°•μ œμ’…λ£Œλ₯Ό μ‹œμΌ°μœΌλ‚˜ 강쒅을 ν•˜μžλ§ˆμž ν•΄λ‹Ή 사진이 뜸
    Screenshot_20230826-202453_StarLight
    8.μ•± μ’…λ£Œν›„ λ‹€μ‹œ μ‹€ν–‰μ‹œμΌœλ„ λ¬΄ν•œλ‘œλ”©λ§Œ λ°˜λ³΅ν•¨

ν•΄λ‹Ή 였λ₯˜ 둜그 μ „λ¬Έμž…λ‹ˆλ‹€.

*** 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 앱을 μ’…λ£Œν•˜λŠ” 쀑... ***
[버그 μ œλ³΄μ‹œ μ•„λž˜ 메세지λ₯Ό μ²¨λΆ€ν•΄μ£Όμ„Έμš”.]
──────────
StarLight v0.1.0a-230820(build 1)
PluginCore v0.1.0
Build.VERSION.SDK_INT: 31
Build.DEVICE: a31
thread : main
message : no event down from INITIALIZED
cause : null
┉┉┉┉┉┉┉┉┉┉
Stack Trace:
java.lang.IllegalStateException: no event down from INITIALIZED
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:142)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134)
at dev.mooner.starlight.plugincore.widget.Widget.onStateChanged(Widget.kt:46)
at dev.mooner.starlight.ui.widget.config.WidgetsAdapter.onDestroy(WidgetsAdapter.kt:72)
at dev.mooner.starlight.ui.home.HomeFragment.onDestroyView(HomeFragment.kt:141)
at androidx.fragment.app.Fragment.performDestroyView(Fragment.java:3337)
at androidx.fragment.app.FragmentStateManager.destroyFragmentView(FragmentStateManager.java:745)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:327)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1817)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1729)
at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
at androidx.viewpager2.adapter.FragmentStateAdapter.removeFragment(FragmentStateAdapter.java:464)
at androidx.viewpager2.adapter.FragmentStateAdapter.gcFragments(FragmentStateAdapter.java:228)
at androidx.viewpager2.adapter.FragmentStateAdapter$4.run(FragmentStateAdapter.java:580)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8663)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

──────────

λŒ€μΆ© 이런 κ²½μœ„μž…λ‹ˆλ‹€..γ… γ… 

μ΄κ±°λŠ” λ²„κ·Έμ€‘μ˜ 버그겠죠..?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.