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-03-29 12:36:30 +0300
committerStefan Niedermann <info@niedermann.it>2021-03-29 12:36:30 +0300
commit1aefa64be4ca6a278f43653a9383b3fb694d61c9 (patch)
tree000ecf3d37a7225d8416d6701c49f4e31098d148 /app/src/main/java/it/niedermann/nextcloud
parentbba5fc76f3e23cca019e6da806b1fd31306dd020 (diff)
Move clearGlide cache logic to CustomAppGlideModule
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java41
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java25
3 files changed, 42 insertions, 34 deletions
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 f6c642621..dc6428f7f 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
@@ -9,7 +9,6 @@ import android.database.sqlite.SQLiteConstraintException;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.Network;
-import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.net.Uri;
import android.os.Bundle;
@@ -27,7 +26,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
@@ -102,10 +100,9 @@ import it.niedermann.nextcloud.deck.ui.stack.EditStackListener;
import it.niedermann.nextcloud.deck.ui.stack.OnScrollListener;
import it.niedermann.nextcloud.deck.ui.stack.StackAdapter;
import it.niedermann.nextcloud.deck.ui.stack.StackFragment;
+import it.niedermann.nextcloud.deck.util.CustomAppGlideModule;
import it.niedermann.nextcloud.deck.util.DrawerMenuUtil;
-import static androidx.lifecycle.Transformations.distinctUntilChanged;
-import static androidx.lifecycle.Transformations.map;
import static androidx.lifecycle.Transformations.switchMap;
import static it.niedermann.nextcloud.deck.DeckApplication.NO_ACCOUNT_ID;
import static it.niedermann.nextcloud.deck.DeckApplication.NO_BOARD_ID;
@@ -140,8 +137,6 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
protected static final int ACTIVITY_SETTINGS = 2;
- @NonNull
- protected List<Account> accountsList = new ArrayList<>();
protected SharedPreferences sharedPreferences;
private StackAdapter stackAdapter;
long lastBoardId;
@@ -244,11 +239,9 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
return;
}
- accountsList = accounts;
-
long lastAccountId = readCurrentAccountId(this);
- for (Account account : accountsList) {
+ for (Account account : accounts) {
if (lastAccountId == account.getId() || lastAccountId == NO_ACCOUNT_ID) {
mainViewModel.setCurrentAccount(account);
if (!firstAccountAdded) {
@@ -343,14 +336,13 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
binding.viewPager.setAdapter(stackAdapter);
binding.viewPager.setOffscreenPageLimit(2);
- CrossTabDragAndDrop<StackFragment, CardAdapter, FullCard> dragAndDrop = new CrossTabDragAndDrop<>(getResources(), ViewCompat.getLayoutDirection(binding.getRoot()) == ViewCompat.LAYOUT_DIRECTION_LTR);
+ final CrossTabDragAndDrop<StackFragment, CardAdapter, FullCard> dragAndDrop = new CrossTabDragAndDrop<>(getResources(), ViewCompat.getLayoutDirection(binding.getRoot()) == ViewCompat.LAYOUT_DIRECTION_LTR);
dragAndDrop.register(binding.viewPager, binding.stackTitles, getSupportFragmentManager());
dragAndDrop.addItemMovedByDragListener((movedCard, stackId, position) -> {
mainViewModel.reorder(mainViewModel.getCurrentAccount().getId(), movedCard, stackId, position);
DeckLog.info("Card", movedCard.getCard().getTitle(), "was moved to Stack", stackId, "on position", position);
});
-
final PopupMenu listMenuPopup = new PopupMenu(this, binding.listMenuButton);
listMenu = listMenuPopup.getMenu();
getMenuInflater().inflate(R.menu.list_menu, listMenu);
@@ -398,8 +390,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
}
}
});
- distinctUntilChanged(map(filterViewModel.getFilterInformation(), FilterInformation::hasActiveFilter))
- .observe(this, (hasActiveFilter) -> binding.filterIndicator.setVisibility(hasActiveFilter ? View.VISIBLE : View.GONE));
+ filterViewModel.hasActiveFilter().observe(this, (hasActiveFilter) -> binding.filterIndicator.setVisibility(hasActiveFilter ? View.VISIBLE : View.GONE));
// binding.archivedCards.setOnClickListener((v) -> startActivity(ArchivedCardsActvitiy.createIntent(this, mainViewModel.getCurrentAccount(), mainViewModel.getCurrentBoardLocalId(), mainViewModel.currentBoardHasEditPermission())));
binding.enableSearch.setOnClickListener((v) -> showFilterTextToolbar());
binding.toolbar.setOnClickListener((v) -> showFilterTextToolbar());
@@ -407,24 +398,12 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
binding.swipeRefreshLayout.setOnRefreshListener(() -> {
DeckLog.info("Triggered manual refresh");
- final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
- if (cm != null) {
- final NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
- if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
- DeckLog.info("Clearing Glide memory cache");
- Glide.get(this).clearMemory();
- new Thread(() -> {
- DeckLog.info("Clearing Glide disk cache");
- Glide.get(getApplicationContext()).clearDiskCache();
- }).start();
- } else {
- DeckLog.info("Do not clear Glide caches, because the user currently does not have a working internet connection");
- }
- } else {
- DeckLog.warn(ConnectivityManager.class.getSimpleName(), "is null");
- }
+
+ CustomAppGlideModule.clearCache(this);
+
DeckLog.verbose("Trigger refresh capabilities for", mainViewModel.getCurrentAccount().getName());
refreshCapabilities(mainViewModel.getCurrentAccount());
+
DeckLog.verbose("Trigger synchronization for", mainViewModel.getCurrentAccount().getName());
mainViewModel.synchronize(new IResponseCallback<Boolean>(mainViewModel.getCurrentAccount()) {
@Override
@@ -443,9 +422,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
});
});
});
- binding.accountSwitcher.setOnClickListener((v) -> AccountSwitcherDialog.newInstance()
- .show(getSupportFragmentManager(), AccountSwitcherDialog.class.getSimpleName()));
- AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
+ binding.accountSwitcher.setOnClickListener((v) -> AccountSwitcherDialog.newInstance().show(getSupportFragmentManager(), AccountSwitcherDialog.class.getSimpleName()));
}
@Override
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java
index 8a2555eb5..7cd3c1c80 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java
@@ -17,7 +17,8 @@ import it.niedermann.nextcloud.deck.model.enums.EDueType;
import it.niedermann.nextcloud.deck.model.internal.FilterInformation;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import static it.niedermann.nextcloud.deck.model.internal.FilterInformation.hasActiveFilter;
+import static androidx.lifecycle.Transformations.distinctUntilChanged;
+import static androidx.lifecycle.Transformations.map;
@SuppressWarnings("WeakerAccess")
public class FilterViewModel extends AndroidViewModel {
@@ -38,7 +39,7 @@ public class FilterViewModel extends AndroidViewModel {
}
public void publishFilterInformationDraft() {
- this.filterInformation.postValue(hasActiveFilter(filterInformationDraft.getValue()) ? filterInformationDraft.getValue() : null);
+ this.filterInformation.postValue(FilterInformation.hasActiveFilter(filterInformationDraft.getValue()) ? filterInformationDraft.getValue() : null);
}
public void clearFilterInformation(boolean alsoFilterText) {
@@ -57,6 +58,11 @@ public class FilterViewModel extends AndroidViewModel {
return this.filterInformationDraft;
}
+ @NonNull
+ public LiveData<Boolean> hasActiveFilter() {
+ return distinctUntilChanged(map(getFilterInformation(), FilterInformation::hasActiveFilter));
+ }
+
public void createFilterInformationDraft() {
this.filterInformationDraft.postValue(new FilterInformation(this.filterInformation.getValue()));
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java
index c8b5365f8..0b3841ac1 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java
@@ -1,18 +1,43 @@
package it.niedermann.nextcloud.deck.util;
import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
import androidx.annotation.NonNull;
+import androidx.annotation.UiThread;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
+import it.niedermann.nextcloud.deck.DeckLog;
+
@GlideModule
public class CustomAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
super.registerComponents(context, glide, registry);
}
+
+ @UiThread
+ public static void clearCache(@NonNull Context context) {
+ final ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ if (cm != null) {
+ final NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
+ if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
+ DeckLog.info("Clearing Glide memory cache");
+ Glide.get(context).clearMemory();
+ new Thread(() -> {
+ DeckLog.info("Clearing Glide disk cache");
+ Glide.get(context.getApplicationContext()).clearDiskCache();
+ }).start();
+ } else {
+ DeckLog.info("Do not clear Glide caches, because the user currently does not have a working internet connection");
+ }
+ } else {
+ DeckLog.warn(ConnectivityManager.class.getSimpleName(), "is null");
+ }
+ }
} \ No newline at end of file