diff --git a/app/build.gradle b/app/build.gradle index 08cdff60..891ce849 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,13 +3,13 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 26 - buildToolsVersion "26.0.2" + compileSdkVersion 27 + buildToolsVersion "27.0.1" defaultConfig { applicationId "com.simplemobiletools.notes" minSdkVersion 16 - targetSdkVersion 26 + targetSdkVersion 27 versionCode 38 versionName "2.3.0" } @@ -40,13 +40,13 @@ android { } dependencies { - compile 'com.simplemobiletools:commons:2.28.4' - compile 'com.facebook.stetho:stetho:1.4.1' + compile 'com.simplemobiletools:commons:2.38.5' + compile 'com.facebook.stetho:stetho:1.5.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } buildscript { - ext.kotlin_version = '1.1.50' + ext.kotlin_version = '1.1.51' repositories { mavenCentral() } 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 5c8477a0..4b429bb1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt @@ -1,10 +1,7 @@ package com.simplemobiletools.notes.activities -import android.Manifest import android.content.Intent -import android.content.pm.PackageManager import android.os.Bundle -import android.support.v4.app.ActivityCompat import android.support.v4.view.ViewPager import android.text.method.ArrowKeyMovementMethod import android.text.method.LinkMovementMethod @@ -16,6 +13,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN import com.simplemobiletools.commons.helpers.LICENSE_RTL import com.simplemobiletools.commons.helpers.LICENSE_STETHO +import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_STORAGE import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.models.Release import com.simplemobiletools.commons.views.MyEditText @@ -24,6 +22,7 @@ import com.simplemobiletools.notes.R import com.simplemobiletools.notes.adapters.NotesPagerAdapter import com.simplemobiletools.notes.dialogs.* import com.simplemobiletools.notes.extensions.config +import com.simplemobiletools.notes.extensions.dbHelper import com.simplemobiletools.notes.extensions.getTextSize import com.simplemobiletools.notes.extensions.updateWidget import com.simplemobiletools.notes.helpers.DBHelper @@ -37,11 +36,6 @@ import java.io.File import java.nio.charset.Charset class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { - private val STORAGE_OPEN_FILE = 1 - private val STORAGE_OPEN_FILE_ACTION = 2 - private val STORAGE_EXPORT_AS_FILE = 3 - - private var openFilePath = "" private var mAdapter: NotesPagerAdapter? = null lateinit var mCurrentNote: Note @@ -54,7 +48,7 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - mDb = DBHelper.newInstance(applicationContext) + mDb = applicationContext.dbHelper initViewPager() pager_title_strip.setTextSize(TypedValue.COMPLEX_UNIT_PX, getTextSize()) @@ -105,11 +99,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { return } - if (hasWriteStoragePermission()) { - importFileWithSync(path) - } else { - this.openFilePath = path - ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_OPEN_FILE_ACTION) + handlePermission(PERMISSION_WRITE_STORAGE) { + if (it) { + importFileWithSync(path) + } } } @@ -147,6 +140,7 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu, menu) + updateMenuTextSize(resources, menu) return true } @@ -239,10 +233,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } private fun tryOpenFile() { - if (hasWriteStoragePermission()) { - openFile() - } else { - ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_OPEN_FILE) + handlePermission(PERMISSION_WRITE_STORAGE) { + if (it) { + openFile() + } } } @@ -281,10 +275,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } private fun tryExportAsFile() { - if (hasWriteStoragePermission()) { - exportAsFile() - } else { - ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_EXPORT_AS_FILE) + handlePermission(PERMISSION_WRITE_STORAGE) { + if (it) { + exportAsFile() + } } } @@ -407,18 +401,6 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } } - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - - if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - when (requestCode) { - STORAGE_OPEN_FILE -> openFile() - STORAGE_EXPORT_AS_FILE -> exportAsFile() - STORAGE_OPEN_FILE_ACTION -> importFileWithSync(openFilePath) - } - } - } - override fun onPageScrollStateChanged(state: Int) { } 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 01a000f8..1c2b9e6c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt @@ -8,6 +8,7 @@ import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.notes.R import com.simplemobiletools.notes.extensions.config +import com.simplemobiletools.notes.extensions.dbHelper import com.simplemobiletools.notes.extensions.updateWidget import com.simplemobiletools.notes.helpers.* import com.simplemobiletools.notes.models.Note @@ -122,7 +123,7 @@ class SettingsActivity : SimpleActivity() { }) private fun setupWidgetNote() { - val notes = DBHelper.newInstance(this).getNotes() + val notes = dbHelper.getNotes() if (notes.size <= 1) { settings_widget_note_holder.visibility = View.GONE return diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/adapters/NotesPagerAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/adapters/NotesPagerAdapter.kt index cfd3987c..34c10138 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/adapters/NotesPagerAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/adapters/NotesPagerAdapter.kt @@ -41,7 +41,7 @@ class NotesPagerAdapter(fm: FragmentManager, val notes: List, val activity fun focusEditText(position: Int) = fragments[position]?.focusEditText() - override fun finishUpdate(container: ViewGroup?) { + override fun finishUpdate(container: ViewGroup) { try { super.finishUpdate(container) } catch (e: Exception) { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/OpenNoteDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/OpenNoteDialog.kt index b28a22f4..fc88927b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/OpenNoteDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/OpenNoteDialog.kt @@ -11,7 +11,7 @@ import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.notes.R import com.simplemobiletools.notes.extensions.config -import com.simplemobiletools.notes.helpers.DBHelper +import com.simplemobiletools.notes.extensions.dbHelper import kotlinx.android.synthetic.main.dialog_open_note.view.* import kotlinx.android.synthetic.main.open_note_item.view.* @@ -21,7 +21,7 @@ class OpenNoteDialog(val activity: Activity, val callback: (checkedId: Int) -> U init { val view = activity.layoutInflater.inflate(R.layout.dialog_open_note, null) val textColor = activity.config.textColor - val notes = DBHelper.newInstance(activity).getNotes() + val notes = activity.dbHelper.getNotes() notes.forEach { activity.layoutInflater.inflate(R.layout.open_note_item, null).apply { val note = it diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt index b0f07f24..95e3b2f0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt @@ -29,7 +29,9 @@ fun Context.updateWidget() { } } -val Context.config: Config get() = Config.newInstance(this) +val Context.config: Config get() = Config.newInstance(applicationContext) + +val Context.dbHelper: DBHelper get() = DBHelper.newInstance(applicationContext) fun Context.getNoteStoredValue(note: Note): String? { return if (note.path.isNotEmpty()) { 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 cc2e73e3..30735c02 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt @@ -12,10 +12,7 @@ import android.view.View import android.view.ViewGroup import com.simplemobiletools.notes.R import com.simplemobiletools.notes.activities.MainActivity -import com.simplemobiletools.notes.extensions.config -import com.simplemobiletools.notes.extensions.getNoteStoredValue -import com.simplemobiletools.notes.extensions.getTextSize -import com.simplemobiletools.notes.extensions.updateWidget +import com.simplemobiletools.notes.extensions.* import com.simplemobiletools.notes.helpers.DBHelper import com.simplemobiletools.notes.helpers.GRAVITY_CENTER import com.simplemobiletools.notes.helpers.GRAVITY_RIGHT @@ -32,11 +29,11 @@ class NoteFragment : Fragment() { 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 = DBHelper.newInstance(context) + noteId = arguments!!.getInt(NOTE_ID) + mDb = context!!.dbHelper note = mDb.getNote(noteId) ?: return view - if (context.config.clickableLinks) { + if (context!!.config.clickableLinks) { view.notes_view.apply { linksClickable = true autoLinkMask = Linkify.WEB_URLS or Linkify.EMAIL_ADDRESSES @@ -49,8 +46,9 @@ class NoteFragment : Fragment() { override fun setMenuVisibility(menuVisible: Boolean) { super.setMenuVisibility(menuVisible) - if (noteId != 0) + if (noteId != 0) { saveText() + } } fun getNotesView() = view.notes_view @@ -63,11 +61,11 @@ class NoteFragment : Fragment() { return val newText = getCurrentNoteViewText() - val oldText = context.getNoteStoredValue(note) + val oldText = context!!.getNoteStoredValue(note) if (newText != oldText) { note.value = newText saveNoteValue(note) - context.updateWidget() + context!!.updateWidget() } } @@ -86,7 +84,7 @@ class NoteFragment : Fragment() { fun getCurrentNoteViewText() = view.notes_view?.text.toString() - private fun getTextGravity() = when (context.config.gravity) { + private fun getTextGravity() = when (context!!.config.gravity) { GRAVITY_CENTER -> Gravity.CENTER_HORIZONTAL GRAVITY_RIGHT -> Gravity.RIGHT else -> Gravity.LEFT @@ -95,7 +93,7 @@ class NoteFragment : Fragment() { override fun onResume() { super.onResume() - val config = context.config + val config = context!!.config view.notes_view.apply { typeface = if (config.monospacedFont) Typeface.MONOSPACE else Typeface.DEFAULT diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt index 2899337c..a3d28321 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt @@ -14,6 +14,7 @@ import com.simplemobiletools.notes.R import com.simplemobiletools.notes.R.layout.widget import com.simplemobiletools.notes.activities.SplashActivity import com.simplemobiletools.notes.extensions.config +import com.simplemobiletools.notes.extensions.dbHelper import com.simplemobiletools.notes.extensions.getNoteStoredValue import com.simplemobiletools.notes.extensions.getTextSize @@ -55,7 +56,7 @@ class MyWidgetProvider : AppWidgetProvider() { } private fun initVariables(context: Context) { - mDb = DBHelper.newInstance(context) + mDb = context.dbHelper mRemoteViews = RemoteViews(context.packageName, widget) setupAppOpenIntent(R.id.notes_holder, context) } diff --git a/build.gradle b/build.gradle index c2eea8e2..8c22f111 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,6 +15,8 @@ buildscript { allprojects { repositories { jcenter() + maven { url "https://jitpack.io" } + maven { url "https://maven.google.com" } } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b97c6c01..ccead953 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Mar 06 18:14:27 CET 2017 +#Fri Nov 10 15:12:09 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip