mirror of
				https://github.com/SimpleMobileTools/Simple-File-Manager.git
				synced 2025-06-05 22:09:15 +02:00 
			
		
		
		
	add toggling between displaying full / not full path
This commit is contained in:
		| @@ -14,8 +14,10 @@ import android.widget.TextView; | |||||||
| import com.simplemobiletools.filemanager.models.FileDirItem; | import com.simplemobiletools.filemanager.models.FileDirItem; | ||||||
|  |  | ||||||
| public class Breadcrumbs extends LinearLayout implements View.OnClickListener { | public class Breadcrumbs extends LinearLayout implements View.OnClickListener { | ||||||
|     private LayoutInflater mInflater; |  | ||||||
|     private int mDeviceWidth; |     private int mDeviceWidth; | ||||||
|  |     private boolean mShowFullPath; | ||||||
|  |  | ||||||
|  |     private LayoutInflater mInflater; | ||||||
|     private BreadcrumbsListener mListener; |     private BreadcrumbsListener mListener; | ||||||
|  |  | ||||||
|     public Breadcrumbs(Context context, AttributeSet attrs) { |     public Breadcrumbs(Context context, AttributeSet attrs) { | ||||||
| @@ -100,8 +102,13 @@ public class Breadcrumbs extends LinearLayout implements View.OnClickListener { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void setInitialBreadcrumb(String fullPath) { |     public void setInitialBreadcrumb(String fullPath) { | ||||||
|  |         mShowFullPath = Config.newInstance(getContext()).getShowFullPath(); | ||||||
|         final String basePath = Environment.getExternalStorageDirectory().toString(); |         final String basePath = Environment.getExternalStorageDirectory().toString(); | ||||||
|         final String tempPath = fullPath.replace(basePath, getContext().getString(R.string.initial_breadcrumb) + "/"); |         String tempPath = fullPath; | ||||||
|  |         if (!mShowFullPath) { | ||||||
|  |             tempPath = fullPath.replace(basePath, getContext().getString(R.string.initial_breadcrumb) + "/"); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         removeAllViewsInLayout(); |         removeAllViewsInLayout(); | ||||||
|         final String[] dirs = tempPath.split("/"); |         final String[] dirs = tempPath.split("/"); | ||||||
|         String currPath = basePath; |         String currPath = basePath; | ||||||
| @@ -109,13 +116,19 @@ public class Breadcrumbs extends LinearLayout implements View.OnClickListener { | |||||||
|             final String dir = dirs[i]; |             final String dir = dirs[i]; | ||||||
|             if (i > 0) { |             if (i > 0) { | ||||||
|                 currPath += dir + "/"; |                 currPath += dir + "/"; | ||||||
|  |             } else if (mShowFullPath) { | ||||||
|  |                 addRootFolder(); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if (dir.isEmpty()) |             if (dir.isEmpty()) | ||||||
|                 continue; |                 continue; | ||||||
|  |  | ||||||
|             final FileDirItem item = new FileDirItem(i > 0 ? currPath : basePath, dir, true, 0, 0); |             final FileDirItem item = new FileDirItem(i > 0 ? currPath : basePath, dir, true, 0, 0); | ||||||
|             addBreadcrumb(item, i > 1); |             addBreadcrumb(item, i > 0 || mShowFullPath); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (dirs.length == 0 && mShowFullPath) { | ||||||
|  |             addRootFolder(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -137,6 +150,11 @@ public class Breadcrumbs extends LinearLayout implements View.OnClickListener { | |||||||
|         removeView(getChildAt(getChildCount() - 1)); |         removeView(getChildAt(getChildCount() - 1)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private void addRootFolder() { | ||||||
|  |         final FileDirItem item = new FileDirItem("/", "  / ", true, 0, 0); | ||||||
|  |         addBreadcrumb(item, false); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onClick(View v) { |     public void onClick(View v) { | ||||||
|         final int cnt = getChildCount(); |         final int cnt = getChildCount(); | ||||||
|   | |||||||
| @@ -25,6 +25,8 @@ public class MainActivity extends SimpleActivity implements ItemsFragment.ItemIn | |||||||
|  |  | ||||||
|     private static final int STORAGE_PERMISSION = 1; |     private static final int STORAGE_PERMISSION = 1; | ||||||
|     private static int mRootFoldersCnt; |     private static int mRootFoldersCnt; | ||||||
|  |     private static boolean mShowFullPath; | ||||||
|  |     private static Config mConfig; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void onCreate(Bundle savedInstanceState) { |     protected void onCreate(Bundle savedInstanceState) { | ||||||
| @@ -32,9 +34,28 @@ public class MainActivity extends SimpleActivity implements ItemsFragment.ItemIn | |||||||
|         setContentView(R.layout.activity_main); |         setContentView(R.layout.activity_main); | ||||||
|         ButterKnife.bind(this); |         ButterKnife.bind(this); | ||||||
|         mBreadcrumbs.setListener(this); |         mBreadcrumbs.setListener(this); | ||||||
|  |         mConfig = Config.newInstance(getApplicationContext()); | ||||||
|         tryInitFileManager(); |         tryInitFileManager(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void onResume() { | ||||||
|  |         super.onResume(); | ||||||
|  |         if (Utils.hasStoragePermission(getApplicationContext())) { | ||||||
|  |             final boolean showFullPath = mConfig.getShowFullPath(); | ||||||
|  |             if (showFullPath != mShowFullPath) | ||||||
|  |                 initRootFileManager(); | ||||||
|  |  | ||||||
|  |             mShowFullPath = showFullPath; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void onPause() { | ||||||
|  |         super.onPause(); | ||||||
|  |         mShowFullPath = mConfig.getShowFullPath(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void onDestroy() { |     protected void onDestroy() { | ||||||
|         super.onDestroy(); |         super.onDestroy(); | ||||||
| @@ -122,7 +143,7 @@ public class MainActivity extends SimpleActivity implements ItemsFragment.ItemIn | |||||||
|     public void breadcrumbClicked(int id) { |     public void breadcrumbClicked(int id) { | ||||||
|         final FileDirItem item = (FileDirItem) mBreadcrumbs.getChildAt(id).getTag(); |         final FileDirItem item = (FileDirItem) mBreadcrumbs.getChildAt(id).getTag(); | ||||||
|         final String path = item.getPath(); |         final String path = item.getPath(); | ||||||
|         openPath(path); |  | ||||||
|         mBreadcrumbs.setInitialBreadcrumb(path); |         mBreadcrumbs.setInitialBreadcrumb(path); | ||||||
|  |         openPath(path); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user