Skip to content

Commit

Permalink
Added menu icon to go fullscreen, press back button to get actionbar …
Browse files Browse the repository at this point in the history
  • Loading branch information
fnrngg committed Jun 9, 2020
1 parent 9775da0 commit c81d20e
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import android.os.Bundle
import android.provider.MediaStore
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowManager
import android.webkit.MimeTypeMap
import android.widget.SeekBar
Expand Down Expand Up @@ -47,6 +48,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
private val FILE_NAME = "simple-draw.png"
private val BITMAP_PATH = "bitmap_path"
private val URI_TO_LOAD = "uri_to_load"
private val FULLSCREEN = "FULLSCREEN"

private var defaultPath = ""
private var defaultFilename = ""
Expand All @@ -63,6 +65,8 @@ class MainActivity : SimpleActivity(), CanvasListener {
private var isEditIntent = false
private var lastBitmapPath = ""

private var isActionbarHidden = false

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Expand Down Expand Up @@ -137,8 +141,17 @@ class MainActivity : SimpleActivity(), CanvasListener {
return true
}

private fun goToFullScreen() {
supportActionBar?.hide()
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
isActionbarHidden = true

}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.fullscreen -> goToFullScreen()
R.id.menu_confirm -> confirmImage()
R.id.menu_save -> trySaveImage()
R.id.menu_share -> shareImage()
Expand All @@ -154,18 +167,24 @@ class MainActivity : SimpleActivity(), CanvasListener {
}

override fun onBackPressed() {
val hasUnsavedChanges = savedPathsHash != my_canvas.getDrawingHashCode()
if (hasUnsavedChanges && System.currentTimeMillis() - lastSavePromptTS > SAVE_DISCARD_PROMPT_INTERVAL) {
lastSavePromptTS = System.currentTimeMillis()
ConfirmationAdvancedDialog(this, "", R.string.save_before_closing, R.string.save, R.string.discard) {
if (it) {
trySaveImage()
} else {
super.onBackPressed()
if (isActionbarHidden) {
supportActionBar?.show()
isActionbarHidden = false
window.decorView.systemUiVisibility = (View.VISIBLE)
} else {
val hasUnsavedChanges = savedPathsHash != my_canvas.getDrawingHashCode()
if (hasUnsavedChanges && System.currentTimeMillis() - lastSavePromptTS > SAVE_DISCARD_PROMPT_INTERVAL) {
lastSavePromptTS = System.currentTimeMillis()
ConfirmationAdvancedDialog(this, "", R.string.save_before_closing, R.string.save, R.string.discard) {
if (it) {
trySaveImage()
} else {
super.onBackPressed()
}
}
} else {
super.onBackPressed()
}
} else {
super.onBackPressed()
}
}

Expand Down Expand Up @@ -520,6 +539,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString(BITMAP_PATH, lastBitmapPath)
outState.putBoolean(FULLSCREEN, isActionbarHidden)

if (uriToLoad != null) {
outState.putString(URI_TO_LOAD, uriToLoad.toString())
Expand All @@ -535,6 +555,10 @@ class MainActivity : SimpleActivity(), CanvasListener {
uriToLoad = Uri.parse(savedInstanceState.getString(URI_TO_LOAD))
tryOpenUri(uriToLoad!!, intent)
}
isActionbarHidden = savedInstanceState.getBoolean(FULLSCREEN)
if (isActionbarHidden) {
goToFullScreen()
}
}

private var onStrokeWidthBarChangeListener: SeekBar.OnSeekBarChangeListener = object : SeekBar.OnSeekBarChangeListener {
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/ic_fullscreen_white_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
</vector>
5 changes: 5 additions & 0 deletions app/src/main/res/menu/menu.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/fullscreen"
android:title=""
android:icon="@drawable/ic_fullscreen_white_24dp"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_confirm"
android:icon="@drawable/ic_check_vector"
Expand Down

0 comments on commit c81d20e

Please sign in to comment.