1313import android .os .Bundle ;
1414import android .os .Handler ;
1515import android .os .Looper ;
16+ import android .support .v4 .content .FileProvider ;
1617import android .support .v7 .app .AppCompatActivity ;
1718import android .support .v7 .view .ActionMode ;
1819import android .support .v7 .widget .LinearLayoutManager ;
@@ -60,7 +61,7 @@ public class FileBrowser extends AppCompatActivity implements OnFileChangedListe
6061
6162 private CustomAdapter mAdapter ;
6263 private FastScrollRecyclerView .LayoutManager mLayoutManager ;
63- private FastScrollRecyclerView mFilesList ;
64+ private FastScrollRecyclerView mFilesListView ;
6465
6566 private BottomBar mBottomView ;
6667 private BottomBar mPathChange ;
@@ -129,7 +130,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
129130 super .onActivityResult (requestCode , resultCode , data );
130131 if (requestCode ==APP_PERMISSION_REQUEST ) {
131132 if (resultCode != Activity .RESULT_OK )
132- Toast .makeText (mContext ,"Some permissions not granted!. App may not work properly!. Please grant the required permissions!" ,Toast .LENGTH_LONG ).show ();
133+ Toast .makeText (mContext ,mContext . getString ( R . string . error_no_permissions ) ,Toast .LENGTH_LONG ).show ();
133134 loadUi ();
134135 }
135136 }
@@ -160,7 +161,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
160161 onFileChanged (mNavigationHelper .getCurrentDirectory ());
161162 }
162163 else if (item .getItemId ()== R .id .action_newfolder ) {
163- UIUtils .showEditTextDialog (this , "Folder Name" , "" , new IFuncPtr (){
164+ UIUtils .showEditTextDialog (this , getString ( R . string . new_folder ) , "" , new IFuncPtr (){
164165 @ Override
165166 public void execute (final String val ) {
166167 io .createDirectory (new File (mNavigationHelper .getCurrentDirectory (),val .trim ()));
@@ -169,11 +170,11 @@ public void execute(final String val) {
169170 }
170171 else if (item .getItemId ()== R .id .action_paste ) {
171172 if (op .getOperation () == Operations .FILE_OPERATIONS .NONE ) {
172- UIUtils .ShowToast ("No operation selected" , mContext );
173+ UIUtils .ShowToast (mContext . getString ( R . string . no_operation_error ) , mContext );
173174 return false ;
174175 }
175176 if (op .getSelectedFiles ()==null ) {
176- UIUtils .ShowToast ("No files selected to paste" , mContext );
177+ UIUtils .ShowToast (mContext . getString ( R . string . no_files_paste ) , mContext );
177178 return false ;
178179 }
179180 io .pasteFiles (mNavigationHelper .getCurrentDirectory ());
@@ -197,12 +198,12 @@ private void loadUi() {
197198 setContentView (R .layout .filebrowser_activity_main );
198199
199200 mCurrentPath = (TextView ) findViewById (R .id .currentPath );
200- mFilesList = (FastScrollRecyclerView ) findViewById (R .id .recycler_view );
201+ mFilesListView = (FastScrollRecyclerView ) findViewById (R .id .recycler_view );
201202 mAdapter = new CustomAdapter (mFileList ,mContext );
202- mFilesList .setAdapter (mAdapter );
203+ mFilesListView .setAdapter (mAdapter );
203204 mLayoutManager = new LinearLayoutManager (mContext );
204- mFilesList .setLayoutManager (mLayoutManager );
205- final CustomAdapterItemClickListener onItemClickListener = new CustomAdapterItemClickListener (mContext , mFilesList , new CustomAdapterItemClickListener .OnItemClickListener () {
205+ mFilesListView .setLayoutManager (mLayoutManager );
206+ final CustomAdapterItemClickListener onItemClickListener = new CustomAdapterItemClickListener (mContext , mFilesListView , new CustomAdapterItemClickListener .OnItemClickListener () {
206207 @ Override
207208 public void onItemClick (View view , int position ) {
208209 // TODO Handle item click
@@ -215,12 +216,14 @@ public void onItemClick(View view, int position) {
215216 MimeTypeMap mimeMap = MimeTypeMap .getSingleton ();
216217 Intent openFileIntent = new Intent (Intent .ACTION_VIEW );
217218 String mimeType = mimeMap .getMimeTypeFromExtension (FilenameUtils .getExtension (f .getName ()));
218- openFileIntent .setDataAndType (Uri .fromFile (f ),mimeType );
219+ Uri uri = FileProvider .getUriForFile (mContext ,"com.aditya.filebrowser.provider" , f );
220+ openFileIntent .setDataAndType (uri ,mimeType );
219221 openFileIntent .setFlags (Intent .FLAG_ACTIVITY_NEW_TASK );
222+ openFileIntent .setFlags (Intent .FLAG_GRANT_READ_URI_PERMISSION );
220223 try {
221224 mContext .startActivity (openFileIntent );
222225 } catch (ActivityNotFoundException e ) {
223- Toast .makeText (mContext , "No app found to handle this type of file." , Toast .LENGTH_LONG ).show ();
226+ Toast .makeText (mContext , mContext . getString ( R . string . no_app_to_handle ) , Toast .LENGTH_LONG ).show ();
224227 }
225228 }
226229 }
@@ -230,12 +233,12 @@ public void onItemClick(View view, int position) {
230233 public void onItemLongClick (View view , int position ) {
231234 switchMode (Constants .CHOICE_MODE .MULTI_CHOICE );
232235 mAdapter .selectItem (position );
233- mFilesList .scrollToPosition (position );
236+ mFilesListView .scrollToPosition (position );
234237 }
235238 });
236- mFilesList .addOnItemTouchListener (onItemClickListener );
239+ mFilesListView .addOnItemTouchListener (onItemClickListener );
237240
238- mFilesList . setStateChangeListener (new OnFastScrollStateChangeListener () {
241+ mFilesListView . setOnFastScrollStateChangeListener (new OnFastScrollStateChangeListener () {
239242 @ Override
240243 public void onFastScrollStart () {
241244 onItemClickListener .setmFastScrolling (true );
@@ -256,7 +259,7 @@ public void onFastScrollStop() {
256259 mPathChange = (BottomBar ) findViewById (R .id .currPath_Nav );
257260
258261 mTabChangeListener = new TabChangeListener (this ,mNavigationHelper ,mAdapter ,io ,this );
259- mTabChangeListener .setmRecyclerView (mFilesList );
262+ mTabChangeListener .setmRecyclerView (mFilesListView );
260263
261264 mBottomView .setOnTabSelectListener (mTabChangeListener );
262265 mBottomView .setOnTabReselectListener (mTabChangeListener );
@@ -286,7 +289,7 @@ public void switchMode(Constants.CHOICE_MODE mode) {
286289 closeSearchView ();
287290 ToolbarActionMode newToolBar = new ToolbarActionMode (this ,this ,mAdapter ,Constants .APP_MODE .FILE_BROWSER ,io );
288291 mActionMode = startSupportActionMode (newToolBar );
289- mActionMode .setTitle ("Select Multiple Files" );
292+ mActionMode .setTitle (mContext . getString ( R . string . select_multiple ) );
290293 }
291294 }
292295 }
@@ -311,9 +314,9 @@ public void setNullToActionMode() {
311314
312315 @ Override
313316 public void reDrawFileList () {
314- mFilesList .setLayoutManager (null );
315- mFilesList .setAdapter (mAdapter );
316- mFilesList .setLayoutManager (mLayoutManager );
317+ mFilesListView .setLayoutManager (null );
318+ mFilesListView .setAdapter (mAdapter );
319+ mFilesListView .setLayoutManager (mLayoutManager );
317320 mTabChangeListener .setmAdapter (mAdapter );
318321 mAdapter .notifyDataSetChanged ();
319322 }
0 commit comments