Coder Social home page Coder Social logo

kolabnotes-android's People

Contributors

emaiannone avatar flyingpumba avatar kekh avatar konradrenner avatar luiscruz avatar mystro256 avatar naofum avatar ninjahoahong avatar poussinou avatar proninyaroslav avatar rdoeffinger avatar schalterdev avatar waldist 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

Watchers

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

kolabnotes-android's Issues

Unable to start DetailActivity

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.kore.kolabnotes.android/org.kore.kolabnotes.android.DetailActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.kore.kolab.notes.Notebook.getSummary()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at 

Create widgets for the app

Create a list widget which displays notes of a specific account/root folder/tag/notebook. Notes should be displayed in a list an when an item is selected, this note should be openend in the DetailActivity of the app.

Create a list widget which displays notebooks of a specific account/root folder. Notebooks displayed in a list an when an item is selected, this notebook should be openend in the MainActivity of the app (the notes of this notebook should be shown in the MainActivity).

Please stop the notes from flying in

It may be nice eye candy to see the notes flying into the app when you see it first, but having that effect every time you just want to look something up, and even on switching between portrait and landscape mode is kind of annoying ;-)

Upload of Images in a note

Notes which contains images are downloaded and displayed correct, but when a note is created or edited in the app, the sync does not work correct (the note is not shown in the webinterface because the kolab.xml is empty).

Autodetect folders with notes in them

It is possible to detect which folders have notes in them. This would alleviate the need to set the root notes folder (even if the default is usually correct) and, more importantly, remove the requirement that to be seen all notes folders must be children of that one top-level folder. Given that by default the web UI does not do this, this would make a nice improvement to the user experience when using both the web UI and the Android app.

The way notes folders are detected (and all other similar folders) is to get the metadata for folders (yeah .. all of them .. hooray! :) for the following keys:

/shared/vendor/kolab/folder-type
/private/vendor/kolab/folder-type

The values according to libkolab (Qt/C++ lib used by various bits of Kolab clients):

static const struct {
const char *name;
const char *label;
} folderTypeData[] = {
{ KOLAB_FOLDER_TYPE_MAIL, "" },
{ KOLAB_FOLDER_TYPE_CONTACT, I18N_NOOP( "Contacts" ) },
{ KOLAB_FOLDER_TYPE_EVENT, I18N_NOOP( "Calendar" ) },
{ KOLAB_FOLDER_TYPE_TASK, I18N_NOOP( "Tasks" ) },
{ KOLAB_FOLDER_TYPE_JOURNAL, I18N_NOOP( "Journal" ) },
{ KOLAB_FOLDER_TYPE_NOTE, I18N_NOOP( "Notes" ) },
{ KOLAB_FOLDER_TYPE_CONFIGURATION, I18N_NOOP( "Configuration" ) },
{ KOLAB_FOLDER_TYPE_FREEBUSY, I18N_NOOP( "Freebusy" ) },
{ KOLAB_FOLDER_TYPE_FILE, I18N_NOOP( "Files" ) }

So "Notes" is what it should be looking for. This is obviously more involved (going through all folders, checking when new folders appear or a folder changes metadata ..) but would be absolutely awesome to have.

NullPointer at onCreate in DetailActivity

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.kore.kolabnotes.android/org.kore.kolabnotes.android.DetailActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.kore.kolab.notes.Note.getSummary()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.kore.kolab.notes.Note.getSummary()' on a null object reference
at org.kore.kolabnotes.android.DetailActivity.onCreate(DetailActivity.java:132)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
... 10 more

Create a wearable app

Create a wearable app, which can show the content of a note or a list of notes from a selected account/rootfolder/notebook/tag.

Ask before a note is discarded

When hitting the back button accidently while editing a note, all changes are lost immediately.
The app should ask whether the user wants to save or discard the changes.

NullPointer at onResume in MainActivity

This NullPointer sometimes occurs when saving a note, when the app wants to go back to the MainActivity:

java.lang.RuntimeException: Unable to resume activity {org.kore.kolabnotes.android/org.kore.kolabnotes.android.MainPhoneActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'org.kore.kolab.notes.Identification org.kore.kolab.notes.Notebook.getIdentification()' on a null object reference
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2986)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3017)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.kore.kolab.notes.Identification org.kore.kolab.notes.Notebook.getIdentification()' on a null object reference
at org.kore.kolabnotes.android.MainPhoneActivity.onResume(MainPhoneActivity.java:273)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1257)
at android.app.Activity.performResume(Activity.java:6076)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2975)
... 9 more

