158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | package com.novelbook.android.filechooser; | |||
|  | 
 | |||
|  | import android.Manifest; | |||
|  | import android.app.Activity; | |||
|  | import android.content.Intent; | |||
|  | import android.content.pm.PackageManager; | |||
|  | import android.os.Build; | |||
|  | import android.os.Bundle; | |||
|  | import android.support.v4.app.ActivityCompat; | |||
|  | import android.support.v4.app.FragmentManager; | |||
|  | import android.support.v4.app.FragmentTransaction; | |||
|  | import android.support.v4.content.ContextCompat; | |||
|  | import android.support.v7.app.AppCompatActivity; | |||
|  | import android.support.v7.widget.Toolbar; | |||
|  | import android.view.Menu; | |||
|  | import android.view.MenuItem; | |||
|  | import android.view.View; | |||
|  | import android.widget.Toast; | |||
|  | 
 | |||
|  | import com.novelbook.android.FileActivity; | |||
|  | import com.novelbook.android.R; | |||
|  | 
 | |||
|  | 
 | |||
|  | import java.util.ArrayList; | |||
|  | 
 | |||
|  | public class FileChooserActivity extends AppCompatActivity { | |||
|  | 
 | |||
|  |     private Toolbar toolbar; | |||
|  |     private FragmentManager fragmentManager = null; | |||
|  |     private FragmentTransaction fragmentTransaction = null; | |||
|  |     private DirectoryFragment mDirectoryFragment; | |||
|  | 
 | |||
|  |     public static final int EXTERNAL_STORAGE_REQ_CODE = 10 ; | |||
|  |     @Override | |||
|  |     protected void onCreate(Bundle savedInstanceState) { | |||
|  |         super.onCreate(savedInstanceState); | |||
|  |         setContentView(R.layout. zactivity_filechooser); | |||
|  | 
 | |||
|  | 
 | |||
|  |         toolbar = (Toolbar) findViewById(R.id.tool_bar); | |||
|  |         toolbar.setTitle("目录"); | |||
|  |         setSupportActionBar(toolbar); | |||
|  |         getSupportActionBar().setDisplayHomeAsUpEnabled(true); | |||
|  |         toolbar.setNavigationOnClickListener(new View.OnClickListener() { | |||
|  |             @Override | |||
|  |             public void onClick(View v) { | |||
|  |                 finish(); | |||
|  |             } | |||
|  |         }); | |||
|  | 
 | |||
|  |         fragmentManager = getSupportFragmentManager(); | |||
|  |         fragmentTransaction = fragmentManager.beginTransaction(); | |||
|  | 
 | |||
|  |         mDirectoryFragment = new DirectoryFragment(); | |||
|  |         mDirectoryFragment.setDelegate(new DirectoryFragment.DocumentSelectActivityDelegate() { | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void startDocumentSelectActivity() { | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void didSelectFiles(DirectoryFragment activity, | |||
|  |                                        ArrayList<String> files) { | |||
|  |                 mDirectoryFragment.showReadBox(files.get(0).toString()); | |||
|  |             } | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void updateToolBarName(String name) { | |||
|  |                 toolbar.setTitle(name); | |||
|  | 
 | |||
|  |             } | |||
|  |         }); | |||
|  |         fragmentTransaction.add(R.id.fragment_container, mDirectoryFragment, "" + mDirectoryFragment.toString()); | |||
|  |         fragmentTransaction.commit(); | |||
|  | 
 | |||
|  |         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | |||
|  |             checkPermission(FileChooserActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, EXTERNAL_STORAGE_REQ_CODE,"添加图书需要此权限,请允许"); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     protected void onResume() { | |||
|  |         super.onResume(); | |||
|  |        // MobclickAgent.onResume(this); | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     protected void onPause() { | |||
|  |         super.onPause(); | |||
|  |       //  MobclickAgent.onPause(this); | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     protected void onDestroy() { | |||
|  |         mDirectoryFragment.onFragmentDestroy(); | |||
|  |         super.onDestroy(); | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public void onBackPressed() { | |||
|  |         if (mDirectoryFragment.onBackPressed_()) { | |||
|  |             super.onBackPressed(); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public boolean onCreateOptionsMenu(Menu menu) { | |||
|  |         // Inflate the menu; this adds items to the action bar if it is present. | |||
|  |        // getMenuInflater().inflate(R.menu.file, menu); | |||
|  |         return true; | |||
|  |     } | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public boolean onOptionsItemSelected(MenuItem item) { | |||
|  |         // Handle action bar item clicks here. The action bar will | |||
|  |         // automatically handle clicks on the Home/Up button, so long | |||
|  |         // as you specify a parent activity in AndroidManifest.xml. | |||
|  |         int id = item.getItemId(); | |||
|  | 
 | |||
|  |         if (id == R.id.action_select_file){ | |||
|  |             Intent intent = new Intent(FileChooserActivity.this, FileActivity.class); | |||
|  |             startActivity(intent); | |||
|  |         } | |||
|  | 
 | |||
|  |         return super.onOptionsItemSelected(item); | |||
|  |     } | |||
|  | 
 | |||
|  |     /** | |||
|  |      * 检查是否拥有权限 | |||
|  |      * @param thisActivity | |||
|  |      * @param permission | |||
|  |      * @param requestCode | |||
|  |      * @param errorText | |||
|  |      */ | |||
|  |     protected void checkPermission (Activity thisActivity, String permission, int requestCode, String errorText) { | |||
|  |         //判断当前Activity是否已经获得了该权限 | |||
|  |         if(ContextCompat.checkSelfPermission(thisActivity,permission) != PackageManager.PERMISSION_GRANTED) { | |||
|  |             //如果App的权限申请曾经被用户拒绝过,就需要在这里跟用户做出解释 | |||
|  |             if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, | |||
|  |                     permission)) { | |||
|  |                 Toast.makeText(this,errorText,Toast.LENGTH_SHORT).show(); | |||
|  |                 //进行权限请求 | |||
|  |                 ActivityCompat.requestPermissions(thisActivity, | |||
|  |                         new String[]{permission}, | |||
|  |                         requestCode); | |||
|  |             } else { | |||
|  |                 //进行权限请求 | |||
|  |                 ActivityCompat.requestPermissions(thisActivity, | |||
|  |                         new String[]{permission}, | |||
|  |                         requestCode); | |||
|  |             } | |||
|  |         } else { | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  | } |