Compare commits

...

2 Commits

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

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

@ -14,15 +14,8 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" app:layout_constraintTop_toTopOf="parent"
app:layout_constrainedHeight="true" app:layout_constrainedHeight="true"
tools:context=".MainActivity"/> 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> </androidx.constraintlayout.widget.ConstraintLayout>

@ -16,10 +16,14 @@
android:title="Push to ghost" android:title="Push to ghost"
android:icon="@android:drawable/ic_menu_upload" android:icon="@android:drawable/ic_menu_upload"
app:showAsAction="always" /> 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" <item android:id="@+id/settings"
android:title="Settings" android:title="Settings"
android:icon="@android:drawable/ic_menu_preferences" android:icon="@android:drawable/ic_menu_preferences"
app:showAsAction="always" /> app:showAsAction="ifRoom" />
<item android:id="@+id/image" <item android:id="@+id/image"
android:title="Image" android:title="Image"
android:icon="@android:drawable/ic_menu_gallery" android:icon="@android:drawable/ic_menu_gallery"

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