Add back handler for ACL fragment

This commit is contained in:
Mygod
2017-01-20 04:30:59 +08:00
parent 7d3f6096b7
commit 923374a28b
3 changed files with 16 additions and 7 deletions
@@ -406,10 +406,11 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe
}
override def onBackPressed(): Unit =
if (drawer.isDrawerOpen) drawer.closeDrawer() else if (currentFragment != profilesFragment) {
displayFragment(profilesFragment)
drawer.setSelection(DRAWER_PROFILES)
} else super.onBackPressed()
if (drawer.isDrawerOpen) drawer.closeDrawer() else if (!currentFragment.onBackPressed())
if (currentFragment != profilesFragment) {
displayFragment(profilesFragment)
drawer.setSelection(DRAWER_PROFILES)
} else super.onBackPressed()
override def onStop() {
setListeningForBandwidth(false)
@@ -36,4 +36,6 @@ class ToolbarFragment extends Fragment {
}
def onTrafficUpdated(profileId: Int, txRate: Long, rxRate: Long, txTotal: Long, rxTotal: Long): Unit = ()
def onBackPressed(): Boolean = false
}
@@ -63,9 +63,8 @@ class CustomRulesFragment extends ToolbarFragment with Toolbar.OnMenuItemClickLi
}
private val selectedItems = new mutable.HashSet[AnyRef]
private def onSelectedItemsUpdated(): Unit = if (selectionItem != null) {
selectionItem.setVisible(selectedItems.nonEmpty)
}
private def onSelectedItemsUpdated(): Unit =
if (selectionItem != null) selectionItem.setVisible(selectedItems.nonEmpty)
private final class AclRuleViewHolder(view: View) extends RecyclerView.ViewHolder(view)
with View.OnClickListener with View.OnLongClickListener {
@@ -263,6 +262,13 @@ class CustomRulesFragment extends ToolbarFragment with Toolbar.OnMenuItemClickLi
}).attachToRecyclerView(list)
}
override def onBackPressed(): Boolean = if (selectedItems.nonEmpty) {
selectedItems.clear()
onSelectedItemsUpdated()
adapter.notifyDataSetChanged()
true
} else super.onBackPressed()
override def onSaveInstanceState(outState: Bundle): Unit = {
super.onSaveInstanceState(outState)
outState.putStringArray(SELECTED_SUBNETS, selectedItems.filter(_.isInstanceOf[Subnet]).map(_.toString).toArray)