/* * RecorderManager.java * RecorderManager * * Github: https://github.com/daniulive/SmarterStreaming * * Created by DaniuLive on 2015/09/20. * Copyright © 2014~2016 DaniuLive. All rights reserved. */ package com.daniulive.smartpublisher; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.content.Intent; import android.widget.Button; import java.io.File; import android.widget.ListView; import java.util.ArrayList; import android.widget.AdapterView; import android.widget.SimpleAdapter; import java.util.Map; import java.util.HashMap; import android.widget.AdapterView.OnItemClickListener; public class RecorderManager extends Activity { private String recDirPath = null; private Button btnDelAllRecFiles; private ListView recFileListView = null; private ArrayList<ArrayList<String> > fileList = null; private final String Tag = "RecMgr"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recorder_manager); Intent intent = getIntent(); recDirPath = intent.getStringExtra("RecoderDir"); btnDelAllRecFiles = (Button)findViewById(R.id.button_delete_all_rec_files); btnDelAllRecFiles.setOnClickListener(new ButtonDelAllRecFilesListenser()); recFileListView = (ListView) findViewById(R.id.rec_file_list); GetRecFileList(); SimpleAdapter ladapter = new SimpleAdapter(this,getMapData(fileList),R.layout.rec_files_list_view_item, new String[]{"ItemFileName"},new int[]{R.id.ItemFileName}); recFileListView.setAdapter(ladapter); recFileListView.setOnItemClickListener(new OnItemClickListener() { @SuppressWarnings("unchecked") @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView)parent; HashMap<String, String> map = (HashMap<String, String>) listView.getItemAtPosition(position); String fileName = map.get("ItemFileName"); PlayRecFile(fileName); } }); } private void PlayRecFile(String fileName) { if ( fileName == null || fileName.isEmpty() ) return; if ( fileList == null ) return; String filePath = null; for ( int i =0; i < fileList.size(); ++i ) { ArrayList<String> item = fileList.get(i); if ( item.get(0) != null && item.get(0) == fileName ) { filePath = item.get(1); break; } } if ( filePath != null && !filePath.isEmpty() ) { Log.i(Tag, "PlayRecFile name:" + fileName + " path:" + filePath); Intent intent = new Intent(); intent.setClass(RecorderManager.this, RecorderPlayback.class); intent.putExtra("RecorderFilePath", filePath); startActivity(intent); } } private ArrayList<Map<String, Object>> getMapData(ArrayList<ArrayList<String> > list) { ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(); if ( list == null ) return data; for(int i=0;i<list.size();i++) { Map<String, Object> item = new HashMap<String,Object>(); item.put("ItemFileName",list.get(i).get(0)); data.add(item); } return data; } private void GetRecFileList() { if ( recDirPath == null ) { Log.i(Tag, "recDirPath is null"); return; } if ( recDirPath.isEmpty() ) { Log.i(Tag, "recDirPath is empty"); return; } File recDirFile = null; try { recDirFile = new File(recDirPath); } catch(Exception e) { e.printStackTrace(); return; } if ( !recDirFile.exists() ) { Log.e("Tag", "rec dir is not exist, path:" + recDirPath); return; } if ( !recDirFile.isDirectory() ) { Log.e(Tag, recDirPath + " is not dir"); return; } File[] files = recDirFile.listFiles(); if ( files == null ) { return; } fileList = new ArrayList<ArrayList<String> >(); try { for ( int i =0; i < files.length; ++i ) { File recFile = files[i]; if ( recFile == null ) { continue; } //Log.i(Tag, "recfile:" + recFile.getAbsolutePath()); if ( !recFile.isFile() ) { continue; } if ( !recFile.exists() ) { continue; } String name = recFile.getName(); if ( name == null ) { continue; } if ( name.isEmpty() ) { continue; } if ( name.endsWith(".mp4") ) { ArrayList<String> item = new ArrayList<String>(); item.add(name); item.add(recFile.getAbsolutePath()); fileList.add(item); } } } catch(Exception e) { e.printStackTrace(); } } private void DelAllRecFiles() { Log.i(Tag, "DelAllRecFiles++++"); if ( recDirPath == null ) { Log.i(Tag, "recDirPath is null"); return; } if ( recDirPath.isEmpty() ) { Log.i(Tag, "recDirPath is empty"); return; } File recDirFile = null; try { recDirFile = new File(recDirPath); } catch(Exception e) { e.printStackTrace(); return; } if ( !recDirFile.exists() ) { Log.e("Tag", "rec dir is not exist, path:" + recDirPath); return; } if ( !recDirFile.isDirectory() ) { Log.e(Tag, recDirPath + " is not dir"); return; } File[] files = recDirFile.listFiles(); if ( files == null ) { return; } try { for ( int i =0; i < files.length; ++i ) { File recFile = files[i]; if ( recFile == null ) { continue; } //Log.i(Tag, "recfile:" + recFile.getAbsolutePath()); if ( !recFile.isFile() ) { continue; } if ( !recFile.exists() ) { continue; } String name = recFile.getName(); if ( name == null ) { continue; } if ( name.isEmpty() ) { continue; } if ( name.endsWith(".mp4") ) { if ( recFile.delete() ) { Log.i(Tag, "Delete file:" + name); } else { Log.i(Tag, "Delete file failed, " + name); } } } } catch(Exception e) { e.printStackTrace(); } fileList = null; SimpleAdapter ladapter = new SimpleAdapter(this,getMapData(fileList),R.layout.rec_files_list_view_item, new String[]{"ItemFileName"},new int[]{R.id.ItemFileName}); recFileListView.setAdapter(ladapter); Log.i(Tag, "DelAllRecFiles----"); } class ButtonDelAllRecFilesListenser implements OnClickListener { public void onClick(View v) { DelAllRecFiles(); } } }