Outliner for taking notes and managing to-do lists

Overview

Orgzly

Orgzly is an outliner for taking notes and managing to-do lists.

You can keep notebooks stored in plain-text and have them synchronized with a directory on your mobile device, SD card, WebDAV server or Dropbox.

Notebooks are saved in Org mode’s file format. “Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.” See http://orgmode.org for more information.

Get it on Google Play Get it on F-Droid

End-user documentation

Find out more here: https://github.com/orgzly/documentation

Building & testing

If you don’t use Android Studio and wish to build and test the app from command line, the standard set of Gradle tasks is available. For example:

  • ./gradlew build builds the project and generates APK files
  • ./gradlew connectedAndroidTest runs instrumented unit tests

Make sure you turn off animations for the device you’re testing on.

License

The project is licensed under the GNU General Public License version 3 (or newer).

Comments
  • Support for plain timestamps

    Support for plain timestamps

    I was wondering whether there is any particular reason why only deadlines and schedules are implemented in orgzly, but not plain timestamps. I find the latter really helpful for appointsments etc. Also check gnu.org

    Type: feature 
    opened by lahertel 54
  • Allow

    Allow "file:" and "[[...]]" links, display images in notes

    Hello, Following the work on #382, I open a PR with new propositions. I reworked the code a bit to better integrate it with the previous code, and notably to handle [[...]] for file links (still linked to #360) in addition to the previous file: scheme. I also added an ImageSpan to display images in notes (rescaled to fit width, if larger than the window width), as a proposition to implement #147.

    As before, this PR has been tested with API 16 (Nexus 5), API 23 (Pixel 2) & API 27 (Pixel 2 XL)

    A small note sample, I used to test this:

    [[Download/test.jpg]]
    
    file:Download/test2.png
    
    [[Download/test3.png][Test]]
    

    Right now, named links are not replaced with an ImageSpan. Furthemore regarding to the application performance, maybe adding a setting to toggle off image display could be a good idea. What do you think about this ?

    opened by aancel 52
  • Add Clocking / Time capture implementation

    Add Clocking / Time capture implementation

    Hello,

    This PR should fix #15. The basic functionalities should be covered. What is implemented:

    • [x] Quickbar (Book and Query) buttons to clock-{in,out,cancel}
    • [x] Clocking logic handling in OrgFormatter
      • [x] Allow to clock-in, only if a previous clocked-in entry is not already present
      • [x] Allow to clock-out, only if a previous clocked-in entry is present, and compute the spent time
      • [x] Allow to cancel the latest clock

    What remains to be fixed:

    • [x] Buttons for clock-{in,out,cancel} are currently the same alarm icon
      • Maybe having a clock icon with an arrow going in for clock-in, a clock icon with with an arrow going out for clock-out and a button with the strikethrough clock for org-cancel ? => using the hourglass_{top, bottom, disabled} material icons
    • [ ] The regexes in OrgFormatter might be moved to OrgPatterns
    • [ ] Kotlin code needs some improvement, as I do not have much experience in it
    • [x] Maybe adding buttons in the note edition UI to clock-{in,out,cancel} ?

    Thanks for your comments and suggestions for improvements !

    opened by aancel 45
  • Git sync base changes

    Git sync base changes

    Hi again, this is related to #24.

    @nevenz, @IvanMalison could one of you please take a look at this draft to just get things working with regards to syncing a git repository? I'm working off the list mentioned in https://github.com/orgzly/orgzly-android/pull/173#issuecomment-336303192 but wanted to check that the base I'll be working on isn't busted first.

    A few things I'm not sure about:

    • We handle an initially empty git repo by checking for a RevCommit that is null or a getObjectId() that is null, this leads to a few strange checks, see e.g. https://github.com/orgzly/orgzly-android/commit/b3736b224a789580fbc1cd5c28ed6eafa7478b2a#diff-fed1654ff699f68e117dce23ae1625acR157 where null means that we should push.
    • DataRepository is now sent as an argument to both GitRepo and RepoPreferences, maybe there's a better way to solve this?
    • I'm not sure how sync back should be handled, currently SyncService#handleTwoWaySync checks if loadFile is null and in that case doesn't do much.
    • I've made GitFileSynchronize#updateAndCommitFile() public since it seemed to fit what I wanted to do when there are no commits in the repo, thoughts?

    Regarding authentication, I'd like to add support for generating a SSH-key as an alternative to user/pass authentication, should I do that in a later PR or can I cram that into this one?

    Keeping the list of things to fix here, from #173:

    Issues or missing features to be resolved before enabling this in the app

    • [x] Warning when syncing from Android Studio
    Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.1.3 is ignored for fdroidDebug as it may be conflicting with the internal version provided by Android.
    
    • [x] Building fails when doing ./gradlew build (proguard-rules.pro needs updating probably)

    • [x] Asking for Storage permission before entering Git repo creation, leaving user in repos list, see 596ff7f9e604241093011b77df0c9d95d8b73465

    • [ ] Prepopulate directory (Orgzly/repos/git in storage root or similar) Semi-done, currently a directory is created when none is selected and is auto-selected. But I'm not sure that's what we want to do if the user decides to setup another repo as we'll try to re-use that same folder in that case which won't work out.

    • [x] On tapping checkmark (using [email protected]:nevenz/foo.git)

    11-09 08:05:24.383  7914  7914 W System.err: java.io.IOException: Directory /storage/emulated/0/Download/git is not a git repository.
    11-09 08:05:24.383  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:109)
    11-09 08:05:24.384  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:73)
    11-09 08:05:24.384  7914  7914 W System.err:    at com.orgzly.android.ui.fragments.GitRepoFragment$RepoCloneTask.doInBackground(GitRepoFragment.java:343)
    11-09 08:05:24.384  7914  7914 W System.err:    at com.orgzly.android.ui.fragments.GitRepoFragment$RepoCloneTask.doInBackground(GitRepoFragment.java:312)
    

    As far as I can tell this has been solved.

    • [x] Had to delete selected (empty, created from browser) directory (can't use just browser, we have to type?)

    • [x] Edit repo, change to non-existing URL, no check (dialog) this time, repo is accepted

    • [x] Trying to sync gives "No repos configured" (with non-existing URL created above). Later discovered that the file from repository was downloaded at one point after all

    • [x] "Unsupported repository type" trying to edit repo (non-existing URL)

    11-09 08:15:50.019  7914  7914 W System.err: java.io.IOException: The file /storage/emulated/0/Documents/nevenz/foo2.git does not exist
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:105)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:73)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.build(GitRepo.java:57)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.GitRepo.buildFromUri(GitRepo.java:53)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.RepoFactory.getFromUri(RepoFactory.java:49)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.repos.RepoFactory.getFromUri(RepoFactory.java:23)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.ui.ReposActivity.onRepoEditRequest(ReposActivity.java:188)
    11-09 08:15:50.019  7914  7914 W System.err:    at com.orgzly.android.ui.fragments.ReposFragment.onListItemClick(ReposFragment.java:130)
    

    Should be fixed, can't reproduce

    10-12 23:20:20.008  6287  6416 E AndroidRuntime: Caused by: java.lang.ClassCastException: org.eclipse.jgit.transport.TransportHttp cannot be cast to org.eclipse.jgit.transport.SshTransport
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at com.orgzly.android.git.GitSSHKeyTransportSetter$2.configure(GitSSHKeyTransportSetter.java:40)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at org.eclipse.jgit.api.TransportCommand.configure(TransportCommand.java:138)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:128)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:193)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:133)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:91)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:73)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at com.orgzly.android.ui.fragments.GitRepoFragment$RepoCloneTask.doInBackground(GitRepoFragment.java:343)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at com.orgzly.android.ui.fragments.GitRepoFragment$RepoCloneTask.doInBackground(GitRepoFragment.java:312)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at android.os.AsyncTask$2.call(AsyncTask.java:305)
    10-12 23:20:20.008  6287  6416 E AndroidRuntime:        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    

    Partially fixed, using https now works, but you can not supply credentials, so this only works when authentication isn't needed. See #643 for the fix.

    • [x] Clicking checkmark immediately (all fields empty): Snackbar with javaj.io.IOException: Failed to clone repository , null

    • [x] Entering "asd" as URL and pressing checkmark

    java.io.IOException: Failed to clone repository asd, org.eclipse.jgit.errors.NoRemoteRepositoryException: asd: not found.
    

    this is fixed, however, maybe we should replace the progress modal with a progress bar of some kind?

    • [x] Error checking for all other fields

    • [x] Allow login with user/pass

    • [ ] Update JGit version to a newer one and solve the entrySet() problem

    Found during testing/changes from @amberin

    • [ ] Changing the storage location for a repo makes the repo unusable
    • [ ] mtime correction
    • [ ] Change how conflict resolution is handled, push the conflicting merge branch to remote to allow fixing it somewhere else and then allow "force-pulling" a notebook. This probably doesn't fit in this PR but I wanted to remember it.

    Minor stuff

    • [x] Big button for Git needs to be added in repos list (between Dropbox and Directory)

    • [x] Change order in + drop-down (Dropbox, Git, Directory)

    • [x] Can't scroll down (not using ScrollView?)

    • [x] Git branch's input is half a size (top half is cut off)

    • [x] Snackbar displayed below opened keyboard

    • [x] Action button (imeOptions) - actionNext for all but last, which should be actionDone

    • [x] Remove "Git" from all hints

    • [x] Git author (e.g. My Name) -> Name (e.g. John Doe)

    • [x] Git email (e.g. [email protected]) -> Email (e.g. [email protected])

    • [x] Git branch (e.g. master) -> Branch

    • [x] Prepopulate branch with "master"

    • [x] Fields with browse button don't have hint displayed when value is set (TextInputLayout missing?)

    • [x] Git remote address -> Remote URL

    • [x] Extract string resources displayed to user (errors etc.)

    • [ ] Move git package to sync/ or repos/ (for now)

    Thanks!

    opened by lfxgroove 40
  • Support for agenda view

    Support for agenda view

    Is there any agenda view functionality in Orgzly equivalent to 'C-c a a' in Org-mode? To get the agenda of the coming week with a daily view, it seems that creating a search with: .i.done s.1w g.day
    or
    .i.done a.7d might be different ways to provide an agenda view. However, agenda (a) and grouping (g) seems to be not implemented. Is there a plan to support agenda views? and is there anyone working on this? If not, is extending the search with (a) and (g) the way to go?

    I would be interested in working on this!

    Type: feature 
    opened by pxsalehi 36
  • Feat/smarter sync

    Feat/smarter sync

    Looking for feedback. Its not yet ready for merge.

    Has two features:

    • onResume sync
    • sync after notes are updated

    Fixes:

    • sync on resume text wrapping issue

    Removed:

    • floating sync activity button from prior pull request

    Bugs:

    • (FIXED, see below) notes after sync still indicate they need sync. Reporting problem or race condition.

    missing:

    • does not sync before applying changes for notes updated, would be nice to sync from file, then sync to file
    opened by tulth 29
  • Both local and remote notebook have been modified

    Both local and remote notebook have been modified

    Now what?

    I could minimize the chance of this happening by setting auto-save in emacs, make sure dropbox is always running with a big warning if network can't connect.

    On the orgzly side it would make sense to sync both before and after adding a new note.

    But still, conflict is inevitable. The only way forward now seems to be to clear the database and start over. I guess I'd prefer some options like diff, merge, rename, remote wins, local wins.

    This is happening on my first day of use; The very first time I tried adding a note with orgzly. I guess more experienced users have discovered a practice to avoid the situation. Please share how you do it.

    Update

    Clear database is not a great idea. You lose all your settings.

    Occurs to me that if org files were simply saved on Google Drive as a text file that the system would take care of synchronization. Is that what others are doing?

    Type: question 
    opened by gitfoxi 25
  • Git sync fixes

    Git sync fixes

    Should fix the force load and force save crashes that were seen in #543. I also moved the creation of a view a bit earlier, otherwise the Git sync view crashed on initialization.

    Also updated to allow rudimentary HTTP support. Username and password is currently saved in clear-text, this is something we probably want to change?

    The remaining items now are:

    • [x] Move git package to sync/ or repos/ (for now) Does this need to happen? The current layout seems reasonable to me

    • [x] Update JGit version to a newer one and solve the entrySet() problem I don't think this can be solved without updating the android version we compile against which I guess we don't want to to keep backwards compatibility? Changing to a newer version yields the following error at runtime when trying to clone a repo:

    2020-02-11 10:36:13.985 14248-14348/com.orgzly E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
        Process: com.orgzly, PID: 14248
        java.lang.RuntimeException: An error occurred while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:354)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
            at java.util.concurrent.FutureTask.run(FutureTask.java:271)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:764)
         Caused by: java.lang.NoSuchMethodError: No virtual method keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; in class Ljava/util/concurrent/ConcurrentHashMap; or its super classes (declaration of 'java.util.concurrent.ConcurrentHashMap' appears in /system/framework/core-oj.jar)
            at org.eclipse.jgit.attributes.FilterCommandRegistry.getRegisteredFilterCommands(FilterCommandRegistry.java:118)
            at org.eclipse.jgit.treewalk.TreeWalk.<init>(TreeWalk.java:375)
            at org.eclipse.jgit.treewalk.TreeWalk.<init>(TreeWalk.java:339)
            at org.eclipse.jgit.submodule.SubmoduleWalk.<init>(SubmoduleWalk.java:409)
            at org.eclipse.jgit.api.FetchCommand.fetchSubmodules(FetchCommand.java:167)
            at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:247)
            at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:305)
            at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:204)
            at com.orgzly.android.repos.GitRepo.cloneRepo(GitRepo.java:149)
            at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:95)
            at com.orgzly.android.repos.GitRepo.ensureRepositoryExists(GitRepo.java:85)
            at com.orgzly.android.ui.repo.git.GitRepoActivity$RepoCloneTask.doInBackground(GitRepoActivity.kt:447)
            at com.orgzly.android.ui.repo.git.GitRepoActivity$RepoCloneTask.doInBackground(GitRepoActivity.kt:436)
            at android.os.AsyncTask$2.call(AsyncTask.java:333)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
            at java.lang.Thread.run(Thread.java:764) 
    

    Found during testing/changes from @amberin

    • [ ] Changing the storage location for a repo makes the repo unusable What behaviour do we want here? Should we just copy the repo to the new location or not allow location changing at all for the first release of the feature?

    • [x] mtime correction I'm not sure what this is related to, could you fill med in @amberin?

    • [ ] Change how conflict resolution is handled, push the conflicting merge branch to remote to allow fixing it somewhere else and then allow "force-pulling" a notebook. This probably doesn't fit in this PR but I wanted to remember it.

    opened by lfxgroove 22
  • Support plain timestamps

    Support plain timestamps

    This is a work in progress for fixing #76.

    I've added a new relationship note_content_times and modified Provider.loadBookFromReader to populate the table.

    I guess the next step is to update this table whenever the content changes, and to cleanup when the note is destroyed.

    Then, we should be able to lookup in this table for agenda searches and reminders.

    Am I on the right track? Don't be afraid to tell me if not. :)

    opened by fmdkdd 21
  • Add a widget for searches

    Add a widget for searches

    Fixes #62.

    Features:

    • can select a search
    • button for adding a new note
    • autoupdates every minute
    • updates on most of the common actions (saving, marking as done and some other ones)
    • mark as done button for TODO items

    Missing:

    • [x] preview image
    • [x] tests

    There are some points, which are not ideal, maybe you have an idea, @nevenz, how these can be solved:

    • AppWidgets don't support themes, so I had to copy a lot of the information from the default theme
    • I had to copy quite a bit of code from the HeadListViewAdapter, because I could not use it directly. But I also refactored it a little bit and extracted at least the title generation.
    opened by MackieLoeffel 20
  • New icons on edit screen look out of place and somehow confusing

    New icons on edit screen look out of place and somehow confusing

    I know somebody requested to change the save icon to distinguish it from the DONE one, but the new one is quite weird also, looks like send or share... What about a check inside a white circle to match the also circled x?

    Anyway the new icons are much more "solid" than most other icons in orgzly, maybe a couple of more outlined close/save ones are in order. If you tell me the icon set you are using maybe I could take a look for suggestions. I use Nerd Fonts a lot, is it possible for you to use their glyphs?

    Type: feature 
    opened by memeplex 18
  • Take TODO states from the headline, or notebooks's, TODO property, if there is one

    Take TODO states from the headline, or notebooks's, TODO property, if there is one

    • I have searched for existing issues that may be the same as or related to mine.

    It is possible to define a TODO sequence for a particular heading using the "TODO" property. I can define one such a sequence of TODOs in the orgzly settings, but I have multiple, defined in notebooks, or sometimes in a single headline.

    It would be nice to have orgzly not tell me that I have work to do because it doesn't understand that "MERGE" means that my work is done, for example.

    Type: feature 
    opened by daraul 0
  • Allow typing out stars to create subheadings

    Allow typing out stars to create subheadings

    • I have searched for existing issues that may be the same as or related to mine: Yes

    It would be very convenient if I could simply type out stars and Orgzly would write them without commenting, so that upon next sync they would turn into subheadings - this would greatly ease writing out notes from a keyboard and create a feel more similar to Emacs.

    Type: feature 
    opened by xeruf 0
  • Fix keyboard navigation with TAB key

    Fix keyboard navigation with TAB key

    I have searched for existing issues that may be the same as or related to mine: Yes

    When using a bluetooth keyboard, I can navigate between fields using TAB, but I have not found a way to actually enter the content field and start typing without tapping on the screen, which is rather inconvenient.

    Type: bug 
    opened by xeruf 0
  • Check content equality to prevent sync errors

    Check content equality to prevent sync errors

    I have searched for existing issues that may be the same as or related to mine: Yes

    I moved my org file folder, and now it is quite annoying having to check on and move all the notebooks, as it says:

    • "Link and remote notebook exist but notebook hasn't been synced before"
    • "Notebook has no link and one or more remote notebooks with the same name exist"

    For both of these, content equality could be checked and the link automatically recovered.

    Type: feature 
    opened by xeruf 0
  • Monochrome vector launcher icon for adaptive-icons support

    Monochrome vector launcher icon for adaptive-icons support

    This is primarily an Android 13 / "Material You" detail (reference). The monochrome option is just the existing foreground icon with extraneous detail tidied up.

    Before:

    After:

    opened by markhepburn 0
  • Git sync: Push current branch to remote if it is empty

    Git sync: Push current branch to remote if it is empty

    This allows the user to easily set up a new "origin" remote (by initalizing an empty repository) if the current one is somehow lost.

    A Git repo which is synced between two locations should have a degree of redundancy. Without this code, there is no convenient way to sync the repo contents using Orgzly as the source.

    opened by amberin 0
Releases(v1.8.10)
  • v1.8.10(Nov 5, 2022)

    • Allow using alarm clock for scheduling reminders with a time of day
    • Log and view major events (e.g. scheduling reminders)
    • Check for reminders since the last run on boot and data-change
    • Remove edit/view modes from note, single tap to edit and position the cursor correctly
    • Replace quick menus with popup windows
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.10.apk(5.47 MB)
  • v1.8.10-beta.2(Nov 2, 2022)

  • v1.8.10-beta.1(Oct 29, 2022)

    • Allow using alarm clock for scheduling reminders with a time of day
    • Log and view major events (e.g. scheduling reminders)
    • Check for reminders since the last run on boot and data-change
    • Remove edit/view modes from note, single tap to edit and position the cursor correctly
    • Replace "quick menu" with popup windows (primarily for performance)
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.10-beta.1.apk(5.47 MB)
  • v1.8.9(Sep 23, 2022)

  • v1.8.9-beta.1(Sep 21, 2022)

  • v1.8.8(Sep 10, 2022)

    • Fix slow sync and app start due to shortcuts refreshing
    • Stop using alarm clock for reminders
    • Add Sync back to the overflow menu
    • Fix a graphics glitch with a transparent navigation bar on Android 8.1
    • Stop hiding the top of the content under the toolbar on the keyboard open
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.8.apk(5.46 MB)
  • v1.8.8-beta.1(Sep 8, 2022)

    • Fix slow sync and app start due to shortcuts refreshing
    • Stop using alarm clock for reminders
    • Add Sync back to the overflow menu
    • Fix a graphics glitch with a transparent navigation bar on Android 8.1
    • Stop hiding the top of the content under the toolbar on the keyboard open
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.8-beta.1.apk(5.46 MB)
  • v1.8.7(Aug 29, 2022)

    • Target Android 12L
    • Use Material 3
    • Use larger agenda dividers with a background color
    • Scroll to the top on action bar click
    • Render images, allow using monospaced font and register checkbox changes for notebook preface
    • Fix the permission issue when creating a "New note" widget
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.7.apk(5.96 MB)
  • v1.8.7-beta.2(Aug 26, 2022)

  • v1.8.7-beta.1(Aug 22, 2022)

    • Target Android 12L
    • Use Material 3
    • Use larger agenda dividers with a background color
    • Scroll to the top on action bar click
    • Render images, allow using monospaced font and register checkbox changes for notebook preface
    • Fix the permission issue when creating a "New note" widget
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.7-beta.2.apk(5.96 MB)
  • v1.8.6(Jan 19, 2022)

  • v1.8.6-beta.2(Jan 11, 2022)

  • v1.8.6-beta.1(Jan 2, 2022)

  • v1.8.5(Jun 26, 2021)

    • Support .tn search operator
    • Preference to insert new note at the beginning of notebook
    • Preference to define root directory for links
    • Gray out notes with ARCHIVE tag
    • Support + as a bullet for lists
    • Support "Keep screen on" in note view
    • Allow picking directory for saved searches export
    • Fix list continuing on some keyboards
    • Handle escaped brackets in links
    • Fixes for timestamps without time part set (for s.now and reminders)
    • Ignore inactive times in agenda
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.5.apk(4.99 MB)
  • v1.8.5-beta.2(Jun 8, 2021)

  • v1.8.5-beta.1(May 26, 2021)

    • Support .tn search operator
    • Preference to insert new note at the beginning of notebook
    • Preference to define root directory for links
    • Gray out notes with ARCHIVE tag
    • Support + as a bullet for lists
    • Support "Keep screen on" in note view
    • Allow picking directory for saved searches export
    • Fix list continuing on some keyboards
    • Handle escaped brackets in links
    • Fixes for timestamps without time part set (for s.now and reminders)
    • Ignore inactive times in agenda
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.5-beta.1.apk(4.97 MB)
  • v1.8.4(Jul 18, 2020)

    • Sticky agenda headers
    • Preference for time for daily reminders
    • Button to open tags dropdown menu
    • Preview title in note view
    • Switch for changing note's view/edit mode
    • Enter edit mode on title or content click in note view
    • Remove share activity from recent apps
    • Maximize height of clickable area for the folding button
    • Remember location in refile dialog
    • Swipe down to sync in search results
    • Enable reminders by default
    • Fix broken notebook shortcuts
    • Fix parsing of link with square brackets in its name
    • Fix PROPERTY line parsing
    • Use local-specific time format everywhere
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.4.apk(5.33 MB)
  • v1.8.4-beta.2(Jul 13, 2020)

  • v1.8.4-beta.1(Jul 11, 2020)

    • Sticky agenda headers
    • Preference for time for daily reminders
    • Button to open tags dropdown menu
    • Preview title in note view
    • Switch for changing note's view/edit mode
    • Enter edit mode on title or content click in note view
    • Remove share activity from recent apps
    • Maximize height of clickable area for the folding button
    • Remember location in refile dialog
    • Swipe down to sync in search results
    • Enable reminders by default
    • Fix broken notebook shortcuts
    • Fix parsing of link with square brackets in its name
    • Fix PROPERTY line parsing
    • Use local-specific time format everywhere
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.4-beta.1.apk(5.33 MB)
  • v1.8.3(Apr 24, 2020)

    • Overdue section in agenda
    • UI for end-time and delay/warning period
    • Paste button in notebook for when it's empty
    • Start new plain list item on enter press while editing content
    • Fix issue of hidden notes when o.e is used
    • Fix issue when pasting a large number of notes
    • Fix subtree unfolding (long-click)
    • Do not cancel sync on pull-to-sync
    • Add labels and make buttons obvious in timestamp dialog
    • Underline breadcrumb links
    • Do not fold other notes on refile's go-to action
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.3.apk(5.03 MB)
  • v1.8.3-beta.1(Apr 14, 2020)

    • Overdue section in agenda
    • UI for end-time and delay/warning period
    • Paste button in notebook for when it's empty
    • Start new plain list item on enter press while editing content
    • Fix issue of hidden notes when o.e is used
    • Fix issue when pasting a large number of notes
    • Fix subtree unfolding (long-click)
    • Do not cancel sync on pull-to-sync
    • Add labels and make buttons obvious in timestamp dialog
    • Underline breadcrumb links
    • Do not fold other notes on refile's go-to action
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.3-beta.1.apk(5.02 MB)
  • v1.8.2(Nov 12, 2019)

  • v1.8.2-beta.1(Nov 11, 2019)

  • v1.8.1(Nov 2, 2019)

  • v1.8(Oct 27, 2019)

    • WebDAV repository support
    • Swipe down to sync (notebooks and notebook views)
    • Sort by title (o.title)
    • Set Dropbox token by long-clicking the link button
    • Scroll to top when editing title (to keep breadcrumbs visible)
    • Fix displaying of remote notebook's modification time in notebook details
    • Do not display confirmation dialog when new note is not modified
    • Fix metadata visibility issue on initial note loading
    • Display all note's events in agenda
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8.apk(4.96 MB)
  • v1.8-beta.1(Oct 23, 2019)

    • WebDAV repository support
    • Swipe down to sync (notebooks and notebook views)
    • Sort by title (o.title)
    • Set Dropbox token by long-clicking the link button
    • Scroll to top when editing title (to keep breadcrumbs visible)
    • Fix displaying of remote notebook's modification time in notebook details
    • Do not display confirmation dialog when new note is not modified
    • Fix metadata visibility issue on initial note loading
    • Display all note's events in agenda
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.8-beta.1.apk(4.96 MB)
  • v1.7.9(Sep 13, 2019)

    • Unfold entire subtree on folding button long-click
    • Preference for default note view mode (view, edit or last used)
    • Preference for displaying checkmarks in widgets
    • Fast scroller in notebook and search results
    • Share a link to locally stored image with Orgzly (not always available)
    • Prompt to save or discard changes on breadcrumbs follow
    • Honor current level when creating new checklist item on the next line
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.7.9.apk(4.65 MB)
  • v1.7.9-beta.3(Sep 11, 2019)

  • v1.7.9-beta.2(Sep 11, 2019)

    • Unfold entire subtree on folding button long-click
    • Preference for default note view mode (view, edit or last used)
    • Preference for displaying checkmarks in widgets
    • Fast scroller in notebook and search results
    • Share a link to locally stored image with Orgzly (not always available)
    • Prompt to save or discard changes on breadcrumbs follow
    • Honor current level when creating new checklist item on the next line
    Source code(tar.gz)
    Source code(zip)
    orgzly-1.7.9-beta.2.apk(4.65 MB)
  • v1.7.8(Jul 5, 2019)

Owner
Orgzly
Outliner for notes and tasks. Notebooks in plain text.
Orgzly
Viacheslav Veselov 0 Jul 8, 2022
Android sample app following best practices: Kotlin, Compose, Coroutines and Flow, Hilt, JetPack Navigation, ViewModel, MVVM and MVI, Retrofit, Coil

Foodies - Modern Android Architecture Foodies is a sample project that presents a modern 2021 approach to Android app development. The project tries t

null 362 Jan 2, 2023
🧸 A demo Disney app using Jetpack Compose and Hilt based on modern Android tech stacks and MVVM architecture.

DisneyCompose A demo Disney app using compose and Hilt based on modern Android tech-stacks and MVVM architecture. Fetching data from the network and i

Jaewoong Eum 791 Dec 30, 2022
A sample Android application with a strong focus on a clean architecture, automated unit and UI testing and continuous integration.

Android playground This is a sample Android application with a strong focus on a clean architecture, automated unit and UI testing and continuous inte

null 6 Jun 4, 2022
OpenPacketSniffer - Monitors and handles network packets sent and received to/from a host

Packet Sniffer Monitors network activity and logs all packets that have been sent/received by the client's host. Settings In Main.kt, the PcapHandler

Neel 0 Jan 5, 2022
Do's and Don'ts for Android development, by Futurice developers

