Git Product home page Git Product logo

foreground's People

Contributors

bgregos avatar doronbehar avatar jannickj avatar rkmpa avatar skrobul avatar toboi 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

foreground's Issues

Offline support

I am trying to use this offline without setting up a taskwarrior server. But I try to add a new task, I don't see any way to save it. Is this intended behavior?

Create PR builds via GitHub Actions

Create a publicly-accessible CI instance to create and distribute builds. This should reduce the amount I need to post test .apks on issues.

Could not find common ancestor

After a certain amount of syncing when using Foreground 1.4.2, the following error is raised:
TaskwarriorMessage [headers={client=taskd 1.1.0, code=500, status=ERROR: Could not find common ancestor for }, payload=Optional.empty]

This is most likely due to an error in Foreground's sync process. No other information about the error is known at this time. Please leave a comment if you're able to determine steps to reproduce.

Localize strings

Most/all strings that are UI-facing are hardcoded right now. Migrate these to strings.xml so that they can be localized.

Add sync help/signup screen

Add signup screen for users interested in using sync. The signup screen should be (or point to) a document giving a quick overview of taskwarrior, why a user might want to enable syncing with it, and it should direct users to services like inthe.am or freecinc.

Foreground as share target

It would be nice to be able to share links to the app to be added as a new task item.

Two options:

  • When shared we open up the app and ask them to specify project,tags etc.
  • When shared the link/text is added as a new task with predefined(customizable) project and tags.

Sort by urgency

Issue 9, regarding sort by due date, was closed in February 2019. However, I don't see any "sorting" option in the app (version 1.2.2.). The selling point of Taskwarrior is precisely this automation by "urgency".

Crash on pixel 3a under grapheneOS

Hi,

Thanks this great app.

I got the actual realease 1.3.0 crashing and the master branch too on my pixel 3a running grapheneOS.
I really would like to get this cool app working but i can't find the problem.
I attach here a the few error lines i got when pressing the sync button everytime. I was never be able to sync.

