tls-psk: switch layouts in animator by id

This commit is contained in:
Vincent Breitmoser 2017-06-28 23:36:51 +02:00
parent f76a0f47b5
commit 9a37fabb45
3 changed files with 30 additions and 14 deletions

View file

@ -52,7 +52,6 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ViewAnimator;
import com.google.zxing.client.android.Intents;
import org.sufficientlysecure.keychain.R;
@ -67,16 +66,11 @@ import org.sufficientlysecure.keychain.ui.transfer.presenter.TransferPresenter.T
import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.util.Notify.Style;
import org.sufficientlysecure.keychain.ui.widget.ConnectionStatusView;
import org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator;
@RequiresApi(api = VERSION_CODES.LOLLIPOP)
public class TransferFragment extends Fragment implements TransferMvpView {
public static final int VIEW_WAITING = 0;
public static final int VIEW_CONNECTING = 1;
public static final int VIEW_CONNECTED = 2;
public static final int VIEW_RECEIVING = 3;
public static final int VIEW_NO_WIFI = 4;
public static final int REQUEST_CODE_SCAN = 1;
public static final int LOADER_ID = 1;
@ -85,7 +79,7 @@ public class TransferFragment extends Fragment implements TransferMvpView {
private ImageView vQrCodeImage;
private TransferPresenter presenter;
private ViewAnimator vTransferAnimator;
private ToolableViewAnimator vTransferAnimator;
private TextView vConnectionStatusText1;
private TextView vConnectionStatusText2;
private ConnectionStatusView vConnectionStatusView1;
@ -113,7 +107,7 @@ public class TransferFragment extends Fragment implements TransferMvpView {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.transfer_fragment, container, false);
vTransferAnimator = (ViewAnimator) view.findViewById(R.id.transfer_animator);
vTransferAnimator = (ToolableViewAnimator) view.findViewById(R.id.transfer_animator);
vConnectionStatusText1 = (TextView) view.findViewById(R.id.connection_status_1);
vConnectionStatusText2 = (TextView) view.findViewById(R.id.connection_status_2);
@ -203,17 +197,17 @@ public class TransferFragment extends Fragment implements TransferMvpView {
@Override
public void showNotOnWifi() {
vTransferAnimator.setDisplayedChild(VIEW_NO_WIFI);
vTransferAnimator.setDisplayedChildId(R.id.transfer_layout_no_wifi);
}
@Override
public void showWaitingForConnection() {
vTransferAnimator.setDisplayedChild(VIEW_WAITING);
vTransferAnimator.setDisplayedChildId(R.id.transfer_layout_waiting);
}
@Override
public void showEstablishingConnection() {
vTransferAnimator.setDisplayedChild(VIEW_CONNECTING);
vTransferAnimator.setDisplayedChildId(R.id.transfer_layout_connecting);
}
@Override
@ -226,12 +220,12 @@ public class TransferFragment extends Fragment implements TransferMvpView {
vConnectionStatusView1.setConnected(true);
vConnectionStatusView2.setConnected(true);
vTransferAnimator.setDisplayedChild(VIEW_CONNECTED);
vTransferAnimator.setDisplayedChildId(R.id.transfer_layout_connected);
}
@Override
public void showReceivingKeys() {
vTransferAnimator.setDisplayedChild(VIEW_RECEIVING);
vTransferAnimator.setDisplayedChildId(R.id.transfer_layout_passive);
}
@Override

View file

@ -99,4 +99,21 @@ public class ToolableViewAnimator extends ViewAnimator {
setOutAnimation(savedOutAnim);
}
public void setDisplayedChildId(int id) {
if (getDisplayedChildId() == id) {
return;
}
for (int i = 0, count = getChildCount(); i < count; i++) {
if (getChildAt(i).getId() == id) {
setDisplayedChild(i);
return;
}
}
String name = getResources().getResourceEntryName(id);
throw new IllegalArgumentException("No view with ID " + name);
}
public int getDisplayedChildId() {
return getChildAt(getDisplayedChild()).getId();
}
}

View file

@ -13,6 +13,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/transfer_layout_waiting"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="16dp">
@ -92,6 +93,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/transfer_layout_connecting"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="16dp">
@ -116,6 +118,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/transfer_layout_connected"
android:orientation="vertical">
<RelativeLayout
@ -205,6 +208,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/transfer_layout_passive"
android:orientation="vertical">
<RelativeLayout
@ -275,6 +279,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/transfer_layout_no_wifi"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="16dp">