summaryrefslogtreecommitdiff
path: root/src/com/android/customization/model/grid
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/customization/model/grid')
-rw-r--r--src/com/android/customization/model/grid/GridOption.java11
-rw-r--r--src/com/android/customization/model/grid/GridOptionViewModel.java53
-rw-r--r--src/com/android/customization/model/grid/GridSectionController.java4
3 files changed, 64 insertions, 4 deletions
diff --git a/src/com/android/customization/model/grid/GridOption.java b/src/com/android/customization/model/grid/GridOption.java
index 16a5eb01..19c5d4f1 100644
--- a/src/com/android/customization/model/grid/GridOption.java
+++ b/src/com/android/customization/model/grid/GridOption.java
@@ -93,11 +93,18 @@ public class GridOption implements CustomizationOption<GridOption>, Parcelable {
Context context = view.getContext();
int colorFilter = ResourceUtils.getColorAttr(context,
- view.isActivated() ? android.R.attr.textColorPrimary :
- android.R.attr.textColorTertiary);
+ view.isActivated()
+ ? (mIsCurrent
+ ? android.R.attr.textColorPrimary
+ : android.R.attr.textColorPrimaryInverse)
+ : android.R.attr.textColorTertiary);
mTileDrawable.setColorFilter(colorFilter, Mode.SRC_ATOP);
((ImageView) view.findViewById(R.id.grid_option_thumbnail))
.setImageDrawable(mTileDrawable);
+
+ int backgroundResource = view.isActivated() && !mIsCurrent
+ ? R.drawable.option_border_new_selection : R.drawable.option_border;
+ view.findViewById(R.id.option_tile).setBackgroundResource(backgroundResource);
}
@Override
diff --git a/src/com/android/customization/model/grid/GridOptionViewModel.java b/src/com/android/customization/model/grid/GridOptionViewModel.java
new file mode 100644
index 00000000..33fa8e179
--- /dev/null
+++ b/src/com/android/customization/model/grid/GridOptionViewModel.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.model.grid;
+
+import androidx.lifecycle.SavedStateHandle;
+import androidx.lifecycle.ViewModel;
+
+/** The class to store status of the grid fragment view. */
+public class GridOptionViewModel extends ViewModel {
+ private static final String SELECTED_OPTION_KEY = "selected_option";
+ private static final String BOTTOM_ACTION_BAR_VISIBLE_KEY = "bottom_action_bar_visible";
+
+ private SavedStateHandle mState;
+
+ public GridOptionViewModel(SavedStateHandle savedStateHandle) {
+ mState = savedStateHandle;
+ }
+
+ /** Gets selected {@link GridOption} from {@link SavedStateHandle} */
+ public GridOption getSelectedOption() {
+ return mState.get(SELECTED_OPTION_KEY);
+ }
+
+ /** Sets selected {@link GridOption} to {@link SavedStateHandle} */
+ public void setSelectedOption(GridOption selectedOption) {
+ mState.set(SELECTED_OPTION_KEY, selectedOption);
+ }
+
+ /** Gets bottom action bar visible from {@link SavedStateHandle} */
+ public boolean getBottomActionBarVisible() {
+ return mState.contains(BOTTOM_ACTION_BAR_VISIBLE_KEY)
+ ? mState.get(BOTTOM_ACTION_BAR_VISIBLE_KEY)
+ : false;
+ }
+
+ /** Sets bottom action bar visible to {@link SavedStateHandle} */
+ public void setBottomActionBarVisible(boolean bottomActionBarVisible) {
+ mState.set(BOTTOM_ACTION_BAR_VISIBLE_KEY, bottomActionBarVisible);
+ }
+}
diff --git a/src/com/android/customization/model/grid/GridSectionController.java b/src/com/android/customization/model/grid/GridSectionController.java
index 5470d77d..64a6cce1 100644
--- a/src/com/android/customization/model/grid/GridSectionController.java
+++ b/src/com/android/customization/model/grid/GridSectionController.java
@@ -74,8 +74,8 @@ public class GridSectionController implements CustomizationSectionController<Gri
}
}, /* reload= */ true);
- gridSectionView.setOnClickListener(v -> mSectionNavigationController.navigateTo(
- GridFragment.newInstance(context.getString(R.string.grid_title))));
+ gridSectionView.setOnClickListener(
+ v -> mSectionNavigationController.navigateTo(new GridFragment()));
return gridSectionView;
}