diff --git a/app/build.gradle b/app/build.gradle
index a808a62..2fb8efe 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -33,7 +33,5 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
- implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
- implementation 'pub.devrel:easypermissions:1.1.3'
implementation 'com.github.kittinunf.fuel:fuel-android:1.12.1'
}
diff --git a/app/src/main/assets/editor.html b/app/src/main/assets/editor.html
index 88dcb58..7e598dc 100644
--- a/app/src/main/assets/editor.html
+++ b/app/src/main/assets/editor.html
@@ -1,78 +1,104 @@
+
-
-
-
-
-
-
+
-
-
+
+
-
+ $(document).ready(function () {
+ $('#summernote').summernote({
+ height: 1200,
+ focus: true,
+ placeholder: 'Start writing...',
+ toolbar: [
+ ['style', ['bold', 'italic', 'underline', 'clear']],
+ ['para', ['ul', 'ol']],
+ ['insert', ['link', 'picture', 'hr']],
+ ['history', ['undo', 'redo']],
+ ['other', ['codeview']]
+ ],
+ callbacks: {
+ onInit: function (e) {
+ $("#summernote").summernote("fullscreen.toggle");
+ },
+ onImageUpload: function (files) {
+ uploadImage(files[0]);
+ }
+ }
+ });
+ });
+
+
\ No newline at end of file
diff --git a/app/src/main/java/telegra/ph/Editor.kt b/app/src/main/java/telegra/ph/Editor.kt
index 4db50b4..05f3559 100644
--- a/app/src/main/java/telegra/ph/Editor.kt
+++ b/app/src/main/java/telegra/ph/Editor.kt
@@ -4,11 +4,11 @@ import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.webkit.JavascriptInterface
-import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
+import im.delight.android.webview.AdvancedWebView
-class Editor : WebView {
+class Editor : AdvancedWebView {
private var getCallback: (json: String?) -> Unit? = {}
constructor(context: Context) : super(context) {
@@ -26,7 +26,6 @@ class Editor : WebView {
@SuppressLint("SetJavaScriptEnabled", "AddJavascriptInterface")
private fun init() {
this.settings.javaScriptEnabled = true
- this.settings.cacheMode = WebSettings.LOAD_NO_CACHE
this.addJavascriptInterface(MyJavaScriptInterface(), "android")
this.settings.loadWithOverviewMode = true
this.settings.useWideViewPort = true
diff --git a/app/src/main/java/telegra/ph/MainActivity.kt b/app/src/main/java/telegra/ph/MainActivity.kt
index 7f0bc49..9c726bc 100644
--- a/app/src/main/java/telegra/ph/MainActivity.kt
+++ b/app/src/main/java/telegra/ph/MainActivity.kt
@@ -8,15 +8,26 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View
import com.afollestad.materialdialogs.MaterialDialog
-import com.afollestad.materialdialogs.folderselector.FileChooserDialog
import im.delight.android.webview.AdvancedWebView
-import pub.devrel.easypermissions.AfterPermissionGranted
-import pub.devrel.easypermissions.EasyPermissions
-import java.io.File
-class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserDialog.FileCallback {
- private val webView: AdvancedWebView? by lazy { findViewById(R.id.webView) }
- private val editor: Editor? by lazy { findViewById(R.id.editor) }
+class MainActivity : AppCompatActivity(), AdvancedWebView.Listener {
+ private val webView: AdvancedWebView? by lazy {
+ findViewById(R.id.webView)?.apply {
+ setListener(this@MainActivity, this@MainActivity)
+ setMixedContentAllowed(true)
+ setCookiesEnabled(true)
+ setThirdPartyCookiesEnabled(true)
+ addPermittedHostname("telegra.ph")
+ isHorizontalScrollBarEnabled = false
+ isVerticalScrollBarEnabled = false
+ overScrollMode = View.OVER_SCROLL_NEVER
+ }
+ }
+ private val editor: Editor? by lazy {
+ findViewById(R.id.editor)?.apply {
+ setListener(this@MainActivity, this@MainActivity)
+ }
+ }
private var currentUrl = ""
private var currentPage: TelegraphApi.Page? = null
@@ -27,16 +38,6 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
- webView?.apply {
- setListener(this@MainActivity, this@MainActivity)
- setMixedContentAllowed(true)
- setCookiesEnabled(true)
- setThirdPartyCookiesEnabled(true)
- addPermittedHostname("telegra.ph")
- isHorizontalScrollBarEnabled = false
- isVerticalScrollBarEnabled = false
- overScrollMode = View.OVER_SCROLL_NEVER
- }
if (accessToken().isBlank()) TelegraphApi.createAccount(shortName = "teleposter") { success, account, error ->
if (success && account != null && account.accessToken != null) {
saveAccessToken(account.accessToken)
@@ -120,17 +121,6 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
}
}
- @AfterPermissionGranted(100)
- private fun uploadImage() {
- if (EasyPermissions.hasPermissions(this, "android.permission.READ_EXTERNAL_STORAGE")) {
- FileChooserDialog.Builder(this)
- .mimeType("image/*")
- .show(this)
- } else {
- EasyPermissions.requestPermissions(this, "", 100, "android.permission.READ_EXTERNAL_STORAGE")
- }
- }
-
override fun onPageFinished(url: String?) {
}
@@ -147,17 +137,6 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
AdvancedWebView.Browsers.openUrl(this, url)
}
- override fun onFileSelection(p0: FileChooserDialog, file: File) {
- TelegraphApi.uploadImage(file) { success, src, error ->
- if (success && src != null && src.isNotBlank())
- editor?.addImage(src)
- else showError(error)
- }
- }
-
- override fun onFileChooserDismissed(p0: FileChooserDialog) {
- }
-
override fun onResume() {
super.onResume()
webView?.onResume()
@@ -176,6 +155,7 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
webView?.onActivityResult(requestCode, resultCode, data)
+ editor?.onActivityResult(requestCode, resultCode, data)
}
override fun onBackPressed() {
@@ -202,10 +182,6 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
- R.id.image -> {
- uploadImage()
- true
- }
R.id.create -> {
loadEditor()
true
@@ -310,9 +286,4 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener, FileChooserD
else -> super.onOptionsItemSelected(item)
}
}
-
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
- }
}
diff --git a/app/src/main/java/telegra/ph/TelegraphApi.kt b/app/src/main/java/telegra/ph/TelegraphApi.kt
index ee70795..271f11f 100644
--- a/app/src/main/java/telegra/ph/TelegraphApi.kt
+++ b/app/src/main/java/telegra/ph/TelegraphApi.kt
@@ -2,14 +2,14 @@ package telegra.ph
import com.github.kittinunf.fuel.android.core.Json
import com.github.kittinunf.fuel.android.extension.responseJson
-import com.github.kittinunf.fuel.core.*
+import com.github.kittinunf.fuel.core.FuelError
+import com.github.kittinunf.fuel.core.FuelManager
+import com.github.kittinunf.fuel.core.Request
+import com.github.kittinunf.fuel.core.Response
import com.github.kittinunf.fuel.httpPost
-import com.github.kittinunf.fuel.httpUpload
import com.github.kittinunf.result.Result
import org.json.JSONArray
import org.json.JSONObject
-import java.io.File
-import java.net.URLConnection
object TelegraphApi {
@@ -151,25 +151,4 @@ object TelegraphApi {
}
}
- fun uploadImage(file: File, callback: (success: Boolean, src: String?, error: String?) -> Unit) {
- "http://telegra.ph/upload".httpUpload()
- .dataParts { _, _ ->
- listOf(DataPart(file, name = "FileUpload", type = URLConnection.guessContentTypeFromName(file.name)))
- }
- .responseJson { _, _, result ->
- val (json, error) = result
- if (error == null && json != null) {
- val jsonObj = json.array().optJSONObject(0)
- val src = jsonObj?.optString("src")
- if (src != null) {
- callback(true, src, null)
- } else {
- callback(false, null, null)
- }
- } else {
- callback(false, null, error?.message)
- }
- }
- }
-
}
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_main.xml b/app/src/main/res/menu/activity_main.xml
index d2517f3..136c591 100644
--- a/app/src/main/res/menu/activity_main.xml
+++ b/app/src/main/res/menu/activity_main.xml
@@ -1,10 +1,6 @@