Content sharing

The app already contains a "Share" button in the DetailActivity, but it doesn't work right now. Make it work, so that other apps, which can handle text, can use the shared informations (note summary, note description).

An example could be: One wants to share an note via his mail client, if he presses the "Share" button in the kolabnotes-android app, a new EMail in the mail client will be created, where the subject is the summary of the note and the mail body is the description of the note.

It should also be able, that this app can comsume content. E.g. one wants to save the current website, which is displayed by his browser, via kolabnotes-android.

Add support for attachments

Add support for attachements to the app. It should be possible to attach a picture, video, speech record, etc to a note.

App crashes when syncing to the Kolab server

After adding my Kolab server account (pretty much default Kolab 3.3 installation from official Kolab repositories) the app crashes and syncing of the account is turned off.
When I turn on sync, it crashes again, but this time sync remains active. However, no notes from the Kolab server show up in the app.
This is 100% reproducible.

However I'm not quite sure what to enter as the "IMAP root folder". I tried "/" as well as "/Notes" and even "Notes". Maybe this is the source of the issue.
Still I would expect to get a message instead of a crash (at least at a later release stage ;-)

Android 5.1 @ LG Nexus 5

Layout of note list unclean

The list of notes is not separated, the single notes overlay each other.
Possibly happens when note titles require more than a single row to display and/or the list is longer than the screen

New account dialog background incorrect on Android 4.x

Everything works just beautifully on Android 4.x devices, except the Add Account dialog which has a light grey background. Given the text is white, this makes it hard to use.

I assume on Android 5.x, your target dev platform, this works better. Feel free to ignore this issue if you do not wish to support Android 4.x fully (though 3/4ths of users are on 4.x still ..)

Configureable sorting of lists

Sorting of the note overview int the MainActivity and sorting of the list widget should be configureable (sort with creation date, summary, sort ascending, descending, etc)

Add possibility to export and import notes

Create at least a filter which exports and imports notes in the kolab xml format (with the KolabNotesParserV3 from the kolabnotes-java lib). The user should be able to choose a notebook or the whole account to export/import. Notebooks should be treated as folders.

App crashes when adding a new note

When no notebook is selected (e.g. no notebook exists), the "add note" button is available in the app.
When tapping the button, the app crashes.

I would expect to have either a hint "Please add a notebook before adding notes" or have the button disabled.

Sharing with Kolab Notes not possible

When I try to share things from other applications on Android, I do not see Kolab Notes listed as a possible sharing target. Doing this in a somewhat smart way, e.g. download/screenshot web page as part of the note on a web page along with title & short comment would be extremely useful.

Account name / address redundancy navigation drawer

In the header of the slideout nav drawer, the account name and the account address are both shown. When those are the same, it looks fairly redundant and unpolished :) It would be nice to not show the address if it is identical to the account name. In fact, I wonder if an account name is needed at all, or if the address would suffice in all cases, making configuration that much quicker?

Handling of self created certificates

At the moment each certificate is accepted by the app, if imaps is used. Create a way to whitelist certificates. To trust everyone is not the best solution ;-)

Sync apparently happens in the wrong direction

