|
|
|
@ -13,16 +13,14 @@ import android.os.Bundle
|
|
|
|
|
import android.os.ParcelFileDescriptor
|
|
|
|
|
import android.provider.DocumentsContract
|
|
|
|
|
import android.provider.OpenableColumns
|
|
|
|
|
import android.util.DisplayMetrics
|
|
|
|
|
import android.util.Log
|
|
|
|
|
import android.view.Menu
|
|
|
|
|
import android.view.Menu.NONE
|
|
|
|
|
import android.view.MenuItem
|
|
|
|
|
import android.view.Window
|
|
|
|
|
import android.view.WindowInsets
|
|
|
|
|
import android.view.WindowManager
|
|
|
|
|
import android.webkit.ConsoleMessage
|
|
|
|
|
import android.webkit.JavascriptInterface
|
|
|
|
|
import android.webkit.ValueCallback
|
|
|
|
|
import android.webkit.WebChromeClient
|
|
|
|
|
import android.webkit.WebView
|
|
|
|
|
import android.widget.Toast
|
|
|
|
@ -146,7 +144,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
setContentView(R.layout.activity_main)
|
|
|
|
|
|
|
|
|
|
setSupportActionBar(findViewById(R.id.toolbar)) // deprecated source
|
|
|
|
|
supportActionBar!!.setDisplayShowTitleEnabled(false)
|
|
|
|
|
|
|
|
|
|
deleteCache()
|
|
|
|
@ -323,15 +320,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
readFile(thisFileUri!!)
|
|
|
|
|
Log.d(javaClass.simpleName,"Loading on resume from thisFileUri: ${thisFileUri}")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (metaData.metaData.get("url") !== null) {
|
|
|
|
|
val url = parse(metaData.metaData.get("url"))
|
|
|
|
|
deleteVisible = true
|
|
|
|
|
invalidateOptionsMenu()
|
|
|
|
|
val apiHost = url.scheme + "://" + url.host
|
|
|
|
|
Log.i(javaClass.simpleName, "Starting api controller for: $apiHost")
|
|
|
|
|
api = ghostAPI(applicationContext, apiHost)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
override fun onNewIntent(intent:Intent) {
|
|
|
|
|
super.onNewIntent(intent)
|
|
|
|
@ -390,14 +378,16 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
|
|
|
|
|
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
|
|
|
|
super.onCreateOptionsMenu(menu)
|
|
|
|
|
Log.d(javaClass.simpleName,"create options menu")
|
|
|
|
|
menuInflater.inflate(R.menu.ghost_menu, menu)
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
|
|
|
|
|
if (deleteVisible) {if (menu.findItem(DELETE_GHOST) == null) menu.add(NONE,DELETE_GHOST, NONE,"Delete" )}
|
|
|
|
|
else menu.removeItem(DELETE_GHOST)
|
|
|
|
|
menu.findItem(R.id.delete_ghost).setVisible(deleteVisible)
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -419,34 +409,41 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
R.id.push_ghost -> {
|
|
|
|
|
webView.evaluateJavascript("getHtml();", {
|
|
|
|
|
val msg = URLDecoder.decode(it.removeSurrounding("\""))
|
|
|
|
|
if (metaData.metaData.get("url") !== null) {
|
|
|
|
|
CoroutineScope(Dispatchers.Main).launch {
|
|
|
|
|
withContext(Dispatchers.IO) {
|
|
|
|
|
if (metaData.getId() == null) {
|
|
|
|
|
this@MainActivity.runOnUiThread({
|
|
|
|
|
Toast.makeText(
|
|
|
|
|
this@MainActivity,
|
|
|
|
|
"No ID for url in Metadata found. Deleted? Trying repost.",
|
|
|
|
|
Toast.LENGTH_LONG
|
|
|
|
|
).show()
|
|
|
|
|
})
|
|
|
|
|
sendPosting(html=msg, author = credManager.username)
|
|
|
|
|
} else {
|
|
|
|
|
Log.i(javaClass.simpleName,"posting $msg")
|
|
|
|
|
updatePost(
|
|
|
|
|
title = metaData.get("title") ?: getDisplayName(thisFileUri),
|
|
|
|
|
author = credManager.username,
|
|
|
|
|
html = msg,
|
|
|
|
|
id = metaData.getId()!!
|
|
|
|
|
)
|
|
|
|
|
with(AlertDialog.Builder(this)){
|
|
|
|
|
setTitle("Push to ghostCMS?")
|
|
|
|
|
setPositiveButton("Yes", { dialog, id ->
|
|
|
|
|
webView.evaluateJavascript("getHtml();", {
|
|
|
|
|
val msg = URLDecoder.decode(it.removeSurrounding("\""))
|
|
|
|
|
if (metaData.metaData.get("url") !== null) {
|
|
|
|
|
CoroutineScope(Dispatchers.Main).launch {
|
|
|
|
|
withContext(Dispatchers.IO) {
|
|
|
|
|
if (metaData.getId() == null) {
|
|
|
|
|
this@MainActivity.runOnUiThread({
|
|
|
|
|
Toast.makeText(
|
|
|
|
|
this@MainActivity,
|
|
|
|
|
"No ID for url in Metadata found. Deleted? Trying repost.",
|
|
|
|
|
Toast.LENGTH_LONG
|
|
|
|
|
).show()
|
|
|
|
|
})
|
|
|
|
|
sendPosting(html=msg, author = credManager.username)
|
|
|
|
|
} else {
|
|
|
|
|
Log.i(javaClass.simpleName,"posting $msg")
|
|
|
|
|
updatePost(
|
|
|
|
|
title = metaData.get("title") ?: getDisplayName(thisFileUri),
|
|
|
|
|
author = credManager.username,
|
|
|
|
|
html = msg,
|
|
|
|
|
id = metaData.getId()!!
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else
|
|
|
|
|
shareGhost(msg, ::sendPost)
|
|
|
|
|
})
|
|
|
|
|
} else
|
|
|
|
|
shareGhost(msg, ::sendPost)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
setNeutralButton("No", { dialog, id -> })
|
|
|
|
|
show()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
R.id.settings -> {
|
|
|
|
|
ghostSettings.launch(Intent(this, LoginActivity::class.java))
|
|
|
|
@ -457,7 +454,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
R.id.metadata -> {
|
|
|
|
|
ghostMetaData.launch(Intent(this, MetadataActivity::class.java))
|
|
|
|
|
}
|
|
|
|
|
DELETE_GHOST -> {
|
|
|
|
|
R.id.delete_ghost -> {
|
|
|
|
|
checkGhostConnection()
|
|
|
|
|
var response: retrofit2.Response<ResponseBody> = retrofit2.Response.error(
|
|
|
|
|
444,
|
|
|
|
@ -730,6 +727,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
try {
|
|
|
|
|
val dir = File(cacheDir, "html")
|
|
|
|
|
deleteDir(dir)
|
|
|
|
|
deleteDir(applicationContext.filesDir)
|
|
|
|
|
} catch (e: java.lang.Exception) {
|
|
|
|
|
e.printStackTrace()
|
|
|
|
|
}
|
|
|
|
@ -1082,6 +1080,14 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mdeValue = metaData.extractMetadataFromMarkdown(i)
|
|
|
|
|
if (metaData.metaData.get("url") !== null) {
|
|
|
|
|
val url = parse(metaData.metaData.get("url"))
|
|
|
|
|
deleteVisible = true
|
|
|
|
|
invalidateOptionsMenu()
|
|
|
|
|
val apiHost = url.scheme + "://" + url.host
|
|
|
|
|
Log.i(javaClass.simpleName, "Starting api controller for: $apiHost")
|
|
|
|
|
api = ghostAPI(applicationContext, apiHost)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1094,6 +1100,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
Toast.LENGTH_LONG
|
|
|
|
|
).show()
|
|
|
|
|
})
|
|
|
|
|
thisFileUri = null
|
|
|
|
|
return@withContext
|
|
|
|
|
}
|
|
|
|
|
catch (e: java.lang.NullPointerException) {
|
|
|
|
@ -1105,6 +1112,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
Toast.LENGTH_LONG
|
|
|
|
|
).show()
|
|
|
|
|
})
|
|
|
|
|
thisFileUri = null
|
|
|
|
|
return@withContext
|
|
|
|
|
}
|
|
|
|
|
catch (e: Exception) {
|
|
|
|
@ -1116,6 +1124,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
Toast.LENGTH_LONG
|
|
|
|
|
).show()
|
|
|
|
|
})
|
|
|
|
|
thisFileUri = null
|
|
|
|
|
return@withContext
|
|
|
|
|
}
|
|
|
|
|
while (!easyMDELoaded) {
|
|
|
|
@ -1136,6 +1145,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
webView.evaluateJavascript(script, {
|
|
|
|
|
thisFileUri = uri
|
|
|
|
|
Log.d(javaClass.simpleName,"File read: ${thisFileUri}")
|
|
|
|
|
saveFile()
|
|
|
|
|
})
|
|
|
|
|
webView.requestFocus()
|
|
|
|
|
})
|
|
|
|
|