mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-19 14:19:53 +01:00
Dismiss dialogs when screen is rotated. Bug #52.
This commit is contained in:
@@ -14,12 +14,12 @@ import org.briarproject.api.android.DatabaseUiExecutor;
|
|||||||
import org.briarproject.api.db.DatabaseConfig;
|
import org.briarproject.api.db.DatabaseConfig;
|
||||||
import org.briarproject.api.lifecycle.LifecycleManager;
|
import org.briarproject.api.lifecycle.LifecycleManager;
|
||||||
|
|
||||||
import roboguice.activity.RoboFragmentActivity;
|
import roboguice.activity.RoboActivity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
public class BriarActivity extends RoboFragmentActivity {
|
public class BriarActivity extends RoboActivity {
|
||||||
|
|
||||||
public static final int REQUEST_PASSWORD = 1;
|
public static final int REQUEST_PASSWORD = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -12,12 +12,11 @@ import org.briarproject.api.ContactId;
|
|||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.content.DialogInterface.OnMultiChoiceClickListener;
|
||||||
import android.support.v4.app.DialogFragment;
|
|
||||||
|
|
||||||
public class SelectContactsDialog extends DialogFragment
|
public class SelectContactsDialog implements OnMultiChoiceClickListener {
|
||||||
implements DialogInterface.OnMultiChoiceClickListener {
|
|
||||||
|
|
||||||
private Listener listener = null;
|
private Listener listener = null;
|
||||||
private List<Contact> contacts = null;
|
private List<Contact> contacts = null;
|
||||||
@@ -35,10 +34,10 @@ implements DialogInterface.OnMultiChoiceClickListener {
|
|||||||
this.selected = new HashSet<ContactId>(selected);
|
this.selected = new HashSet<ContactId>(selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public Dialog build(Context ctx) {
|
||||||
public Dialog onCreateDialog(Bundle state) {
|
if(listener == null || contacts == null || selected == null)
|
||||||
if(listener == null || contacts == null) return null;
|
throw new IllegalStateException();
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
|
||||||
int size = contacts.size();
|
int size = contacts.size();
|
||||||
String[] names = new String[size];
|
String[] names = new String[size];
|
||||||
boolean[] checked = new boolean[size];
|
boolean[] checked = new boolean[size];
|
||||||
|
|||||||
@@ -29,8 +29,6 @@ import org.briarproject.api.messaging.GroupId;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
@@ -52,8 +50,6 @@ SelectContactsDialog.Listener {
|
|||||||
private RadioButton visibleToAll = null, visibleToSome = null;
|
private RadioButton visibleToAll = null, visibleToSome = null;
|
||||||
private Button doneButton = null;
|
private Button doneButton = null;
|
||||||
private ProgressBar progress = null;
|
private ProgressBar progress = null;
|
||||||
private NoContactsDialog noContactsDialog = null;
|
|
||||||
private SelectContactsDialog selectContactsDialog = null;
|
|
||||||
|
|
||||||
// Fields that are accessed from background threads must be volatile
|
// Fields that are accessed from background threads must be volatile
|
||||||
@Inject private volatile DatabaseComponent db;
|
@Inject private volatile DatabaseComponent db;
|
||||||
@@ -128,17 +124,6 @@ SelectContactsDialog.Listener {
|
|||||||
layout.addView(progress);
|
layout.addView(progress);
|
||||||
|
|
||||||
setContentView(layout);
|
setContentView(layout);
|
||||||
|
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
|
||||||
Fragment f = fm.findFragmentByTag("NoContactsDialog");
|
|
||||||
if(f == null) noContactsDialog = new NoContactsDialog();
|
|
||||||
else noContactsDialog = (NoContactsDialog) f;
|
|
||||||
noContactsDialog.setListener(this);
|
|
||||||
|
|
||||||
f = fm.findFragmentByTag("SelectContactsDialog");
|
|
||||||
if(f == null) selectContactsDialog = new SelectContactsDialog();
|
|
||||||
else selectContactsDialog = (SelectContactsDialog) f;
|
|
||||||
selectContactsDialog.setListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
@@ -182,13 +167,16 @@ SelectContactsDialog.Listener {
|
|||||||
private void displayContacts() {
|
private void displayContacts() {
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
|
||||||
if(contacts.isEmpty()) {
|
if(contacts.isEmpty()) {
|
||||||
noContactsDialog.show(fm, "NoContactsDialog");
|
NoContactsDialog builder = new NoContactsDialog();
|
||||||
|
builder.setListener(ConfigureGroupActivity.this);
|
||||||
|
builder.build(ConfigureGroupActivity.this).show();
|
||||||
} else {
|
} else {
|
||||||
selectContactsDialog.setContacts(contacts);
|
SelectContactsDialog builder = new SelectContactsDialog();
|
||||||
selectContactsDialog.setSelected(selected);
|
builder.setListener(ConfigureGroupActivity.this);
|
||||||
selectContactsDialog.show(fm, "SelectContactsDialog");
|
builder.setContacts(contacts);
|
||||||
|
builder.setSelected(selected);
|
||||||
|
builder.build(ConfigureGroupActivity.this).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ import org.briarproject.util.StringUtils;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
@@ -49,8 +47,8 @@ import android.widget.ProgressBar;
|
|||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
|
||||||
import android.widget.TextView.OnEditorActionListener;
|
import android.widget.TextView.OnEditorActionListener;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class CreateGroupActivity extends BriarActivity
|
public class CreateGroupActivity extends BriarActivity
|
||||||
implements OnEditorActionListener, OnClickListener, NoContactsDialog.Listener,
|
implements OnEditorActionListener, OnClickListener, NoContactsDialog.Listener,
|
||||||
@@ -64,8 +62,6 @@ SelectContactsDialog.Listener {
|
|||||||
private RadioButton visibleToAll = null, visibleToSome = null;
|
private RadioButton visibleToAll = null, visibleToSome = null;
|
||||||
private Button createButton = null;
|
private Button createButton = null;
|
||||||
private ProgressBar progress = null;
|
private ProgressBar progress = null;
|
||||||
private NoContactsDialog noContactsDialog = null;
|
|
||||||
private SelectContactsDialog selectContactsDialog = null;
|
|
||||||
|
|
||||||
// Fields that are accessed from background threads must be volatile
|
// Fields that are accessed from background threads must be volatile
|
||||||
@Inject private volatile GroupFactory groupFactory;
|
@Inject private volatile GroupFactory groupFactory;
|
||||||
@@ -131,17 +127,6 @@ SelectContactsDialog.Listener {
|
|||||||
layout.addView(progress);
|
layout.addView(progress);
|
||||||
|
|
||||||
setContentView(layout);
|
setContentView(layout);
|
||||||
|
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
|
||||||
Fragment f = fm.findFragmentByTag("NoContactsDialog");
|
|
||||||
if(f == null) noContactsDialog = new NoContactsDialog();
|
|
||||||
else noContactsDialog = (NoContactsDialog) f;
|
|
||||||
noContactsDialog.setListener(this);
|
|
||||||
|
|
||||||
f = fm.findFragmentByTag("SelectContactsDialog");
|
|
||||||
if(f == null) selectContactsDialog = new SelectContactsDialog();
|
|
||||||
else selectContactsDialog = (SelectContactsDialog) f;
|
|
||||||
selectContactsDialog.setListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableOrDisableCreateButton() {
|
private void enableOrDisableCreateButton() {
|
||||||
@@ -204,13 +189,16 @@ SelectContactsDialog.Listener {
|
|||||||
private void displayContacts() {
|
private void displayContacts() {
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
|
||||||
if(contacts.isEmpty()) {
|
if(contacts.isEmpty()) {
|
||||||
noContactsDialog.show(fm, "NoContactsDialog");
|
NoContactsDialog builder = new NoContactsDialog();
|
||||||
|
builder.setListener(CreateGroupActivity.this);
|
||||||
|
builder.build(CreateGroupActivity.this).show();
|
||||||
} else {
|
} else {
|
||||||
selectContactsDialog.setContacts(contacts);
|
SelectContactsDialog builder = new SelectContactsDialog();
|
||||||
selectContactsDialog.setSelected(selected);
|
builder.setListener(CreateGroupActivity.this);
|
||||||
selectContactsDialog.show(fm, "SelectContactsDialog");
|
builder.setContacts(contacts);
|
||||||
|
builder.setSelected(selected);
|
||||||
|
builder.build(CreateGroupActivity.this).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,11 +4,10 @@ import org.briarproject.R;
|
|||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.v4.app.DialogFragment;
|
|
||||||
|
|
||||||
public class NoContactsDialog extends DialogFragment {
|
public class NoContactsDialog {
|
||||||
|
|
||||||
private Listener listener = null;
|
private Listener listener = null;
|
||||||
|
|
||||||
@@ -16,9 +15,9 @@ public class NoContactsDialog extends DialogFragment {
|
|||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public Dialog build(Context ctx) {
|
||||||
public Dialog onCreateDialog(Bundle state) {
|
if(listener == null) throw new IllegalStateException();
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
|
||||||
builder.setMessage(R.string.no_contacts_prompt);
|
builder.setMessage(R.string.no_contacts_prompt);
|
||||||
builder.setPositiveButton(R.string.add_button,
|
builder.setPositiveButton(R.string.add_button,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
|
|||||||
Reference in New Issue
Block a user