mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-04 11:54:10 +01:00
Show if folder read only
This commit is contained in:
1741
app/schemas/eu.faircode.email.DB/77.json
Normal file
1741
app/schemas/eu.faircode.email.DB/77.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -89,6 +89,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
private View view;
|
||||
private View vwColor;
|
||||
private ImageView ivState;
|
||||
private ImageView ivReadOnly;
|
||||
private View vwLevel;
|
||||
private ImageView ivExpander;
|
||||
private ImageView ivNotify;
|
||||
@@ -122,6 +123,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
view = itemView.findViewById(R.id.clItem);
|
||||
vwColor = itemView.findViewById(R.id.vwColor);
|
||||
ivState = itemView.findViewById(R.id.ivState);
|
||||
ivReadOnly = itemView.findViewById(R.id.ivReadOnly);
|
||||
vwLevel = itemView.findViewById(R.id.vwLevel);
|
||||
ivExpander = itemView.findViewById(R.id.ivExpander);
|
||||
ivNotify = itemView.findViewById(R.id.ivNotify);
|
||||
@@ -222,6 +224,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
folder.synchronize || folder.state != null || folder.sync_state != null
|
||||
? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
ivReadOnly.setVisibility(folder.read_only ? View.VISIBLE : View.GONE);
|
||||
|
||||
ViewGroup.LayoutParams lp = vwLevel.getLayoutParams();
|
||||
lp.width = (account < 0 || !collapsable ? 1 : level) * dp12;
|
||||
vwLevel.setLayoutParams(lp);
|
||||
|
||||
@@ -51,7 +51,7 @@ import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory;
|
||||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 76,
|
||||
version = 77,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
@@ -780,6 +780,13 @@ public abstract class DB extends RoomDatabase {
|
||||
db.execSQL("ALTER TABLE `folder` ADD COLUMN `order` INTEGER");
|
||||
}
|
||||
})
|
||||
.addMigrations(new Migration(76, 77) {
|
||||
@Override
|
||||
public void migrate(SupportSQLiteDatabase db) {
|
||||
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
||||
db.execSQL("ALTER TABLE `folder` ADD COLUMN `read_only` INTEGER NOT NULL DEFAULT 0");
|
||||
}
|
||||
})
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -222,6 +222,9 @@ public interface DaoFolder {
|
||||
@Query("UPDATE folder SET last_sync = :last_sync WHERE id = :id")
|
||||
int setFolderSync(long id, long last_sync);
|
||||
|
||||
@Query("UPDATE folder SET read_only = :read_only WHERE id = :id")
|
||||
int setFolderReadOnly(long id, boolean read_only);
|
||||
|
||||
@Query("UPDATE folder SET `order` = NULL")
|
||||
int resetFolderOrder();
|
||||
|
||||
|
||||
@@ -105,6 +105,8 @@ public class EntityFolder implements Serializable {
|
||||
public Boolean tbd; // to be deleted
|
||||
public String state;
|
||||
public String sync_state;
|
||||
@NonNull
|
||||
public Boolean read_only = false;
|
||||
public String error;
|
||||
public Long last_sync;
|
||||
|
||||
|
||||
@@ -665,10 +665,16 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
|
||||
final IMAPFolder ifolder = (IMAPFolder) istore.getFolder(folder.name);
|
||||
try {
|
||||
//if ("Postausgang".equals(folder.name))
|
||||
// throw new ReadOnlyFolderException(ifolder);
|
||||
ifolder.open(Folder.READ_WRITE);
|
||||
db.folder().setFolderReadOnly(folder.id, false);
|
||||
} catch (ReadOnlyFolderException ex) {
|
||||
Log.w(folder.name + " read only");
|
||||
db.folder().setFolderError(folder.id, Helper.formatThrowable(ex, true));
|
||||
try {
|
||||
ifolder.open(Folder.READ_ONLY);
|
||||
db.folder().setFolderReadOnly(folder.id, true);
|
||||
} catch (MessagingException ex1) {
|
||||
Log.w(ex1);
|
||||
db.folder().setFolderState(folder.id, null);
|
||||
|
||||
@@ -30,6 +30,15 @@
|
||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvName" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivReadOnly"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:src="@drawable/baseline_visibility_24"
|
||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvType" />
|
||||
|
||||
<View
|
||||
android:id="@+id/vwLevel"
|
||||
android:layout_width="0dp"
|
||||
|
||||
Reference in New Issue
Block a user