Two days ago I added a note in the app. Yesterday I edited it, today I aee the original text of the note.
Apparently the old version has been synced back from the Kolab server (despite being invisible there, as described in snother issue) while it should have been written to the server.

Notebook administration

It should be possible to rename and delete notebooks within the app (at the moment just creation is possible).

Note that was added in the app got deleted while syncing

I added a note in the app (preview 3), then clicked "sync now" in system settings - accounts - [the configured Kolab account].
The app crashed and the note was gone.

This is currently not reproducible. On a second try, sync was successful and the note was transferred into the Notes IMAP folder.

NullPointerException when trying to create new remote note

After I set up a remote account, I select this account and then click on the floating action icon to create a new note, I get this crash:

java.lang.NullPointerException: Attempt to invoke virtual method 'org.kore.kolab.notes.Note$Identification org.kore.kolab.notes.Notebook.getIdentification()' on a null object reference
            at org.kore.kolabnotes.android.MainPhoneActivity$CreateButtonListener.onClick(MainPhoneActivity.java:587)
            at android.view.View.performClick(View.java:4781)
            at android.view.View$PerformClick.run(View.java:19873)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5293)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

More advanced search

At the moment it is just possible to search for notes with summary. Also it is a ugly search dialog used.

It should be the Android search view being used and the search should be more dynamic, maybe configureable (search in tags, description, etc)

Batch update of notes

If one makes a long touch on a note in the overview, a batch mode should start. The Toolbar should change and at least support batch deleting, changing tags, changing classification, changing color and moving to another notebook for all selected notes.

Create unit tests

Create unit tests for each class/method which contains any form of logic.

Activate refreshing of NoteListWidget

Try using this code, instead of sending a broadcast:

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.example_appwidget);
appWidgetManager.updateAppWidget(mAppWidgetId, views);

Add support for colors

The kolab notes format does support colors for notes (there is a color attribute in the kolab.xml). Make use of this attribute in the app (give a hint about the color in the notes overview, in the DetailsActivity (maybe use another color in the toolbar?), in the widgets, in the wearables app, let users search for notes with a specific color, etc.).

Edit Account

Despite quite a bit of looking around in the UI, I could not find any way to edit an existing account. If this is implemented somewhere, it evidently needs to be made more obvious ...

Stabilize overall sync

Actual there are different problems when syncing with a Kolab server:

  • Sometimes new created notebooks are not synced from the server
  • Sometimes new created notebooks are not synced to the server (but if the notebook is synced, the web ui doesn't show it because it is not subscribed, I don't know if this can be triggered from the app)
  • Deleted notebooks are not synced to the server (the notebook is not deleted on the server)
  • If a note which contains images is edited within the app, the note is not correct synced (on the server is just a empty kolab.xml)

Simplify switching accounts in nav drawer

There are multiple ways to switch accounts in the nav drawer: pressing on the drop down next to the account name; pressing on one of the icons that represent other accounts. The icons for accounts are, by default, using the same icon ... and if I were to set them up to something unique, they'd probably end up with my little gravitar icon, and so look the same once again. When the icons look the same, it becomes a guessing game as to which account I will switch to.

IMHO only one way to switch accounts is really necessary, and given the ambiguity of the icon accounts, perhaps move just to the drop down list? (Icons could then be folded into that representation). This would have the nice side effect of making it possible to make the drawer header smaller.

Alternatively, it might be desirable to look for gravitar icons, use the Android logo or a devie icon for the default Local collection (or something else that says "this is on your device"), check if there is a favicon available related to the service (generally checking for webmail. or /apps will work) ...

Refactor handling of data aka use ContenProvider/Resolver

In the actual implementation, handling of persistent data is done via direct database calls. This should be refactored, so that ContentProvider / ContentResolver are used. Also these Provider/Resolver must be documented, so that other apps can use notes from this app.

Create tablet interface

Refactor the Acitivities so that Fragements are used. Create an UI optimized for smartphones and an UI optimized for Tablets.

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.