diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt
index 9f207d18..b8908038 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt
@@ -43,6 +43,7 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
private var noteViewWithTextSelected: MyEditText? = null
private var wasInit = false
private var storedUseEnglish = false
+ private var storedEnableLineWrap = true
private var showSaveButton = false
private var saveNoteButton: MenuItem? = null
@@ -86,6 +87,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
return
}
+ if (storedEnableLineWrap != config.enableLineWrap) {
+ initViewPager()
+ }
+
invalidateOptionsMenu()
pager_title_strip.apply {
setTextSize(TypedValue.COMPLEX_UNIT_PX, getTextSize())
@@ -165,7 +170,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
}
private fun storeStateVariables() {
- storedUseEnglish = config.useEnglish
+ config.apply {
+ storedUseEnglish = useEnglish
+ storedEnableLineWrap = enableLineWrap
+ }
}
private fun handleText(text: String) {
@@ -206,8 +214,9 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
mNotes = dbHelper.getNotes()
mCurrentNote = mNotes[0]
var wantedNoteId = intent.getIntExtra(OPEN_NOTE_ID, -1)
- if (wantedNoteId == -1)
+ if (wantedNoteId == -1) {
wantedNoteId = config.currentNoteId
+ }
val itemIndex = getNoteIndexWithId(wantedNoteId)
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt
index 25f225e9..48f884cb 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt
@@ -40,6 +40,7 @@ class SettingsActivity : SimpleActivity() {
setupShowKeyboard()
setupShowNotePicker()
setupShowWordCount()
+ setupEnableLineWrap()
setupFontSize()
setupGravity()
setupWidgetNote()
@@ -120,6 +121,14 @@ class SettingsActivity : SimpleActivity() {
}
}
+ private fun setupEnableLineWrap() {
+ settings_enable_line_wrap.isChecked = config.enableLineWrap
+ settings_enable_line_wrap_holder.setOnClickListener {
+ settings_enable_line_wrap.toggle()
+ config.enableLineWrap = settings_enable_line_wrap.isChecked
+ }
+ }
+
private fun setupFontSize() {
settings_font_size.text = getFontSizeText()
settings_font_size_holder.setOnClickListener {
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt
index 0c0caaea..9d7785fe 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt
@@ -14,6 +14,7 @@ import android.view.View
import android.view.ViewGroup
import com.simplemobiletools.commons.extensions.beGone
import com.simplemobiletools.commons.extensions.beVisible
+import com.simplemobiletools.commons.extensions.onGlobalLayout
import com.simplemobiletools.notes.R
import com.simplemobiletools.notes.activities.MainActivity
import com.simplemobiletools.notes.extensions.*
@@ -24,21 +25,24 @@ import com.simplemobiletools.notes.helpers.NOTE_ID
import com.simplemobiletools.notes.models.Note
import kotlinx.android.synthetic.main.fragment_note.*
import kotlinx.android.synthetic.main.fragment_note.view.*
+import kotlinx.android.synthetic.main.note_view_horiz_scrollable.view.*
import java.io.File
class NoteFragment : Fragment() {
private var noteId = 0
lateinit var note: Note
lateinit var view: ViewGroup
- lateinit var mDb: DBHelper
+ private lateinit var db: DBHelper
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
view = inflater.inflate(R.layout.fragment_note, container, false) as ViewGroup
noteId = arguments!!.getInt(NOTE_ID)
- mDb = context!!.dbHelper
- note = mDb.getNote(noteId) ?: return view
+ db = context!!.dbHelper
+ note = db.getNote(noteId) ?: return view
retainInstance = true
+ val layoutToInflate = if (context!!.config.enableLineWrap) R.layout.note_view_static else R.layout.note_view_horiz_scrollable
+ inflater.inflate(layoutToInflate, view.notes_relative_layout, true)
if (context!!.config.clickableLinks) {
view.notes_view.apply {
linksClickable = true
@@ -47,6 +51,10 @@ class NoteFragment : Fragment() {
}
}
+ view.notes_horizontal_scrollview?.onGlobalLayout {
+ view.notes_view.minWidth = view.notes_horizontal_scrollview.width
+ }
+
return view
}
@@ -133,7 +141,7 @@ class NoteFragment : Fragment() {
private fun saveNoteValue(note: Note) {
if (note.path.isEmpty()) {
- mDb.updateNoteValue(note)
+ db.updateNoteValue(note)
(activity as MainActivity).noteSavedSuccessfully(note.title)
} else {
(activity as MainActivity).exportNoteValueToFile(note.path, getCurrentNoteViewText(), true)
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Config.kt
index 22e471f4..bb5be80d 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Config.kt
@@ -57,6 +57,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(CURSOR_PLACEMENT, true)
set(placement) = prefs.edit().putBoolean(CURSOR_PLACEMENT, placement).apply()
+ var enableLineWrap: Boolean
+ get() = prefs.getBoolean(ENABLE_LINE_WRAP, true)
+ set(enableLineWrap) = prefs.edit().putBoolean(ENABLE_LINE_WRAP, enableLineWrap).apply()
+
var lastUsedExtension: String
get() = prefs.getString(LAST_USED_EXTENSION, "txt")
set(lastUsedExtension) = prefs.edit().putString(LAST_USED_EXTENSION, lastUsedExtension).apply()
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt
index c879c2ee..7406cb06 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt
@@ -18,6 +18,7 @@ const val GRAVITY = "gravity"
const val CURSOR_PLACEMENT = "cursor_placement"
const val LAST_USED_EXTENSION = "last_used_extension"
const val LAST_USED_SAVE_PATH = "last_used_save_path"
+const val ENABLE_LINE_WRAP = "enable_line_wrap"
// gravity
const val GRAVITY_LEFT = 0
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/views/MyHorizontalScrollView.kt b/app/src/main/kotlin/com/simplemobiletools/notes/views/MyHorizontalScrollView.kt
new file mode 100644
index 00000000..30b8fbe9
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/views/MyHorizontalScrollView.kt
@@ -0,0 +1,17 @@
+package com.simplemobiletools.notes.views
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.MotionEvent
+import android.widget.HorizontalScrollView
+
+class MyHorizontalScrollView : HorizontalScrollView {
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
+
+ override fun onTouchEvent(ev: MotionEvent): Boolean {
+ parent.requestDisallowInterceptTouchEvent(false)
+ return super.onTouchEvent(ev)
+ }
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 18e180bb..be9a3c51 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -12,4 +12,5 @@
android:layout_gravity="top"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"/>
+
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 60483eba..0882f0f1 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -225,6 +225,26 @@
+
+
+
+
+
+
@@ -17,28 +17,17 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
-
-
-
-
+
+
diff --git a/app/src/main/res/layout/note_view_horiz_scrollable.xml b/app/src/main/res/layout/note_view_horiz_scrollable.xml
new file mode 100644
index 00000000..514c6a5d
--- /dev/null
+++ b/app/src/main/res/layout/note_view_horiz_scrollable.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/note_view_static.xml b/app/src/main/res/layout/note_view_static.xml
new file mode 100644
index 00000000..2c562a4a
--- /dev/null
+++ b/app/src/main/res/layout/note_view_static.xml
@@ -0,0 +1,13 @@
+
+