03-02 07:30:15.453   588   588 E AndroidRuntime: Process: me.bgregos.brighttask, PID: 588
03-02 07:30:15.453   588   588 E AndroidRuntime: de.aaschmid.taskwarrior.ssl.TaskwarriorKeyStoreException: Could not generate certificates for '/data/user/0/me.bgregos.brighttask/files/cert_ca': com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0c0000a2:ASN.1 encoding routines:OPENSSL_internal:NOT_ENOUGH_DATA
03-02 07:30:15.458  1050  5393 W ActivityTaskManager:   Force finishing activity me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity
03-02 07:30:15.515  1050  3199 I WindowManager: WIN DEATH: Window{5bb98ac u0 me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity}
03-02 07:30:15.515  1050  3199 W InputDispatcher: Attempted to unregister already unregistered input channel '5bb98ac me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity (server)'
03-02 07:30:15.515  1050  1948 I ActivityManager: Process me.bgregos.brighttask (pid 588) has died: fg  TOP 
03-02 07:30:15.960  1050  1066 W ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{c7ffedd u0 me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity t-1 f}}
...
03-02 07:34:35.208  2519  2519 E AndroidRuntime: Process: me.bgregos.brighttask, PID: 2519
03-02 07:34:35.208  2519  2519 E AndroidRuntime: de.aaschmid.taskwarrior.ssl.TaskwarriorKeyStoreException: Could not generate certificates for '/data/user/0/me.bgregos.brighttask/files/cert_ca': com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0c0000a2:ASN.1 encoding routines:OPENSSL_internal:NOT_ENOUGH_DATA
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at de.aaschmid.taskwarrior.ssl.KeyStoreBuilder.createCertificatesFor(KeyStoreBuilder.java:133)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at de.aaschmid.taskwarrior.ssl.KeyStoreBuilder.build(KeyStoreBuilder.java:103)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at de.aaschmid.taskwarrior.TaskwarriorClient.<init>(TaskwarriorClient.java:46)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at me.bgregos.foreground.task.RemoteTaskManager.<init>(RemoteTaskManager.kt:35)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at me.bgregos.foreground.TaskListActivity$onSyncClick$1.invokeSuspend(TaskListActivity.kt:120)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:938)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:223)
--
03-02 07:34:35.208  2519  2519 E AndroidRuntime: Caused by: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0c0000a2:ASN.1 encoding routines:OPENSSL_internal:NOT_ENOUGH_DATA
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLX509Certificate.fromX509DerInputStream(OpenSSLX509Certificate.java:103)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509DerInputStream(OpenSSLX509CertificateFactory.java:234)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509DerInputStream(OpenSSLX509CertificateFactory.java:224)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLX509CertificateFactory$Parser.generateItem(OpenSSLX509CertificateFactory.java:112)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	... 18 more
03-02 07:34:35.208  2519  2519 E AndroidRuntime: Caused by: java.lang.RuntimeException: error:0c0000a2:ASN.1 encoding routines:OPENSSL_internal:NOT_ENOUGH_DATA
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.NativeCrypto.d2i_X509_bio(Native Method)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLX509Certificate.fromX509DerInputStream(OpenSSLX509Certificate.java:97)
03-02 07:34:35.208  2519  2519 E AndroidRuntime: 	... 21 more
03-02 07:34:35.211  1050  1946 W ActivityTaskManager:   Force finishing activity me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity
03-02 07:34:35.212  1050  2663 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
03-02 07:34:35.215  1050  2663 W DropBoxManagerService: Dropping: data_app_crash (3898 > 0 bytes)
03-02 07:34:35.239  2519  2551 W System  : A resource failed to call close. 
03-02 07:34:35.249  2519  2519 I Process : Sending signal. PID: 2519 SIG: 9
03-02 07:34:35.287  1050  1948 I ActivityManager: Process me.bgregos.brighttask (pid 2519) has died: fg  TOP 
03-02 07:34:35.288  1050  1950 I WindowManager: WIN DEATH: Window{cc7f107 u0 me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity}
03-02 07:34:35.289   816   816 I Zygote  : Process 2519 exited due to signal 9 (Killed)
03-02 07:34:35.290  1050  1950 W InputDispatcher: Attempted to unregister already unregistered input channel 'cc7f107 me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity (server)'
03-02 07:34:35.301  1050  5519 W WindowManager: Cannot find window which accessibility connection is added to
03-02 07:34:35.336  1050  1075 I libprocessgroup: Successfully killed process cgroup uid 10693 pid 2519 in 48ms
03-02 07:34:35.336  3826  3826 D Orbot   : trim memory requested: memory on device is moderate
03-02 07:34:35.354  1050  1066 W ActivityManager: setHasOverlayUi called on unknown pid: 2519
03-02 07:34:35.366  1115  2515 I iorapd  : Perfetto TraceBuffer saved to file: /data/misc/iorapd/me.bgregos.brighttask/6/me.bgregos.foreground.TaskListActivity/raw_traces/1614666875356970880.perfetto_trace.pb
03-02 07:34:35.367 30363 30363 W AppButtonsPrefCtl: App is not explicitly stopped
03-02 07:34:35.367  1824  1870 I com.android.systemui: NativeAlloc concurrent copying GC freed 5976(311KB) AllocSpace objects, 0(0B) LOS objects, 66% free, 13MB/41MB, paused 81us total 119.766ms
03-02 07:34:35.367  1824  1872 W System  : A resource failed to call release. 
03-02 07:34:35.376 28048 28088 I cr_BindingManager: onTrimMemory: level=80, size=0
03-02 07:34:35.376  1525  1525 D AppCenterCrashes: The memory running level (40) was saved.
03-02 07:34:35.379 30363  2511 W TileUtils: Found com.android.traceur.MainActivity for intent Intent { act=com.android.settings.action.IA_SETTINGS } is primary profile only, skip loading tile for uid 10
03-02 07:34:35.397 30363  2665 D SettingsActivity: No enabled state changed, skipping updateCategory call
03-02 07:34:35.459  2557  2557 D EventBus: No subscribers registered for event class com.privateinternetaccess.android.model.events.SeverListUpdateEvent
03-02 07:34:35.460  2557  2557 D EventBus: No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent
03-02 07:34:35.548  1050  3196 E IntervalStats: Unable to parse usage stats package 1637
--
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.31.04.00
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Local Branch                     : gfx-adreno.lnx.2.0
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Remote Branch                    : 
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Remote Branch                    : 
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Reconstruct Branch               : 
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Build Config                     : C P 11.0.1 AArch64
03-02 07:34:35.622 30363 30396 I AdrenoGLES-0: Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
03-02 07:34:35.626 30363 30396 I AdrenoGLES-0: PFP: 0x016ee189, ME: 0x00000000
03-02 07:34:35.700  1050  1946 E IntervalStats: Unable to parse usage stats package 1637
03-02 07:34:35.704  1050  1946 E IntervalStats: Unable to parse usage stats package 1637
03-02 07:34:35.713  1050  1066 W ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{49d7bf8 u0 me.bgregos.brighttask/me.bgregos.foreground.TaskListActivity t-1 f}}
03-02 07:34:35.714  1050  1946 E IntervalStats: Unable to parse usage stats package 1637
03-02 07:34:35.714  1050  1946 E IntervalStats: Unable to parse usage stats package 1695
03-02 07:34:35.721  1824  1824 W Choreographer: Frame time is 0.150865 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
03-02 07:34:35.723 30363 30363 W ControllerTask: The updateState took 65 ms in Controller AppNotificationPreferenceController
03-02 07:34:35.727 30363 30363 D AppUtils: Have 0 number of activities in preferred list
03-02 07:34:35.760 30363 30363 V BatteryUtils: package: org.chromium.chrome
03-02 07:34:35.760 30363 30363 V BatteryUtils: type: 0 time(us): 1323606000
03-02 07:34:35.760 30363 30363 V BatteryUtils: foreground time(us): 1323606000
03-02 07:34:35.760 30363 30363 V BatteryUtils: package: null
03-02 07:34:35.760 30363 30363 V BatteryUtils: type: 0 time(us): 0
--
03-02 07:34:35.767 30363 30363 V BatteryUtils: foreground time(us): 0
03-02 07:34:35.767 30363 30363 V BatteryUtils: package: com.geecko.QuickLyric
03-02 07:34:35.767 30363 30363 V BatteryUtils: type: 0 time(us): 0
03-02 07:34:35.767 30363 30363 V BatteryUtils: foreground time(us): 0
03-02 07:34:35.767 30363 30363 V BatteryUtils: package: im.vector.app
03-02 07:34:35.767 30363 30363 V BatteryUtils: type: 0 time(us): 0
03-02 07:34:35.768 30363 30363 V BatteryUtils: foreground time(us): 0
03-02 07:34:35.769 30363 30363 V BatteryUtils: package: com.android.settings.intelligence
03-02 07:34:35.770 30363 30363 V BatteryUtils: type: 0 time(us): 4937000
03-02 07:34:35.770 30363 30363 V BatteryUtils: foreground time(us): 4937000
03-02 07:34:35.770 30363 30363 V BatteryUtils: package: me.bgregos.brighttask
03-02 07:34:35.770 30363 30363 V BatteryUtils: type: 0 time(us): 78146000
03-02 07:34:35.770 30363 30363 V BatteryUtils: foreground time(us): 78146000
03-02 07:34:35.770 30363 30363 V BatteryUtils: package: io.github.hidroh.materialistic
03-02 07:34:35.770 30363 30363 V BatteryUtils: type: 0 time(us): 0
03-02 07:34:35.770 30363 30363 V BatteryUtils: foreground time(us): 0
03-02 07:34:35.771 30363 30363 V BatteryUtils: package: com.android.cellbroadcastreceiver.module
03-02 07:34:35.771 30363 30363 V BatteryUtils: type: 0 time(us): 0
03-02 07:34:35.771 30363 30363 V BatteryUtils: foreground time(us): 0
03-02 07:34:35.771 30363 30363 V BatteryUtils: package: com.revolut.revolut
03-02 07:34:35.771 30363 30363 V BatteryUtils: type: 0 time(us): 0

