Completata implementazione dell'elevatedToolbar e rimossa la WaterfallTollbar
This commit is contained in:
parent
3573480ca1
commit
a88d59f1d7
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@ -13,7 +13,6 @@
|
|||||||
<option value="$PROJECT_DIR$/dynamic__base" />
|
<option value="$PROJECT_DIR$/dynamic__base" />
|
||||||
<option value="$PROJECT_DIR$/dynamic_vgalimenti" />
|
<option value="$PROJECT_DIR$/dynamic_vgalimenti" />
|
||||||
<option value="$PROJECT_DIR$/pointmobilescannerlibrary" />
|
<option value="$PROJECT_DIR$/pointmobilescannerlibrary" />
|
||||||
<option value="$PROJECT_DIR$/waterfall_toolbar" />
|
|
||||||
</set>
|
</set>
|
||||||
</option>
|
</option>
|
||||||
<option name="resolveModulePerSourceSet" value="false" />
|
<option name="resolveModulePerSourceSet" value="false" />
|
||||||
|
|||||||
1
.idea/modules.xml
generated
1
.idea/modules.xml
generated
@ -8,7 +8,6 @@
|
|||||||
<module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" />
|
<module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" />
|
<module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
|
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" filepath="$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" />
|
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@ -138,7 +138,6 @@ dependencies {
|
|||||||
implementation 'com.fede987:status-bar-alert:1.0.1'
|
implementation 'com.fede987:status-bar-alert:1.0.1'
|
||||||
implementation 'com.fxn769:stash:1.2'
|
implementation 'com.fxn769:stash:1.2'
|
||||||
testImplementation 'junit:junit:4.12'
|
testImplementation 'junit:junit:4.12'
|
||||||
implementation project(':waterfall_toolbar')
|
|
||||||
implementation 'com.mikhaellopez:lazydatepicker:1.0.0'
|
implementation 'com.mikhaellopez:lazydatepicker:1.0.0'
|
||||||
implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2'
|
implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2'
|
||||||
//AppUpdate
|
//AppUpdate
|
||||||
|
|||||||
@ -121,7 +121,7 @@ public class MainActivity extends AppCompatActivity
|
|||||||
@Override
|
@Override
|
||||||
public boolean onNavigationItemSelected(MenuItem item) {
|
public boolean onNavigationItemSelected(MenuItem item) {
|
||||||
|
|
||||||
// mBinding.appBarMain.waterfallToolbar.resetAll();
|
mBinding.appBarMain.elevatedToolbar.resetAll();
|
||||||
|
|
||||||
// Handle navigation view item clicks here.
|
// Handle navigation view item clicks here.
|
||||||
Fragment fragment = null;
|
Fragment fragment = null;
|
||||||
@ -181,10 +181,12 @@ public class MainActivity extends AppCompatActivity
|
|||||||
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
|
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
|
||||||
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
|
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
|
||||||
((ISearcableFragment) fragment).onSearchEnabled();
|
((ISearcableFragment) fragment).onSearchEnabled();
|
||||||
|
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
|
||||||
});
|
});
|
||||||
|
|
||||||
mBinding.appBarMain.mainSearch.setOnCloseListener(() -> {
|
mBinding.appBarMain.mainSearch.setOnCloseListener(() -> {
|
||||||
((ISearcableFragment) fragment).onSearchDisabled();
|
((ISearcableFragment) fragment).onSearchDisabled();
|
||||||
|
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -206,7 +208,6 @@ public class MainActivity extends AppCompatActivity
|
|||||||
|
|
||||||
if(fragment instanceof IScrollableFragment) {
|
if(fragment instanceof IScrollableFragment) {
|
||||||
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
||||||
// ((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
|
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
|
||||||
|
|||||||
@ -220,13 +220,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
rigaOrdine.clienti.add(cliente);
|
rigaOrdine.clienti.add(cliente);
|
||||||
});
|
});
|
||||||
|
|
||||||
// List<OrdineAccettazioneInevasoDTO> filteredByCodAnagAndDateAndNumberOrders = Stream.of(tmpOrd)
|
|
||||||
// .filter(x ->
|
|
||||||
// x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
|
|
||||||
// x.numero == rigaOrdine.numero &&
|
|
||||||
// x.data.equals(rigaOrdine.data)).toList();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
groupedOrdine.ordini.add(rigaOrdine);
|
groupedOrdine.ordini.add(rigaOrdine);
|
||||||
|
|
||||||
|
|||||||
@ -1,67 +1,159 @@
|
|||||||
package it.integry.integrywmsnative.ui;
|
package it.integry.integrywmsnative.ui;
|
||||||
|
|
||||||
|
import android.animation.ObjectAnimator;
|
||||||
|
import android.animation.StateListAnimator;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import androidx.cardview.widget.CardView;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.widget.NestedScrollView;
|
import androidx.core.widget.NestedScrollView;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
public class ElevatedToolbar extends Toolbar {
|
public class ElevatedToolbar extends CardView {
|
||||||
|
|
||||||
|
private final float CARD_ELEVATION = 50f;
|
||||||
|
|
||||||
|
private RecyclerView mRecyclerView = null;
|
||||||
|
private ScrollView mScrollView = null;
|
||||||
|
private NestedScrollView mNestedScrollView = null;
|
||||||
|
|
||||||
public ElevatedToolbar(Context context) {
|
public ElevatedToolbar(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
resetElevation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) {
|
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
resetElevation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
|
resetElevation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetElevation() {
|
||||||
|
setCardElevation(0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void resetAll() {
|
||||||
|
resetElevation();
|
||||||
|
|
||||||
|
removeRecyclerViewScrollListener();
|
||||||
|
|
||||||
|
removeScrollViewScrollListener();
|
||||||
|
|
||||||
|
removeNestedScrollViewListener();
|
||||||
|
|
||||||
|
mRecyclerView = null;
|
||||||
|
mScrollView = null;
|
||||||
|
mNestedScrollView = null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RecyclerView.OnScrollListener recyclerViewScrollListener = new RecyclerView.OnScrollListener() {
|
||||||
|
@Override
|
||||||
|
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||||
|
super.onScrolled(recyclerView, dx, dy);
|
||||||
|
|
||||||
|
if(!recyclerView.canScrollVertically(-1)) {
|
||||||
|
resetElevation();
|
||||||
|
} else {
|
||||||
|
setCardElevation(CARD_ELEVATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public void setRecyclerView(RecyclerView recyclerView) {
|
public void setRecyclerView(RecyclerView recyclerView) {
|
||||||
|
this.mRecyclerView = recyclerView;
|
||||||
|
resetElevation();
|
||||||
|
|
||||||
final ElevatedToolbar currentInstance = this;
|
if(mRecyclerView != null) {
|
||||||
|
mRecyclerView.setOnScrollListener(recyclerViewScrollListener);
|
||||||
if(recyclerView != null) {
|
|
||||||
|
|
||||||
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
||||||
@Override
|
|
||||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
|
||||||
super.onScrolled(recyclerView, dx, dy);
|
|
||||||
|
|
||||||
if(!recyclerView.canScrollVertically(-1)) {
|
|
||||||
// currentInstance.setElevation(0f);
|
|
||||||
ViewCompat.setElevation(currentInstance, 0f);
|
|
||||||
} else {
|
|
||||||
// currentInstance.setElevation(50f);
|
|
||||||
ViewCompat.setElevation(currentInstance, 50f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.e("ElevatedToolbar", "RecyclerView is NULL");
|
Log.e("ElevatedToolbar", "RecyclerView is NULL");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeRecyclerViewScrollListener(){
|
||||||
|
if(mRecyclerView != null) {
|
||||||
|
mRecyclerView.setOnScrollListener(null);
|
||||||
|
} else {
|
||||||
|
Log.e("ElevatedToolbar", "REMOVE: RecyclerView is NULL");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private ViewTreeObserver.OnScrollChangedListener scrollViewScrollListener = () -> {
|
||||||
|
if(mScrollView != null) {
|
||||||
|
if(mScrollView.getScrollY() == 0) {
|
||||||
|
resetElevation();
|
||||||
|
} else {
|
||||||
|
setCardElevation(CARD_ELEVATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public void setScrollView(ScrollView scrollView) {
|
public void setScrollView(ScrollView scrollView) {
|
||||||
|
this.mScrollView = scrollView;
|
||||||
|
resetElevation();
|
||||||
|
|
||||||
|
if(mScrollView != null) {
|
||||||
|
mScrollView.getViewTreeObserver().addOnScrollChangedListener(scrollViewScrollListener);
|
||||||
|
} else {
|
||||||
|
Log.e("ElevatedToolbar", "ScrollView is NULL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeScrollViewScrollListener(){
|
||||||
|
if(mRecyclerView != null) {
|
||||||
|
mScrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewScrollListener);
|
||||||
|
} else {
|
||||||
|
Log.e("ElevatedToolbar", "REMOVE: ScrollView is NULL");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setNestedScrollView(NestedScrollView nestedScrollView) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private NestedScrollView.OnScrollChangeListener nestedScrollViewListener = (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||||
|
if(mNestedScrollView != null) {
|
||||||
|
if(scrollY == 0) {
|
||||||
|
resetElevation();
|
||||||
|
} else {
|
||||||
|
setCardElevation(CARD_ELEVATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public void setNestedScrollView(NestedScrollView nestedScrollView) {
|
||||||
|
this.mNestedScrollView = nestedScrollView;
|
||||||
|
resetElevation();
|
||||||
|
|
||||||
|
if(mNestedScrollView != null) {
|
||||||
|
mNestedScrollView.setOnScrollChangeListener(nestedScrollViewListener);
|
||||||
|
} else {
|
||||||
|
Log.e("ElevatedToolbar", "NestedScrollView is NULL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeNestedScrollViewListener() {
|
||||||
|
if(mNestedScrollView != null) {
|
||||||
|
mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) null);
|
||||||
|
} else {
|
||||||
|
Log.e("ElevatedToolbar", "REMOVE: NestedScrollView is NULL");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
include ':app', ':pointmobilescannerlibrary', ':waterfall_toolbar', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base'
|
include ':app', ':pointmobilescannerlibrary', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user