summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-08-09 06:19:37 -0500
committerSamuel Holland <samuel@sholland.org>2017-08-09 06:19:37 -0500
commit39ed03f758fdcb22dd01ca576e31b19057ca387a (patch)
tree829c04cbd18b943e95ea5ee7714001f8d65dba21
parent52cdf3e7e5fb4292d1dfa99ba123701ca7959092 (diff)
ProfileList: Add the list fragment in code so it knows the layout
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--app/src/main/java/com/wireguard/android/ProfileListActivity.java19
-rw-r--r--app/src/main/java/com/wireguard/android/ProfileListFragment.java7
-rw-r--r--app/src/main/res/layout-land/profile_list_activity.xml7
-rw-r--r--app/src/main/res/layout/profile_list_activity.xml7
-rw-r--r--app/src/main/res/layout/profile_list_item.xml1
5 files changed, 27 insertions, 14 deletions
diff --git a/app/src/main/java/com/wireguard/android/ProfileListActivity.java b/app/src/main/java/com/wireguard/android/ProfileListActivity.java
index 60c35462..feb25511 100644
--- a/app/src/main/java/com/wireguard/android/ProfileListActivity.java
+++ b/app/src/main/java/com/wireguard/android/ProfileListActivity.java
@@ -17,15 +17,22 @@ public class ProfileListActivity extends ProfileActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile_list_activity);
isSplitLayout = findViewById(R.id.fragment_container) != null;
+ final FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ final Fragment listFragment = getFragmentManager().findFragmentByTag(TAG_LIST);
+ if (listFragment instanceof ProfileListFragment) {
+ ((ProfileListFragment) listFragment).setIsSplitLayout(isSplitLayout);
+ } else {
+ final ProfileListFragment newListFragment = new ProfileListFragment();
+ newListFragment.setIsSplitLayout(isSplitLayout);
+ transaction.add(R.id.list_container, newListFragment, TAG_LIST);
+ }
if (!isSplitLayout) {
// Avoid ProfileDetailFragment adding its menu when it is not in the view hierarchy.
- final Fragment fragment = getFragmentManager().findFragmentByTag(TAG_DETAIL);
- if (fragment != null) {
- final FragmentTransaction transaction = getFragmentManager().beginTransaction();
- transaction.remove(fragment);
- transaction.commit();
- }
+ final Fragment detailFragment = getFragmentManager().findFragmentByTag(TAG_DETAIL);
+ if (detailFragment != null)
+ transaction.remove(detailFragment);
}
+ transaction.commit();
onProfileSelected(getCurrentProfile());
}
diff --git a/app/src/main/java/com/wireguard/android/ProfileListFragment.java b/app/src/main/java/com/wireguard/android/ProfileListFragment.java
index 7c9ecd4d..be1358a4 100644
--- a/app/src/main/java/com/wireguard/android/ProfileListFragment.java
+++ b/app/src/main/java/com/wireguard/android/ProfileListFragment.java
@@ -16,11 +16,14 @@ import com.wireguard.config.Profile;
public class ProfileListFragment extends ServiceClientFragment<ProfileServiceInterface> {
private ProfileListFragmentBinding binding;
+ private boolean isSplitLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
binding = ProfileListFragmentBinding.inflate(inflater, parent, false);
final ListView listView = (ListView) binding.getRoot();
+ listView.setChoiceMode(isSplitLayout
+ ? ListView.CHOICE_MODE_SINGLE : ListView.CHOICE_MODE_NONE);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@@ -51,4 +54,8 @@ public class ProfileListFragment extends ServiceClientFragment<ProfileServiceInt
super.onServiceConnected(service);
binding.setProfiles(service.getProfiles());
}
+
+ public void setIsSplitLayout(boolean isSplitLayout) {
+ this.isSplitLayout = isSplitLayout;
+ }
}
diff --git a/app/src/main/res/layout-land/profile_list_activity.xml b/app/src/main/res/layout-land/profile_list_activity.xml
index dc7b5c3b..3f02dcca 100644
--- a/app/src/main/res/layout-land/profile_list_activity.xml
+++ b/app/src/main/res/layout-land/profile_list_activity.xml
@@ -5,12 +5,11 @@
android:baselineAligned="false"
android:orientation="horizontal">
- <fragment
- android:name="com.wireguard.android.ProfileListFragment"
+ <FrameLayout
+ android:id="@+id/list_container"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:tag="list" />
+ android:layout_weight="1" />
<FrameLayout
android:id="@+id/fragment_container"
diff --git a/app/src/main/res/layout/profile_list_activity.xml b/app/src/main/res/layout/profile_list_activity.xml
index f66a0cb3..41d772a7 100644
--- a/app/src/main/res/layout/profile_list_activity.xml
+++ b/app/src/main/res/layout/profile_list_activity.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
- android:name="com.wireguard.android.ProfileListFragment"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/list_container"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:tag="list" />
+ android:layout_height="match_parent" />
diff --git a/app/src/main/res/layout/profile_list_item.xml b/app/src/main/res/layout/profile_list_item.xml
index 10d0c14b..22e93f5c 100644
--- a/app/src/main/res/layout/profile_list_item.xml
+++ b/app/src/main/res/layout/profile_list_item.xml
@@ -11,6 +11,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:background="?android:attr/activatedBackgroundIndicator"
android:padding="16dp">
<TextView