From 93e304ba2df55a89fb94c9540c16314440f054b8 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Fri, 4 Aug 2017 12:39:56 -0500 Subject: [PATCH] ProfileList: Extract service management into a base class It will be shared with other fragments. Signed-off-by: Jason A. Donenfeld --- .../android/ProfileActivityFragment.java | 37 +++++++++++++++++++ .../android/ProfileListFragment.java | 27 +------------- 2 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 app/src/main/java/com/wireguard/android/ProfileActivityFragment.java diff --git a/app/src/main/java/com/wireguard/android/ProfileActivityFragment.java b/app/src/main/java/com/wireguard/android/ProfileActivityFragment.java new file mode 100644 index 0000000..da39420 --- /dev/null +++ b/app/src/main/java/com/wireguard/android/ProfileActivityFragment.java @@ -0,0 +1,37 @@ +package com.wireguard.android; + +import android.app.Fragment; +import android.content.Context; + +/** + * Base class for fragments that are part of a ProfileActivity. + */ + +public class ProfileActivityFragment extends Fragment implements ServiceConnectionListener { + private ProfileActivity activity; + protected ProfileServiceInterface service; + + @Override + public void onAttach(Context context) { + super.onAttach(context); + activity = (ProfileActivity) context; + activity.addServiceConnectionListener(this); + service = activity.getService(); + } + + @Override + public void onDetach() { + super.onDetach(); + activity.removeServiceConnectionListener(this); + } + + @Override + public void onServiceConnected(ProfileServiceInterface service) { + this.service = service; + } + + @Override + public void onServiceDisconnected() { + service = null; + } +} diff --git a/app/src/main/java/com/wireguard/android/ProfileListFragment.java b/app/src/main/java/com/wireguard/android/ProfileListFragment.java index 1dfa9b7..f794e54 100644 --- a/app/src/main/java/com/wireguard/android/ProfileListFragment.java +++ b/app/src/main/java/com/wireguard/android/ProfileListFragment.java @@ -1,7 +1,5 @@ package com.wireguard.android; -import android.app.Fragment; -import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -16,18 +14,8 @@ import com.wireguard.config.Profile; * Fragment containing the list of available WireGuard profiles. Must be part of a ProfileActivity. */ -public class ProfileListFragment extends Fragment implements ServiceConnectionListener { - private ProfileActivity activity; +public class ProfileListFragment extends ProfileActivityFragment { private ProfileListFragmentBinding binding; - private ProfileServiceInterface service; - - @Override - public void onAttach(Context context) { - super.onAttach(context); - activity = (ProfileActivity) context; - activity.addServiceConnectionListener(this); - service = activity.getService(); - } @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { @@ -57,20 +45,9 @@ public class ProfileListFragment extends Fragment implements ServiceConnectionLi return binding.getRoot(); } - @Override - public void onDetach() { - super.onDetach(); - activity.removeServiceConnectionListener(this); - } - @Override public void onServiceConnected(ProfileServiceInterface service) { - this.service = service; + super.onServiceConnected(service); binding.setProfiles(service.getProfiles()); } - - @Override - public void onServiceDisconnected() { - service = null; - } }