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