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 {
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| }
 |