ProfileActivity: Refactor into clean layers of functionality

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Samuel Holland
2017-08-08 05:51:38 -05:00
parent 3076fd8c41
commit 0685d4a159
21 changed files with 417 additions and 172 deletions
@@ -0,0 +1,56 @@
package com.wireguard.android;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import com.wireguard.android.databinding.ProfileDetailFragmentBinding;
/**
* Fragment for viewing and editing a WireGuard profile.
*/
public class ProfileDetailFragment extends ServiceClientFragment<ProfileServiceInterface> {
private ProfileDetailFragmentBinding binding;
private String name;
public ProfileDetailFragment() {
super();
setArguments(new Bundle());
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
name = getArguments().getString(ProfileActivity.KEY_PROFILE_NAME);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.profile_detail, menu);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
binding = ProfileDetailFragmentBinding.inflate(inflater, parent, false);
return binding.getRoot();
}
@Override
public void onServiceConnected(ProfileServiceInterface service) {
super.onServiceConnected(service);
binding.setProfile(service.getProfiles().get(name));
}
public void setProfile(String name) {
this.name = name;
getArguments().putString(ProfileActivity.KEY_PROFILE_NAME, name);
final ProfileServiceInterface service = getService();
if (binding != null && service != null)
binding.setProfile(service.getProfiles().get(name));
}
}