mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-04 11:54:10 +01:00
Disable all on action
This commit is contained in:
@@ -191,7 +191,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
grpReady.setVisibility(View.GONE);
|
||||
pbWait.setVisibility(View.VISIBLE);
|
||||
Helper.setViewsEnabled(view, false);
|
||||
bottom_navigation.getMenu().setGroupEnabled(0, false);
|
||||
getActivity().invalidateOptionsMenu();
|
||||
|
||||
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
@@ -295,6 +295,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
menu.findItem(R.id.menu_attachment).setVisible(working >= 0);
|
||||
menu.findItem(R.id.menu_attachment).setEnabled(etBody.isEnabled());
|
||||
menu.findItem(R.id.menu_addresses).setVisible(working >= 0);
|
||||
}
|
||||
|
||||
@@ -496,7 +497,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
|
||||
private void onAction(int action) {
|
||||
Helper.setViewsEnabled(view, false);
|
||||
bottom_navigation.getMenu().setGroupEnabled(0, false);
|
||||
getActivity().invalidateOptionsMenu();
|
||||
|
||||
EntityIdentity identity = (EntityIdentity) spFrom.getSelectedItem();
|
||||
|
||||
@@ -640,7 +641,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
etTo.requestFocus();
|
||||
|
||||
Helper.setViewsEnabled(view, true);
|
||||
bottom_navigation.getMenu().setGroupEnabled(0, true);
|
||||
getActivity().invalidateOptionsMenu();
|
||||
|
||||
DB db = DB.getInstance(getContext());
|
||||
|
||||
@@ -845,7 +846,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
Log.i(Helper.TAG, "Loaded action id=" + draft.id + " action=" + action);
|
||||
|
||||
Helper.setViewsEnabled(view, true);
|
||||
bottom_navigation.getMenu().setGroupEnabled(0, true);
|
||||
getActivity().invalidateOptionsMenu();
|
||||
|
||||
if (action == R.id.action_trash) {
|
||||
autosave = false;
|
||||
@@ -865,7 +866,7 @@ public class FragmentCompose extends FragmentEx {
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Helper.setViewsEnabled(view, true);
|
||||
bottom_navigation.getMenu().setGroupEnabled(0, true);
|
||||
getActivity().invalidateOptionsMenu();
|
||||
|
||||
if (ex instanceof IllegalArgumentException)
|
||||
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
|
||||
|
||||
@@ -23,7 +23,6 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
@@ -67,6 +66,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
public class FragmentMessage extends FragmentEx {
|
||||
private ViewGroup view;
|
||||
private TextView tvFrom;
|
||||
private TextView tvTime;
|
||||
private TextView tvSubject;
|
||||
@@ -92,7 +92,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
@Override
|
||||
@Nullable
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_message, container, false);
|
||||
view = (ViewGroup) inflater.inflate(R.layout.fragment_message, container, false);
|
||||
|
||||
// Get arguments
|
||||
Bundle args = getArguments();
|
||||
@@ -390,11 +390,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
}
|
||||
|
||||
private void onActionSeen(long id) {
|
||||
final MenuItem item = top_navigation.getMenu().findItem(R.id.action_seen);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -427,25 +423,19 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void data) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(this, args);
|
||||
}
|
||||
|
||||
private void onActionEdit(final long id) {
|
||||
final MenuItem item = top_navigation.getMenu().findItem(R.id.action_edit);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -480,8 +470,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void data) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
getContext().startActivity(
|
||||
new Intent(getContext(), ActivityCompose.class)
|
||||
.putExtra("action", "edit")
|
||||
@@ -490,8 +479,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
public void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(this, args);
|
||||
@@ -516,11 +504,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
final MenuItem item = bottom_navigation.getMenu().findItem(R.id.action_spam);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -553,14 +537,12 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void result) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(FragmentMessage.this, args);
|
||||
@@ -579,11 +561,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
final MenuItem item = bottom_navigation.getMenu().findItem(R.id.action_trash);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -614,14 +592,12 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void result) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(FragmentMessage.this, args);
|
||||
@@ -629,11 +605,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null).show();
|
||||
} else {
|
||||
final MenuItem item = bottom_navigation.getMenu().findItem(R.id.action_trash);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -669,14 +641,12 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void result) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(FragmentMessage.this, args);
|
||||
@@ -741,11 +711,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(final MenuItem target) {
|
||||
final MenuItem item = bottom_navigation.getMenu().findItem(R.id.action_move);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
args.putLong("target", target.getItemId());
|
||||
|
||||
@@ -780,14 +746,12 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void result) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(FragmentMessage.this, args);
|
||||
@@ -802,11 +766,7 @@ public class FragmentMessage extends FragmentEx {
|
||||
}
|
||||
|
||||
private void onActionArchive(long id) {
|
||||
final MenuItem item = bottom_navigation.getMenu().findItem(R.id.action_archive);
|
||||
item.setEnabled(false);
|
||||
|
||||
final Drawable icon = item.getIcon();
|
||||
item.setIcon(Helper.toDimmed(icon));
|
||||
Helper.setViewsEnabled(view, false);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
@@ -839,14 +799,12 @@ public class FragmentMessage extends FragmentEx {
|
||||
|
||||
@Override
|
||||
protected void onLoaded(Bundle args, Void result) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
item.setEnabled(true);
|
||||
item.setIcon(icon);
|
||||
Helper.setViewsEnabled(view, true);
|
||||
Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.load(FragmentMessage.this, args);
|
||||
|
||||
@@ -21,25 +21,24 @@ package eu.faircode.email;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.ColorMatrix;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class Helper {
|
||||
static final String TAG = BuildConfig.APPLICATION_ID;
|
||||
|
||||
@@ -51,25 +50,19 @@ public class Helper {
|
||||
return color;
|
||||
}
|
||||
|
||||
static Drawable toDimmed(@NonNull Drawable drawable) {
|
||||
ColorMatrix matrix = new ColorMatrix();
|
||||
matrix.setSaturation(0);
|
||||
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
|
||||
Drawable mutated = drawable.mutate();
|
||||
mutated.setColorFilter(filter);
|
||||
mutated.setAlpha(128);
|
||||
return mutated;
|
||||
}
|
||||
|
||||
static void setViewsEnabled(ViewGroup view, boolean enabled) {
|
||||
for (int i = 0; i < view.getChildCount(); i++) {
|
||||
View child = view.getChildAt(i);
|
||||
if (child instanceof Spinner ||
|
||||
child instanceof EditText ||
|
||||
child instanceof CheckBox ||
|
||||
child instanceof ImageView ||
|
||||
child instanceof ImageButton)
|
||||
child.setEnabled(enabled);
|
||||
else if (child instanceof ViewGroup)
|
||||
if (child instanceof BottomNavigationView) {
|
||||
Menu menu = ((BottomNavigationView) child).getMenu();
|
||||
menu.setGroupEnabled(0, enabled);
|
||||
} else if (child instanceof ViewGroup)
|
||||
setViewsEnabled((ViewGroup) child, enabled);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user