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>2024-01-23 11:09:39 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-23 11:09:39 +0300
commite6cb7233ef8cb337baa0c028cfcf3928946a1539 (patch)
treeb3090058febdaa1986a904e109d4ec4fd2eac5a2
parentec6fef7fc80cba2dd967209d963027d3828b44dc (diff)
feat(theming): Remove unnecessary styles and implement secondary FAB theming for TakePhotoActivity
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java21
-rw-r--r--app/src/main/res/layout/activity_take_photo.xml6
-rw-r--r--app/src/main/res/values/styles.xml22
5 files changed, 29 insertions, 32 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java
index b5ee17f33..a9cae64de 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java
@@ -16,7 +16,6 @@ import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
-import android.widget.PopupMenu;
import androidx.activity.OnBackPressedCallback;
import androidx.activity.result.ActivityResultLauncher;
@@ -28,6 +27,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.PopupMenu;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
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 1456b159d..61bc0c48a 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
@@ -21,15 +21,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProvider;
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.common.util.concurrent.ListenableFuture;
import java.io.File;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
import java.util.concurrent.ExecutionException;
+import java.util.stream.Stream;
import it.niedermann.android.reactivelivedata.ReactiveLiveData;
import it.niedermann.nextcloud.deck.DeckLog;
@@ -44,8 +43,6 @@ public class TakePhotoActivity extends AppCompatActivity {
private ActivityTakePhotoBinding binding;
private TakePhotoViewModel viewModel;
- private FloatingActionButton[] brandedFABs;
-
private ListenableFuture<ProcessCameraProvider> cameraProviderFuture;
private OrientationEventListener orientationEventListener;
@@ -92,8 +89,6 @@ public class TakePhotoActivity extends AppCompatActivity {
finish();
}
}, ContextCompat.getMainExecutor(this));
-
- brandedFABs = new FloatingActionButton[]{binding.takePhoto, binding.switchCamera, binding.toggleTorch};
}
private ImageCapture getCaptureUseCase() {
@@ -186,6 +181,7 @@ public class TakePhotoActivity extends AppCompatActivity {
private void applyBoardColorBrand(int color) {
final var utils = ThemeUtils.of(color, this);
- Arrays.stream(brandedFABs).forEach(utils.material::themeFAB);
+ Stream.of(binding.takePhoto).forEach(utils.material::themeFAB);
+ Stream.of(binding.switchCamera, binding.toggleTorch).forEach(utils.deck::themeSecondaryFAB);
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java
index 3b0b523ea..174a9d0fa 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java
@@ -5,6 +5,7 @@ import static com.nextcloud.android.common.ui.util.PlatformThemeUtil.isDarkMode;
import android.content.Context;
import android.content.res.ColorStateList;
+import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.StateListDrawable;
@@ -24,6 +25,7 @@ import androidx.core.content.res.ResourcesCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.widget.TextViewCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.search.SearchBar;
import com.google.android.material.search.SearchView;
import com.google.android.material.tabs.TabLayout;
@@ -213,4 +215,23 @@ public class DeckViewThemeUtils extends ViewThemeUtilsBase {
public static void setImageColor(@NonNull Context context, @NonNull ImageView imageView, @ColorRes int colorRes) {
imageView.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(context, colorRes)));
}
+
+ /**
+ * @see <a href="https://github.com/nextcloud/android-common/pull/250">Upstream Pull Request</a>
+ */
+ @Deprecated(forRemoval = true)
+ public void themeSecondaryFAB(@NonNull FloatingActionButton fab) {
+ withScheme(fab.getContext(), scheme -> {
+ fab.setBackgroundTintList(buildColorStateList(
+ new Pair<>(android.R.attr.state_enabled, scheme.getSecondaryContainer()),
+ new Pair<>(-android.R.attr.state_enabled, Color.GRAY)
+ ));
+
+ fab.setImageTintList(buildColorStateList(
+ new Pair<>(android.R.attr.state_enabled, scheme.getOnSecondaryContainer()),
+ new Pair<>(-android.R.attr.state_enabled, Color.GRAY)
+ ));
+ return fab;
+ });
+ }
} \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_take_photo.xml b/app/src/main/res/layout/activity_take_photo.xml
index 3625dfb50..2dc643442 100644
--- a/app/src/main/res/layout/activity_take_photo.xml
+++ b/app/src/main/res/layout/activity_take_photo.xml
@@ -26,8 +26,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/take_photo_switch_camera"
- android:tint="@android:color/white"
- app:backgroundTint="@color/defaultBrand"
app:layout_constraintBottom_toBottomOf="@id/takePhoto"
app:layout_constraintEnd_toStartOf="@id/takePhoto"
app:layout_constraintStart_toStartOf="parent"
@@ -40,8 +38,6 @@
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
android:contentDescription="@string/take_photo"
- android:tint="@android:color/white"
- app:backgroundTint="@color/defaultBrand"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/toggle_torch"
app:layout_constraintStart_toEndOf="@id/switchCamera"
@@ -54,8 +50,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/take_photo_toggle_torch"
- android:tint="@android:color/white"
- app:backgroundTint="@color/defaultBrand"
app:layout_constraintBottom_toBottomOf="@id/takePhoto"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/takePhoto"
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6a5fabd6c..7f6d4c275 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -28,6 +28,9 @@
<item name="colorTertiary">@color/tertiary</item>
<item name="colorTertiaryContainer">@color/tertiaryContainer</item>
+ <!-- Used by PopupMenus -->
+ <item name="colorSurfaceContainer">@color/colorSurfaceContainerHigh</item>
+
<!-- Used by Material Dialogs & Material SearchBar -->
<item name="colorSurfaceContainerHigh">@color/colorSurfaceContainerHigh</item>
@@ -43,9 +46,6 @@
<!-- https://stackoverflow.com/questions/70650073/adjust-androidx-preference-dialogs-to-follow-material-you -->
<item name="alertDialogTheme">@style/PreferencesAlertDialogTheme</item>
- <item name="materialAlertDialogTheme">@style/MaterialAlertDialogTheme</item>
-
- <item name="toolbarStyle">@style/toolbarStyle</item>
<item name="chipGroupStyle">@style/chipGroupStyle</item>
<item name="chipStyle">@style/chipStyle</item>
<item name="tabStyle">@style/tabStyle</item>
@@ -56,22 +56,12 @@
<style name="AppTheme" parent="BaseTheme" />
- <style name="MaterialAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog">
- <item name="buttonBarPositiveButtonStyle">@style/buttonStyle</item>
- <item name="buttonBarNegativeButtonStyle">@style/buttonStyle</item>
- <item name="buttonBarNeutralButtonStyle">@style/buttonStyle</item>
- </style>
-
- <style name="PreferencesAlertDialogTheme" parent="MaterialAlertDialogTheme">
+ <style name="PreferencesAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<!-- https://m3.material.io/components/dialogs/specs#6771d107-624e-47cc-b6d8-2b7b620ba2f1 -->
<item name="dialogCornerRadius">28dp</item>
<item name="android:background">?attr/colorSurface</item>
</style>
- <style name="buttonStyle" parent="Widget.Material3.Button.TextButton.Dialog">
- <item name="android:textColor">?attr/colorOnSurface</item>
- </style>
-
<style name="chipGroupStyle" parent="Widget.Material3.ChipGroup">
<item name="chipSpacingVertical">0dp</item>
</style>
@@ -81,10 +71,6 @@
<item name="chipCornerRadius">40dp</item>
</style>
- <style name="toolbarStyle" parent="@style/Widget.Material3.Toolbar">
- <item name="android:background">?android:windowBackground</item>
- </style>
-
<style name="tabStyle" parent="Widget.Material3.TabLayout">
<item name="backgroundColor">@android:color/transparent</item>
<item name="itemBackground">@android:color/transparent</item>