mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-25 15:32:52 +00:00
By default list subscribed folders only
This commit is contained in:
parent
84b06ef4e4
commit
8965d69b99
8 changed files with 49 additions and 74 deletions
|
@ -190,7 +190,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
|||
}
|
||||
|
||||
private void bindTo(final TupleFolderEx folder) {
|
||||
view.setVisibility(folder.isHidden(context) && !show_hidden ? View.GONE : View.VISIBLE);
|
||||
view.setVisibility(folder.hide && !show_hidden ? View.GONE : View.VISIBLE);
|
||||
view.setActivated(folder.tbc != null || folder.tbd != null);
|
||||
vwHidden.setAlpha(folder.hide ? Helper.LOW_LIGHT : 0.0f);
|
||||
|
||||
|
|
|
@ -3194,7 +3194,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
List<EntityFolder> targets = new ArrayList<>();
|
||||
for (EntityFolder folder : folders)
|
||||
if (!folder.isHidden(context) &&
|
||||
if (!folder.hide &&
|
||||
!folder.id.equals(message.folder) &&
|
||||
(copy ||
|
||||
(!EntityFolder.ARCHIVE.equals(folder.type) &&
|
||||
|
|
|
@ -772,7 +772,7 @@ class Core {
|
|||
DB db = DB.getInstance(context);
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean subscribed_only = prefs.getBoolean("subscribed_only", false);
|
||||
boolean subscribed_only = prefs.getBoolean("subscribed_only", true);
|
||||
|
||||
Log.i("Start sync folders account=" + account.name);
|
||||
|
||||
|
@ -782,7 +782,14 @@ class Core {
|
|||
EntityLog.log(context, account.name + " folder separator=" + separator);
|
||||
|
||||
// Get remote folders
|
||||
Folder[] ifolders = defaultFolder.list("*");
|
||||
Folder[] ifolders = (subscribed_only
|
||||
? defaultFolder.listSubscribed("*")
|
||||
: defaultFolder.list("*"));
|
||||
if (subscribed_only && ifolders.length == 0) {
|
||||
Log.i("No subscribed folders");
|
||||
ifolders = defaultFolder.list("*");
|
||||
}
|
||||
|
||||
Log.i("Remote folder count=" + ifolders.length + " separator=" + separator);
|
||||
|
||||
// Get folder names
|
||||
|
@ -829,46 +836,41 @@ class Core {
|
|||
|
||||
folder = db.folder().getFolderByName(account.id, fullName);
|
||||
if (folder == null) {
|
||||
if (!subscribed_only || subscribed) {
|
||||
folder = new EntityFolder();
|
||||
folder.account = account.id;
|
||||
folder.name = fullName;
|
||||
folder.display = display;
|
||||
folder.type = (EntityFolder.SYSTEM.equals(type) ? type : EntityFolder.USER);
|
||||
folder.synchronize = false;
|
||||
folder.subscribed = subscribed;
|
||||
folder.poll = ("imap.gmail.com".equals(account.host));
|
||||
folder.sync_days = EntityFolder.DEFAULT_SYNC;
|
||||
folder.keep_days = EntityFolder.DEFAULT_KEEP;
|
||||
folder.id = db.folder().insertFolder(folder);
|
||||
Log.i(folder.name + " added type=" + folder.type);
|
||||
}
|
||||
folder = new EntityFolder();
|
||||
folder.account = account.id;
|
||||
folder.name = fullName;
|
||||
folder.display = display;
|
||||
folder.type = (EntityFolder.SYSTEM.equals(type) ? type : EntityFolder.USER);
|
||||
folder.synchronize = false;
|
||||
folder.subscribed = subscribed;
|
||||
folder.poll = ("imap.gmail.com".equals(account.host));
|
||||
folder.sync_days = EntityFolder.DEFAULT_SYNC;
|
||||
folder.keep_days = EntityFolder.DEFAULT_KEEP;
|
||||
folder.id = db.folder().insertFolder(folder);
|
||||
Log.i(folder.name + " added type=" + folder.type);
|
||||
} else {
|
||||
if (!subscribed_only || subscribed) {
|
||||
Log.i(folder.name + " exists type=" + folder.type);
|
||||
Log.i(folder.name + " exists type=" + folder.type);
|
||||
|
||||
if (folder.subscribed == null || !folder.subscribed.equals(subscribed))
|
||||
db.folder().setFolderSubscribed(folder.id, subscribed);
|
||||
if (folder.subscribed == null || !folder.subscribed.equals(subscribed))
|
||||
db.folder().setFolderSubscribed(folder.id, subscribed);
|
||||
|
||||
if (folder.display == null && display != null) {
|
||||
db.folder().setFolderDisplay(folder.id, display);
|
||||
EntityLog.log(context, account.name + ":" + folder.name +
|
||||
" removed prefix display=" + display + " separator=" + separator);
|
||||
}
|
||||
if (folder.display == null && display != null) {
|
||||
db.folder().setFolderDisplay(folder.id, display);
|
||||
EntityLog.log(context, account.name + ":" + folder.name +
|
||||
" removed prefix display=" + display + " separator=" + separator);
|
||||
}
|
||||
|
||||
// Compatibility
|
||||
if ("Inbox_sub".equals(folder.type))
|
||||
db.folder().setFolderType(folder.id, EntityFolder.USER);
|
||||
else if (EntityFolder.USER.equals(folder.type) && EntityFolder.SYSTEM.equals(type))
|
||||
// Compatibility
|
||||
if ("Inbox_sub".equals(folder.type))
|
||||
db.folder().setFolderType(folder.id, EntityFolder.USER);
|
||||
else if (EntityFolder.USER.equals(folder.type) && EntityFolder.SYSTEM.equals(type))
|
||||
db.folder().setFolderType(folder.id, type);
|
||||
else if (EntityFolder.SYSTEM.equals(folder.type) && EntityFolder.USER.equals(type))
|
||||
db.folder().setFolderType(folder.id, type);
|
||||
else if (EntityFolder.INBOX.equals(type) && !EntityFolder.INBOX.equals(folder.type)) {
|
||||
if (db.folder().getFolderByType(folder.account, EntityFolder.INBOX) == null)
|
||||
db.folder().setFolderType(folder.id, type);
|
||||
else if (EntityFolder.SYSTEM.equals(folder.type) && EntityFolder.USER.equals(type))
|
||||
db.folder().setFolderType(folder.id, type);
|
||||
else if (EntityFolder.INBOX.equals(type) && !EntityFolder.INBOX.equals(folder.type)) {
|
||||
if (db.folder().getFolderByType(folder.account, EntityFolder.INBOX) == null)
|
||||
db.folder().setFolderType(folder.id, type);
|
||||
}
|
||||
} else
|
||||
db.folder().deleteFolder(folder.id);
|
||||
}
|
||||
}
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
|
@ -876,13 +878,11 @@ class Core {
|
|||
Log.i("End sync folder");
|
||||
}
|
||||
|
||||
if (!subscribed_only || subscribed) {
|
||||
nameFolder.put(folder.name, folder);
|
||||
String parentName = folder.getParentName(separator);
|
||||
if (!parentFolders.containsKey(parentName))
|
||||
parentFolders.put(parentName, new ArrayList<EntityFolder>());
|
||||
parentFolders.get(parentName).add(folder);
|
||||
}
|
||||
nameFolder.put(folder.name, folder);
|
||||
String parentName = folder.getParentName(separator);
|
||||
if (!parentFolders.containsKey(parentName))
|
||||
parentFolders.put(parentName, new ArrayList<EntityFolder>());
|
||||
parentFolders.get(parentName).add(folder);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,10 +20,8 @@ package eu.faircode.email;
|
|||
*/
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.ForeignKey;
|
||||
import androidx.room.Index;
|
||||
|
@ -216,16 +214,6 @@ public class EntityFolder extends EntityOrder implements Serializable {
|
|||
return R.drawable.baseline_folder_24;
|
||||
}
|
||||
|
||||
boolean isHidden(Context context) {
|
||||
if (hide)
|
||||
return true;
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean subscriptions = prefs.getBoolean("subscriptions", false);
|
||||
|
||||
return (subscriptions && subscribed != null && !subscribed);
|
||||
}
|
||||
|
||||
String getDisplayName(Context context) {
|
||||
return (display == null ? Helper.localizeFolderName(context, name) : display);
|
||||
}
|
||||
|
|
|
@ -1392,7 +1392,7 @@ public class FragmentMessages extends FragmentBase {
|
|||
List<EntityFolder> targets = new ArrayList<>();
|
||||
List<EntityFolder> folders = db.folder().getFolders(account.id);
|
||||
for (EntityFolder target : folders)
|
||||
if (!target.isHidden(context) &&
|
||||
if (!target.hide &&
|
||||
!EntityFolder.ARCHIVE.equals(target.type) &&
|
||||
!EntityFolder.TRASH.equals(target.type) &&
|
||||
!EntityFolder.JUNK.equals(target.type) &&
|
||||
|
|
|
@ -252,7 +252,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
|
|||
|
||||
swBadge.setChecked(prefs.getBoolean("badge", true));
|
||||
swSubscriptions.setChecked(prefs.getBoolean("subscriptions", false));
|
||||
swSubscribedOnly.setChecked(prefs.getBoolean("subscribed_only", false));
|
||||
swSubscribedOnly.setChecked(prefs.getBoolean("subscribed_only", true));
|
||||
swEnglish.setChecked(prefs.getBoolean("english", false));
|
||||
swAuthentication.setChecked(prefs.getBoolean("authentication", false));
|
||||
swParanoid.setChecked(prefs.getBoolean("paranoid", true));
|
||||
|
|
|
@ -49,18 +49,6 @@
|
|||
app:layout_constraintTop_toBottomOf="@id/tvBadgeHint"
|
||||
app:switchPadding="12dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSubscriptionsHint"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="48dp"
|
||||
android:text="@string/title_advanced_subscriptions_hint"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swSubscriptions" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSubscriptionPro"
|
||||
android:layout_width="0dp"
|
||||
|
@ -71,7 +59,7 @@
|
|||
android:textStyle="italic"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvSubscriptionsHint" />
|
||||
app:layout_constraintTop_toBottomOf="@id/swSubscriptions" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swSubscribedOnly"
|
||||
|
|
|
@ -243,7 +243,6 @@
|
|||
<string name="title_advanced_threading_hint">Group messages related to each other</string>
|
||||
<string name="title_advanced_name_email_hint">When disabled only names will be shown when available</string>
|
||||
<string name="title_advanced_flags_hint">Note that starred messages will always be kept locally</string>
|
||||
<string name="title_advanced_subscriptions_hint">Folders not subscribed to will be hidden</string>
|
||||
<string name="title_advanced_preview_hint">Only available when message text was downloaded</string>
|
||||
|
||||
<string name="title_advanced_autoexpand_hint">Automatically open message when there is just one message or just one unread message in a conversation</string>
|
||||
|
|
Loading…
Reference in a new issue