Best practices in Android development Avoid reinventing the wheel by following these guidelines. Lessons learned from Android developers in Futurice.

Futurice 20.2k Dec 31, 2022
Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture

MovieGuide ?? Refactoring in progress ??‍♀️ ⛏ ?? ??️ ?? ?? ?? Comments and new issues are welcome. ?? Currently not accepting external PRs that touch

Arun Sasidharan 2.6k Dec 25, 2022
Basic example of using ItemTouchHelper to add drag & drop and swipe-to-dismiss to RecyclerView.

Another drag and swipe library? This project is an example of basic drag & drop and swipe-to-dismiss with RecyclerView using ItemTouchHelper. It corre

Paul Burke 2.5k Dec 24, 2022
enable users to slide card to the left or right smoothly and continuously

有图有真相 模仿探探首页的卡片滑动效果: 不得不说,探探的ui效果真的很赞。在着手这个project之前,我没有参考过github上其它类似的开源项目。所以,如果这个project重复造了轮子,请不要打我。 在这个仓库竣工之时,有一个小伙伴发了我另一个开源工程,颇有相似之处。我下载了源码,导入了st

stone 2.4k Jan 5, 2023
A simple chat demo for socket.io and Android

socket.io-android-chat This is a simple chat demo for socket.io and Android. You can connect to https://socket-io-chat.now.sh using this app. Installa

