Coder Social home page Coder Social logo

fbarthelery / geekttrss Goto Github PK

View Code? Open in Web Editor NEW
47.0 2.0 4.0 12.35 MB

Geekttrss is an Tiny Tiny Rss reader application with transparent offline mode for the Android platform

License: GNU General Public License v3.0

Kotlin 99.00% Java 0.88% Shell 0.12%
android f-droid fdroid tinytinyrss

geekttrss's People

Contributors

fbarthelery avatar licaon-kter avatar poussinou 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

geekttrss's Issues

geekttrss crashes when starts

hello!

i just installed the app on my phone and logged into the ttrss that i self-host through yunohost.
however, after the login, the app just flashed for a second on my screen before crashing.

then, whenever i try opening it again by clicking on the icon, it repeats the same thing.
it flashes for a second and then crashes before even loading any page.

i've also tried to reboot my phone, but nothing changed after that.

please do let me know if there are more information you need me to provide.

add Fdroid repo

i'm fine with Play Store, but you would certainly gain users there

Crash after entering logindetails and domain

Wanted to try out an alternative to the ttrss-reader available in f-droid, so this came quite handy.
But it crashes right after I put in my details from my selfhosted (Yunohost) ttrss instance.

my system details:

  • LineageOS 15.1 with Magisk 18.0
  • newest available version from geekttrss from f-droid

What else do you need to debug this?

Feature request: Add HTTP Basic authentication

Please consider adding support for HTTP Basic authentication. I think it's good practice to add additional level of security (basic auth or client certs) over php apps that don't really need to be public.

I tried harcoding credentials in NetworkModule and it worked just fine (geekttrss actually seems and works really nice ;)):

        OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();

        okHttpBuilder.authenticator(new Authenticator() {
            @Override
            public Request authenticate(Route route, Response response) throws IOException {

                if (response.request().header("Authorization") != null)
                    return null;

                String credential = Credentials.basic("user", "123456");
                return response.request().newBuilder()
                        .header("Authorization", credential)
                        .build();
            }
        });

"Error: Unknown Error" trying to log in

I'm unable to log in, with Geekttrss simply reporting "Error: Unknown Error".

adb logcat shows streams and streams of

View    : requestLayout() improperly called by com.google.android.material.textfield.TextInputEditText{ba75528 VFED..CL. ......ID 0,0-840,147 #7f09016e app:id/url} during layout: running second layout pass

for every text input on the login screen, and then when I hit "login", all I see is:

 Retrofit: calling TinyRssApi.login [Anonymized arguments]

appear twice.

On Android 9, Geekttrss from the Play Store (opted in to beta, but it seems to be the same version?), and my tt-rss server is available at a regular http url with basic http-auth enabled.

Do you have any suggestions I might try, or ideas for places I might look to get more information to help work out what's going wrong?

Thanks!

Edit: when I back out of the app, this appear in the logcat output:

06-02 17:23:51.127 21170 21170 W AccountManager: Unable to get auth token
06-02 17:23:51.127 21170 21170 W AccountManager: android.accounts.OperationCanceledException
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:2280)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:2309)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:2227)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at com.geekorum.ttrss.articles_list.TtrssAccountViewModel$startSelectAccountActivity$callback$1.run(TtrssAccountViewModel.kt:1)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.accounts.AccountManager$17.run(AccountManager.java:2184)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.os.Handler.handleCallback(Handler.java:873)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.os.Looper.loop(Looper.java:193)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at android.app.ActivityThread.main(ActivityThread.java:6718)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at java.lang.reflect.Method.invoke(Native Method)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-02 17:23:51.127 21170 21170 W AccountManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
06-02 17:23:51.128 21170 21170 W null    : Unable to get auth token
06-02 17:23:51.128 21170 21170 W null    : android.accounts.OperationCanceledException
06-02 17:23:51.128 21170 21170 W null    : 	at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:2280)
06-02 17:23:51.128 21170 21170 W null    : 	at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:2309)
06-02 17:23:51.128 21170 21170 W null    : 	at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:2227)
06-02 17:23:51.128 21170 21170 W null    : 	at com.geekorum.ttrss.articles_list.TtrssAccountViewModel$startSelectAccountActivity$callback$1.run(TtrssAccountViewModel.kt:1)
06-02 17:23:51.128 21170 21170 W null    : 	at android.accounts.AccountManager$17.run(AccountManager.java:2184)
06-02 17:23:51.128 21170 21170 W null    : 	at android.os.Handler.handleCallback(Handler.java:873)
06-02 17:23:51.128 21170 21170 W null    : 	at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 17:23:51.128 21170 21170 W null    : 	at android.os.Looper.loop(Looper.java:193)
06-02 17:23:51.128 21170 21170 W null    : 	at android.app.ActivityThread.main(ActivityThread.java:6718)
06-02 17:23:51.128 21170 21170 W null    : 	at java.lang.reflect.Method.invoke(Native Method)
06-02 17:23:51.128 21170 21170 W null    : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-02 17:23:51.128 21170 21170 W null    : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
06-02 17:23:51.152  2340  2340 D APP     : 1559521431152  com.geekorum.ttrss

