Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-03 13:10:06 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2021-04-03 13:12:13 +0300
commitefe7a2b7232063ea8e1935f9357f0774dd5acd51 (patch)
treef95cb0336292cb74026936e88a64816cc943cba5 /app/src/main/java/it/niedermann
parent848cc4f35e7d763b037693e25517241a14bc7f9c (diff)
Eleminate BrandedActivity and BrandedFragment
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java11
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java29
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActvitiy.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedcards/ArchivedCardsActvitiy.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java38
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java19
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java18
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java25
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java16
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java30
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java32
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java13
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java11
18 files changed, 126 insertions, 174 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
index 378acaa79..afe36384c 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
@@ -27,6 +27,7 @@ public class DeckApplication extends MultiDexApplication {
private static String PREF_KEY_DEBUGGING;
private static LiveData<Integer> currentAccountColor$;
+ private static LiveData<Integer> currentBoardColor$;
@Override
public void onCreate() {
@@ -34,9 +35,13 @@ public class DeckApplication extends MultiDexApplication {
PREF_KEY_DEBUGGING = getString(R.string.pref_key_debugging);
setAppTheme(getAppTheme(this));
DeckLog.enablePersistentLogs(isPersistentLoggingEnabled(this));
- currentAccountColor$ = distinctUntilChanged(new SharedPreferenceIntLiveData(PreferenceManager.getDefaultSharedPreferences(this),
+ final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
+ currentAccountColor$ = distinctUntilChanged(new SharedPreferenceIntLiveData(sharedPreferences,
getString(R.string.shared_preference_last_account_color),
ContextCompat.getColor(this, R.color.defaultBrand)));
+ currentBoardColor$ = distinctUntilChanged(new SharedPreferenceIntLiveData(sharedPreferences,
+ getString(R.string.shared_preference_theme_main),
+ ContextCompat.getColor(this, R.color.defaultBrand)));
super.onCreate();
}
@@ -108,6 +113,10 @@ public class DeckApplication extends MultiDexApplication {
return currentAccountColor$;
}
+ public static LiveData<Integer> readCurrentBoardColor() {
+ return currentBoardColor$;
+ }
+
@ColorInt
public static int readCurrentAccountColor(@NonNull Context context) {
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index bdde1e1c9..1a1db058f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -14,6 +14,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
+import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -26,6 +27,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.ActionBarDrawerToggle;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
@@ -82,7 +84,6 @@ import it.niedermann.nextcloud.deck.ui.board.ArchiveBoardListener;
import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener;
import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment;
import it.niedermann.nextcloud.deck.ui.board.EditBoardListener;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder;
import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar;
import it.niedermann.nextcloud.deck.ui.card.CardAdapter;
@@ -126,7 +127,7 @@ import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ADD_BOARD
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ARCHIVED_BOARDS;
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_SETTINGS;
-public class MainActivity extends BrandedActivity implements DeleteStackListener, EditStackListener, DeleteBoardListener, EditBoardListener, ArchiveBoardListener, OnScrollListener, OnNavigationItemSelectedListener {
+public class MainActivity extends AppCompatActivity implements DeleteStackListener, EditStackListener, DeleteBoardListener, EditBoardListener, ArchiveBoardListener, OnScrollListener, OnNavigationItemSelectedListener {
protected ActivityMainBinding binding;
protected NavHeaderMainBinding headerBinding;
@@ -137,6 +138,8 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
protected static final int ACTIVITY_SETTINGS = 2;
+ @ColorInt
+ private int colorAccent;
protected SharedPreferences sharedPreferences;
private StackAdapter stackAdapter;
long lastBoardId;
@@ -173,6 +176,10 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
setTheme(R.style.AppTheme);
+ final TypedValue typedValue = new TypedValue();
+ getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
+ colorAccent = typedValue.data;
+
binding = ActivityMainBinding.inflate(getLayoutInflater());
headerBinding = NavHeaderMainBinding.bind(binding.navigationView.getHeaderView(0));
setContentView(binding.getRoot());
@@ -193,12 +200,8 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
binding.navigationView.setNavigationItemSelectedListener(this);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
- DeckApplication.readCurrentAccountColor().observe(this, (accountColor) -> {
- headerBinding.headerView.setBackgroundColor(accountColor);
- @ColorInt final int headerTextColor = contrastRatioIsSufficientBigAreas(accountColor, Color.WHITE) ? Color.WHITE : Color.BLACK;
- DrawableCompat.setTint(headerBinding.logo.getDrawable(), headerTextColor);
- DrawableCompat.setTint(headerBinding.copyDebugLogs.getDrawable(), headerTextColor);
- });
+ DeckApplication.readCurrentAccountColor().observe(this, this::applyAccountBranding);
+ DeckApplication.readCurrentBoardColor().observe(this, this::applyBoardBranding);
binding.filterText.addTextChangedListener(new TextWatcher() {
@Override
@@ -425,8 +428,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
binding.accountSwitcher.setOnClickListener((v) -> AccountSwitcherDialog.newInstance().show(getSupportFragmentManager(), AccountSwitcherDialog.class.getSimpleName()));
}
- @Override
- public void applyBrand(@ColorInt int mainColor) {
+ private void applyBoardBranding(@ColorInt int mainColor) {
applyBrandToPrimaryTabLayout(mainColor, binding.stackTitles);
applyBrandToFAB(mainColor, binding.fab);
// TODO We assume, that the background of the spinner is always white
@@ -434,6 +436,13 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
DrawableCompat.setTint(binding.filterIndicator.getDrawable(), getSecondaryForegroundColorDependingOnTheme(this, mainColor));
}
+ private void applyAccountBranding(@ColorInt int accountColor) {
+ headerBinding.headerView.setBackgroundColor(accountColor);
+ @ColorInt final int headerTextColor = contrastRatioIsSufficientBigAreas(accountColor, Color.WHITE) ? Color.WHITE : Color.BLACK;
+ DrawableCompat.setTint(headerBinding.logo.getDrawable(), headerTextColor);
+ DrawableCompat.setTint(headerBinding.copyDebugLogs.getDrawable(), headerTextColor);
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
index 8a70cf12d..fc6a93f8f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
@@ -17,16 +17,16 @@ import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledExcepti
import com.nextcloud.android.sso.ui.UiExceptionManager;
import it.niedermann.android.util.DimensionUtil;
+import it.niedermann.nextcloud.deck.DeckApplication;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogAccountSwitcherBinding;
import it.niedermann.nextcloud.deck.ui.MainViewModel;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import it.niedermann.nextcloud.deck.ui.manageaccounts.ManageAccountsActivity;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
-public class AccountSwitcherDialog extends BrandedDialogFragment {
+public class AccountSwitcherDialog extends DialogFragment {
private AccountSwitcherAdapter adapter;
private DialogAccountSwitcherBinding binding;
@@ -61,6 +61,8 @@ public class AccountSwitcherDialog extends BrandedDialogFragment {
adapter.setAccounts(accounts);
});
+ observeOnce(DeckApplication.readCurrentBoardColor(), requireActivity(), this::applyBrand);
+
binding.accountsList.setAdapter(adapter);
binding.addAccount.setOnClickListener((v) -> {
@@ -91,8 +93,7 @@ public class AccountSwitcherDialog extends BrandedDialogFragment {
return new AccountSwitcherDialog();
}
- @Override
- public void applyBrand(int mainColor) {
+ private void applyBrand(int mainColor) {
// applyBrandToLayerDrawable((LayerDrawable) binding.check.getDrawable(), R.id.area, mainColor);
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActvitiy.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActvitiy.java
index 5a198dec3..cabf90a17 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActvitiy.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActvitiy.java
@@ -6,6 +6,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import java.util.Collections;
@@ -21,11 +22,10 @@ import it.niedermann.nextcloud.deck.ui.MainViewModel;
import it.niedermann.nextcloud.deck.ui.board.ArchiveBoardListener;
import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener;
import it.niedermann.nextcloud.deck.ui.board.EditBoardListener;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
-public class ArchivedBoardsActvitiy extends BrandedActivity implements DeleteBoardListener, EditBoardListener, ArchiveBoardListener {
+public class ArchivedBoardsActvitiy extends AppCompatActivity implements DeleteBoardListener, EditBoardListener, ArchiveBoardListener {
private static final String BUNDLE_KEY_ACCOUNT = "accountId";
@@ -67,11 +67,6 @@ public class ArchivedBoardsActvitiy extends BrandedActivity implements DeleteBoa
}
- @Override
- public void applyBrand(int mainColor) {
- // Nothing to do...
- }
-
@NonNull
public static Intent createIntent(@NonNull Context context, @NonNull Account account) {
return new Intent(context, ArchivedBoardsActvitiy.class)
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedcards/ArchivedCardsActvitiy.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedcards/ArchivedCardsActvitiy.java
index c0b922778..86aa749e7 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedcards/ArchivedCardsActvitiy.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedcards/ArchivedCardsActvitiy.java
@@ -6,17 +6,17 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import it.niedermann.nextcloud.deck.databinding.ActivityArchivedBinding;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper;
import it.niedermann.nextcloud.deck.ui.MainViewModel;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import it.niedermann.nextcloud.deck.ui.pickstack.PickStackViewModel;
-public class ArchivedCardsActvitiy extends BrandedActivity {
+public class ArchivedCardsActvitiy extends AppCompatActivity {
private static final String BUNDLE_KEY_ACCOUNT = "accountId";
private static final String BUNDLE_KEY_BOARD_ID = "boardId";
@@ -72,11 +72,6 @@ public class ArchivedCardsActvitiy extends BrandedActivity {
}
- @Override
- public void applyBrand(int mainColor) {
- // Nothing to do...
- }
-
@NonNull
public static Intent createIntent(@NonNull Context context, @NonNull Account account, long boardId, boolean currentBoardHasEditPermission) {
return new Intent(context, ArchivedCardsActvitiy.class)
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
deleted file mode 100644
index 03c45305e..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package it.niedermann.nextcloud.deck.ui.branding;
-
-import android.util.TypedValue;
-import android.view.Menu;
-
-import androidx.annotation.ColorInt;
-import androidx.appcompat.app.AppCompatActivity;
-
-import it.niedermann.nextcloud.deck.R;
-
-import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
-import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.tintMenuIcon;
-
-public abstract class BrandedActivity extends AppCompatActivity implements Branded {
-
- @ColorInt
- protected int colorAccent;
-
- @Override
- protected void onStart() {
- super.onStart();
-
- final TypedValue typedValue = new TypedValue();
- getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
- colorAccent = typedValue.data;
-
- @ColorInt final int mainColor = readBrandMainColor(this);
- applyBrand(mainColor);
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- for (int i = 0; i < menu.size(); i++) {
- tintMenuIcon(menu.getItem(i), colorAccent);
- }
- return super.onCreateOptionsMenu(menu);
- }
-}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java
deleted file mode 100644
index 87cee2317..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package it.niedermann.nextcloud.deck.ui.branding;
-
-import android.content.Context;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
-
-public abstract class BrandedFragment extends Fragment implements Branded {
-
- @Override
- public void onStart() {
- super.onStart();
-
- @Nullable Context context = getContext();
- applyBrand(readBrandMainColor(context));
- }
-}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
index 863375ae5..768ba13e0 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
@@ -28,34 +28,26 @@ import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSuf
public abstract class BrandingUtil {
private BrandingUtil() {
- // Util class
+ throw new UnsupportedOperationException("This class must not get instantiated");
}
@ColorInt
public static int readBrandMainColor(@NonNull Context context) {
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- DeckLog.log("--- Read: shared_preference_theme_main");
+ DeckLog.log("--- Read:", context.getString(R.string.shared_preference_theme_main));
return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_main), context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
}
public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor) {
- if (context instanceof BrandedActivity) {
- final BrandedActivity activity = (BrandedActivity) context;
- activity.applyBrand(mainColor);
- }
final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- DeckLog.log("--- Write: shared_preference_theme_main |", mainColor);
+ DeckLog.log("--- Write:", context.getString(R.string.shared_preference_theme_main), "|", mainColor);
editor.putInt(context.getString(R.string.shared_preference_theme_main), mainColor);
editor.apply();
}
public static void clearBrandColors(@NonNull Context context) {
- if (context instanceof BrandedActivity) {
- final BrandedActivity activity = (BrandedActivity) context;
- activity.applyBrand(ContextCompat.getColor(context, R.color.defaultBrand));
- }
final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- DeckLog.log("--- Write: Remove: shared_preference_theme_main | ");
+ DeckLog.log("--- Remove:", context.getString(R.string.shared_preference_theme_main));
editor.remove(context.getString(R.string.shared_preference_theme_main));
editor.apply();
}
@@ -68,7 +60,7 @@ public abstract class BrandingUtil {
if (contrastRatioIsSufficient(mainColor, ContextCompat.getColor(context, R.color.primary))) {
return mainColor;
}
- DeckLog.verbose("Contrast ratio between brand color " + String.format("#%06X", (0xFFFFFF & mainColor)) + " and primary theme background is too low. Falling back to WHITE/BLACK as brand color.");
+ DeckLog.verbose("Contrast ratio between brand color", String.format("#%06X", (0xFFFFFF & mainColor)), "and primary theme background is too low. Falling back to WHITE/BLACK as brand color.");
return isDarkTheme(context) ? Color.WHITE : Color.BLACK;
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java
index 15a1a6fb7..ba51948dd 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java
@@ -9,13 +9,14 @@ import android.text.InputFilter;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.WindowManager;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.lifecycle.ViewModelProvider;
@@ -30,15 +31,15 @@ import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.ocs.Version;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import it.niedermann.nextcloud.deck.util.CardUtil;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToPrimaryTabLayout;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.tintMenuIcon;
-public class EditActivity extends BrandedActivity {
+public class EditActivity extends AppCompatActivity {
private static final String BUNDLE_KEY_ACCOUNT = "account";
private static final String BUNDLE_KEY_BOARD_ID = "boardId";
private static final String BUNDLE_KEY_STACK_ID = "stackId";
@@ -87,13 +88,15 @@ public class EditActivity extends BrandedActivity {
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbar);
+ viewModel.getBrandingColor().observe(this, this::applyBoardBranding);
+
loadDataFromIntent();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
- applyBrand(colorAccent);
+ viewModel.setBrandingColor(ContextCompat.getColor(this, R.color.primary));
setIntent(intent);
loadDataFromIntent();
}
@@ -123,7 +126,7 @@ public class EditActivity extends BrandedActivity {
final long boardId = args.getLong(BUNDLE_KEY_BOARD_ID);
observeOnce(viewModel.getFullBoardById(account.getId(), boardId), EditActivity.this, (fullBoard -> {
- applyBrand(fullBoard.getBoard().getColor());
+ viewModel.setBrandingColor(fullBoard.getBoard().getColor());
viewModel.setCanEdit(fullBoard.getBoard().isPermissionEdit());
invalidateOptionsMenu();
if (viewModel.isCreateMode()) {
@@ -185,8 +188,11 @@ public class EditActivity extends BrandedActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (viewModel.canEdit()) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.card_edit_menu, menu);
+ getMenuInflater().inflate(R.menu.card_edit_menu, menu);
+ @ColorInt final int colorAccent = ContextCompat.getColor(this, R.color.accent);
+ for (int i = 0; i < menu.size(); i++) {
+ tintMenuIcon(menu.getItem(i), colorAccent);
+ }
} else {
menu.clear();
}
@@ -320,13 +326,12 @@ public class EditActivity extends BrandedActivity {
super.finish();
}
- @Override
- public void applyBrand(int mainColor) {
+ private void applyBoardBranding(int mainColor) {
final Drawable navigationIcon = binding.toolbar.getNavigationIcon();
if (navigationIcon == null) {
DeckLog.error("Expected navigationIcon to be present.");
} else {
- DrawableCompat.setTint(binding.toolbar.getNavigationIcon(), colorAccent);
+ DrawableCompat.setTint(binding.toolbar.getNavigationIcon(), ContextCompat.getColor(this, R.color.accent));
}
applyBrandToPrimaryTabLayout(mainColor, binding.tabLayout);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java
index 321f70984..6bbd94afb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java
@@ -2,15 +2,19 @@ package it.niedermann.nextcloud.deck.ui.card;
import android.app.Application;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import it.niedermann.nextcloud.deck.DeckLog;
+import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.api.ResponseCallback;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Attachment;
@@ -24,6 +28,8 @@ import it.niedermann.nextcloud.deck.model.ocs.Activity;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
+import static androidx.lifecycle.Transformations.distinctUntilChanged;
+
@SuppressWarnings("WeakerAccess")
public class EditCardViewModel extends AndroidViewModel {
@@ -37,10 +43,20 @@ public class EditCardViewModel extends AndroidViewModel {
private boolean pendingCreation = false;
private boolean canEdit = false;
private boolean createMode = false;
+ private final MutableLiveData<Integer> brandingColor$ = new MutableLiveData<>();
public EditCardViewModel(@NonNull Application application) {
super(application);
this.syncManager = new SyncManager(application);
+ this.brandingColor$.setValue(ContextCompat.getColor(application, R.color.primary));
+ }
+
+ public LiveData<Integer> getBrandingColor() {
+ return distinctUntilChanged(this.brandingColor$);
+ }
+
+ public void setBrandingColor(@ColorInt int brandingColor) {
+ this.brandingColor$.setValue(brandingColor);
}
/**
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java
index b18f35de0..db24f8112 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java
@@ -22,7 +22,6 @@ import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding;
import it.niedermann.nextcloud.deck.model.User;
import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel;
import it.niedermann.nextcloud.deck.ui.card.attachments.previewdialog.PreviewDialog;
@@ -31,7 +30,7 @@ import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme;
/**
* TODO maybe this can be merged with {@link PreviewDialog}
*/
-public class CardAssigneeDialog extends BrandedDialogFragment {
+public class CardAssigneeDialog extends DialogFragment {
private static final String KEY_USER = "user";
private DialogPreviewBinding binding;
@@ -102,10 +101,6 @@ public class CardAssigneeDialog extends BrandedDialogFragment {
binding.title.setText(user.getDisplayname());
}
- @Override
- public void applyBrand(int mainColor) {
- }
-
public static DialogFragment newInstance(@NonNull User user) {
final DialogFragment fragment = new CardAssigneeDialog();
final Bundle args = new Bundle();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
index 1da79a067..76262309f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
@@ -1,7 +1,6 @@
package it.niedermann.nextcloud.deck.ui.card.attachments;
import android.content.ContentResolver;
-import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
@@ -54,7 +53,6 @@ import it.niedermann.nextcloud.deck.model.Attachment;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.enums.DBStatus;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedFragment;
import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar;
import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel;
import it.niedermann.nextcloud.deck.ui.card.attachments.picker.AbstractPickerAdapter;
@@ -86,13 +84,12 @@ import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HIDDEN;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB;
-import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_DEFAULT;
import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_IMAGE;
import static it.niedermann.nextcloud.deck.util.FilesUtil.copyContentUriToTempFile;
import static java.net.HttpURLConnection.HTTP_CONFLICT;
-public class CardAttachmentsFragment extends BrandedFragment implements AttachmentDeletedListener, AttachmentClickedListener {
+public class CardAttachmentsFragment extends Fragment implements AttachmentDeletedListener, AttachmentClickedListener {
private FragmentCardEditTabAttachmentsBinding binding;
private EditCardViewModel editViewModel;
@@ -236,14 +233,18 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
binding.fab.hide();
binding.emptyContentView.hideDescription();
}
- @Nullable Context context = requireContext();
- applyBrand(readBrandMainColor(context));
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext());
compressImagesOnUpload = sharedPreferences.getBoolean(getString(R.string.pref_key_compress_image_attachments), true);
return binding.getRoot();
}
@Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ editViewModel.getBrandingColor().observe(getViewLifecycleOwner(), this::applyBrand);
+ }
+
+ @Override
public void onPause() {
super.onPause();
backPressedCallback.setEnabled(false);
@@ -558,11 +559,10 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
this.clickedItemPosition = position;
}
- @Override
- public void applyBrand(int mainColor) {
- applyBrandToFAB(mainColor, binding.fab);
- @ColorInt final int finalMainColor = DeckColorUtil.contrastRatioIsSufficient(mainColor, primaryColor)
- ? mainColor
+ private void applyBrand(@ColorInt int boardColor) {
+ applyBrandToFAB(boardColor, binding.fab);
+ @ColorInt final int finalMainColor = DeckColorUtil.contrastRatioIsSufficient(boardColor, primaryColor)
+ ? boardColor
: accentColor;
final ColorStateList list = new ColorStateList(
new int[][]{
@@ -576,13 +576,7 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
);
binding.bottomNavigation.setItemIconTintList(list);
binding.bottomNavigation.setItemTextColor(list);
-
- // applyBrand() is also called onStart
- // adapter might be null at this point
- // https://github.com/stefan-niedermann/nextcloud-deck/issues/782
- if (adapter != null) {
- adapter.applyBrand(mainColor);
- }
+ adapter.applyBrand(boardColor);
}
public static Fragment newInstance() {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
index 8ebdf1b50..e2f2f3e28 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
@@ -19,13 +19,12 @@ import com.bumptech.glide.RequestBuilder;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding;
import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme;
-public class PreviewDialog extends BrandedDialogFragment {
+public class PreviewDialog extends DialogFragment {
private DialogPreviewBinding binding;
private PreviewDialogViewModel viewModel;
@@ -86,10 +85,6 @@ public class PreviewDialog extends BrandedDialogFragment {
}
@Override
- public void applyBrand(int mainColor) {
- }
-
- @Override
public void onDestroy() {
this.imageBuilder$.removeObservers(requireActivity());
this.title$.removeObservers(requireActivity());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
index 2f538f9bb..a091b852d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
@@ -25,7 +25,6 @@ import it.niedermann.nextcloud.deck.databinding.FragmentCardEditTabCommentsBindi
import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment;
import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedFragment;
import it.niedermann.nextcloud.deck.ui.card.EditActivity;
import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
@@ -36,7 +35,7 @@ import static android.view.View.VISIBLE;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB;
-public class CardCommentsFragment extends BrandedFragment implements CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener {
+public class CardCommentsFragment extends Fragment implements CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener {
private FragmentCardEditTabCommentsBinding binding;
private EditCardViewModel mainViewModel;
@@ -132,6 +131,7 @@ public class CardCommentsFragment extends BrandedFragment implements CommentEdit
binding.message.requestFocus();
requireActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
+ mainViewModel.getBrandingColor().observe(getViewLifecycleOwner(), this::applyBrand);
}
@Override
@@ -157,8 +157,7 @@ public class CardCommentsFragment extends BrandedFragment implements CommentEdit
});
}
- @Override
- public void applyBrand(int mainColor) {
+ private void applyBrand(int mainColor) {
applyBrandToEditText(mainColor, binding.message);
applyBrandToFAB(mainColor, binding.fab);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java
index 8376a6817..06fe1cd40 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java
@@ -11,7 +11,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.annotation.Px;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
@@ -47,7 +49,6 @@ import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.User;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.ui.branding.BrandedDatePickerDialog;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedFragment;
import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar;
import it.niedermann.nextcloud.deck.ui.branding.BrandedTimePickerDialog;
import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel;
@@ -61,7 +62,7 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditText;
-public class CardDetailsFragment extends BrandedFragment implements OnDateSetListener, OnTimeSetListener, CardAssigneeListener {
+public class CardDetailsFragment extends Fragment implements OnDateSetListener, OnTimeSetListener, CardAssigneeListener {
private FragmentCardEditTabDetailsBinding binding;
private EditCardViewModel viewModel;
@@ -113,6 +114,12 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis
}
@Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ viewModel.getBrandingColor().observe(getViewLifecycleOwner(), this::applyBrand);
+ }
+
+ @Override
public void onResume() {
super.onResume();
@@ -123,19 +130,14 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis
if (dpd != null) dpd.setOnDateSetListener(this);
}
- @Override
- public void onPause() {
- super.onPause();
- }
-
- @Override
- public void applyBrand(int mainColor) {
- applyBrandToEditText(mainColor, binding.labels);
- applyBrandToEditText(mainColor, binding.dueDateDate);
- applyBrandToEditText(mainColor, binding.dueDateTime);
- applyBrandToEditText(mainColor, binding.people);
- binding.descriptionEditor.setSearchColor(mainColor);
- binding.descriptionViewer.setSearchColor(mainColor);
+ private void applyBrand(@ColorInt int boardColor) {
+ // TODO apply correct branding on the BrandedDatePicker
+ applyBrandToEditText(boardColor, binding.labels);
+ applyBrandToEditText(boardColor, binding.dueDateDate);
+ applyBrandToEditText(boardColor, binding.dueDateTime);
+ applyBrandToEditText(boardColor, binding.people);
+ binding.descriptionEditor.setSearchColor(boardColor);
+ binding.descriptionViewer.setSearchColor(boardColor);
}
private void setupDescription() {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
index 46195b309..7434b6518 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
@@ -19,10 +19,9 @@ import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogProjectResourcesBinding;
import it.niedermann.nextcloud.deck.model.ocs.projects.OcsProjectResource;
import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel;
-public class CardProjectResourcesDialog extends BrandedDialogFragment {
+public class CardProjectResourcesDialog extends DialogFragment {
private static final String KEY_RESOURCES = "resources";
private static final String KEY_PROJECT_NAME = "projectName";
@@ -31,7 +30,7 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment {
private String projectName;
@NonNull
- private List<OcsProjectResource> resources = new ArrayList<>();
+ private final List<OcsProjectResource> resources = new ArrayList<>();
@Override
public void onAttach(@NonNull Context context) {
@@ -67,11 +66,6 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment {
super.onActivityCreated(savedInstanceState);
}
- @Override
- public void applyBrand(int mainColor) {
-
- }
-
public static DialogFragment newInstance(@Nullable String projectName, @NonNull List<OcsProjectResource> resources) {
final DialogFragment fragment = new CardProjectResourcesDialog();
final Bundle args = new Bundle();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
index 93437e37a..2778cbd19 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import it.niedermann.android.crosstabdnd.DragAndDropTab;
+import it.niedermann.nextcloud.deck.DeckApplication;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.databinding.FragmentStackBinding;
import it.niedermann.nextcloud.deck.model.Card;
@@ -26,7 +27,6 @@ import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.MainViewModel;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedFragment;
import it.niedermann.nextcloud.deck.ui.card.CardAdapter;
import it.niedermann.nextcloud.deck.ui.card.SelectCardListener;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
@@ -35,7 +35,7 @@ import it.niedermann.nextcloud.deck.ui.movecard.MoveCardListener;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
-public class StackFragment extends BrandedFragment implements DragAndDropTab<CardAdapter>, MoveCardListener {
+public class StackFragment extends Fragment implements DragAndDropTab<CardAdapter>, MoveCardListener {
private static final String KEY_STACK_ID = "stackId";
@@ -124,6 +124,12 @@ public class StackFragment extends BrandedFragment implements DragAndDropTab<Car
return binding.getRoot();
}
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ DeckApplication.readCurrentBoardColor().observe(getViewLifecycleOwner(), this::applyBrand);
+ }
+
@Nullable
@Override
public CardAdapter getAdapter() {
@@ -135,8 +141,7 @@ public class StackFragment extends BrandedFragment implements DragAndDropTab<Car
return binding.recyclerView;
}
- @Override
- public void applyBrand(int mainColor) {
+ private void applyBrand(int mainColor) {
if (this.adapter != null) {
this.adapter.applyBrand(mainColor);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java
index e1398bab7..78a9319d0 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java
@@ -13,6 +13,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.camera.core.Camera;
import androidx.camera.core.ImageCapture;
import androidx.camera.core.ImageCaptureException;
@@ -29,16 +30,16 @@ import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.ExecutionException;
+import it.niedermann.nextcloud.deck.DeckApplication;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.databinding.ActivityTakePhotoBinding;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import it.niedermann.nextcloud.deck.util.FilesUtil;
import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.IMAGE_JPEG;
-public class TakePhotoActivity extends BrandedActivity {
+public class TakePhotoActivity extends AppCompatActivity {
private ActivityTakePhotoBinding binding;
private TakePhotoViewModel viewModel;
@@ -61,6 +62,9 @@ public class TakePhotoActivity extends BrandedActivity {
setContentView(binding.getRoot());
+ // TODO do not only rely on current board color in case a card has been opened from a widget
+ DeckApplication.readCurrentBoardColor().observe(this, this::applyBoardColorBrand);
+
cameraProviderFuture = ProcessCameraProvider.getInstance(this);
cameraProviderFuture.addListener(() -> {
try {
@@ -170,8 +174,7 @@ public class TakePhotoActivity extends BrandedActivity {
return new Intent(context, TakePhotoActivity.class).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
}
- @Override
- public void applyBrand(int mainColor) {
+ private void applyBoardColorBrand(int mainColor) {
final ColorStateList colorStateList = ColorStateList.valueOf(mainColor);
for (View v : brandedViews) {
v.setBackgroundTintList(colorStateList);