mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Transition from one constraint set to another.
This commit is contained in:
@@ -11,12 +11,15 @@ import org.briarproject.bramble.api.plugin.TorConstants;
|
||||
import org.briarproject.bramble.api.plugin.TransportId;
|
||||
import org.briarproject.briar.R;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageButton;
|
||||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.constraintlayout.widget.ConstraintSet;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import static android.os.Build.VERSION.SDK_INT;
|
||||
import static android.transition.TransitionManager.beginDelayedTransition;
|
||||
import static android.view.View.FOCUS_DOWN;
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static androidx.core.content.ContextCompat.getColor;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.DISABLED;
|
||||
@@ -26,38 +29,43 @@ import static org.briarproject.briar.android.navdrawer.NavDrawerViewModel.TRANSP
|
||||
|
||||
class PluginViewController {
|
||||
|
||||
private final ImageView torIconExpanded, torIconCollapsed;
|
||||
private final ImageView wifiIconExpanded, wifiIconCollapsed;
|
||||
private final ImageView btIconExpanded, btIconCollapsed;
|
||||
private final ConstraintLayout drawerContent;
|
||||
private final ConstraintSet collapsedConstraints, expandedConstraints;
|
||||
private final AppCompatImageButton chevronView;
|
||||
private final ImageView torIcon, wifiIcon, btIcon;
|
||||
private final SwitchCompat torSwitch, wifiSwitch, btSwitch;
|
||||
|
||||
private boolean expanded = false;
|
||||
|
||||
PluginViewController(View v, LifecycleOwner owner,
|
||||
NavDrawerViewModel viewModel) {
|
||||
drawerContent = v.findViewById(R.id.drawerContent);
|
||||
|
||||
collapsedConstraints = new ConstraintSet();
|
||||
collapsedConstraints.clone(v.getContext(),
|
||||
R.layout.navigation_menu_collapsed);
|
||||
|
||||
expandedConstraints = new ConstraintSet();
|
||||
expandedConstraints.clone(v.getContext(),
|
||||
R.layout.navigation_menu_expanded);
|
||||
|
||||
// Scroll the drawer to the bottom when the view is expanded/collapsed
|
||||
ScrollView scrollView = v.findViewById(R.id.drawerScrollView);
|
||||
View expandedLayout = v.findViewById(R.id.expandedLayout);
|
||||
View collapsedLayout = v.findViewById(R.id.collapsedLayout);
|
||||
|
||||
expandedLayout.addOnLayoutChangeListener((view, left, top, right,
|
||||
drawerContent.addOnLayoutChangeListener((view, left, top, right,
|
||||
bottom, oldLeft, oldTop, oldRight, oldBottom) ->
|
||||
scrollView.fullScroll(FOCUS_DOWN));
|
||||
|
||||
collapsedLayout.setOnClickListener(view -> {
|
||||
expandedLayout.setVisibility(VISIBLE);
|
||||
collapsedLayout.setVisibility(GONE);
|
||||
});
|
||||
// Clicking the chevron expands or collapses the view
|
||||
chevronView = v.findViewById(R.id.chevronView);
|
||||
chevronView.setOnClickListener(view -> expandOrCollapseView());
|
||||
|
||||
v.findViewById(R.id.chevronViewExpanded).setOnClickListener(view -> {
|
||||
expandedLayout.setVisibility(GONE);
|
||||
collapsedLayout.setVisibility(VISIBLE);
|
||||
});
|
||||
// The whole view is clickable when collapsed
|
||||
v.findViewById(R.id.connectionsBackground).setOnClickListener(view ->
|
||||
expandOrCollapseView());
|
||||
|
||||
torIconExpanded = v.findViewById(R.id.torIconExpanded);
|
||||
torIconCollapsed = v.findViewById(R.id.torIconCollapsed);
|
||||
wifiIconExpanded = v.findViewById(R.id.wifiIconExpanded);
|
||||
wifiIconCollapsed = v.findViewById(R.id.wifiIconCollapsed);
|
||||
btIconExpanded = v.findViewById(R.id.btIconExpanded);
|
||||
btIconCollapsed = v.findViewById(R.id.btIconCollapsed);
|
||||
torIcon = v.findViewById(R.id.torIcon);
|
||||
wifiIcon = v.findViewById(R.id.wifiIcon);
|
||||
btIcon = v.findViewById(R.id.btIcon);
|
||||
|
||||
torSwitch = v.findViewById(R.id.torSwitch);
|
||||
wifiSwitch = v.findViewById(R.id.wifiSwitch);
|
||||
@@ -78,9 +86,20 @@ class PluginViewController {
|
||||
}
|
||||
}
|
||||
|
||||
private void expandOrCollapseView() {
|
||||
if (SDK_INT >= 19) beginDelayedTransition(drawerContent);
|
||||
if (expanded) {
|
||||
collapsedConstraints.applyTo(drawerContent);
|
||||
chevronView.setImageResource(R.drawable.chevron_up_white);
|
||||
} else {
|
||||
expandedConstraints.applyTo(drawerContent);
|
||||
chevronView.setImageResource(R.drawable.chevron_down_white);
|
||||
}
|
||||
expanded = !expanded;
|
||||
}
|
||||
|
||||
private void stateUpdate(TransportId id, State state) {
|
||||
updateIcon(getExpandedIcon(id), state);
|
||||
updateIcon(getCollapsedIcon(id), state);
|
||||
updateIcon(getIcon(id), state);
|
||||
updateSwitch(getSwitch(id), state);
|
||||
}
|
||||
|
||||
@@ -97,17 +116,10 @@ class PluginViewController {
|
||||
switchCompat.setEnabled(state != STARTING_STOPPING);
|
||||
}
|
||||
|
||||
private ImageView getExpandedIcon(TransportId id) {
|
||||
if (id == TorConstants.ID) return torIconExpanded;
|
||||
if (id == BluetoothConstants.ID) return btIconExpanded;
|
||||
if (id == LanTcpConstants.ID) return wifiIconExpanded;
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
private ImageView getCollapsedIcon(TransportId id) {
|
||||
if (id == TorConstants.ID) return torIconCollapsed;
|
||||
if (id == BluetoothConstants.ID) return btIconCollapsed;
|
||||
if (id == LanTcpConstants.ID) return wifiIconCollapsed;
|
||||
private ImageView getIcon(TransportId id) {
|
||||
if (id == TorConstants.ID) return torIcon;
|
||||
if (id == BluetoothConstants.ID) return btIcon;
|
||||
if (id == LanTcpConstants.ID) return wifiIcon;
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/drawerScrollView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
@@ -8,29 +7,6 @@
|
||||
android:fillViewport="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background"
|
||||
android:orientation="vertical">
|
||||
<include layout="@layout/navigation_menu_collapsed" />
|
||||
|
||||
<com.google.android.material.navigation.NavigationView
|
||||
android:id="@+id/navigation"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background"
|
||||
app:elevation="0dp"
|
||||
app:headerLayout="@layout/navigation_header"
|
||||
app:itemBackground="@drawable/navigation_item_background"
|
||||
app:itemIconTint="?attr/colorControlNormal"
|
||||
app:itemTextColor="?android:textColorPrimary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:menu="@menu/navigation_drawer" />
|
||||
|
||||
<include layout="@layout/transports_list" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</ScrollView>
|
||||
</ScrollView>
|
||||
165
briar-android/src/main/res/layout/navigation_menu_collapsed.xml
Normal file
165
briar-android/src/main/res/layout/navigation_menu_collapsed.xml
Normal file
@@ -0,0 +1,165 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/drawerContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background">
|
||||
|
||||
<com.google.android.material.navigation.NavigationView
|
||||
android:id="@+id/navigation"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background"
|
||||
app:elevation="0dp"
|
||||
app:headerLayout="@layout/navigation_header"
|
||||
app:itemBackground="@drawable/navigation_item_background"
|
||||
app:itemIconTint="?attr/colorControlNormal"
|
||||
app:itemTextColor="?android:textColorPrimary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:menu="@menu/navigation_drawer" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/chevronView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/divider"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:src="@drawable/chevron_up_white"
|
||||
app:layout_constraintBottom_toTopOf="@+id/connectionsLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/navigation"
|
||||
app:layout_constraintVertical_bias="1.0"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
app:tint="?attr/colorControlNormal"
|
||||
tools:ignore="ContentDescription,UnusedAttribute" />
|
||||
|
||||
<View
|
||||
android:id="@+id/connectionsBackground"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/connectionsLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="@string/transport_connection"
|
||||
android:textSize="12sp"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/torIcon"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<View
|
||||
android:id="@+id/longRangeBackground"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/item_background_highlight"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<TextView
|
||||
android:id="@+id/longRangeLabel"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_internet"
|
||||
android:textSize="12sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/torIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:src="@drawable/transport_tor"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/wifiIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/torSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_tor"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<TextView
|
||||
android:id="@+id/nearbyLabel"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_nearby"
|
||||
android:textSize="12sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wifiIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:src="@drawable/transport_lan"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/btIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/wifiSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_lan"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:src="@drawable/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/btSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_bt"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
183
briar-android/src/main/res/layout/navigation_menu_expanded.xml
Normal file
183
briar-android/src/main/res/layout/navigation_menu_expanded.xml
Normal file
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/drawerContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background">
|
||||
|
||||
<com.google.android.material.navigation.NavigationView
|
||||
android:id="@+id/navigation"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/window_background"
|
||||
app:elevation="0dp"
|
||||
app:headerLayout="@layout/navigation_header"
|
||||
app:itemBackground="@drawable/navigation_item_background"
|
||||
app:itemIconTint="?attr/colorControlNormal"
|
||||
app:itemTextColor="?android:textColorPrimary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:menu="@menu/navigation_drawer" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/chevronView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/divider"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:src="@drawable/chevron_down_white"
|
||||
app:layout_constraintBottom_toTopOf="@+id/longRangeLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/navigation"
|
||||
app:layout_constraintVertical_bias="1.0"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
app:tint="?attr/colorControlNormal"
|
||||
tools:ignore="ContentDescription,UnusedAttribute" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<View
|
||||
android:id="@+id/connectionsBackground"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<!-- Hidden -->
|
||||
<TextView
|
||||
android:id="@+id/connectionsLabel"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="@string/transport_connection"
|
||||
android:textSize="12sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<View
|
||||
android:id="@+id/longRangeBackground"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/item_background_highlight"
|
||||
app:layout_constraintBottom_toTopOf="@+id/nearbyLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/longRangeLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_internet"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/torSwitch"
|
||||
app:layout_constraintStart_toStartOf="@+id/torIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronView" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/torIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_tor"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/torSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/torSwitch"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/torSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="@string/transport_tor"
|
||||
app:layout_constraintBottom_toTopOf="@+id/nearbyLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/torIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/longRangeLabel"
|
||||
tools:checked="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/nearbyLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/transport_nearby"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/wifiSwitch"
|
||||
app:layout_constraintStart_toStartOf="@+id/torIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/torSwitch" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wifiIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_lan"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/wifiSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/wifiSwitch"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/wifiSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_lan"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btSwitch"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/wifiIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/nearbyLabel"
|
||||
tools:checked="true" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/btSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/btSwitch"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/btSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/btIcon"
|
||||
app:layout_constraintTop_toBottomOf="@+id/wifiSwitch"
|
||||
tools:checked="true" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,237 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:showIn="@layout/navigation_menu">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/expandedLayout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/navigation"
|
||||
app:layout_constraintVertical_bias="1.0">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/chevronViewExpanded"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/divider"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:src="@drawable/chevron_down_white"
|
||||
app:layout_constraintBottom_toTopOf="@+id/longRangeLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?attr/colorControlNormal"
|
||||
tools:ignore="ContentDescription,UnusedAttribute"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<View
|
||||
android:id="@+id/backgroundView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/item_background_highlight"
|
||||
app:layout_constraintBottom_toTopOf="@+id/nearbyLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/chevronViewExpanded" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/longRangeLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_internet"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/torSwitch"
|
||||
app:layout_constraintStart_toStartOf="@+id/torIconExpanded" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/torIconExpanded"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_tor"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/torSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/torSwitch"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/torSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="@string/transport_tor"
|
||||
app:layout_constraintBottom_toTopOf="@+id/nearbyLabel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/torIconExpanded"
|
||||
tools:checked="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/nearbyLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/transport_nearby"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/wifiSwitch"
|
||||
app:layout_constraintStart_toStartOf="@+id/torIconExpanded" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wifiIconExpanded"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_lan"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/wifiSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/wifiSwitch"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/wifiSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_lan"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btSwitch"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/wifiIconExpanded"
|
||||
tools:checked="true" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btIconExpanded"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:src="@drawable/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/btSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/btSwitch"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/btSwitch"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/btIconExpanded"
|
||||
tools:checked="true" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/collapsedLayout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/navigation"
|
||||
app:layout_constraintVertical_bias="1.0">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/chevronViewCollapsed"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/divider"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:src="@drawable/chevron_up_white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?attr/colorControlNormal"
|
||||
tools:ignore="ContentDescription,UnusedAttribute"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/connectionsLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:text="@string/transport_connection"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/torIconCollapsed"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/chevronViewCollapsed" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/torIconCollapsed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:src="@drawable/transport_tor"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/wifiIconCollapsed"
|
||||
app:layout_constraintTop_toBottomOf="@id/chevronViewCollapsed"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wifiIconCollapsed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:src="@drawable/transport_lan"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/btIconCollapsed"
|
||||
app:layout_constraintTop_toBottomOf="@id/chevronViewCollapsed"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btIconCollapsed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:src="@drawable/transport_bt"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/chevronViewCollapsed"
|
||||
tools:checked="true"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:tint="@color/briar_green" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</merge>
|
||||
Reference in New Issue
Block a user