CA, cert and key are not null when I browse files, and they are working with task sync on laptop.

How can I help you?

Regards,
Cyrinux

Add notification support

Hello!
I am not sure how the application was created to function but when I set one of my task to a certain time and date. The application does not alarm or give any indication that I set my task when the time of the task as reached.
Android 5.1
Tecno driod pad

20180922_062502
Also, consider adding license to your repository.
Thanks ☺

Tablet task list not updating

In tablets large enough to trigger the side-by-side view, there's no mechanism to save a task and update the task list. This means the task list gets outdated after the user changes it and the list does not update until the app is closed and re-opened.

"Entered" value not set upon creating task?

Tasks i created in Foreground seem to not have an "Entered" value set, since tasks that I sync on other devices via task sync will have it set to the date at time of syncing. So a task created 5 hours ago in Foreground will appear as freshly created (or entered) after it got synced on my other device within taskwarrior.

Transition to mainline Taskwarrior Java Client

Foreground currently uses a custom patched version of Taskwarrior Java Client that adds support for PKCS#1 keys. I submitted a PR to that project with the changes and they have been included in the v1.0 release, meaning this app can switch back to the unpatched version.

Support 'waited' tasks

Task warrior has a concept of "waited" tasks, which are not displayed (by default) until a certain date. It would be nice to support both adding/modifying/removing a wait date on a task, as well as adding the ability to hide them (currently waited tasks appear to be always displayed).