Not sure if that helps any?

Geekttrss crash (issue with reading JSON?)

Geekttrss version: 1.5.2 (Github - using IzzyOnDroid's F-Droid repo)
Android info: Xiaomi Redmi Note 3 - Android 10 (BlissROM 12.9)

What happened

When opening Geekttrss without any feeds, the app worked normally, but after reopening the app with feeds added externally Geekttrss crashes with the following log:

07-31 13:53:40.359 E/AndroidRuntime(10518): FATAL EXCEPTION: main
07-31 13:53:40.359 E/AndroidRuntime(10518): Process: com.geekorum.ttrss.free, PID: 10518
07-31 13:53:40.359 E/AndroidRuntime(10518): kotlinx.serialization.json.JsonDecodingException: Unexpected JSON token at offset 227: Expected '{, kind: CLASS'.
07-31 13:53:40.359 E/AndroidRuntime(10518):  JSON input: .....,"title":"Invidious","unread":null,"order_id":0},{"id":-1,"t.....
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.google.android.material.resources.TextAppearanceConfig.JsonDecodingException(TextAppearanceConfig.java:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.internal.JsonReader.fail(JsonReader.kt:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.internal.StreamingJsonInput.beginStructure(StreamingJsonInput.kt:9)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.geekorum.ttrss.webapi.model.ListContent$OwnSerializer.deserialize(BaseProtocol.kt:6)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.google.android.material.resources.TextAppearanceConfig.decodeSerializableValuePolymorphic(TextAppearanceConfig.java:19)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.internal.StreamingJsonInput.decodeSerializableValue(StreamingJsonInput.kt:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.internal.StreamingJsonInput.decodeSerializableElement(StreamingJsonInput.kt:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.geekorum.ttrss.webapi.model.ListResponsePayload$OwnSerializer.deserialize(BaseProtocol.kt:18)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.google.android.material.resources.TextAppearanceConfig.decodeSerializableValuePolymorphic(TextAppearanceConfig.java:19)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.internal.StreamingJsonInput.decodeSerializableValue(StreamingJsonInput.kt:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.google.android.material.resources.TextAppearanceConfig.decode(TextAppearanceConfig.java:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.Json.parse(Json.kt:3)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at kotlinx.serialization.json.Json$Default.parse(Json.kt:2)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at com.jakewharton.retrofit2.converter.kotlinx.serialization.DeserializationStrategyConverter.convert(DeserializationStrategyConverter.kt:4)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:22)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:1)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:13)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
07-31 13:53:40.359 E/AndroidRuntime(10518): 	at java.lang.Thread.run(Thread.java:919)
07-31 13:53:40.363 I/DropBoxManagerService(1996): add tag=data_app_crash isTagEnabled=true flags=0x2
07-31 13:53:40.363 W/ActivityTaskManager(1996):   Force finishing activity com.geekorum.ttrss.free/com.geekorum.ttrss.articles_list.ArticleListActivity
07-31 13:53:40.380 I/Process (10518): Sending signal. PID: 10518 SIG: 9
07-31 13:53:40.472 D/ConnectivityService(1996): ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ TRACK_DEFAULT id=218, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10363] ], android.os.BinderProxy@dde22e0)
07-31 13:53:40.472 I/WindowManager(1996): WIN DEATH: Window{ea41fbd u0 com.geekorum.ttrss.free/com.geekorum.ttrss.articles_list.ArticleListActivity}
07-31 13:53:40.472 D/ConnectivityService(1996): releasing NetworkRequest [ TRACK_DEFAULT id=218, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10363] ] (release request)
07-31 13:53:40.474 D/ConnectivityService(1996): ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ LISTEN id=215, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&FOREGROUND Uid: 10363] ], android.os.BinderProxy@6b3245e)
07-31 13:53:40.474 I/ActivityManager(1996): Process com.geekorum.ttrss.free (pid 10518) has died: fore TOP 
07-31 13:53:40.477 V/KeyguardUpdateMonitor(26128): onSubscriptionInfoChanged()
07-31 13:53:40.481 V/KeyguardUpdateMonitor(26128): SubInfo:{id=1, iccId=893864061[****] simSlotIndex=0 carrierId=1709 displayName=bob carrierName=bob nameSource=1 iconTint=-10839304 mNumber= dataRoaming=1 iconBitmap=android.graphics.Bitmap@fa40674 mcc 293 mnc 40mCountryIso=si isEmbedded false nativeAccessRules null cardString=893864061[****] cardId=-1 isOpportunistic false mGroupUUID=null mIsGroupDisabled=false profileClass=-1 ehplmns = [] hplmns = [29340] subscriptionType=0 mGroupOwner=null carrierConfigAccessRules=null}
07-31 13:53:40.482 W/ActivityManager(1996): Scheduling restart of crashed service com.geekorum.ttrss.free/androidx.work.impl.background.systemjob.SystemJobService in 1000ms
07-31 13:53:40.483 W/ActivityManager(1996): Scheduling restart of crashed service com.geekorum.ttrss.free/com.geekorum.ttrss.sync.ArticleSyncService in 11000ms

