mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Advance search expand animation
This commit is contained in:
@@ -90,6 +90,8 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
private var databaseColorView: ImageView? = null
|
||||
private var databaseNameView: TextView? = null
|
||||
private var searchContainer: ViewGroup? = null
|
||||
private var searchAdvanceFiltersContainer: ViewGroup? = null
|
||||
private var searchExpandButton: ImageView? = null
|
||||
private var searchNumbers: TextView? = null
|
||||
private var searchView: SearchView? = null
|
||||
private var toolbarBreadcrumb: Toolbar? = null
|
||||
@@ -121,12 +123,16 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
|
||||
private val mOnSearchActionExpandListener = object : MenuItem.OnActionExpandListener {
|
||||
override fun onMenuItemActionExpand(p0: MenuItem?): Boolean {
|
||||
toolbarBreadcrumb?.visibility = View.GONE
|
||||
searchAdvanceFiltersContainer?.visibility = View.GONE
|
||||
searchContainer?.visibility = View.VISIBLE
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onMenuItemActionCollapse(p0: MenuItem?): Boolean {
|
||||
searchContainer?.visibility = View.GONE
|
||||
searchAdvanceFiltersContainer?.visibility = View.GONE
|
||||
toolbarBreadcrumb?.visibility = View.VISIBLE
|
||||
mSearchGroup = null
|
||||
loadGroup(mDatabase)
|
||||
return true
|
||||
@@ -170,6 +176,8 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
databaseColorView = findViewById(R.id.database_color)
|
||||
databaseNameView = findViewById(R.id.database_name)
|
||||
searchContainer = findViewById(R.id.search_container)
|
||||
searchAdvanceFiltersContainer = findViewById(R.id.search_advance_filters)
|
||||
searchExpandButton = findViewById(R.id.search_expand)
|
||||
searchNumbers = findViewById(R.id.search_numbers)
|
||||
toolbarBreadcrumb = findViewById(R.id.toolbar_breadcrumb)
|
||||
breadcrumbListView = findViewById(R.id.breadcrumb_list)
|
||||
@@ -248,6 +256,20 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
savedInstanceState.remove(PREVIOUS_GROUPS_IDS_KEY)
|
||||
}
|
||||
|
||||
// Expand menu with button
|
||||
searchExpandButton?.setOnClickListener {
|
||||
searchAdvanceFiltersContainer?.let { advanceSearch ->
|
||||
val isVisible = advanceSearch.visibility == View.VISIBLE
|
||||
if (isVisible)
|
||||
advanceSearch.collapse()
|
||||
else {
|
||||
advanceSearch.expand(true,
|
||||
resources.getDimension(R.dimen.advanced_search_height).toInt()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize the fragment with the list
|
||||
mGroupFragment =
|
||||
supportFragmentManager.findFragmentByTag(GROUP_FRAGMENT_TAG) as GroupFragment?
|
||||
@@ -582,10 +604,8 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
// Assign title
|
||||
if (group?.isVirtual == true) {
|
||||
searchNumbers?.text = group.numberOfChildEntries.toString()
|
||||
databaseNameContainer?.visibility = View.GONE
|
||||
toolbarBreadcrumb?.navigationIcon = null
|
||||
} else {
|
||||
databaseNameContainer?.visibility = View.VISIBLE
|
||||
// Add breadcrumb
|
||||
setBreadcrumbNode(group)
|
||||
invalidateOptionsMenu()
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible">
|
||||
android:visibility="gone">
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize">
|
||||
@@ -146,76 +146,83 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/entry_expires" />
|
||||
</com.google.android.material.chip.ChipGroup>
|
||||
<ImageView
|
||||
<ImageButton
|
||||
android:id="@+id/search_expand"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_margin="12dp"
|
||||
style="@style/KeepassDXStyle.ImageButton.Simple"
|
||||
android:src="@drawable/ic_list_white_24dp"
|
||||
app:tint="?attr/textColorInverse"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:chipSpacingVertical="16dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingStart="@dimen/default_margin"
|
||||
android:paddingLeft="@dimen/default_margin"
|
||||
android:paddingEnd="@dimen/default_margin"
|
||||
android:paddingRight="@dimen/default_margin"
|
||||
android:paddingBottom="@dimen/default_margin">
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_title"
|
||||
android:layout_width="wrap_content"
|
||||
<FrameLayout
|
||||
android:id="@+id/search_advance_filters"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/advanced_search_height"
|
||||
android:visibility="gone">
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_title"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_username"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_user_name"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_password"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_password"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_url"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_url"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_note"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_notes"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_other"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/other"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_uuid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_UUID"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/tags"/>
|
||||
</com.google.android.material.chip.ChipGroup>
|
||||
android:layout_gravity="center"
|
||||
app:chipSpacingVertical="16dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingStart="@dimen/default_margin"
|
||||
android:paddingLeft="@dimen/default_margin"
|
||||
android:paddingEnd="@dimen/default_margin"
|
||||
android:paddingRight="@dimen/default_margin"
|
||||
android:paddingBottom="@dimen/default_margin">
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_title"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_username"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_user_name"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_password"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_password"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_url"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_url"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_note"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_notes"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_other"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/other"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_uuid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_UUID"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/tags"/>
|
||||
</com.google.android.material.chip.ChipGroup>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
@@ -34,5 +34,6 @@
|
||||
<dimen name="hidden_lock_button_size">0dp</dimen>
|
||||
<dimen name="content_percent">1</dimen>
|
||||
<dimen name="toolbar_parallax_height">160dp</dimen>
|
||||
<dimen name="advanced_search_height">160dp</dimen>
|
||||
<integer name="animation_duration">260</integer>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user