mirror of https://github.com/M66B/FairEmail.git
Compose from primary account folders
This commit is contained in:
parent
4c2d80d21b
commit
407e66ebaa
|
@ -329,6 +329,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||||
protected void onExecuted(Bundle args, EntityAccount account) {
|
protected void onExecuted(Bundle args, EntityAccount account) {
|
||||||
Bundle aargs = new Bundle();
|
Bundle aargs = new Bundle();
|
||||||
aargs.putLong("account", account == null ? -1 : account.id);
|
aargs.putLong("account", account == null ? -1 : account.id);
|
||||||
|
aargs.putBoolean("primary", true);
|
||||||
FragmentBase fragment = new FragmentFolders();
|
FragmentBase fragment = new FragmentFolders();
|
||||||
fragment.setArguments(aargs);
|
fragment.setArguments(aargs);
|
||||||
init(fragment);
|
init(fragment);
|
||||||
|
|
|
@ -73,13 +73,15 @@ public class FragmentFolders extends FragmentBase {
|
||||||
private Group grpHintActions;
|
private Group grpHintActions;
|
||||||
private Group grpHintSync;
|
private Group grpHintSync;
|
||||||
private Group grpReady;
|
private Group grpReady;
|
||||||
private FloatingActionButton fab;
|
private FloatingActionButton fabAdd;
|
||||||
|
private FloatingActionButton fabCompose;
|
||||||
private FloatingActionButton fabError;
|
private FloatingActionButton fabError;
|
||||||
|
|
||||||
private boolean cards;
|
private boolean cards;
|
||||||
private boolean compact;
|
private boolean compact;
|
||||||
|
|
||||||
private long account;
|
private long account;
|
||||||
|
private boolean primary;
|
||||||
private boolean show_hidden = false;
|
private boolean show_hidden = false;
|
||||||
private String searching = null;
|
private String searching = null;
|
||||||
private AdapterFolder adapter;
|
private AdapterFolder adapter;
|
||||||
|
@ -97,6 +99,7 @@ public class FragmentFolders extends FragmentBase {
|
||||||
// Get arguments
|
// Get arguments
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
account = args.getLong("account", -1);
|
account = args.getLong("account", -1);
|
||||||
|
primary = args.getBoolean("primary");
|
||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||||
cards = prefs.getBoolean("cards", true);
|
cards = prefs.getBoolean("cards", true);
|
||||||
|
@ -121,7 +124,8 @@ public class FragmentFolders extends FragmentBase {
|
||||||
grpHintActions = view.findViewById(R.id.grpHintActions);
|
grpHintActions = view.findViewById(R.id.grpHintActions);
|
||||||
grpHintSync = view.findViewById(R.id.grpHintSync);
|
grpHintSync = view.findViewById(R.id.grpHintSync);
|
||||||
grpReady = view.findViewById(R.id.grpReady);
|
grpReady = view.findViewById(R.id.grpReady);
|
||||||
fab = view.findViewById(R.id.fab);
|
fabAdd = view.findViewById(R.id.fabAdd);
|
||||||
|
fabCompose = view.findViewById(R.id.fabCompose);
|
||||||
fabError = view.findViewById(R.id.fabError);
|
fabError = view.findViewById(R.id.fabError);
|
||||||
|
|
||||||
// Wire controls
|
// Wire controls
|
||||||
|
@ -175,23 +179,55 @@ public class FragmentFolders extends FragmentBase {
|
||||||
adapter = new AdapterFolder(this, account, compact, show_hidden, null);
|
adapter = new AdapterFolder(this, account, compact, show_hidden, null);
|
||||||
rvFolder.setAdapter(adapter);
|
rvFolder.setAdapter(adapter);
|
||||||
|
|
||||||
fab.setOnClickListener(new View.OnClickListener() {
|
fabAdd.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
args.putLong("account", account);
|
||||||
|
FragmentFolder fragment = new FragmentFolder();
|
||||||
|
fragment.setArguments(args);
|
||||||
|
FragmentTransaction fragmentTransaction = getParentFragmentManager().beginTransaction();
|
||||||
|
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder");
|
||||||
|
fragmentTransaction.commit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
fabCompose.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (account < 0) {
|
startActivity(new Intent(getContext(), ActivityCompose.class)
|
||||||
startActivity(new Intent(getContext(), ActivityCompose.class)
|
.putExtra("action", "new")
|
||||||
.putExtra("action", "new")
|
.putExtra("account", account)
|
||||||
.putExtra("account", account)
|
);
|
||||||
);
|
}
|
||||||
} else {
|
});
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putLong("account", account);
|
fabCompose.setOnLongClickListener(new View.OnLongClickListener() {
|
||||||
FragmentFolder fragment = new FragmentFolder();
|
@Override
|
||||||
fragment.setArguments(args);
|
public boolean onLongClick(View v) {
|
||||||
FragmentTransaction fragmentTransaction = getParentFragmentManager().beginTransaction();
|
new SimpleTask<EntityFolder>() {
|
||||||
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder");
|
@Override
|
||||||
fragmentTransaction.commit();
|
protected EntityFolder onExecute(Context context, Bundle args) {
|
||||||
}
|
return DB.getInstance(context).folder().getPrimaryDrafts();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onExecuted(Bundle args, EntityFolder drafts) {
|
||||||
|
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
||||||
|
lbm.sendBroadcast(
|
||||||
|
new Intent(ActivityView.ACTION_VIEW_MESSAGES)
|
||||||
|
.putExtra("account", drafts.account)
|
||||||
|
.putExtra("folder", drafts.id)
|
||||||
|
.putExtra("type", drafts.type));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onException(Bundle args, Throwable ex) {
|
||||||
|
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||||
|
}
|
||||||
|
}.execute(FragmentFolders.this, new Bundle(), "folders:drafts");
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -204,36 +240,6 @@ public class FragmentFolders extends FragmentBase {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (account < 0)
|
|
||||||
fab.setOnLongClickListener(new View.OnLongClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onLongClick(View v) {
|
|
||||||
new SimpleTask<EntityFolder>() {
|
|
||||||
@Override
|
|
||||||
protected EntityFolder onExecute(Context context, Bundle args) {
|
|
||||||
return DB.getInstance(context).folder().getPrimaryDrafts();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onExecuted(Bundle args, EntityFolder drafts) {
|
|
||||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
|
||||||
lbm.sendBroadcast(
|
|
||||||
new Intent(ActivityView.ACTION_VIEW_MESSAGES)
|
|
||||||
.putExtra("account", drafts.account)
|
|
||||||
.putExtra("folder", drafts.id)
|
|
||||||
.putExtra("type", drafts.type));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onException(Bundle args, Throwable ex) {
|
|
||||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
|
||||||
}
|
|
||||||
}.execute(FragmentFolders.this, new Bundle(), "folders:drafts");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
|
|
||||||
if (cards && !Helper.isDarkTheme(getContext()))
|
if (cards && !Helper.isDarkTheme(getContext()))
|
||||||
|
@ -241,7 +247,8 @@ public class FragmentFolders extends FragmentBase {
|
||||||
|
|
||||||
grpReady.setVisibility(View.GONE);
|
grpReady.setVisibility(View.GONE);
|
||||||
pbWait.setVisibility(View.VISIBLE);
|
pbWait.setVisibility(View.VISIBLE);
|
||||||
fab.hide();
|
fabAdd.hide();
|
||||||
|
fabCompose.hide();
|
||||||
fabError.hide();
|
fabError.hide();
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
|
@ -267,12 +274,13 @@ public class FragmentFolders extends FragmentBase {
|
||||||
|
|
||||||
DB db = DB.getInstance(getContext());
|
DB db = DB.getInstance(getContext());
|
||||||
|
|
||||||
|
if (account < 0 || primary)
|
||||||
|
fabCompose.show();
|
||||||
|
|
||||||
// Observe account
|
// Observe account
|
||||||
if (account < 0) {
|
if (account < 0)
|
||||||
setSubtitle(R.string.title_folders_unified);
|
setSubtitle(R.string.title_folders_unified);
|
||||||
fab.setImageResource(R.drawable.baseline_edit_24);
|
else
|
||||||
fab.show();
|
|
||||||
} else
|
|
||||||
db.account().liveAccount(account).observe(getViewLifecycleOwner(), new Observer<EntityAccount>() {
|
db.account().liveAccount(account).observe(getViewLifecycleOwner(), new Observer<EntityAccount>() {
|
||||||
@Override
|
@Override
|
||||||
public void onChanged(@Nullable EntityAccount account) {
|
public void onChanged(@Nullable EntityAccount account) {
|
||||||
|
@ -288,10 +296,12 @@ public class FragmentFolders extends FragmentBase {
|
||||||
else
|
else
|
||||||
fabError.hide();
|
fabError.hide();
|
||||||
|
|
||||||
if (account == null || account.protocol != EntityAccount.TYPE_IMAP)
|
if (!primary) {
|
||||||
fab.hide();
|
if (account == null || account.protocol != EntityAccount.TYPE_IMAP)
|
||||||
else
|
fabAdd.hide();
|
||||||
fab.show();
|
else
|
||||||
|
fabAdd.show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/fab"
|
android:id="@+id/fabAdd"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end|bottom"
|
android:layout_gravity="end|bottom"
|
||||||
|
@ -136,6 +136,18 @@
|
||||||
app:backgroundTint="?attr/colorFabBackground"
|
app:backgroundTint="?attr/colorFabBackground"
|
||||||
app:srcCompat="@drawable/baseline_create_new_folder_24" />
|
app:srcCompat="@drawable/baseline_create_new_folder_24" />
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/fabCompose"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="end|bottom"
|
||||||
|
android:layout_margin="@dimen/fab_padding"
|
||||||
|
android:contentDescription="@string/title_compose"
|
||||||
|
android:tint="?attr/colorFabForeground"
|
||||||
|
android:tooltipText="@string/title_compose"
|
||||||
|
app:backgroundTint="?attr/colorFabBackground"
|
||||||
|
app:srcCompat="@drawable/baseline_edit_24" />
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/fabError"
|
android:id="@+id/fabError"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
Loading…
Reference in New Issue