mirror of https://github.com/M66B/FairEmail.git
Local contacts account
This commit is contained in:
parent
91dd224c87
commit
b29c1150a0
|
@ -1646,6 +1646,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
|
||||
private void onManageLocalContacts(Intent intent) {
|
||||
Bundle args = new Bundle();
|
||||
// All accounts
|
||||
args.putBoolean("junk", intent.getBooleanExtra("junk", false));
|
||||
|
||||
FragmentContacts fragment = new FragmentContacts();
|
||||
|
|
|
@ -38,8 +38,9 @@ public interface DaoContact {
|
|||
@Query("SELECT contact.*, account.name AS accountName" +
|
||||
" FROM contact" +
|
||||
" JOIN account ON account.id = contact.account" +
|
||||
" WHERE (:account IS NULL OR contact.account = :account)" +
|
||||
" ORDER BY times_contacted DESC, last_contacted DESC")
|
||||
LiveData<List<TupleContactEx>> liveContacts();
|
||||
LiveData<List<TupleContactEx>> liveContacts(Long account);
|
||||
|
||||
@Query("SELECT email, name, avatar FROM contact" +
|
||||
" WHERE state <> " + EntityContact.STATE_IGNORE +
|
||||
|
|
|
@ -1916,8 +1916,11 @@ public class FragmentCompose extends FragmentBase {
|
|||
}
|
||||
|
||||
private void onMenuManageLocalContacts() {
|
||||
FragmentContacts fragment = new FragmentContacts();
|
||||
fragment.setArguments(new Bundle()); // all accounts
|
||||
|
||||
FragmentTransaction fragmentTransaction = getParentFragmentManager().beginTransaction();
|
||||
fragmentTransaction.replace(R.id.content_frame, new FragmentContacts()).addToBackStack("contacts");
|
||||
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("contacts");
|
||||
fragmentTransaction.commit();
|
||||
}
|
||||
|
||||
|
|
|
@ -75,9 +75,11 @@ public class FragmentContacts extends FragmentBase {
|
|||
private ContentLoadingProgressBar pbWait;
|
||||
private Group grpReady;
|
||||
|
||||
private long account;
|
||||
private Long account = null;
|
||||
private boolean junk = false;
|
||||
private String searching = null;
|
||||
private long selected_account;
|
||||
|
||||
private AdapterContact adapter;
|
||||
|
||||
private static final int REQUEST_ACCOUNT = 1;
|
||||
|
@ -90,7 +92,11 @@ public class FragmentContacts extends FragmentBase {
|
|||
super.onCreate(savedInstanceState);
|
||||
|
||||
Bundle args = getArguments();
|
||||
this.junk = (args != null && args.getBoolean("junk"));
|
||||
if (args == null)
|
||||
args = new Bundle();
|
||||
|
||||
this.account = (args.containsKey("account") ? args.getLong("account") : null);
|
||||
this.junk = args.getBoolean("junk");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -127,6 +133,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
outState.putLong("fair:account", account);
|
||||
outState.putBoolean("fair:junk", junk);
|
||||
outState.putString("fair:searching", searching);
|
||||
outState.putLong("fair:selected_account", selected_account);
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
|
@ -138,12 +145,16 @@ public class FragmentContacts extends FragmentBase {
|
|||
account = savedInstanceState.getLong("fair:account");
|
||||
junk = savedInstanceState.getBoolean("fair:junk");
|
||||
searching = savedInstanceState.getString("fair:searching");
|
||||
selected_account = savedInstanceState.getLong("fair:selected_account");
|
||||
}
|
||||
|
||||
onMenuJunk(junk);
|
||||
adapter.search(searching);
|
||||
|
||||
DB db = DB.getInstance(getContext());
|
||||
db.contact().liveContacts().observe(getViewLifecycleOwner(), new Observer<List<TupleContactEx>>() {
|
||||
final Context context = getContext();
|
||||
DB db = DB.getInstance(context);
|
||||
|
||||
db.contact().liveContacts(account).observe(getViewLifecycleOwner(), new Observer<List<TupleContactEx>>() {
|
||||
@Override
|
||||
public void onChanged(List<TupleContactEx> contacts) {
|
||||
if (contacts == null)
|
||||
|
@ -156,7 +167,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
}
|
||||
});
|
||||
|
||||
Shortcuts.update(getContext(), getViewLifecycleOwner());
|
||||
Shortcuts.update(context, getViewLifecycleOwner());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -292,7 +303,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
}
|
||||
|
||||
private void onAccountSelected(Bundle args) {
|
||||
account = args.getLong("account");
|
||||
selected_account = args.getLong("account");
|
||||
boolean export = args.getBoolean("export");
|
||||
|
||||
final Context context = getContext();
|
||||
|
@ -321,7 +332,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
|
||||
Bundle args = new Bundle();
|
||||
args.putParcelable("uri", uri);
|
||||
args.putLong("account", account);
|
||||
args.putLong("account", selected_account);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
|
@ -390,7 +401,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
private void handleExport(Intent data) {
|
||||
Bundle args = new Bundle();
|
||||
args.putParcelable("uri", data.getData());
|
||||
args.putLong("account", account);
|
||||
args.putLong("account", selected_account);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
|
@ -401,6 +412,7 @@ public class FragmentContacts extends FragmentBase {
|
|||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
Uri uri = args.getParcelable("uri");
|
||||
long account = args.getLong("account");
|
||||
|
||||
if (uri == null)
|
||||
throw new FileNotFoundException();
|
||||
|
|
|
@ -236,11 +236,13 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("account", account);
|
||||
args.putLong("folder", folder);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
long aid = args.getLong("account");
|
||||
long fid = args.getLong("folder");
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
|
@ -266,7 +268,7 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
|||
}
|
||||
}
|
||||
|
||||
int count = db.contact().deleteContact(account, EntityContact.TYPE_JUNK);
|
||||
int count = db.contact().deleteContact(aid, EntityContact.TYPE_JUNK);
|
||||
EntityLog.log(context, "Deleted junk contacts=" + count);
|
||||
|
||||
return null;
|
||||
|
@ -313,6 +315,7 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("account", account);
|
||||
args.putBoolean("junk", true);
|
||||
|
||||
FragmentContacts fragment = new FragmentContacts();
|
||||
|
|
Loading…
Reference in New Issue