The log was taken with MatLog.

Updating the feeds worked fine with other TTRss apps and the feeds were successfully added using my instance's web interface.

The issue can't be recreated anymore (opening the app 10 minutes after the crash), the feeds load correctly now, so I don't know if I should report the issue or not.

Redundant HTTP requests when using HTTP Authentication

When using HTTP Authentication feature, the app seems to first send a request without the 'Authentication:' HTTP header. Later when the server responds with HTTP 401 and WWW-Authenticate header, then the second request contains the 'Authentication:' HTTP header and this one succeeds. This approach has two problems:

  • It is very wasteful for network resources. The user has already configured the client to perform HTTP authentication. There is no reason not to send the 'Authorization:' header in the first try. This results in every call to server being made twice. On first load this results in twice the number of HTTP requests than necessary to perform the job.
  • Server are not required to respond with HTTP 401 with 'WWW-Authenticate' header. See https://datatracker.ietf.org/doc/html/rfc2616#section-14.8 . In case of FreedomBox, we plan to support HTTP Basic authentication and a single sign-on on the same URL and so HTTP 401 response is not possible.

Some of the other TTRSS apps send a single HTTP request instead of two. This issue assumes that geekttrss only supportsBasic authentication and challenge/response mechanisms are not supported.

Mark articles as read while scrolling

I do like the clean look of the app, instead of the a littlebit oldfashioned style the original ttrss-reader uses, but there's some room for improvements. For instance the possiblity to mark articles as read if you scroll down the articles.

Geekttrss should show feed titles (or at least icons) in article list

I have many feeds and use almost all time "All articles" or "Fresh articles" views. In this views, it is important to know from which feed the articles comes from as:

  • Not all my feeds use the author field.
  • A number of feeds are from new sites or planets and I don't know all the authors of those.
  • A few authors writes article for multiple of my feeds.

To help know quickly from which feed articles are, I'd love that the feed name appears just above the author name or at least that feed icon be on the left of the title or on the left of the author.

Add option to open links in native application

Currently attempting to open a link (in my case, a YouTube video from a subscription feed) opens my currently set web browser on my device instead of the set YouTube app.

It would be great if an option to instead open links with the default handler for that application could be added.

