Resolve ViewBinding regressions (#799)

* PasswordStore: remove broken snippet

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Cleanup code and remove incorrect onCreateView uses

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* Fixup imports

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-05-27 12:54:03 +05:30 committed by GitHub
parent aeac72286f
commit 15665244fc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 55 deletions

View file

@ -9,11 +9,9 @@ import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup
import android.view.animation.Animation import android.view.animation.Animation
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import androidx.appcompat.view.ActionMode import androidx.appcompat.view.ActionMode
@ -51,11 +49,8 @@ class PasswordFragment : Fragment() {
private fun requireStore() = requireActivity() as PasswordStore private fun requireStore() = requireActivity() as PasswordStore
override fun onCreateView( override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
inflater: LayoutInflater, super.onViewCreated(view, savedInstanceState)
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
settings = PreferenceManager.getDefaultSharedPreferences(requireContext()) settings = PreferenceManager.getDefaultSharedPreferences(requireContext())
initializePasswordList() initializePasswordList()
binding.fab.setOnClickListener { binding.fab.setOnClickListener {
@ -63,7 +58,6 @@ class PasswordFragment : Fragment() {
setTargetFragment(this@PasswordFragment, 1000) setTargetFragment(this@PasswordFragment, 1000)
}.show(parentFragmentManager, "BOTTOM_SHEET") }.show(parentFragmentManager, "BOTTOM_SHEET")
} }
return binding.root
} }
private fun initializePasswordList() { private fun initializePasswordList() {

View file

@ -32,6 +32,7 @@ import androidx.core.content.ContextCompat
import androidx.core.content.edit import androidx.core.content.edit
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.commit
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.observe import androidx.lifecycle.observe
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
@ -64,9 +65,6 @@ import com.zeapo.pwdstore.utils.PasswordRepository.Companion.getRepositoryDirect
import com.zeapo.pwdstore.utils.PasswordRepository.Companion.initialize import com.zeapo.pwdstore.utils.PasswordRepository.Companion.initialize
import com.zeapo.pwdstore.utils.PasswordRepository.Companion.isInitialized import com.zeapo.pwdstore.utils.PasswordRepository.Companion.isInitialized
import com.zeapo.pwdstore.utils.PasswordRepository.PasswordSortOrder.Companion.getSortOrder import com.zeapo.pwdstore.utils.PasswordRepository.PasswordSortOrder.Companion.getSortOrder
import kotlinx.android.synthetic.main.fragment_to_clone_or_not.clone_from_server_button
import kotlinx.android.synthetic.main.fragment_to_clone_or_not.local_directory_button
import kotlinx.android.synthetic.main.fragment_to_clone_or_not.settings_button
import org.apache.commons.io.FileUtils import org.apache.commons.io.FileUtils
import org.apache.commons.io.FilenameUtils import org.apache.commons.io.FilenameUtils
import org.eclipse.jgit.api.Git import org.eclipse.jgit.api.Git
@ -128,10 +126,6 @@ class PasswordStore : AppCompatActivity() {
super.onCreate(savedInstance) super.onCreate(savedInstance)
setContentView(R.layout.activity_pwdstore) setContentView(R.layout.activity_pwdstore)
settings_button.setOnClickListener { startActivity(Intent(this, UserPreference::class.java)) }
local_directory_button.setOnClickListener { initRepository(NEW_REPO_BUTTON) }
clone_from_server_button.setOnClickListener { initRepository(CLONE_REPO_BUTTON) }
// If user is eligible for Oreo autofill, prompt them to switch. // If user is eligible for Oreo autofill, prompt them to switch.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O &&
!settings.getBoolean(PREFERENCE_SEEN_AUTOFILL_ONBOARDING, false)) { !settings.getBoolean(PREFERENCE_SEEN_AUTOFILL_ONBOARDING, false)) {
@ -429,12 +423,10 @@ class PasswordStore : AppCompatActivity() {
} }
private fun checkLocalRepository(localDir: File?) { private fun checkLocalRepository(localDir: File?) {
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
if (localDir != null && settings.getBoolean("repository_initialized", false)) { if (localDir != null && settings.getBoolean("repository_initialized", false)) {
tag(TAG).d { "Check, dir: ${localDir.absolutePath}" } tag(TAG).d { "Check, dir: ${localDir.absolutePath}" }
// do not push the fragment if we already have it // do not push the fragment if we already have it
if (fragmentManager.findFragmentByTag("PasswordsList") == null || if (supportFragmentManager.findFragmentByTag("PasswordsList") == null ||
settings.getBoolean("repo_changed", false)) { settings.getBoolean("repo_changed", false)) {
settings.edit { putBoolean("repo_changed", false) } settings.edit { putBoolean("repo_changed", false) }
plist = PasswordFragment() plist = PasswordFragment()
@ -449,16 +441,17 @@ class PasswordStore : AppCompatActivity() {
plist!!.arguments = args plist!!.arguments = args
supportActionBar!!.show() supportActionBar!!.show()
supportActionBar!!.setDisplayHomeAsUpEnabled(false) supportActionBar!!.setDisplayHomeAsUpEnabled(false)
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) supportFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
fragmentTransaction.replace(R.id.main_layout, plist!!, "PasswordsList") supportFragmentManager.commit {
fragmentTransaction.commit() replace(R.id.main_layout, plist!!, "PasswordsList")
}
} }
} else { } else {
supportActionBar!!.hide() supportActionBar!!.hide()
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) supportFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
val cloneFrag = ToCloneOrNot() supportFragmentManager.commit {
fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot") replace(R.id.main_layout, ToCloneOrNot())
fragmentTransaction.commit() }
} }
} }

View file

@ -6,54 +6,41 @@ package com.zeapo.pwdstore
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.lifecycle.observe import androidx.lifecycle.observe
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import com.zeapo.pwdstore.databinding.PasswordRecyclerViewBinding
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.zeapo.pwdstore.ui.adapters.PasswordItemRecyclerAdapter import com.zeapo.pwdstore.ui.adapters.PasswordItemRecyclerAdapter
import com.zeapo.pwdstore.utils.PasswordItem import com.zeapo.pwdstore.utils.PasswordItem
import com.zeapo.pwdstore.utils.viewBinding
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
import java.io.File import java.io.File
class SelectFolderFragment : Fragment() { class SelectFolderFragment : Fragment() {
private val binding by viewBinding(PasswordRecyclerViewBinding::bind)
private lateinit var recyclerAdapter: PasswordItemRecyclerAdapter private lateinit var recyclerAdapter: PasswordItemRecyclerAdapter
private lateinit var recyclerView: RecyclerView
private lateinit var listener: OnFragmentInteractionListener private lateinit var listener: OnFragmentInteractionListener
private val model: SearchableRepositoryViewModel by activityViewModels() private val model: SearchableRepositoryViewModel by activityViewModels()
override fun onCreateView( override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
inflater: LayoutInflater, super.onViewCreated(view, savedInstanceState)
container: ViewGroup?, binding.fab.hide()
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.password_recycler_view, container, false)
initializePasswordList(view)
val fab: FloatingActionButton = view.findViewById(R.id.fab)
fab.hide()
return view
}
private fun initializePasswordList(rootView: View) {
recyclerAdapter = PasswordItemRecyclerAdapter() recyclerAdapter = PasswordItemRecyclerAdapter()
.onItemClicked { _, item -> .onItemClicked { _, item ->
listener.onFragmentInteraction(item) listener.onFragmentInteraction(item)
} }
recyclerView = rootView.findViewById(R.id.pass_recycler) binding.passRecycler.apply {
recyclerView.apply {
layoutManager = LinearLayoutManager(requireContext()) layoutManager = LinearLayoutManager(requireContext())
itemAnimator = null itemAnimator = null
adapter = recyclerAdapter adapter = recyclerAdapter
} }
FastScrollerBuilder(recyclerView).build() FastScrollerBuilder(binding.passRecycler).build()
registerForContextMenu(recyclerView) registerForContextMenu(binding.passRecycler)
val path = requireNotNull(requireArguments().getString(PasswordStore.REQUEST_ARG_PATH)) val path = requireNotNull(requireArguments().getString(PasswordStore.REQUEST_ARG_PATH))
model.navigateTo(File(path), listMode = ListMode.DirectoriesOnly, pushPreviousLocation = false) model.navigateTo(File(path), listMode = ListMode.DirectoriesOnly, pushPreviousLocation = false)

View file

@ -6,9 +6,7 @@ package com.zeapo.pwdstore
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.zeapo.pwdstore.databinding.FragmentToCloneOrNotBinding import com.zeapo.pwdstore.databinding.FragmentToCloneOrNotBinding
import com.zeapo.pwdstore.utils.viewBinding import com.zeapo.pwdstore.utils.viewBinding
@ -17,8 +15,6 @@ class ToCloneOrNot : Fragment() {
private val binding by viewBinding(FragmentToCloneOrNotBinding::bind) private val binding by viewBinding(FragmentToCloneOrNotBinding::bind)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = binding.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.settingsButton.setOnClickListener { startActivity(Intent(requireContext(), UserPreference::class.java)) } binding.settingsButton.setOnClickListener { startActivity(Intent(requireContext(), UserPreference::class.java)) }

View file

@ -5,9 +5,7 @@
package com.zeapo.pwdstore.sshkeygen package com.zeapo.pwdstore.sshkeygen
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import androidx.core.content.edit import androidx.core.content.edit
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
@ -31,8 +29,6 @@ class SshKeyGenFragment : Fragment() {
private var keyLength = 4096 private var keyLength = 4096
private val binding by viewBinding(FragmentSshKeygenBinding::bind) private val binding by viewBinding(FragmentSshKeygenBinding::bind)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = binding.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
with(binding) { with(binding) {