├── app ├── .gitignore ├── src │ ├── main │ │ ├── ic_launcher-web.png │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable │ │ │ │ ├── single_note_widget.png │ │ │ │ ├── note_list_widget_preview.png │ │ │ │ ├── button_selector.xml │ │ │ │ ├── ic_add_blue_24dp.xml │ │ │ │ ├── ic_add_white_24dp.xml │ │ │ │ ├── splashscreen.xml │ │ │ │ ├── list_item_color_selector.xml │ │ │ │ ├── list_item_background_selector.xml │ │ │ │ ├── list_item_color_selector_low.xml │ │ │ │ ├── ic_check_grey600_24dp.xml │ │ │ │ ├── ic_delete_grey600_24dp.xml │ │ │ │ ├── ic_star_yellow_24dp.xml │ │ │ │ ├── ic_delete_white_24dp.xml │ │ │ │ ├── ic_delete_white_32dp.xml │ │ │ │ ├── ic_star_grey_ccc_24dp.xml │ │ │ │ ├── ic_star_white_24dp.xml │ │ │ │ ├── ic_clear_white_24dp.xml │ │ │ │ ├── ic_folder_white_24dp.xml │ │ │ │ ├── ic_folder_grey600_18dp.xml │ │ │ │ ├── ic_folder_grey600_24dp.xml │ │ │ │ ├── ic_folder_open_grey600_24dp.xml │ │ │ │ ├── ic_brightness_2_grey_24dp.xml │ │ │ │ ├── ic_edit_white_24dp.xml │ │ │ │ ├── ic_create_new_folder_grey600_18dp.xml │ │ │ │ ├── ic_create_new_folder_grey600_24dp.xml │ │ │ │ ├── ic_info_outline_grey600_24dp.xml │ │ │ │ ├── ic_access_time_grey600_24dp.xml │ │ │ │ ├── ic_star_border_white_24dp.xml │ │ │ │ ├── ic_search_white_24dp.xml │ │ │ │ ├── ic_eye_white_24dp.xml │ │ │ │ ├── ic_sync_blue_18dp.xml │ │ │ │ ├── ic_remove_red_eye_grey_24dp.xml │ │ │ │ ├── ic_account_circle_grey_24dp.xml │ │ │ │ ├── ic_https_grey_24dp.xml │ │ │ │ ├── ic_share_white_24dp.xml │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ ├── ic_settings_grey600_24dp.xml │ │ │ │ └── ic_quicksettings_new.xml │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable-hdpi │ │ │ │ ├── ic_splashscreen.png │ │ │ │ └── ic_widget_create.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── ic_splashscreen.png │ │ │ │ └── ic_widget_create.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── ic_splashscreen.png │ │ │ │ ├── ic_widget_create.png │ │ │ │ └── border.xml │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_splashscreen.png │ │ │ │ └── ic_widget_create.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── ic_splashscreen.png │ │ │ ├── xml │ │ │ │ ├── searchable.xml │ │ │ │ ├── network_security_config.xml │ │ │ │ ├── create_note_widget_provider.xml │ │ │ │ ├── note_list_widget_provider_info.xml │ │ │ │ ├── single_note_widget_provider_info.xml │ │ │ │ ├── shortcuts.xml │ │ │ │ └── preferences.xml │ │ │ ├── values-ia │ │ │ │ └── strings.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── drawable-night │ │ │ │ ├── border.xml │ │ │ │ └── button_selector.xml │ │ │ ├── values │ │ │ │ ├── arrays.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── layout │ │ │ │ ├── widget_single_note_content.xml │ │ │ │ ├── activity_about.xml │ │ │ │ ├── dialog_change_category.xml │ │ │ │ ├── widget_create_note.xml │ │ │ │ ├── activity_edit.xml │ │ │ │ ├── activity_single_note.xml │ │ │ │ ├── activity_note_list_configuration.xml │ │ │ │ ├── widget_single_note.xml │ │ │ │ ├── fragment_notes_list_section_item.xml │ │ │ │ ├── item_navigation.xml │ │ │ │ ├── widget_entry.xml │ │ │ │ ├── activity_notes_list_view.xml │ │ │ │ ├── fragment_about_license_tab.xml │ │ │ │ ├── fragment_about_contribution_tab.xml │ │ │ │ ├── activity_settings.xml │ │ │ │ ├── widget_note_list.xml │ │ │ │ ├── drawer_layout.xml │ │ │ │ └── fragment_about_credits_tab.xml │ │ │ ├── values-sl │ │ │ │ └── strings.xml │ │ │ ├── menu │ │ │ │ ├── menu_list_context_multiple.xml │ │ │ │ ├── menu_list_view.xml │ │ │ │ ├── menu_note_activity.xml │ │ │ │ └── menu_note_fragment.xml │ │ │ ├── values-night │ │ │ │ └── colors.xml │ │ │ ├── values-bg-rBG │ │ │ │ └── strings.xml │ │ │ ├── values-hy │ │ │ │ └── strings.xml │ │ │ ├── values-eu │ │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ │ └── strings.xml │ │ │ ├── values-lv │ │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ │ └── strings.xml │ │ │ └── values-ja-rJP │ │ │ │ └── strings.xml │ │ └── java │ │ │ └── it │ │ │ └── niedermann │ │ │ └── owncloud │ │ │ └── notes │ │ │ ├── model │ │ │ ├── Item.java │ │ │ ├── Category.java │ │ │ ├── SectionItem.java │ │ │ ├── DBStatus.java │ │ │ ├── DBNote.java │ │ │ └── CloudNote.java │ │ │ ├── util │ │ │ ├── ICallback.java │ │ │ ├── Notes.java │ │ │ ├── MarkDownUtil.java │ │ │ ├── ServerResponse.java │ │ │ ├── SupportUtil.java │ │ │ └── NoteUtil.java │ │ │ └── android │ │ │ ├── appwidget │ │ │ ├── NoteListWidgetService.java │ │ │ ├── SingleNoteWidgetService.java │ │ │ ├── CreateNoteWidget.java │ │ │ ├── SingleNoteWidget.java │ │ │ ├── SingleNoteWidgetFactory.java │ │ │ ├── NoteListWidgetFactory.java │ │ │ └── NoteListWidget.java │ │ │ ├── activity │ │ │ ├── SplashscreenActivity.java │ │ │ ├── PreferencesActivity.java │ │ │ ├── AboutActivity.java │ │ │ └── SelectSingleNoteActivity.java │ │ │ ├── fragment │ │ │ ├── about │ │ │ │ ├── AboutFragmentContributingTab.java │ │ │ │ ├── AboutFragmentCreditsTab.java │ │ │ │ └── AboutFragmentLicenseTab.java │ │ │ ├── PreferencesFragment.java │ │ │ └── NotePreviewFragment.java │ │ │ ├── quicksettings │ │ │ └── NewNoteTileService.java │ │ │ └── AlwaysAutoCompleteTextView.java │ └── androidTest │ │ └── java │ │ └── it │ │ └── niedermann │ │ └── owncloud │ │ └── notes │ │ ├── ApplicationTest.java │ │ ├── model │ │ └── NoteTest.java │ │ └── util │ │ ├── NotesClientUtilTest.java │ │ └── NoteUtilTest.java ├── .classpath ├── project.properties ├── proguard-rules.pro ├── proguard-project.txt ├── .project └── build.gradle ├── fastlane └── metadata │ └── android │ ├── de-DE │ ├── title.txt │ ├── short_description.txt │ ├── images │ │ ├── icon.png │ │ └── phoneScreenshots │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ └── full_description.txt │ └── en-US │ ├── title.txt │ ├── short_description.txt │ ├── images │ ├── icon.png │ └── phoneScreenshots │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ └── 5.png │ └── full_description.txt ├── settings.gradle ├── .gitmodules ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── .travis.yml ├── gradle.properties ├── CONTRIBUTING.md ├── gradlew.bat ├── .tx └── config └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/title.txt: -------------------------------------------------------------------------------- 1 | Nextcloud Notes 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Nextcloud Notes 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | include ':cert4android' 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | View and edit notes on Nextcloud 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/short_description.txt: -------------------------------------------------------------------------------- 1 | Lesen und Bearbeiten Sie Notizen in Nextcloud 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "cert4android"] 2 | path = cert4android 3 | url = https://gitlab.com/bitfireAT/cert4android.git 4 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | /local.properties 3 | .DS_Store 4 | /build 5 | /captures 6 | /.idea/ 7 | *.iml 8 | /projectFilesBackup/ 9 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/single_note_widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable/single_note_widget.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-hdpi/ic_splashscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-mdpi/ic_splashscreen.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_widget_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-hdpi/ic_widget_create.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_widget_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-mdpi/ic_widget_create.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-xhdpi/ic_splashscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_widget_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-xhdpi/ic_widget_create.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-xxhdpi/ic_splashscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_widget_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-xxhdpi/ic_widget_create.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable-xxxhdpi/ic_splashscreen.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/note_list_widget_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/app/src/main/res/drawable/note_list_widget_preview.png -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/model/Item.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | public interface Item { 4 | boolean isSection(); 5 | } 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/de-DE/images/phoneScreenshots/5.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skjnldsv/nextcloud-notes/master/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png -------------------------------------------------------------------------------- /app/src/main/res/xml/searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/util/ICallback.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.util; 2 | 3 | /** 4 | * Callback 5 | * Created by stefan on 01.10.15. 6 | */ 7 | public interface ICallback { 8 | void onFinish(); 9 | 10 | void onScheduled(); 11 | } 12 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Apr 06 20:28:39 CEST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-ia/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d selectionate 6 | %d selectionate 7 | 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | 3 | jdk: oraclejdk8 4 | 5 | android: 6 | components: 7 | - tools 8 | - build-tools-27.0.3 9 | - android-27 10 | - extra-android-m2repository 11 | 12 | before_install: 13 | - yes | sdkmanager "platforms;android-27" 14 | 15 | script: ./gradlew testDebug 16 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @string/pref_value_mode_edit 5 | @string/pref_value_mode_preview 6 | @string/pref_value_mode_last 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_single_note_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_blue_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/splashscreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_item_color_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-sl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d izbran(a) 6 | %d izbrana(i) 7 | %d izbranih 8 | %d izbranih 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_item_background_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_item_color_selector_low.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_yellow_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_white_32dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_grey_ccc_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_grey600_18dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_list_context_multiple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/androidTest/java/it/niedermann/owncloud/notes/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetService.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.appwidget; 2 | 3 | import android.content.Intent; 4 | import android.widget.RemoteViewsService; 5 | 6 | public class NoteListWidgetService extends RemoteViewsService { 7 | @Override 8 | public RemoteViewsFactory onGetViewFactory(Intent intent) { 9 | return new NoteListWidgetFactory(this.getApplicationContext(), intent); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_open_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetService.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.appwidget; 2 | 3 | import android.content.Intent; 4 | import android.widget.RemoteViewsService; 5 | 6 | public class SingleNoteWidgetService extends RemoteViewsService { 7 | @Override 8 | public RemoteViewsFactory onGetViewFactory(Intent intent) { 9 | return new SingleNoteWidgetFactory(this.getApplicationContext(), intent); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brightness_2_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_create_new_folder_grey600_18dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_create_new_folder_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_outline_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/model/Category.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | import android.support.annotation.Nullable; 4 | 5 | import java.io.Serializable; 6 | 7 | public class Category implements Serializable { 8 | 9 | @Nullable 10 | public final String category; 11 | @Nullable 12 | public final Boolean favorite; 13 | 14 | public Category(@Nullable String category, @Nullable Boolean favorite) { 15 | this.category = category; 16 | this.favorite = favorite; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_access_time_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_border_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/model/SectionItem.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | public class SectionItem implements Item { 4 | 5 | private String title; 6 | 7 | public SectionItem(String title) { 8 | this.title = title; 9 | } 10 | 11 | public String geTitle() { 12 | return title; 13 | } 14 | 15 | public void setTitle(String title) { 16 | this.title = title; 17 | } 18 | 19 | @Override 20 | public boolean isSection() { 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_eye_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync_blue_18dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_remove_red_eye_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/xml/create_note_widget_provider.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Companion app to Nextcloud Notes. 2 | 3 | Features 4 | 5 | List, create, edit, share, search and delete notes 6 | Manage categories 7 | Share text and links as new note into the app 8 | Mark notes as favorite 9 | Bulk delete 10 | Formatting with MarkDown (using RxMarkdown) 11 | Multi-Lingual User-Interface 12 | 13 | Requirements 14 | 15 | Nextcloud instance running 16 | Nextcloud Notes app enabled 17 | 18 | Alternatives 19 | 20 | If you dislike this app and you are looking for alternatives: Have a look at MyOwnNotes. 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_account_circle_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | # Project target. 13 | target=android-19 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_list_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_https_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/androidTest/java/it/niedermann/owncloud/notes/model/NoteTest.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | import junit.framework.TestCase; 4 | 5 | import java.util.Calendar; 6 | 7 | /** 8 | * Tests the Note Model 9 | * Created by stefan on 06.10.15. 10 | */ 11 | public class NoteTest extends TestCase { 12 | 13 | public void testMarkDownStrip() { 14 | CloudNote note = new CloudNote(0, Calendar.getInstance(), "#Title", "", false, null, null); 15 | assertTrue("Title".equals(note.getTitle())); 16 | note.setTitle("* Aufzählung"); 17 | assertTrue("Aufzählung".equals(note.getTitle())); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/full_description.txt: -------------------------------------------------------------------------------- 1 | Companion App für Nextcloud Notes. 2 | 3 | Features 4 | 5 | Anzeigen, Erstellen, Bearbeiten, Teilen, Durchsuchen und Löschen von Notizen 6 | Kategorien verwalten 7 | Text und Links als neue Notiz in die App teilen 8 | Notizen als Favoriten markieren 9 | Massenhaftes Löschen von Notizen 10 | Formatierung mit MarkDown (mit RxMarkdown) 11 | Mehrsprachiges User-Interface 12 | 13 | Voraussetzungen 14 | 15 | Laufende Nextcloud Instanz 16 | Aktivierte Nextcloud Notes App 17 | 18 | Alternativen 19 | 20 | Wenn Sie eine Alternative für diese App suchen, versuchen Sie es mit MyOwnNotes. 21 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | /** 8 | * Created by stefan on 18.04.17. 9 | */ 10 | public class SplashscreenActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | 16 | Intent intent = new Intent(this, NotesListViewActivity.class); 17 | startActivity(intent); 18 | finish(); 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_change_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/xml/note_list_widget_provider_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_note_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/xml/single_note_widget_provider_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\stnieder\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #286090 6 | 7 | #444 8 | 9 | #111 10 | #222222 11 | #ff3333 12 | #eeeeee 13 | #cccccc 14 | #aaaaaa 15 | #666666 16 | #000000 17 | 18 | @color/primary 19 | @color/primary 20 | -------------------------------------------------------------------------------- /app/src/main/res/xml/shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_create_note.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.activity; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | import it.niedermann.owncloud.notes.android.fragment.PreferencesFragment; 8 | 9 | /** 10 | * Allows to change application settings. 11 | */ 12 | 13 | public class PreferencesActivity extends AppCompatActivity { 14 | @Override 15 | protected void onCreate(@Nullable Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setResult(RESULT_CANCELED); 18 | getFragmentManager().beginTransaction() 19 | .replace(android.R.id.content, new PreferencesFragment()) 20 | .commit(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_single_note.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | 20 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_note_list_configuration.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 24 | -------------------------------------------------------------------------------- /app/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | OwnCloudNotes 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #0082C9 6 | #286090 7 | 8 | #d2d2d2 9 | 10 | #aa000000 11 | #f3f3f3 12 | #ffffff 13 | #d40000 14 | #ffcc00 15 | #000000 16 | #333333 17 | #666666 18 | #cccccc 19 | #ffffff 20 | #757575 21 | 22 | #E6FFFFFF 23 | 24 | #FFF 25 | @color/primary 26 | 27 | #000000 28 | #ffffff 29 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.util; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | import android.content.SharedPreferences; 6 | import android.preference.PreferenceManager; 7 | import android.support.v7.app.AppCompatDelegate; 8 | 9 | public class Notes extends Application { 10 | private static final String DARK_THEME = "darkTheme"; 11 | 12 | @Override 13 | public void onCreate() { 14 | setAppTheme(getAppTheme(getApplicationContext())); 15 | super.onCreate(); 16 | } 17 | 18 | public static void setAppTheme(Boolean darkTheme) { 19 | if (darkTheme) { 20 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); 21 | } else { 22 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); 23 | } 24 | } 25 | 26 | public static boolean getAppTheme(Context context) { 27 | SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 28 | return prefs.getBoolean(DARK_THEME, false); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_single_note.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 23 | 24 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_notes_list_section_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 16dp 6 | 16dp 7 | 8 | 9 | 16dp 10 | 5dp 11 | 12 | 16sp 13 | 14sp 14 | 15 | 16 | 8dp 17 | 10dp 18 | 0dp 19 | 20 | 2dp 21 | 4dp 22 | 36dp 23 | 30dp 24 | 25 | 4dp 26 | 4dp 27 | 28 | 26dp 29 | 20dp 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.util; 2 | 3 | import android.content.Context; 4 | import android.support.v4.content.res.ResourcesCompat; 5 | 6 | import com.yydcdut.rxmarkdown.RxMDConfiguration; 7 | import com.yydcdut.rxmarkdown.RxMDConfiguration.Builder; 8 | 9 | import it.niedermann.owncloud.notes.R; 10 | 11 | /** 12 | * Created by stefan on 07.12.16. 13 | */ 14 | 15 | public class MarkDownUtil { 16 | 17 | /** 18 | * Ensures every instance of RxMD uses the same configuration 19 | * 20 | * @param context Context 21 | * @return RxMDConfiguration 22 | */ 23 | public static Builder getMarkDownConfiguration(Context context) { 24 | return new RxMDConfiguration.Builder(context) 25 | .setUnOrderListColor(ResourcesCompat.getColor(context.getResources(), R.color.fg_default, null)) 26 | .setHeader2RelativeSize(1.35f) 27 | .setHeader3RelativeSize(1.25f) 28 | .setHeader4RelativeSize(1.15f) 29 | .setHeader5RelativeSize(1.1f) 30 | .setHeader6RelativeSize(1.05f) 31 | .setHorizontalRulesHeight(2) 32 | .setLinkFontColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.fragment.about; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.TextView; 9 | 10 | import butterknife.BindView; 11 | import butterknife.ButterKnife; 12 | import it.niedermann.owncloud.notes.R; 13 | import it.niedermann.owncloud.notes.util.SupportUtil; 14 | 15 | public class AboutFragmentContributingTab extends Fragment { 16 | 17 | @BindView(R.id.about_source) 18 | TextView aboutSource; 19 | @BindView(R.id.about_issues) 20 | TextView aboutIssues; 21 | @BindView(R.id.about_translate) 22 | TextView aboutTranslate; 23 | 24 | @Override 25 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 26 | View v = inflater.inflate(R.layout.fragment_about_contribution_tab, container, false); 27 | ButterKnife.bind(this, v); 28 | SupportUtil.setHtml(aboutSource, R.string.about_source, getString(R.string.url_source)); 29 | SupportUtil.setHtml(aboutIssues, R.string.about_issues, getString(R.string.url_issues)); 30 | SupportUtil.setHtml(aboutTranslate, R.string.about_translate, getString(R.string.url_translations)); 31 | return v; 32 | } 33 | } -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.fragment.about; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.TextView; 9 | 10 | import butterknife.BindView; 11 | import butterknife.ButterKnife; 12 | import it.niedermann.owncloud.notes.BuildConfig; 13 | import it.niedermann.owncloud.notes.R; 14 | import it.niedermann.owncloud.notes.util.SupportUtil; 15 | 16 | public class AboutFragmentCreditsTab extends Fragment { 17 | 18 | @BindView(R.id.about_version) 19 | TextView aboutVersion; 20 | @BindView(R.id.about_maintainer) 21 | TextView aboutMaintainer; 22 | @BindView(R.id.about_translators) 23 | TextView aboutTranslators; 24 | 25 | @Override 26 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 27 | View v = inflater.inflate(R.layout.fragment_about_credits_tab, container, false); 28 | ButterKnife.bind(this, v); 29 | SupportUtil.setHtml(aboutVersion, R.string.about_version, "v" + BuildConfig.VERSION_NAME); 30 | SupportUtil.setHtml(aboutMaintainer, R.string.about_maintainer); 31 | SupportUtil.setHtml(aboutTranslators, R.string.about_translators_transifex, getString(R.string.url_translations)); 32 | return v; 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/quicksettings/NewNoteTileService.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.quicksettings; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.Intent; 5 | import android.os.Build; 6 | import android.service.quicksettings.Tile; 7 | import android.service.quicksettings.TileService; 8 | 9 | import it.niedermann.owncloud.notes.android.activity.EditNoteActivity; 10 | 11 | /** 12 | * This {@link TileService} adds a quick settings tile that leads to the new note view. 13 | */ 14 | @TargetApi(Build.VERSION_CODES.N) 15 | public class NewNoteTileService extends TileService { 16 | 17 | @Override 18 | public void onStartListening() { 19 | Tile tile = getQsTile(); 20 | tile.setState(Tile.STATE_ACTIVE); 21 | 22 | tile.updateTile(); 23 | } 24 | 25 | @Override 26 | public void onClick() { 27 | // create new note intent 28 | final Intent newNoteIntent = new Intent(getApplicationContext(), EditNoteActivity.class); 29 | // ensure it won't open twice if already running 30 | newNoteIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 31 | 32 | // ask to unlock the screen if locked, then start new note intent 33 | unlockAndRun(new Runnable() { 34 | @Override 35 | public void run() { 36 | startActivityAndCollapse(newNoteIntent); 37 | } 38 | }); 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_note_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 16 | 23 | 29 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.fragment.about; 2 | 3 | import android.content.Intent; 4 | import android.net.Uri; 5 | import android.os.Bundle; 6 | import android.support.v4.app.Fragment; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.widget.Button; 11 | import android.widget.TextView; 12 | 13 | import butterknife.BindView; 14 | import butterknife.ButterKnife; 15 | import butterknife.OnClick; 16 | import it.niedermann.owncloud.notes.R; 17 | import it.niedermann.owncloud.notes.util.SupportUtil; 18 | 19 | public class AboutFragmentLicenseTab extends Fragment { 20 | 21 | @BindView(R.id.about_icons_disclaimer) 22 | TextView iconsDisclaimer; 23 | @BindView(R.id.about_app_license_button) 24 | Button appLicenseButton; 25 | 26 | @OnClick(R.id.about_app_license_button) 27 | void openLicense() { 28 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.url_license)))); 29 | } 30 | 31 | @Override 32 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 33 | View v = inflater.inflate(R.layout.fragment_about_license_tab, container, false); 34 | ButterKnife.bind(this, v); 35 | SupportUtil.setHtml(iconsDisclaimer, R.string.about_icons_disclaimer, getString(R.string.about_app_icon_author)); 36 | return v; 37 | } 38 | } -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing guide 2 | 3 | ## Submitting bug reports 4 | 5 | If you find a bug, feel free to [open an issue](https://github.com/stefan-niedermann/OwnCloud-Notes/issues/new). But please provide these information in the comment: 6 | 7 | **Android version:** e. g. 6.0.1 Marshmallow 8 | 9 | **Device**: e. g. Motorola Moto G 2015 10 | 11 | **System language**: English (US), German, ... 12 | 13 | **App version:** e. g. v0.8.1 14 | 15 | **App source:** Google Play Store, F-Droid or self-built? 16 | 17 | **Steps to reproduce:** 18 | 1. open the app 19 | 2. click on a note 20 | 3. use the top left back-arrow 21 | 4. ... 22 | 23 | ### Copy & Paste 24 | **Android version:** e. g. 6.0.1 Marshmallow 25 | 26 | **Device**: e. g. Motorola Moto G 2015 27 | 28 | **System language**: English (US), German, ... 29 | 30 | **App version:** e. g. v0.8.1 31 | 32 | **App source:** Google Play Store, F-Droid or self-built? 33 | 34 | **Steps to reproduce:** 35 | 1. open the app 36 | 2. click on a note 37 | 3. use the top left back-arrow 38 | 4. ... 39 | 40 | ## Adding new features 41 | 42 | If you want to contribute on the code, you can fork the project, commit your changes and make a pull request. For bigger features/changes, it's better to first [open an issue](https://github.com/stefan-niedermann/OwnCloud-Notes/issues/new) and ask if this feature is needed or wanted – it would be very disappointing if you add a new cool feature and your pull request will be rejected by some reasons you didn't thought about. 43 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 27 5 | buildToolsVersion '27.0.3' 6 | 7 | defaultConfig { 8 | applicationId "it.niedermann.owncloud.notes" 9 | minSdkVersion 14 10 | targetSdkVersion 27 11 | versionCode 33 12 | versionName "0.21.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | lintOptions { 21 | disable 'MissingTranslation' 22 | abortOnError false 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation project(':cert4android') 28 | 29 | implementation 'io.reactivex:rxandroid:1.2.0' 30 | implementation 'io.reactivex:rxjava:1.1.5' 31 | implementation 'com.yydcdut:markdown-processor:0.1.3' 32 | implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3' 33 | 34 | implementation 'com.jakewharton:butterknife:8.8.1' 35 | annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 36 | 37 | def supportLibVersion = '27.1.1' 38 | 39 | implementation "com.android.support:appcompat-v7:${supportLibVersion}" 40 | implementation "com.android.support:design:${supportLibVersion}" 41 | implementation "com.android.support:recyclerview-v7:${supportLibVersion}" 42 | // needed for cert4android (conflict resolution) 43 | implementation "com.android.support:cardview-v7:${supportLibVersion}" 44 | implementation fileTree(dir: 'libs', include: ['*.jar']) 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_quicksettings_new.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_navigation.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 26 | 27 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/model/DBStatus.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | /** 4 | * Helps to distinguish between different local change types for Server Synchronization. 5 | * Created by stefan on 19.09.15. 6 | */ 7 | public enum DBStatus { 8 | 9 | /** 10 | * VOID means, that the Note was not modified locally 11 | */ 12 | VOID(""), 13 | 14 | /** 15 | * LOCAL_CREATED is not used anymore, since a newly created note has REMOTE_ID=0 16 | */ 17 | @Deprecated 18 | LOCAL_CREATED("LOCAL_CREATED"), 19 | 20 | /** 21 | * LOCAL_EDITED means that a Note was created and/or changed since the last successful synchronization. 22 | * If it was newly created, then REMOTE_ID is 0 23 | */ 24 | LOCAL_EDITED("LOCAL_EDITED"), 25 | 26 | /** 27 | * LOCAL_DELETED means that the Note was deleted locally, but this information was not yet synchronized. 28 | * Therefore, the Note have to be kept locally until the synchronization has succeeded. 29 | * However, Notes with this status should not be displayed in the UI. 30 | */ 31 | LOCAL_DELETED("LOCAL_DELETED"); 32 | 33 | private final String title; 34 | 35 | public String getTitle() { 36 | return title; 37 | } 38 | 39 | DBStatus(String title) { 40 | this.title = title; 41 | } 42 | 43 | /** 44 | * Parse a String an get the appropriate DBStatus enum element. 45 | * 46 | * @param str The String containing the DBStatus identifier. Must not null. 47 | * @return The DBStatus fitting to the String. 48 | */ 49 | public static DBStatus parse(String str) { 50 | if (str.isEmpty()) { 51 | return DBStatus.VOID; 52 | } else { 53 | return DBStatus.valueOf(str); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 21 | 22 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/model/DBNote.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.model; 2 | 3 | import java.io.Serializable; 4 | import java.util.Calendar; 5 | 6 | import it.niedermann.owncloud.notes.util.NoteUtil; 7 | 8 | /** 9 | * DBNote represents a single note from the local SQLite database with all attributes. 10 | * It extends CloudNote with attributes required for local data management. 11 | */ 12 | public class DBNote extends CloudNote implements Item, Serializable { 13 | 14 | private long id; 15 | private DBStatus status; 16 | private String excerpt = ""; 17 | 18 | public DBNote(long id, long remoteId, Calendar modified, String title, String content, boolean favorite, String category, String etag, DBStatus status) { 19 | super(remoteId, modified, title, content, favorite, category, etag); 20 | this.id = id; 21 | setExcerpt(content); 22 | this.status = status; 23 | } 24 | 25 | public long getId() { 26 | return id; 27 | } 28 | 29 | public DBStatus getStatus() { 30 | return status; 31 | } 32 | 33 | public void setStatus(DBStatus status) { 34 | this.status = status; 35 | } 36 | 37 | public String getExcerpt() { 38 | return excerpt; 39 | } 40 | 41 | public void setExcerptDirectly(String content) { 42 | excerpt = content; 43 | } 44 | 45 | private void setExcerpt(String content) { 46 | excerpt = NoteUtil.generateNoteExcerpt(content); 47 | } 48 | 49 | public void setContent(String content) { 50 | super.setContent(content); 51 | setExcerpt(content); 52 | } 53 | 54 | @Override 55 | public boolean isSection() { 56 | return false; 57 | } 58 | 59 | @Override 60 | public String toString() { 61 | return "#" + getId() + "/" + super.toString() + " " + getStatus(); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.AppCompatAutoCompleteTextView; 5 | import android.util.AttributeSet; 6 | import android.util.Log; 7 | import android.view.WindowManager; 8 | 9 | /** 10 | * Extension of the {@link AppCompatAutoCompleteTextView}, but this one is always open, i.e. you can see the list of suggestions even the TextView is empty. 11 | */ 12 | public class AlwaysAutoCompleteTextView extends AppCompatAutoCompleteTextView { 13 | 14 | private int myThreshold; 15 | 16 | public AlwaysAutoCompleteTextView(Context context) { 17 | super(context); 18 | } 19 | 20 | public AlwaysAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) { 21 | super(context, attrs, defStyle); 22 | } 23 | 24 | public AlwaysAutoCompleteTextView(Context context, AttributeSet attrs) { 25 | super(context, attrs); 26 | } 27 | 28 | @Override 29 | public void setThreshold(int threshold) { 30 | if (threshold < 0) { 31 | threshold = 0; 32 | } 33 | myThreshold = threshold; 34 | } 35 | 36 | @Override 37 | public boolean enoughToFilter() { 38 | return getText().length() >= myThreshold; 39 | } 40 | 41 | @Override 42 | public int getThreshold() { 43 | return myThreshold; 44 | } 45 | 46 | public void showFullDropDown() { 47 | try { 48 | performFiltering(getText(), 0); 49 | showDropDown(); 50 | } catch (WindowManager.BadTokenException e) { 51 | // https://github.com/stefan-niedermann/nextcloud-notes/issues/366 52 | e.printStackTrace(); 53 | Log.e(AlwaysAutoCompleteTextView.class.getSimpleName(), "Exception", e); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/CreateNoteWidget.java: -------------------------------------------------------------------------------- 1 | package it.niedermann.owncloud.notes.android.appwidget; 2 | 3 | import android.app.PendingIntent; 4 | import android.appwidget.AppWidgetManager; 5 | import android.appwidget.AppWidgetProvider; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | import android.widget.RemoteViews; 9 | 10 | import it.niedermann.owncloud.notes.R; 11 | import it.niedermann.owncloud.notes.android.activity.EditNoteActivity; 12 | 13 | /** 14 | * Implementation of App Widget functionality. 15 | */ 16 | public class CreateNoteWidget extends AppWidgetProvider { 17 | 18 | private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, 19 | int appWidgetId) { 20 | 21 | // Construct the RemoteViews object 22 | RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_create_note); 23 | Intent intent = new Intent(context, EditNoteActivity.class); 24 | 25 | PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 26 | views.setOnClickPendingIntent(R.id.widget_create_note, pendingIntent); 27 | 28 | // Instruct the widget manager to update the widget 29 | appWidgetManager.updateAppWidget(appWidgetId, views); 30 | } 31 | 32 | @Override 33 | public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 34 | 35 | // There may be multiple widgets active, so update all of them 36 | for (int appWidgetId : appWidgetIds) { 37 | updateAppWidget(context, appWidgetManager, appWidgetId); 38 | } 39 | } 40 | 41 | @Override 42 | public void onEnabled(Context context) { 43 | // Enter relevant functionality for when the first widget is created 44 | } 45 | 46 | @Override 47 | public void onDisabled(Context context) { 48 | // Enter relevant functionality for when the last widget is disabled 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /app/src/main/res/xml/preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | 12 | 20 | 21 | 27 | 28 | 33 | 39 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_notes_list_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 19 | 20 | 27 | 28 | 34 | 35 | 36 | 37 | 38 | 39 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_about_license_tab.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 18 | 19 | 26 | 27 |