diff --git a/entry/src/main/java/com/jetradar/multibackstack/sample/slice/MainAbilitySlice.java b/entry/src/main/java/com/jetradar/multibackstack/sample/slice/MainAbilitySlice.java index 5aeb42469b349ba5246dda1662de69c55d3eb57f..cebc06116f55e59b1941610e4180b653209fa80d 100644 --- a/entry/src/main/java/com/jetradar/multibackstack/sample/slice/MainAbilitySlice.java +++ b/entry/src/main/java/com/jetradar/multibackstack/sample/slice/MainAbilitySlice.java @@ -1,3 +1,17 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * 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.jetradar.multibackstack.sample.slice; import com.jetradar.multibackstack.BaseAbilitySlice; @@ -22,6 +36,10 @@ import ohos.agp.window.service.WindowManager; * @since 2021-06-10 */ public class MainAbilitySlice extends BaseAbilitySlice implements Component.ClickedListener { + private static final int NUM_1 = -1; + private static final int NUM_2 = 2; + private static final int NUM_100 = 100; + private static final float NUM_1F = 1.1f; private SearchFraction searchFraction; private FavoritesFraction favoritesFraction; private ProFileFraction proFileFraction; @@ -68,7 +86,7 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic .hide(proFileFraction) .show(searchFraction) .submit(); - addAction(searchFraction, -1); + addAction(searchFraction, NUM_1); search.setClickedListener(this::onClick); favorites.setClickedListener(this::onClick); profile.setClickedListener(this::onClick); @@ -82,54 +100,15 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic public void onClick(Component component) { switch (component.getId()) { case ResourceTable.Id_search: - if (selectInt != 0) { - initComponent(); - initTitle(); - setSearchAnimator(search, searchImg, ResourceTable.Media_serch_true, searchText); - ((FractionAbility) getAbility()).getFractionManager() - .startFractionScheduler() - .hide(favoritesFraction) - .hide(proFileFraction) - .show(searchFraction) - .submit(); - searchFraction.showAll(); - addAction(searchFraction, -1); - selectInt = 0; - - } + searchClick(); break; case ResourceTable.Id_favorites: + favoritesClick(); - if (selectInt != 1) { - initComponent(); - initTitle(); - setSearchAnimator(favorites, favoritesImg, ResourceTable.Media_heart_true, favoritesText); - ((FractionAbility) getAbility()).getFractionManager() - .startFractionScheduler() - .hide(searchFraction) - .hide(proFileFraction) - .show(favoritesFraction) - .submit(); - favoritesFraction.showAll(); - addAction(favoritesFraction, -1); - selectInt = 1; - } break; case ResourceTable.Id_profile: - proFileFraction.showAll(); - if (selectInt != 2) { - initComponent(); - initTitle(); - setSearchAnimator(profile, profileImg, ResourceTable.Media_mine_true, profileText); - ((FractionAbility) getAbility()).getFractionManager() - .startFractionScheduler() - .hide(searchFraction) - .hide(favoritesFraction) - .show(proFileFraction) - .submit(); - addAction(proFileFraction, -1); - selectInt = 2; - } + profileClick(); + break; case ResourceTable.Id_back: onBackPressed(); @@ -141,6 +120,59 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic } + private void profileClick() { + proFileFraction.showAll(); + if (selectInt != NUM_2) { + initComponent(); + initTitle(); + setSearchAnimator(profile, profileImg, ResourceTable.Media_mine_true, profileText); + ((FractionAbility) getAbility()).getFractionManager() + .startFractionScheduler() + .hide(searchFraction) + .hide(favoritesFraction) + .show(proFileFraction) + .submit(); + addAction(proFileFraction, NUM_1); + selectInt = NUM_2; + } + } + + private void favoritesClick() { + if (selectInt != 1) { + initComponent(); + initTitle(); + setSearchAnimator(favorites, favoritesImg, ResourceTable.Media_heart_true, favoritesText); + ((FractionAbility) getAbility()).getFractionManager() + .startFractionScheduler() + .hide(searchFraction) + .hide(proFileFraction) + .show(favoritesFraction) + .submit(); + favoritesFraction.showAll(); + addAction(favoritesFraction, NUM_1); + selectInt = 1; + } + } + + private void searchClick() { + if (selectInt != 0) { + initComponent(); + initTitle(); + setSearchAnimator(search, searchImg, ResourceTable.Media_serch_true, searchText); + ((FractionAbility) getAbility()).getFractionManager() + .startFractionScheduler() + .hide(favoritesFraction) + .hide(proFileFraction) + .show(searchFraction) + .submit(); + searchFraction.showAll(); + addAction(searchFraction, NUM_1); + selectInt = 0; + + } + } + + /*** * initTitle */ @@ -149,7 +181,7 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic private void setSearchAnimator(DirectionalLayout directionalLayout, Image searchimg, int p, Text text) { if (text.getTextColor().getValue() != cyan.getValue()) { - directionalLayout.createAnimatorProperty().scaleX(1.1f).scaleY(1.1f).setDuration(100).start(); + directionalLayout.createAnimatorProperty().scaleX(NUM_1F).scaleY(NUM_1F).setDuration(NUM_100).start(); searchimg.setPixelMap(p); text.setTextColor(cyan); } @@ -170,10 +202,10 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic @Override protected void onBackPressed() { if (list.size() == 1) { - terminateAbility(); + terminateAbility(); return; } - Action action = (Action) list.get(list.size() - 2); + Action action = (Action) list.get(list.size() - NUM_2); int item = action.getItem(); initComponent(); if (action.getFraction() instanceof SearchFraction) { @@ -183,7 +215,7 @@ public class MainAbilitySlice extends BaseAbilitySlice implements Component.Clic } else if (action.getFraction() instanceof ProFileFraction) { proFileFraction.setItem(item); setSearchAnimator(profile, profileImg, ResourceTable.Media_mine_true, profileText); - selectInt = 2; + selectInt = NUM_2; } else if (action.getFraction() instanceof FavoritesFraction) { favoritesFraction.setItem(item); setSearchAnimator(favorites, favoritesImg, ResourceTable.Media_heart_true, favoritesText);