spacecowboy / NotePad

Now under new management
GNU General Public License v3.0
382 stars 158 forks source link

Update Studio and Gradle, avoid warnings #385

Closed ericzolf closed 2 years ago

ericzolf commented 6 years ago

This pull request is there to say that I'm looking into continuing and improving NotePad, my first step was to get it running under the latest version of Studio.

Is there any interest in accepting Pull Requests and publishing new versions, or should I create a "real" fork, rename the application (especially to not pollute your package name-space) and continue development on my own?

licaon-kter commented 6 years ago

Isn't Orgzly good enough?

spacecowboy commented 6 years ago

Thanks for the interest @ericzolf . I think a fork would be the most appropriate way forward if you want to adopt the code. Just remember to adhere to the license.

I'd be happy to answer any questions you might have but I just don't have the time to actively collaborate on code submissions or releasing versions to Google Play which I'd need to do since Google Play has the application signed with my key. F-Droid would be no problem of course since they build the app with their own key.

ericzolf commented 6 years ago

Answering both points at once: @licaon-kter Orgzly can't (AFAICJ) synchronize with Google Tasks. @spacecowboy thanks for the good wishes. Regarding open source and license, no worry, I know what it means, I've already developed an app under GPL, among other open source related activities.

ericzolf commented 6 years ago

Looking more into the code, I allow myself a few short questions:

  1. I assume that I can ignore the tree app/bak/billing - it seems like it's never been integrated. Correct?
  2. what about createicon.7z, Notes_for_ICS_complete.zip and notes_for_ics_logo.zip in the app directory? They seem to be old stuff.
  3. I'm new to Gradle so perhaps it's just me missing something but the "Build -> Clean Project" doesn't seem to clean a lot (all the generated directories remain). Is it normal, or just lack of time to create a proper clean-up section?
  4. Planning to keep com.nononsenseapps.filepicker for now, I wanted to know if you have plans to discontinue it as well?
  5. Did I understand it correctly that you were using your own server to have the community translate the strings?
  6. The two following points have more to do with my inexperience than with your code, so feel free to tell so if you think I exaggerate, but do I need to register following actions respectively mimetypes, or can I choose at will?
app/src/main/res/values/constants.xml:    <string name="complete_note_broadcast_intent">com.nononsenseapps.completenote</string>
app/src/main/res/values/constants.xml:    <string name="note_completed_broadcast_intent">com.nononsenseapps.notecompleted</string>
app/src/main/res/xml/searchablelocation.xml:    android:searchSuggestAuthority="com.nononsenseapps.LocationSuggestions"
app/src/main/AndroidManifest.xml:                <action android:name="com.nononsenseapps.completenote" />
app/src/main/AndroidManifest.xml:                <action android:name="com.nononsenseapps.completenote" />

respectively:

app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            // "vnd.android.cursor.dir/vnd.nononsenseapps.note";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.note";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            // "vnd.android.cursor.dir/vnd.nononsenseapps.list";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.list";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.nononsenseapps.gtask";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.gtask";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.nononsenseapps.gtasklist";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.gtasklist";
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.nononsenseapps."
app/src/main/java/eu/lavarde/spacetasker/data/local/sql/LegacyDBHelper.java:            public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps."
app/src/main/java/eu/lavarde/spacetasker/data/model/sql/Notification.java:  public static final String CONTENT_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps."
app/src/main/java/eu/lavarde/spacetasker/data/model/sql/RemoteTask.java:    public static final String CONTENT_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps."
app/src/main/java/eu/lavarde/spacetasker/data/model/sql/RemoteTaskList.java:    public static final String CONTENT_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps."
app/src/main/java/eu/lavarde/spacetasker/data/model/sql/Task.java:  public static final String CONTENT_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.note";
app/src/main/java/eu/lavarde/spacetasker/data/model/sql/TaskList.java:  public static final String CONTENT_TYPE = "vnd.android.cursor.item/vnd.nononsenseapps.list";
app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.list" />
app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.note" />
app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.notification" />

After that, I should be done with the renaming and can work further on understanding the app.

KR, Eric

spacecowboy commented 6 years ago

I assume that I can ignore the tree app/bak/billing - it seems like it's never been integrated. Correct?

Yup. It's a backup directory (bad habit) back when in-app donations were a thing.

what about createicon.7z, Notes_for_ICS_complete.zip and notes_for_ics_logo.zip in the app directory? They seem to be old stuff.

Probably a mix of backups and old things related to the logo.

I'm new to Gradle so perhaps it's just me missing something but the "Build -> Clean Project" doesn't seem to clean a lot (all the generated directories remain). Is it normal, or just lack of time to create a proper clean-up section?

Cleaning is built-in to gradle, it's not typically something you need to mess with. And it works fine:

$ ./gradlew assembleDebug
$ ls app/build
generated  intermediates  outputs  tmp
$ ./gradlew clean
$ ls app/build
ls: cannot access 'app/build': No such file or directory

Note that IntelliJ (which is what you're talking about) might be doing something else than calling gradle clean for various reasons.

Planning to keep com.nononsenseapps.filepicker for now, I wanted to know if you have plans to discontinue it as well?

It is still maintained for now. However, I deeply recommend that you set your minimum version to Kitkat, and stop supporting Dropbox in its current form. Then you can also drop that library.

Did I understand it correctly that you were using your own server to have the community translate the strings?

At some point I think but that was years and years ago. This site was very useful for a time: https://crowdin.com/project/nononsensenotes (it's even got some recent activity) because the UI is easy. I stopped using it because I thought their API was extremely clumsy. Users can also translate it from their devices via https://f-droid.org/packages/io.github.lonamiwebs.stringlate/

do I need to register following actions respectively mimetypes, or can I choose at will?

You can pick whatever you want. They should all match your package name.

app/src/main/res/values/constants.xml:    <string name="complete_note_broadcast_intent">com.nononsenseapps.completenote</string>
app/src/main/res/values/constants.xml:    <string name="note_completed_broadcast_intent">com.nononsenseapps.notecompleted</string>

are Intent actions, which are used for BroadcastReceivers and Services to perform specific actions.

app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.list" />
app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.note" />
app/src/main/AndroidManifest.xml:                <data android:mimeType="vnd.android.cursor.item/vnd.nononsenseapps.notification" />

are mime-types used by the ContentProvider. You don't strictly need to implement it but it was necessary to allow 3rd party apps to support the app (there was a 3rd party calendar widget which integrated with the app called AndroidAgendaWidget). You can read the details at https://developer.android.com/guide/topics/providers/content-provider-creating.html#MIMETypes. The exact string doesn't matter but it should contain your package name by convention since it needs to be globally unique.

As a further suggestion, you might want to start working on the app based on https://github.com/spacecowboy/NotePad/pull/309 (branch https://github.com/spacecowboy/NotePad/tree/version6) instead since that provides a Material Design rewrite and drops a bunch of legacy things (though you might be in the mind of keeping those). I can at least recommend that you do a shallow comparison.

CampelloManuel commented 1 year ago

I checked this thread, and branch version6. After importing all useful changes into master, i deleted it.