Naoyuki Kanezawa 1.9k Dec 30, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description

android-demo 关于我,欢迎关注 微博:Trinea 主页:trinea.cn 邮箱:trinea.cn#gmail.com 微信:codek2 依赖:trinea-android-common android-auto-scroll-view-pager viewpager-indica

Trinea 1.1k Nov 10, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Dec 30, 2022
Sample application demonstrating Android design and animation

android-movies-demo This is a sample application showing off some interesting design/development interactions for a talk given at Droidcon 2013. As it

Daniel Lew 359 Jan 1, 2023
This repo contains example code for O'Reilly's "Programming Android" by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura

This repo contains working code for the example in O'Reilly's _Programming Android, 2nd Edition_; Mednieks, Dornin, Meike, Nakamura (http://shop.orei

G. Blake Meike 214 Nov 25, 2022
[] Port of Jake Wharton's U2020 sample app with use of MVP and Dagger 2

U+2020-mvp [DEPRECATED] We recomend to try Moxy framework instead of our solution. Port of Jake Wharton's U2020 sample app with use of MVP pattern and

Live Typing 315 Nov 14, 2022
This repo contains example code for O'Reilly's "Programming Android" by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura

This repo contains working code for the example in O'Reilly's _Programming Android, 2nd Edition_; Mednieks, Dornin, Meike, Nakamura (http://shop.orei

G. Blake Meike 165 Nov 11, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
A demo of the power menu with Reveal and other animations

MaterialPowerMenu A demo of the power menu with Reveal and other animations Some days ago, I saw a gif on Google+ demonstating a concept of Android Po

Naman Dwivedi 888 Oct 11, 2022