13
13
import android .os .Bundle ;
14
14
import android .os .Handler ;
15
15
import android .os .Looper ;
16
+ import android .support .v4 .content .FileProvider ;
16
17
import android .support .v7 .app .AppCompatActivity ;
17
18
import android .support .v7 .view .ActionMode ;
18
19
import android .support .v7 .widget .LinearLayoutManager ;
@@ -60,7 +61,7 @@ public class FileBrowser extends AppCompatActivity implements OnFileChangedListe
60
61
61
62
private CustomAdapter mAdapter ;
62
63
private FastScrollRecyclerView .LayoutManager mLayoutManager ;
63
- private FastScrollRecyclerView mFilesList ;
64
+ private FastScrollRecyclerView mFilesListView ;
64
65
65
66
private BottomBar mBottomView ;
66
67
private BottomBar mPathChange ;
@@ -129,7 +130,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
129
130
super .onActivityResult (requestCode , resultCode , data );
130
131
if (requestCode ==APP_PERMISSION_REQUEST ) {
131
132
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 ();
133
134
loadUi ();
134
135
}
135
136
}
@@ -160,7 +161,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
160
161
onFileChanged (mNavigationHelper .getCurrentDirectory ());
161
162
}
162
163
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 (){
164
165
@ Override
165
166
public void execute (final String val ) {
166
167
io .createDirectory (new File (mNavigationHelper .getCurrentDirectory (),val .trim ()));
@@ -169,11 +170,11 @@ public void execute(final String val) {
169
170
}
170
171
else if (item .getItemId ()== R .id .action_paste ) {
171
172
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 );
173
174
return false ;
174
175
}
175
176
if (op .getSelectedFiles ()==null ) {
176
- UIUtils .ShowToast ("No files selected to paste" , mContext );
177
+ UIUtils .ShowToast (mContext . getString ( R . string . no_files_paste ) , mContext );
177
178
return false ;
178
179
}
179
180
io .pasteFiles (mNavigationHelper .getCurrentDirectory ());
@@ -197,12 +198,12 @@ private void loadUi() {
197
198
setContentView (R .layout .filebrowser_activity_main );
198
199
199
200
mCurrentPath = (TextView ) findViewById (R .id .currentPath );
200
- mFilesList = (FastScrollRecyclerView ) findViewById (R .id .recycler_view );
201
+ mFilesListView = (FastScrollRecyclerView ) findViewById (R .id .recycler_view );
201
202
mAdapter = new CustomAdapter (mFileList ,mContext );
202
- mFilesList .setAdapter (mAdapter );
203
+ mFilesListView .setAdapter (mAdapter );
203
204
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 () {
206
207
@ Override
207
208
public void onItemClick (View view , int position ) {
208
209
// TODO Handle item click
@@ -215,12 +216,14 @@ public void onItemClick(View view, int position) {
215
216
MimeTypeMap mimeMap = MimeTypeMap .getSingleton ();
216
217
Intent openFileIntent = new Intent (Intent .ACTION_VIEW );
217
218
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 );
219
221
openFileIntent .setFlags (Intent .FLAG_ACTIVITY_NEW_TASK );
222
+ openFileIntent .setFlags (Intent .FLAG_GRANT_READ_URI_PERMISSION );
220
223
try {
221
224
mContext .startActivity (openFileIntent );
222
225
} 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 ();
224
227
}
225
228
}
226
229
}
@@ -230,12 +233,12 @@ public void onItemClick(View view, int position) {
230
233
public void onItemLongClick (View view , int position ) {
231
234
switchMode (Constants .CHOICE_MODE .MULTI_CHOICE );
232
235
mAdapter .selectItem (position );
233
- mFilesList .scrollToPosition (position );
236
+ mFilesListView .scrollToPosition (position );
234
237
}
235
238
});
236
- mFilesList .addOnItemTouchListener (onItemClickListener );
239
+ mFilesListView .addOnItemTouchListener (onItemClickListener );
237
240
238
- mFilesList . setStateChangeListener (new OnFastScrollStateChangeListener () {
241
+ mFilesListView . setOnFastScrollStateChangeListener (new OnFastScrollStateChangeListener () {
239
242
@ Override
240
243
public void onFastScrollStart () {
241
244
onItemClickListener .setmFastScrolling (true );
@@ -256,7 +259,7 @@ public void onFastScrollStop() {
256
259
mPathChange = (BottomBar ) findViewById (R .id .currPath_Nav );
257
260
258
261
mTabChangeListener = new TabChangeListener (this ,mNavigationHelper ,mAdapter ,io ,this );
259
- mTabChangeListener .setmRecyclerView (mFilesList );
262
+ mTabChangeListener .setmRecyclerView (mFilesListView );
260
263
261
264
mBottomView .setOnTabSelectListener (mTabChangeListener );
262
265
mBottomView .setOnTabReselectListener (mTabChangeListener );
@@ -286,7 +289,7 @@ public void switchMode(Constants.CHOICE_MODE mode) {
286
289
closeSearchView ();
287
290
ToolbarActionMode newToolBar = new ToolbarActionMode (this ,this ,mAdapter ,Constants .APP_MODE .FILE_BROWSER ,io );
288
291
mActionMode = startSupportActionMode (newToolBar );
289
- mActionMode .setTitle ("Select Multiple Files" );
292
+ mActionMode .setTitle (mContext . getString ( R . string . select_multiple ) );
290
293
}
291
294
}
292
295
}
@@ -311,9 +314,9 @@ public void setNullToActionMode() {
311
314
312
315
@ Override
313
316
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 );
317
320
mTabChangeListener .setmAdapter (mAdapter );
318
321
mAdapter .notifyDataSetChanged ();
319
322
}
0 commit comments