Compare commits

...

2 Commits

Author SHA1 Message Date
yova 9f02934faf confirm push to ghost
3 months ago
yova da174106ee show delete icon again after push
3 months ago

@ -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()
})

@ -14,15 +14,8 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constrainedHeight="true"
tools:context=".MainActivity"/>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

@ -16,10 +16,14 @@
android:title="Push to ghost"
android:icon="@android:drawable/ic_menu_upload"
app:showAsAction="always" />
<item android:id="@+id/delete_ghost"
android:title="delete on ghost"
android:icon="@android:drawable/ic_menu_delete"
app:showAsAction="ifRoom" />
<item android:id="@+id/settings"
android:title="Settings"
android:icon="@android:drawable/ic_menu_preferences"
app:showAsAction="always" />
app:showAsAction="ifRoom" />
<item android:id="@+id/image"
android:title="Image"
android:icon="@android:drawable/ic_menu_gallery"

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.MDEditor" parent="Theme.MaterialComponents.DayNight.NoActionBar" />
<style name="Theme.MDEditor" parent="Theme.MaterialComponents.DayNight" />
</resources>
Loading…
Cancel
Save