Skip to content

Commit

Permalink
Toolbar title is "Amaze", BottomBar shows relative path (to zip file)…
Browse files Browse the repository at this point in the history
… and it's own root image
  • Loading branch information
EmmanuelMess committed Sep 2, 2017
1 parent 8073570 commit 6c020ee
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.amaze.filemanager.R;
import com.amaze.filemanager.activities.ThemedActivity;
import com.amaze.filemanager.activities.MainActivity;
import com.amaze.filemanager.activities.ThemedActivity;
import com.amaze.filemanager.adapters.RecyclerAdapter;
import com.amaze.filemanager.database.CloudHandler;
import com.amaze.filemanager.database.CryptHandler;
Expand All @@ -91,6 +91,7 @@
import com.amaze.filemanager.ui.views.FastScroller;
import com.amaze.filemanager.ui.views.RoundedImageView;
import com.amaze.filemanager.utils.application.AppConfig;
import com.amaze.filemanager.utils.BottomBarButtonPath;
import com.amaze.filemanager.utils.DataUtils;
import com.amaze.filemanager.utils.GenericFileProvider;
import com.amaze.filemanager.utils.MainActivityHelper;
Expand Down Expand Up @@ -118,7 +119,7 @@
import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;

public class MainFragment extends android.support.v4.app.Fragment {
public class MainFragment extends android.support.v4.app.Fragment implements BottomBarButtonPath {

public ActionMode mActionMode;
public BitmapDrawable folder, apk, DARK_IMAGE, DARK_VIDEO;
Expand Down Expand Up @@ -1785,6 +1786,21 @@ public synchronized void removeLayoutElement(int index) {
this.LIST_ELEMENTS.remove(index);
}

@Override
public void changePath(String path) {
loadlist(path, false, openMode);
}

@Override
public String getPath() {
return getCurrentPath();
}

@Override
public int getRootDrawable() {
return R.drawable.root;
}

/**
* Inner class which monitors any change in local filesystem and updates the adapter
* Makes use of inotify in Linux
Expand Down
67 changes: 27 additions & 40 deletions app/src/main/java/com/amaze/filemanager/fragments/ZipViewer.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,12 @@
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.v4.app.Fragment;
Expand Down Expand Up @@ -65,6 +63,7 @@
import com.amaze.filemanager.ui.ZipObj;
import com.amaze.filemanager.ui.views.DividerItemDecoration;
import com.amaze.filemanager.ui.views.FastScroller;
import com.amaze.filemanager.utils.BottomBarButtonPath;
import com.amaze.filemanager.utils.OpenMode;
import com.amaze.filemanager.utils.ServiceWatcherUtil;
import com.amaze.filemanager.utils.Utils;
Expand All @@ -78,7 +77,7 @@
import java.util.ArrayList;
import java.util.Calendar;

public class ZipViewer extends Fragment {
public class ZipViewer extends Fragment implements BottomBarButtonPath {

private UtilitiesProviderInterface utilsProvider;
public String s;
Expand Down Expand Up @@ -246,36 +245,6 @@ public boolean onTouch(View view, MotionEvent motionEvent) {
}

}
String fileName = null;
try {
if (uri.getScheme().equals(KEY_FILE)) {
fileName = uri.getLastPathSegment();
} else {
Cursor cursor = null;
try {
cursor = getActivity().getContentResolver().query(uri, new String[]{
MediaStore.Images.ImageColumns.DISPLAY_NAME
}, null, null, null);

if (cursor != null && cursor.moveToFirst()) {
fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.ImageColumns.DISPLAY_NAME));
}
} finally {

if (cursor != null) {
cursor.close();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (fileName == null || fileName.trim().length() == 0) fileName = f.getName();
try {
mainActivity.getAppbar().setTitle(fileName);
} catch (Exception e) {
mainActivity.getAppbar().setTitle(getResources().getString(R.string.zip_viewer));
}
mainActivity.supportInvalidateOptionsMenu();
mToolbarHeight = getToolbarHeight(getActivity());
paddingTop = (mToolbarHeight) + dpToPx(72);
Expand Down Expand Up @@ -548,12 +517,9 @@ void refresh() {
}


public void bbar() {
if (current != null && current.length() != 0)
mainActivity.getAppbar().getBottomBar().updatePath("/" + current, false, null, OpenMode.FILE, folder, file);
else mainActivity.getAppbar().getBottomBar().updatePath("/", false, null, OpenMode.FILE, folder, file);


public void updateBottomBar() {
String path = current != null && current.length() != 0? f.getName() + "/" + current:f.getName();
mainActivity.getAppbar().getBottomBar().updatePath(path, false, null, OpenMode.FILE, folder, file);
}

int file = 0, folder = 0;
Expand Down Expand Up @@ -612,12 +578,33 @@ public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
});
listView.stopScroll();
zipViewer.current = dir;
zipViewer.bbar();
zipViewer.updateBottomBar();
swipeRefreshLayout.setRefreshing(false);
}

public void loadlist(String path) {
new ZipHelperTask(this, "").execute(path);

}

@Override
public void changePath(String path) {
if(path.equals("/")) path = "";
if (openmode == 0) {
new ZipHelperTask(this, new File(path).getParent()).execute(s);
} else {
new RarHelperTask(this, path).execute(f);
}
}

@Override
public String getPath() {
if(current != null && current.length() != 0) return "/" + current;
else return "";
}

@Override
public int getRootDrawable() {
return R.drawable.ic_compressed_white_24dp;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import android.os.CountDownTimer;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.view.GestureDetector;
import android.view.Gravity;
import android.view.MotionEvent;
Expand All @@ -26,8 +27,11 @@
import com.amaze.filemanager.R;
import com.amaze.filemanager.activities.MainActivity;
import com.amaze.filemanager.fragments.MainFragment;
import com.amaze.filemanager.fragments.TabFragment;
import com.amaze.filemanager.fragments.ZipViewer;
import com.amaze.filemanager.fragments.preference_fragments.Preffrag;
import com.amaze.filemanager.ui.dialogs.GeneralDialogCreation;
import com.amaze.filemanager.utils.BottomBarButtonPath;
import com.amaze.filemanager.utils.MainActivityHelper;
import com.amaze.filemanager.utils.OpenMode;
import com.amaze.filemanager.utils.Utils;
Expand Down Expand Up @@ -97,16 +101,7 @@ public BottomBar(AppBar appbar, MainActivity a) {
buttonParams.gravity = Gravity.CENTER_VERTICAL;

buttonRoot = new ImageButton(a);
buttonRoot.setImageDrawable(a.getResources().getDrawable(R.drawable.root));
buttonRoot.setBackgroundColor(Color.TRANSPARENT);
buttonRoot.setOnClickListener(new View.OnClickListener() {
public void onClick(View p1) {
MainFragment m = mainActivity.get().getCurrentMainFragment();
m.loadlist(("/"), false, m.openMode);
timer.cancel();
timer.start();
}
});
buttonRoot.setLayoutParams(buttonParams);

buttonStorage = new ImageButton(a);
Expand Down Expand Up @@ -136,12 +131,20 @@ public boolean onDown(MotionEvent e) {

@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
MainFragment m = mainActivity.get().getCurrentMainFragment();
if (m.openMode == OpenMode.FILE) {
Fragment fragmentAtFrame = mainActivity.get().getFragmentAtFrame();
if(fragmentAtFrame instanceof TabFragment) {
MainFragment m = mainActivity.get().getCurrentMainFragment();
if (m.openMode == OpenMode.FILE) {
Futils.crossfade(buttons, pathLayout);
timer.cancel();
timer.start();
showButtons(m);
}
} else if (fragmentAtFrame instanceof ZipViewer) {
Futils.crossfade(buttons, pathLayout);
timer.cancel();
timer.start();
showButtons(m);
showButtons((BottomBarButtonPath) fragmentAtFrame);
}
return false;
}
Expand Down Expand Up @@ -185,14 +188,23 @@ public boolean areButtonsShowing() {
return buttons.getVisibility() == View.VISIBLE;
}

public void showButtons(final MainFragment mainFrag) {
final String path = mainFrag.getCurrentPath();
public void showButtons(final BottomBarButtonPath buttonPathInterface) {
final String path = buttonPathInterface.getPath();
if (buttons.getVisibility() == View.VISIBLE) {
lastUsedArrowButton = 0;
lastUsedFolderButton = 0;
buttons.removeAllViews();
buttons.setMinimumHeight(pathLayout.getHeight());

buttonRoot.setImageDrawable(mainActivity.get().getResources().getDrawable(buttonPathInterface.getRootDrawable()));
buttonRoot.setOnClickListener(new View.OnClickListener() {
public void onClick(View p1) {
buttonPathInterface.changePath("/");
timer.cancel();
timer.start();
}
});

Bundle bundle = Futils.getPaths(path, mainActivity.get());
ArrayList<String> names = bundle.getStringArrayList("names");
ArrayList<String> rnames = bundle.getStringArrayList("names");
Expand All @@ -214,7 +226,7 @@ public void showButtons(final MainFragment mainFrag) {
} else if (Futils.isStorage(rpaths.get(i))) {
buttonStorage.setOnClickListener(new View.OnClickListener() {
public void onClick(View p1) {
mainFrag.loadlist((rpaths.get(k)), false, mainFrag.openMode);
buttonPathInterface.changePath(rpaths.get(k));
timer.cancel();
timer.start();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.amaze.filemanager.utils;

import android.support.annotation.DrawableRes;

/**
* This lets BottomBar be independent of the Fragment MainActivity is housing
*
* @author Emmanuel
* on 20/8/2017, at 13:35.
*/

public interface BottomBarButtonPath {
void changePath(String path);

String getPath();

@DrawableRes int getRootDrawable();
}
8 changes: 8 additions & 0 deletions app/src/main/res/drawable/ic_compressed_white_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="@color/vectors_white"
android:pathData="M14,17H12V15H10V13H12V15H14M14,9H12V11H14V13H12V11H10V9H12V7H10V5H12V7H14M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" />
</vector>

0 comments on commit 6c020ee

Please sign in to comment.