Unable to see log

First installation. I try to connect to my server and I get:
Error: Unknown error (see log)

How do I see the log? There is just one button (login), no menu.

Login fails with a longer password

I set up TT-RSS and used a random 64-character password. The web UI was fine with that, so is the official TT-RSS Android app. This, however, popped up a system notification from Android Accounts saying there's a login failure. On the server I see only a single request to /api which returns HTTP200, no errors or logs emitted, and the app only shows a blank screen. Restarting the app, it gives me the login dialog again but I can only enter a new password.

I changed the password on TT-RSS to a shorter password, but still containing all the same character classes, and now the app works fine. I don't believe this is a limitation of Android Accounts, I have other accounts stored there which use 64-character random passwords. Please update to allow long passwords.

Does not display any article

App was working properly for a long time. Recently, maybe 2 weeks ago, it started to show "No article" while there are.

The left panel show feeds, and show there are arctually articles, but either classic view or one single feed view logs then show "No Article".

Android One
Version 1.4.0-google

[Feature Request] Change default view

The default view is now set to Magazine. It would would be nice to be able to set it to something else, such as a specific feed, or All Articles.

FR: headline-only view mode

Maybe I'm unique in this, but among my feeds, 90% or more of the articles are not interesting to me, so I like to quickly skim past the headlines and only expand the ones that look good.

can't install [ 64bit ARM ]

Neither from Play Store [ not available for your device ] nor from releases page. Lenovo Tab, Android 6, 64 bit

Build errors for release 1.0

I am getting the following errors when building 1.0. It is probably a configuration thing, but I am using the latest android sdk 28 so I am wondering which to change to, or how to change the current configuration.

Kotlin plugin is applied to the project :app but we cannot find the KaptTask. Make sure you apply the kotlin-kapt plugin because it is necessary to use kotlin with data binding.
e: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding Unable to get public no-arg constructor

App won't start after entering auth info

  1. install the app from Play Store
  2. type in your login credentials, as follows:
    Server: https://api-e6d55325d25b6c51394bdb26873052da.glissando.sandcats.io
    Username: s
    Password: s
    Http Username: s
    Http Password: 3EDlvGJEjKUFKefmaSeEv-K-8btOVShA8HzRTANLiW_
  3. Press Login

EXPECTED:
App should connect to the server successfully. (I have set up this instance of tiny-tiny-rss inside sandstorm for you to test with.)

ACTUAL:
App exits and cannot be restarted. You must wipe its data using the android system settings to continue. Logcat says:

AccountAuthenticator: getAuthToken(Account {name=s, type=com.geekorum.ttrss},session_id)
AccountAuthenticator: retrofit2.HttpException: HTTP 401 Unauthorized
AccountAuthenticator:  at retrofit2.KotlinExtensions$await$2$2.onResponse(KotlinExtensions.kt:12)
AccountAuthenticator:  at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:2)
AccountAuthenticator:  at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:13)
AccountAuthenticator:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
AccountAuthenticator:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
AccountAuthenticator:  at java.lang.Thread.run(Thread.java:761)
InputDispatcher: setInputWindows
ActivityThread: SVC-Destroying service com.geekorum.ttrss.accounts.AuthenticatorService@ff47ffd
AccountManager: Unable to get auth token
AccountManager: android.accounts.AuthenticatorException: getAuthToken failed
AccountManager:        at android.accounts.AccountManager.convertErrorToException(AccountManager.java:2220)
AccountManager:        at android.accounts.AccountManager.-wrap0(AccountManager.java)
AccountManager:        at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:2056)
AccountManager:        at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
AccountManager:        at android.os.Binder.execTransact(Binder.java:570)

[BUG] Undo button can't be pressed

When swiping an article to "Read" (right or left swipe), a white banner with the "undo" option pops up on the bottom of the screen. However, this banner doesn't take into account the positioning of on-screen buttons, which makes pressing "undo" impossible.

This is a problem if accidentally swiping an article to "Read", as the article just disappears from the view with no way to retrieve it. The only way to get it back is marking it "Unread" in the TTRSS backend.

Crash on "Managing feeds"

