package com.amaze.filemanager.fragments; import android.app.Dialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.AppBarLayout; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.BottomSheetDialogFragment; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.CoordinatorLayout; import android.support.v4.widget.NestedScrollView; import android.text.format.Formatter; import android.util.Log; import android.view.View; import android.widget.TextView; import com.amaze.filemanager.R; import com.amaze.filemanager.filesystem.BaseFile; import com.amaze.filemanager.utils.Futils; import com.amaze.filemanager.utils.Utils; import java.io.File; /** * Created by vishal on 14/12/16. */ public class PropertiesSheet extends BottomSheetDialogFragment { private Bundle mBundle; private BaseFile mFile; private String mPermission; private boolean mIsRoot; private CollapsingToolbarLayout mToolbar; private AppBarLayout mAppBarLayout; private View rootView; private TextView mFileNameTextView, mFileTypeTextView, mFileSizeTextView, mFileLocationTextView; private TextView mFileAccessedTextView, mFileModifiedTextView; private NestedScrollView mNestedScrollView; private BottomSheetBehavior mBottomSheetBehavior; private static PropertiesSheet staticPropertiesSheet; public static final String KEY_FILE = "file"; public static final String KEY_PERMISSION = "permission"; public static final String KEY_ROOT = "root"; public static final String TAG_FRAGMENT = "properties"; @Override public void setupDialog(Dialog dialog, int style) { super.setupDialog(dialog, style); rootView = View.inflate(getContext(), R.layout.fragment_sheet_properties, null); dialog.setContentView(rootView); mBundle = getArguments(); mFile = mBundle.getParcelable(KEY_FILE); mPermission = mBundle.getString(KEY_PERMISSION); mIsRoot = mBundle.getBoolean(KEY_ROOT); mToolbar = (CollapsingToolbarLayout) rootView.findViewById(R.id.collapsing_toolbar_layout); mAppBarLayout = (AppBarLayout) rootView.findViewById(R.id.appBarLayout); mToolbar.setTitle(getString(R.string.properties)); mToolbar.setCollapsedTitleTextAppearance(R.style.collapsed_appbar); mToolbar.setExpandedTitleTextAppearance(R.style.expanded_appbar); mFileNameTextView = (TextView) rootView.findViewById(R.id.text_view_file_name); mFileNameTextView.setText(mFile.getName()); mFileTypeTextView = (TextView) rootView.findViewById(R.id.text_view_file_type); mFileTypeTextView.setText(mFile.isDirectory() ? getString(R.string.folder) : mFile.getName().substring(mFile.getName().lastIndexOf("."))); mFileSizeTextView = (TextView) rootView.findViewById(R.id.text_view_file_size); mFileSizeTextView.setText(Formatter.formatFileSize(dialog.getContext(), mFile.isDirectory() ? Futils.folderSize(new File(mFile.getPath()), null) : mFile.getSize())); mFileLocationTextView = (TextView) rootView.findViewById(R.id.text_view_file_location); mFileLocationTextView.setText(mFile.getPath()); mFileAccessedTextView = (TextView) rootView.findViewById(R.id.text_view_file_accessed); mFileAccessedTextView.setText(Utils.getDate(mFile.getDate())); mFileModifiedTextView = (TextView) rootView.findViewById(R.id.text_view_file_modified); mFileModifiedTextView.setText(Utils.getDate(mFile.getDate())); CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) ((View) rootView.getParent()).getLayoutParams(); mBottomSheetBehavior = (BottomSheetBehavior) layoutParams.getBehavior(); mBottomSheetBehavior.setBottomSheetCallback(mCallback); mNestedScrollView = (NestedScrollView) rootView.findViewById(R.id.nested_view); mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { @Override public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { Log.d(getClass().getSimpleName(), "ScrollY: " + scrollY + " oldScrollY: " + oldScrollY); if (scrollY==0) { // we're at the top mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } } }); /*Bitmap bitmap = BitmapFactory.decodeFile(mFile.getPath()); Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { mToolbarLayout.setContentScrimColor(palette.getMutedColor()); mToolbarLayout.setStatusBarScrimColor(palette.getMutedColor()); } });*/ } /*public static PropertiesSheet from(PropertiesSheet propertiesSheet) { return staticPropertiesSheet = propertiesSheet; }*/ private void generate(BottomSheetBehavior.BottomSheetCallback callback) { //if (staticPropertiesSheet==null) return; } private BottomSheetBehavior.BottomSheetCallback mCallback = new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState==BottomSheetBehavior.STATE_HIDDEN) { dismiss(); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { } }; }