misp-bump/app/src/main/java/de/overview/wg/its/mispauth/activity/SyncActivity.java

171 lines
4.4 KiB
Java

package de.overview.wg.its.mispauth.activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import de.overview.wg.its.mispauth.R;
import de.overview.wg.its.mispauth.auxiliary.OrganisationDialog;
import de.overview.wg.its.mispauth.auxiliary.PreferenceManager;
import de.overview.wg.its.mispauth.fragment.ScanQrFragment;
import de.overview.wg.its.mispauth.fragment.ShowQrFragment;
import de.overview.wg.its.mispauth.fragment.SyncStartFragment;
import de.overview.wg.its.mispauth.fragment.UploadFragment;
import de.overview.wg.its.mispauth.model.Organisation;
import org.json.JSONException;
import org.json.JSONObject;
public class SyncActivity extends AppCompatActivity {
private static final String TAG = "DEBUG";
private PreferenceManager preferenceManager;
private Button prevButton, nextButton;
private int partnerChoice = -1;
private String scannedQrString = "";
private int currentFragmentPosition = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sync);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
preferenceManager = PreferenceManager.Instance(this);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.backButton);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragment(currentFragmentPosition + 1, true);
}
});
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragment(currentFragmentPosition - 1, true);
}
});
getFragment(0, false);
}
private void getFragment(int position, boolean animate) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (animate) {
if (position > currentFragmentPosition) {
transaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right);
} else {
transaction.setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left);
}
}
currentFragmentPosition = position;
switch (position) {
case 0:
prevButton.setEnabled(false);
nextButton.setEnabled(false);
transaction.replace(R.id.fragmentContainer, new SyncStartFragment());
break;
case 1:
prevButton.setEnabled(true);
if (partnerChoice == 1) {
nextButton.setEnabled(false);
transaction.replace(R.id.fragmentContainer, new ScanQrFragment(), "FRAGMENT_SCAN");
} else {
nextButton.setEnabled(true);
transaction.replace(R.id.fragmentContainer, new ShowQrFragment(), "FRAGMENT_SHOW");
}
break;
case 2:
if (partnerChoice == 1) {
prevButton.setEnabled(true);
nextButton.setEnabled(true);
transaction.replace(R.id.fragmentContainer, new ShowQrFragment(), "FRAGMENT_SHOW");
} else {
prevButton.setEnabled(true);
nextButton.setEnabled(false);
transaction.replace(R.id.fragmentContainer, new ScanQrFragment(), "FRAGMENT_SCAN");
}
break;
case 3:
nextButton.setText("Finish");
nextButton.setEnabled(false);
transaction.replace(R.id.fragmentContainer, new UploadFragment());
break;
default:
break;
}
transaction.commit();
}
public void setPartnerChoice(int choice) {
partnerChoice = choice;
if (choice != -1) {
nextButton.setEnabled(true);
} else {
nextButton.setEnabled(false);
}
}
public void setScannedQr(String qr) {
final FragmentManager manager = getSupportFragmentManager();
final ScanQrFragment scanFragment = (ScanQrFragment) manager.findFragmentByTag("FRAGMENT_SCAN");
scanFragment.setReadQr(false);
try {
OrganisationDialog d = new OrganisationDialog(this);
Organisation o = new Organisation();
o.fromJSON(new JSONObject(qr));
d.createDialog(o);
} catch (JSONException e) {
e.printStackTrace();
}
}
public void uploadReady() {
nextButton.setEnabled(true);
}
}