Add undo feature

It’s quite easy to touch the completed button accidentally. There should be some way to undo that and get the task back.

Cannot seem to set up sync correctly via inthe.am

Running your app on a samsung s6 tablet (android 10);

server address: taskwarrior.inthe.am (also tried inthe.am by itself)
port: 53589

user credentials: (same thing that intheam lists and in my task.d)

ca cert/private key file/private certificate (same ones that i use to sync with the taskwarrior android app: https://play.google.com/store/apps/details?id=kvj.taskw&hl=en_US&gl=US)


When I hit back the app seems to crash when i hit the sync button

Unable to connect via IPv6

Sorry in advance if this is just a configuration error on my end but I cannot figure it out.

When I try to connect to my taskd server at

task.example.com:54321

I get the error message

failed to connect to task.example.com/aaaa:bbbb:ccc:d:eee:f:gg:hh:ii:jj (port 54321) from /:: (port 98765): connect failed: ECONNREFUSED (Connection refused)

I don't understand the address it is trying to connect to which seems to have an IPv6 address appended to it and I also don't understand where the second port number comes from.

Add automatic syncing

Syncs currently need to be performed manually by the user; add support for periodic or event-triggered syncs.

Annotation with slashes sync problem crashes taskwarrior

I added a url (http://...) to a task as a annotation. After changing and syncing the task with foreground Taskwarrior crashed. After debugging it a little bit I found out that foreground converted http:\/\/ to http:\\\\. This seems to happen only with annotations.

"Cannot add a task that is blank"

In the latest foreground build as of this comment, the new support for tasks with blank names is not allowed by taskd. This feature should be rolled back to reject/autodelete tasks with no name.

Improve sync errors

Sync errors are currently either truncated at two lines (not useful) or show a general error. Add a "More" button to the popup to reveal full errors.

Popup when newly-created task is hidden

New tasks that are hidden because of the current filter settings can appear to disappear once entered to new users.

Create a snackbar message (like the message that appears when hitting the sync button) that tells the user when the task they just entered is hidden because of their filter settings.

Fix filenames not showing correctly

Under some versions of android, filenames in the certificate picker are not correct and instead show numbers. This does not affect ability to sync, but can mislead users.

Some tasks not initially syncing

I haven't yet been able to find a pattern to which tasks are not synced. My best guess is that it's tasks which haven't been recently modified. Example in case the details help you figure out what's going on:

Upon initial sync, task 7 did not appear in foreground. Here's how it looked from my command-line client:

ID            7
Description   pay homeowners policy
Status        Pending
Entered       2018-07-05 16:04:47 (10mo)
Due           2019-04-01 00:00:00
Last modified 2018-07-05 16:04:47 (10mo)
Virtual tags  OVERDUE PENDING READY UNBLOCKED YEAR
UUID          xxxxxxxxxxxxxxxxxxxxx
Urgency       13.79

If I take the following steps, this task then appears in foreground:

  1. Add a project via desktop computer: task 7 modify project:bills
  2. Remove a project via desktop computer: task 7 modify project:
  3. Sync from desktop computer: task sync
  4. Sync from foreground app

New Release to play store

It looks like a lot of work has been done since the initial release to the play store. Maybe it makes sense to release a new version, at least to the beta Channel?

Add Reports

Add support for Reports to foreground.
Feel free to list in the comments what reports you would find most helpful, or if you have any other input on this feature.

homepage widget

hi, I love the android app! tried a few others but they're not as easy or visually pleasing!! I'd like to up vote the filter by projects and (UDA) feature requests and propose ... have you considered a homescreen widget to display tasks (ideally with filters for project and / or urgency - that would allow for several diffn widgets on the homescreen) ... and ... it would be great to have homescreen widget or a shortcut to quick-add a task (literally click > type/dictate > save). in the past I've tried workarounds in KLWP/ tasker/ emailMe for these things but they never lasted long.
Anyway, whether you do or not ... KEEP UP THE GOOD WORK. Really appreciate it.
bw
atul.

Add option for task notification

Hi here!
I have a lot of my tasks but I wish they wouldn't wake me up at night (00:00) !
Would it be possible to add an option to set the time at which a stain without a time rings on its due date?
Thanks for your effort πŸ˜‰

Fix timezone issues

Task dates and times are shown in UTC and not the user's local time when syncing; the server expects UTC, and Foreground provides the local time.

Under the current version, tasks are stored internally using the user's local time. This is not ideal for a few reasons, including the sync issue shown above and because a user may travel into a different time zone, causing unexpected results.

A solution to this includes setting up a migration of the local task database if a "last seen version" flag isn't present in the app's saved properties. The local-time tasks are migrated to UTC, and new tasks are created in UTC. User-facing displays and input can then be updated to turn UTC into local time and back again.

Crash when background sync is enabled

The app will crash every [background sync interval] minutes whenever background sync is enabled. This issue resolves itself once background sync is toggled off and back on again.

This happens because the background sync worker registered by the previous version (1.3.0 and older) has been moved to a different package in 1.4.0+. The old worker location is called still, and a ClassNotFoundException is thrown and not caught.

Planned mitigations are to map all calls from the old worker to the new one, and catch further ClassNotFoundExceptions here and report them in logcat.

View completed tasks

The user should be able to view tasks that they have completed, and un-complete them. Requirements for making this happen is follows:

  • Persist completed tasks. Currently, completing a task permanently deletes it from your task list and this will need resolved. We'll need to substantially change sync logic for this to work most likely.
  • Add an option in filters to show completed tasks (off by default; this would be a pre-populated option similar to what's done with waiting tasks)
  • Add an option on the task detail screen to complete task (if not completed) or un-complete a task (if already completed)

Issue with parsing waitDate for determining waiting state

There is some issue with how the waitDate is parsed/read at some point. The main issue is that tasks which are due for the same date but later will show up as pending instead of waiting.

I was able to track down the issue to some problem with waitDate. The value of task.waitDate in shouldDisaply function in Task.kt. For example, when the actual date is Fri Dec 18 18:28:00 GMT+05:30 it shows as Fri Dec 18 12:58:00 GMT+05:30. Not exactly sure where/how this is coming through though.

As a result of this(most probably) the state is set as pending instead of waiting.

Sort by due date

Sort the task list by due date instead of enter date. Fall back to enter date for items without due dates.

Filter tasks by project

It would be great if it could display only tasks of a selected project.

And if a project is selected the project field could be prefilled when creating a new task.

Can't setup sync using self-signed CA cert

So I have setup a self-hosted taskserver, using a self-signed CA cert, which works fine when syncing from my laptop, but obviously Android is more paranoid when choosing the trusted cert. When I try to enable sync in foreground, an exception is thrown with the message: "Trust anchor for certification path not found."

Things I have tried:

  1. Import the CA cert (The file which 'taskd.ca' points to) in the System Setting.
  2. Root my phone and install the CA cert as a system-trusted cert.

I got no luck. According to the documentation, it looks like some extra code work has to be done so the application can accept a self-signed ca.

Create CONTRIBUTING.md

Create a CONTRIBUTING.md file to set expectations and provide guidance to those wishing to make PRs.

Include the following at minimum:

  • Code standards
  • How to test

Add extra data to task list cards

Add data beyond just the name and due date to task cards. At minimum, include priority, project, and tags if these fields are present.

An example of how this could look:


Task Name
Due Date
Priority : Project : Tags


I'm certainly open to a more creative/exciting design for this though! Perhaps express the priority through a color bar on the side instead of spelling it out?

Questions regarding adding app to F-droid

HI!

To show my appreciation, I'd like to add your app to F-Droid. I'm sketching a merge request at my fork and I'd like to do it in the best possible manner - I want the app to include localized descriptions and screenshots. According to their docs, it's done with either of the methods described here:

https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#in-the-apps-source-repository

The 1st option - using fastlane seems to me the best method because it's connected to the development workflow. But I wanted to get your impression first, before I go and do everything.

If I'll get your πŸ‘ I'll happily do it all by myself and open a PR here before the MR at fdroid.

Also, it could help to bring this to the attention of users by adding some badges to the README as explained here: https://gitlab.com/fdroid/fdroiddata/-/blob/master/CONTRIBUTING.md#after-you-added-your-app

In-app help menu

Creating an app help menu can help answer common questions users have, or even serve as full app manual.

My current idea is to fill out the repo wiki (currently mostly unused) and link to it from inside the app's settings menu.

Add tasks by voice

Thanks for this excellent app! Certainly a significant improvement over earlier TW app attempts.
I'm very interested in specifying new tasks by voice to TaskWarrior, the same way as one would say to Google Assistant ("remind me to ... ").

How hard is that to implement?
If you do not have time for this I'd be happy to help. I'm certainly not an Java guru or anything but if you specified what needs to be implemented for this I'd be happy to give it a go

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.