11-29 04:08:00.937  2004  6897 I ActivityTaskManager: START u0 {cmp=com.geekorum.ttrss.free/com.geekorum.ttrss.manage_feeds.ManageFeedsActivity (has extras)} from uid 10496
11-29 04:08:00.939  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 174042980; UID 10496; state: DISABLED
11-29 04:08:00.940  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 184838306; UID 10496; state: DISABLED
11-29 04:08:00.941  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 185004937; UID 10496; state: DISABLED
11-29 04:08:00.941  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 181136395; UID 10496; state: DISABLED
11-29 04:08:00.942  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 174042936; UID 10496; state: DISABLED
11-29 04:08:00.949  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 197654537; UID 10496; state: ENABLED
11-29 04:08:00.952  2004  6897 D CompatibilityChangeReporter: Compat change id reported: 168419799; UID 10496; state: DISABLED
11-29 04:08:00.963  2004  6756 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (243066046)
11-29 04:08:00.974 30561 30561 D AndroidRuntime: Shutting down VM
11-29 04:08:00.975 30561 30561 E AndroidRuntime: FATAL EXCEPTION: main
11-29 04:08:00.975 30561 30561 E AndroidRuntime: Process: com.geekorum.ttrss.free, PID: 30561
11-29 04:08:00.975 30561 30561 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.geekorum.ttrss.free/com.geekorum.ttrss.manage_feeds.ManageFeedsActivity}: java.lang.ClassNotFoundException: Didn't find class "com.geekorum.ttrss.manage_feeds.ManageFeedsActivity" on path: DexPathList[[zip file "/data/app/~~lsUGrHWyc0mzsco8PedlhA==/com.geekorum.ttrss.free-G6bNgnWhyLJCoMxFsbh31w==/base.apk"],nativeLibraryDirectories=[/data/app/~~lsUGrHWyc0mzsco8PedlhA==/com.geekorum.ttrss.free-G6bNgnWhyLJCoMxFsbh31w==/lib/arm64, /system/lib64, /system_ext/lib64]]
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3614)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3865)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2254)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7876)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.geekorum.ttrss.manage_feeds.ManageFeedsActivity" on path: DexPathList[[zip file "/data/app/~~lsUGrHWyc0mzsco8PedlhA==/com.geekorum.ttrss.free-G6bNgnWhyLJCoMxFsbh31w==/base.apk"],nativeLibraryDirectories=[/data/app/~~lsUGrHWyc0mzsco8PedlhA==/com.geekorum.ttrss.free-G6bNgnWhyLJCoMxFsbh31w==/lib/arm64, /system/lib64, /system_ext/lib64]]
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:1)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.Instrumentation.newActivity(Instrumentation.java:1292)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3601)
11-29 04:08:00.975 30561 30561 E AndroidRuntime: 	... 12 more
11-29 04:08:00.977  2004 31056 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
11-29 04:08:00.978  2004  6897 W ActivityTaskManager:   Force finishing activity com.geekorum.ttrss.free/com.geekorum.ttrss.manage_feeds.ManageFeedsActivity
11-29 04:08:00.980  2004  6897 W ActivityTaskManager:   Force finishing activity com.geekorum.ttrss.free/com.geekorum.ttrss.articles_list.ArticleListActivity
11-29 04:08:00.988  2004  2161 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver
11-29 04:08:00.988  2004  2161 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver

Feature request: article to article navigation

Thank you for this client, much nicer and more responsive than the official!

I only miss one thing, article to article navigation. Currently if I tap on an article, I have to go back to the list and tap on the next article. What I want is if I am on the article screen I can go to the next article without going back to the list. In the official app you can change to the next article by swiping left/right, with buttons on the bottom of the screen, or with the volume buttons. I would be very happy if any of them was implemented.

If I miss something and it's already possible some way in the app, sorry.

Thank you again, I hope it's not a big work to implement this.

Adding an button to set all article as read

First thanks for this great app.

Maybe, it's just me , but i couldn't find a way to set all articles as read in one go. I've a lots of article and it's cumbersome to swipe every articles as read.

I'd suggest to use the floating button as a ''set all as read'' instead of refresh feed. As a vertical swipe already refresh the feed...

thanks in advance

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.