Skip to content

Commit 8dc293f

Browse files
committed
Fix toolbar when switching between direct edit and normal edit
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
1 parent e448617 commit 8dc293f

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,10 @@ protected void onNoteLoaded(Note note) {
285285
protected void onScroll(int scrollY, int oldScrollY) {
286286
}
287287

288+
protected boolean shouldShowToolbar() {
289+
return true;
290+
}
291+
288292
public void onCloseNote() {
289293
if (!titleModified && originalNote == null && getContent().isEmpty()) {
290294
repo.deleteNoteAndSync(localAccount, note.getId());
@@ -383,8 +387,6 @@ enum Mode {
383387

384388
void onNoteUpdated(Note note);
385389

386-
void setToolbarVisibility(boolean visible);
387-
388390
void changeMode(@NonNull Mode mode);
389391
}
390392
}

app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ private void launchExistingNote(long accountId, long noteId, @Nullable final Str
170170
fragment.setInitialSavedState(savedState);
171171
}
172172
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container_view, fragment).commit();
173+
if(!fragment.shouldShowToolbar()){
174+
binding.toolbar.setVisibility(View.GONE);
175+
}else {
176+
binding.toolbar.setVisibility(View.VISIBLE);
177+
}
173178
}
174179

175180
private String getPreferenceMode() {
@@ -334,11 +339,6 @@ public void onNoteUpdated(Note note) {
334339
}
335340
}
336341

337-
@Override
338-
public void setToolbarVisibility(boolean visible) {
339-
binding.toolbar.setVisibility(visible ? View.VISIBLE : View.GONE);
340-
}
341-
342342
@Override
343343
public void changeMode(@NonNull Mode mode) {
344344
switch (mode) {

app/src/main/java/it/niedermann/owncloud/notes/edit/NoteDirectEditFragment.kt

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package it.niedermann.owncloud.notes.edit
22

33
import android.annotation.SuppressLint
4-
import android.content.Context
54
import android.content.pm.ApplicationInfo
65
import android.net.http.SslError
76
import android.os.Bundle
87
import android.util.Log
98
import android.view.LayoutInflater
9+
import android.view.MotionEvent
1010
import android.view.View
1111
import android.view.ViewGroup
1212
import android.webkit.JavascriptInterface
@@ -26,13 +26,15 @@ import it.niedermann.owncloud.notes.persistence.DirectEditingRepository
2626
import it.niedermann.owncloud.notes.persistence.entity.Note
2727
import it.niedermann.owncloud.notes.shared.model.ISyncCallback
2828
import it.niedermann.owncloud.notes.shared.util.ExtendedFabUtil
29-
import it.niedermann.owncloud.notes.shared.util.ExtendedFabUtil.toggleVisibilityOnScroll
3029

3130
class NoteDirectEditFragment : BaseNoteFragment(), Branded {
3231
private var _binding: FragmentNoteDirectEditBinding? = null
3332
private val binding: FragmentNoteDirectEditBinding
3433
get() = _binding!!
3534

35+
// for hiding / showing the fab
36+
private var scrollStart: Int = 0
37+
3638
public override fun getScrollView(): ScrollView? {
3739
return null
3840
}
@@ -71,8 +73,21 @@ class NoteDirectEditFragment : BaseNoteFragment(), Branded {
7173
private fun setupFab() {
7274
binding.plainEditingFab.isExtended = false
7375
ExtendedFabUtil.toggleExtendedOnLongClick(binding.plainEditingFab)
74-
binding.noteWebview.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY ->
75-
toggleVisibilityOnScroll(binding.plainEditingFab, scrollY, oldScrollY)
76+
binding.noteWebview.setOnTouchListener { _, event ->
77+
when (event.action) {
78+
MotionEvent.ACTION_DOWN -> {
79+
scrollStart = event.y.toInt()
80+
}
81+
MotionEvent.ACTION_UP -> {
82+
val scrollEnd = event.y.toInt()
83+
ExtendedFabUtil.toggleVisibilityOnScroll(
84+
binding.plainEditingFab,
85+
scrollStart,
86+
scrollEnd,
87+
)
88+
}
89+
}
90+
return@setOnTouchListener false
7691
}
7792
binding.plainEditingFab.setOnClickListener {
7893
// TODO save note?
@@ -86,11 +101,6 @@ class NoteDirectEditFragment : BaseNoteFragment(), Branded {
86101
_binding = null
87102
}
88103

89-
override fun onAttach(context: Context) {
90-
super.onAttach(context)
91-
listener.setToolbarVisibility(false)
92-
}
93-
94104
override fun onNoteLoaded(note: Note) {
95105
super.onNoteLoaded(note)
96106
Log.d(TAG, "onNoteLoaded() called with: note = $note")
@@ -106,12 +116,15 @@ class NoteDirectEditFragment : BaseNoteFragment(), Branded {
106116
Log.d(TAG, "onNoteLoaded: url = $url")
107117
}
108118
binding.noteWebview.loadUrl(url)
119+
// TODO show warn/error if not loaded after 10 seconds
109120
}, { throwable ->
110121
// TODO handle error
111122
Log.e(TAG, "onNoteLoaded:", throwable)
112123
})
113124
}
114125

126+
override fun shouldShowToolbar(): Boolean = false
127+
115128
@SuppressLint("SetJavaScriptEnabled")
116129
private fun setupWebSettings(webSettings: WebSettings) {
117130
WebView.setWebContentsDebuggingEnabled(true)

0 commit comments

Comments
 (0)