package com.hipipal.texteditor; import java.io.File; import java.io.IOException; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Stack; import com.hipipal.texteditor.common.Constants; import com.hipipal.texteditor.common.RecentFiles; import com.zuowuxuxi.util.FileHelper; import com.zuowuxuxi.util.NAction; import com.zuowuxuxi.util.NUtil; import com.zuowuxuxi.base._WBase; import greendroid.widget.ItemAdapter; import greendroid.widget.QuickActionBar; import greendroid.widget.QuickActionWidget; import greendroid.widget.QuickActionWidget.OnQuickActionClickListener; import greendroid.widget.item.DrawableItem; import greendroid.widget.item.TextItem; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.InvalidRemoteException; import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.storage.file.FileRepositoryBuilder; public class TedLocalActivity extends _ABaseAct implements Constants { private static final String TAG = "local"; private Stack<String> curArtistDir; private QuickActionWidget mBarT; private TextItem curTextItem; private ItemAdapter adapter; private int curPosition = 0; private int request; private Stack<String> prevDir; @SuppressWarnings({ "deprecation", "unchecked", "rawtypes" }) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle extras = getIntent().getExtras(); if (extras != null) { request = extras.getInt(EXTRA_REQUEST_CODE); } else { request = -1; } prevDir = new Stack(); setActionBarContentView(R.layout.m_ted_local); setTitle(R.string.app_name); //initWidgetTabItem(7); //initAD(TAG); ListView listView = (ListView)findViewById(android.R.id.list); //listView.addHeaderView(LayoutInflater.from(this).inflate(R.layout.v_local_bar, null)); listView.setDivider(new ColorDrawable(getResources().getColor(R.color.cgrey6))); listView.setDividerHeight(1); listView.setCacheColorHint(0); adapter = new ItemAdapter(this); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> l, View view, int position, long id) { final TextItem textItem = (TextItem) l.getAdapter().getItem(position); onListItemClick(view, textItem, position); } }); listView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> l, View view, int position, long id) { final TextItem textItem = (TextItem) l.getAdapter().getItem(position); curTextItem = textItem; prepareQuickActionBarT(); mBarT.show(view); return false; } }); String root = NAction.getDefaultRoot(getApplicationContext()); if (root.equals("")) { root = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/com.hipipal.qpyplus"; } curArtistDir = new Stack<String>(); String[] xx = root.split("/"); curArtistDir.push("/"); if (xx.length>1) { for (int i=0;i<xx.length;i++) { Log.d(TAG, "seq:"+xx[i]); if (!xx[i].equals("")) { String yy; if (curArtistDir.peek().endsWith("/")) { yy = curArtistDir.peek()+xx[i]; } else { yy = curArtistDir.peek()+"/"+xx[i]; } curArtistDir.push(yy); } } } if (!NUtil.isExternalStorageExists()) { WBase.setTxtDialogParam(R.drawable.alert_dialog_icon, R.string.not_sd, new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { } }); showDialog(_WBase.DIALOG_NOTIFY_MESSAGE+dialogIndex); dialogIndex++; } else { TextItem progressItem = new TextItem(getString(R.string.loading)); adapter.add(progressItem); adapter.notifyDataSetChanged(); //new CacheAvaiDirs().execute(); } LinearLayout rb = (LinearLayout)findViewById(R.id.return_bar_box); LinearLayout sb = (LinearLayout)findViewById(R.id.setting_box); switch (request) { case REQUEST_RECENT: ImageButton ln = (ImageButton)findViewById(R.id.left_nav); ln.setImageResource(R.drawable.transparent); rb.setVisibility(View.VISIBLE); setTitle(R.string.title_open_recent); break; case REQUEST_OPEN: rb.setVisibility(View.VISIBLE); setTitle(R.string.title_open); //Toast.makeText(this, R.string.toast_open_select, Toast.LENGTH_SHORT).show(); //Crouton.showText(this, R.string.toast_open_select, Style.INFO); break; case REQUEST_SAVE_AS: sb.setVisibility(View.VISIBLE); setTitle(R.string.title_save_as); break; case REQUEST_HOME_PAGE: setTitle(R.string.toast_home_page_select); Toast.makeText(this, R.string.toast_home_page_select, Toast.LENGTH_SHORT).show(); //Crouton.showText(this, R.string.toast_home_page_select, Style.INFO); break; } myloadContent("", -1); } /*@TargetApi(3) @SuppressWarnings("rawtypes") private class CacheAvaiDirs extends AsyncTask { @Override protected Object doInBackground(Object... arg0) { MyApp.getInstance().getAvaiDirs("", true,true); Log.d(TAG, "doInBackground end"); updatePositionHandler.sendEmptyMessage(0); return null; } } public Handler updatePositionHandler = new Handler() { @Override public void handleMessage(Message msg) { myloadContent("", -1); } };*/ @Override public void onResume() { myloadContent("", -1); disNotify(TAG); super.onResume(); } @Override protected void onStop() { finish(); super.onStop(); } public void onNotify(View v) { } /*@Override public boolean onKeyDown(int keycode, KeyEvent event) { if (keycode == KeyEvent.KEYCODE_BACK) { boolean ret = onBack(); if (ret) return ret; } return super.onKeyDown(keycode, event); }*/ public boolean onTop() { if (curArtistDir.size() == 1) { finish(); return false; } else { String xx = curArtistDir.pop(); /*if (xx.lastIndexOf("/")+1 < xx.length()) { xx = xx.substring(xx.lastIndexOf("/")+1); prevDir.push(xx); }*/ prevDir.push(xx); //Log.d(TAG, "prevDir:"+prevDir); myloadContent("", curPosition); return true; } } private void prepareQuickActionBarT() { mBarT = new QuickActionBar(this); mBarT.addQuickAction(new MyQuickAction(this, R.drawable.ic_delete, R.string.info_delete)); mBarT.addQuickAction(new MyQuickAction(this, R.drawable.ic_edit_b, R.string.info_rename)); mBarT.addQuickAction(new MyQuickAction(this, R.drawable.ic_menu_share, R.string.share)); mBarT.setOnQuickActionClickListener(mActionListener); } private OnQuickActionClickListener mActionListener = new OnQuickActionClickListener() { @Override public void onQuickActionClicked(QuickActionWidget widget, int position) { switch (position) { case 0: deleteCurItem(); //Toast.makeText(getApplicationContext(), R.string.not_implement, Toast.LENGTH_SHORT).show(); break; case 1: renameItem(curTextItem); //infoOpen(curTextItem, 0); break; case 2: shareFile(); break; case 3: break; default: } } }; public String getCurrentDir() { return curArtistDir.peek(); } @SuppressLint("DefaultLocale") public void myloadContent(String dirname, int position) { if (request == REQUEST_RECENT) { adapter.clear(); adapter.add(new TextItem(getString(R.string.info_recent))); ArrayList<String> mList = RecentFiles.getRecentFiles(); for (int i=0;i<mList.size();i++) { String item = mList.get(i); DrawableItem sItem = new DrawableItem(item,R.drawable.file_text); sItem.setTag(0, ""); sItem.setTag(1, item); adapter.add(sItem); } adapter.notifyDataSetChanged(); } else { //CacheLog cDL = new CacheLog(getApplicationContext()); //Map<String, Integer> movieDirs = MyApp.getInstance().getAvaiDirs(dirname, false, false); if (dirname!=null && !dirname.equals("")) { curArtistDir.push(curArtistDir.peek()+"/"+dirname); } String curDir = getCurrentDir(); File d = new File(curDir); if (d.exists()) { //Log.d(TAG, "curDi:r"+curDir); String filename,fullfn; DrawableItem sItem; //int filesCount; adapter.clear(); adapter.add(new TextItem(MessageFormat.format(getString(R.string.current_dir), curDir))); //reduceFiles(curDir); try { File[] files = FileHelper.getABSPath(curDir).listFiles(); if (files!=null) { //Arrays.sort(files, sortType); //int index = 0; for (final File file : files) { //index ++; fullfn = file.getAbsolutePath().toString(); filename = file.getName(); if (file.isDirectory()) { sItem = new DrawableItem(filename,R.drawable.path_none); sItem.setTag(0, filename); sItem.setTag(1, fullfn); adapter.add(sItem); } else { String ext = FileHelper.getExt(filename.toLowerCase(), ""); if (!ext.equals("") && CONF.MUEXT.contains("#"+ext+"#")) { //long size = file.length(); //String timeStr = DateTimeHelper.converTime(file.lastModified()/1000, getResources().getStringArray(R.array.time_labels)); //final Uri uFile = Uri.fromFile(file); // //String mCover[] = cDL.get(file.getName(), CONF.CACHE_TYPE_COVER); //String[] syncStat = cDL.get(file.getName(), CONF.CACHE_TYPE_SYNC_DROPBOX); /*int statImg = 0; if (syncStat[0].equals("")) { statImg = 0; } else if (syncStat[0].equals("0")) { statImg = R.drawable.ic_upload; } else if (syncStat[0].equals("1")) { statImg = R.drawable.bsync_dropbox_d; // sucess } else { statImg = R.drawable.ic_warning; // error }*/ //icons from https://github.com/teambox/Free-file-icons if(filename.endsWith(".aac")){ sItem = new DrawableItem(filename, R.drawable.aac); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ai")){ sItem = new DrawableItem(filename, R.drawable.ai); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".aiff")){ sItem = new DrawableItem(filename, R.drawable.aiff); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".asc")){ }else if(filename.endsWith(".asm")){ sItem = new DrawableItem(filename, R.drawable.asm); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".avi")){ sItem = new DrawableItem(filename, R.drawable.avi); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".bmp")){ sItem = new DrawableItem(filename, R.drawable.bmp); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".c")){ sItem = new DrawableItem(filename, R.drawable.c); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".cer")){ }else if(filename.endsWith(".cfg")){ }else if(filename.endsWith(".cpp")){ sItem = new DrawableItem(filename, R.drawable.cpp); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".css")){ sItem = new DrawableItem(filename, R.drawable.css); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".dat")){ sItem = new DrawableItem(filename, R.drawable.dat); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".dmg")){ sItem = new DrawableItem(filename, R.drawable.dmg); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".doc")){ sItem = new DrawableItem(filename, R.drawable.doc); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".dotx")){ sItem = new DrawableItem(filename, R.drawable.dotx); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".dwg")){ sItem = new DrawableItem(filename, R.drawable.dwg); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".dxf")){ sItem = new DrawableItem(filename, R.drawable.dxf); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".eps")){ sItem = new DrawableItem(filename, R.drawable.eps); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".exe")){ sItem = new DrawableItem(filename, R.drawable.exe); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".flv")){ sItem = new DrawableItem(filename, R.drawable.flv); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".gif")){ sItem = new DrawableItem(filename, R.drawable.gif); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".h")){ sItem = new DrawableItem(filename, R.drawable.h); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".hpp")){ sItem = new DrawableItem(filename, R.drawable.hpp); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".htm")){ }else if(filename.endsWith(".html")){ sItem = new DrawableItem(filename, R.drawable.html); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ics")){ sItem = new DrawableItem(filename, R.drawable.ics); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".iso")){ sItem = new DrawableItem(filename, R.drawable.iso); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".java")){ sItem = new DrawableItem(filename, R.drawable.java); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".jpg")){ sItem = new DrawableItem(filename, R.drawable.jpg); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".js")){ sItem = new DrawableItem(filename, R.drawable.js); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".json")){ sItem = new DrawableItem(filename, R.drawable.json); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".key")){ sItem = new DrawableItem(filename, R.drawable.key); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".lua")){ sItem = new DrawableItem(filename, R.drawable.lua); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".log")){ sItem = new DrawableItem(filename, R.drawable.log); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".md")){ }else if(filename.endsWith(".mid")){ sItem = new DrawableItem(filename, R.drawable.mid); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".mm")){ }else if(filename.endsWith(".mp3")){ sItem = new DrawableItem(filename, R.drawable.mp3); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".mp4")){ sItem = new DrawableItem(filename, R.drawable.mp4); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".mpg")){ sItem = new DrawableItem(filename, R.drawable.mpg); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".odf")){ sItem = new DrawableItem(filename, R.drawable.odf); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ods")){ sItem = new DrawableItem(filename, R.drawable.ods); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".odt")){ sItem = new DrawableItem(filename, R.drawable.odt); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".otp")){ sItem = new DrawableItem(filename, R.drawable.otp); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ots")){ sItem = new DrawableItem(filename, R.drawable.ots); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ott")){ sItem = new DrawableItem(filename, R.drawable.ott); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".pdf")){ sItem = new DrawableItem(filename, R.drawable.pdf); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".pem")){ }else if(filename.endsWith(".pgp")){ sItem = new DrawableItem(filename, R.drawable.pgp); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".php")){ sItem = new DrawableItem(filename, R.drawable.php); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".pl")){ }else if(filename.endsWith(".png")){ sItem = new DrawableItem(filename, R.drawable.png); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".ppt")){ sItem = new DrawableItem(filename, R.drawable.ppt); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".psd")){ sItem = new DrawableItem(filename, R.drawable.psd); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".pub")){ }else if(filename.endsWith(".py")){ sItem = new DrawableItem(filename, R.drawable.py); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".qt")){ sItem = new DrawableItem(filename, R.drawable.qt); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".rar")){ sItem = new DrawableItem(filename, R.drawable.rar); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".rb")){ sItem = new DrawableItem(filename, R.drawable.rb); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".rtf")){ sItem = new DrawableItem(filename, R.drawable.rtf); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".s")){ }else if(filename.endsWith(".sh")){ sItem = new DrawableItem(filename, R.drawable.sh); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".sql")){ sItem = new DrawableItem(filename, R.drawable.sql); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".tga")){ sItem = new DrawableItem(filename, R.drawable.tga); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".tgz")){ sItem = new DrawableItem(filename, R.drawable.tgz); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".tiff")){ sItem = new DrawableItem(filename, R.drawable.tiff); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".txt")){ sItem = new DrawableItem(filename, R.drawable.txt); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".wav")){ sItem = new DrawableItem(filename, R.drawable.wav); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".xls")){ sItem = new DrawableItem(filename, R.drawable.xls); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".xlsx")){ sItem = new DrawableItem(filename, R.drawable.xlsx); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".xml")){ sItem = new DrawableItem(filename, R.drawable.xml); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".yml")){ sItem = new DrawableItem(filename, R.drawable.yml); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else if(filename.endsWith(".zip")){ sItem = new DrawableItem(filename, R.drawable.zip); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); }else{ sItem = new DrawableItem(filename,R.drawable.file_text); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); } } else { sItem = new DrawableItem(filename,R.drawable.file_locked); sItem.setTag(0, ""); sItem.setTag(1, fullfn); adapter.add(sItem); } } } } } catch (IOException e) { e.printStackTrace(); } adapter.notifyDataSetChanged(); } else { Toast.makeText(getApplicationContext(), R.string.file_not_exits, Toast.LENGTH_SHORT).show(); } if (position!=-1) { ListView listView = (ListView)findViewById(android.R.id.list); listView.setSelection(position); } } } @SuppressWarnings("deprecation") public void renameItem(final TextItem textItem) { //Object o1 = textItem.getTag(1); final String fullname = textItem.getTag(1).toString(); final File oldf = new File(fullname); WBase.setTxtDialogParam(R.drawable.ic_setting, R.string.info_rename, oldf.getName(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AlertDialog ad = (AlertDialog) dialog; EditText t = (EditText) ad.findViewById(R.id.editText_prompt); String filename = t.getText().toString().trim(); File newf = new File(oldf.getParent()+"/"+filename); if (newf.exists()) { Toast.makeText(getApplicationContext(), R.string.file_exists, Toast.LENGTH_SHORT).show(); renameItem(textItem); } else { oldf.renameTo(newf); myloadContent("", curPosition); } } },null); showDialog(_WBase.DIALOG_TEXT_ENTRY+dialogIndex); dialogIndex++; } @SuppressWarnings("deprecation") public void deleteCurItem() { Object o1 = curTextItem.getTag(1); final String filename = o1.toString(); WBase.setTxtDialogParam(R.drawable.alert_dialog_icon, R.string.confirm_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { File file = new File(filename); if (file.isFile()) { file.delete(); } else { FileHelper.clearDir(filename, 0, true); } adapter.remove(curTextItem); adapter.notifyDataSetChanged(); } }); showDialog(_WBase.DIALOG_YES_NO_MESSAGE+dialogIndex); dialogIndex++; } /** * Share the selected file */ public void shareFile() { Object o1 = curTextItem.getTag(1); String filename = o1.toString(); File file = new File(filename); if (file.isFile()) { //Bug: Not filtering for share file intent Intent sendIntent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); sendIntent.setType("text/plain"); sendIntent.putExtra(Intent.EXTRA_SUBJECT, file.getName()); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); startActivity(Intent.createChooser(sendIntent, "Share file "+file.getName())); } else { Toast.makeText(getApplicationContext(), "Not a file", Toast.LENGTH_SHORT).show(); } } protected boolean setOpenResult(File file) { Log.d(TAG, "setOpenResult"); Intent result; if (!file.canRead()) { Toast.makeText(this, R.string.toast_file_cant_read, Toast.LENGTH_SHORT).show(); //Crouton.showText(this, R.string.toast_file_cant_read, Style.ALERT); return false; } result = new Intent(); result.putExtra("path", file.getAbsolutePath()); setResult(RESULT_OK, result); return true; } public void infoOpen(TextItem textItem, int position) { Object o0 = textItem.getTag(0); if (o0!=null) { String filename = o0.toString(); curTextItem = textItem; if (filename.equals("")) { String fullname = textItem.getTag(1).toString(); if (fullname.equals("")) { Toast.makeText(getApplicationContext(), R.string.cannot_edit, Toast.LENGTH_SHORT).show(); } else { if (request == REQUEST_OPEN || request == REQUEST_RECENT) { Log.d(TAG, "fullname:"+fullname); if (setOpenResult(new File(fullname))) finish(); } if (request == REQUEST_SAVE_AS) { EditText fname = (EditText)findViewById(R.id.search_input); File f = new File(fullname); fname.setText(f.getName()); } } // TODO } else { curPosition = position; prevDir.push(".."); myloadContent(filename, 0); } } } protected void onListItemClick(View v, TextItem textItem, int position) { infoOpen(textItem, position); } public void onInputClicked(View v) { } public void onForward(View v) { if (prevDir.size()==0) { Toast.makeText(this, R.string.cannot_foward, Toast.LENGTH_SHORT).show(); } else { String xx = prevDir.pop(); if (xx.equals("..")) { curArtistDir.pop(); xx = ""; } else { if (xx.lastIndexOf("/")+1 < xx.length()) { xx = xx.substring(xx.lastIndexOf("/")+1); } else { xx = ""; } } myloadContent(xx, 0); } } @Override public void onBack(View v) { finish(); } @SuppressWarnings("deprecation") public void doNewDir(View v) { //final TextView media = (TextView)findViewById(R.id.plugin_mediacenter_value); //String mediaVal = media.getText().toString(); WBase.setTxtDialogParam(R.drawable.ic_setting, R.string.dir_new, "sampleproject", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AlertDialog ad = (AlertDialog) dialog; EditText t = (EditText) ad.findViewById(R.id.editText_prompt); String content = t.getText().toString(); File dirN = new File(curArtistDir.peek(),content); if (dirN.exists()) { Toast.makeText(getApplicationContext(), R.string.dir_exists, Toast.LENGTH_SHORT).show(); } else { dirN.mkdir(); myloadContent("", curPosition); } // } },null); showDialog(_WBase.DIALOG_TEXT_ENTRY+dialogIndex); dialogIndex++; } @SuppressWarnings("deprecation") public void doSave(View v) { EditText fname = (EditText)findViewById(R.id.search_input); String fn = fname.getText().toString(); if (fn.length() == 0) { Toast.makeText(getApplicationContext(), R.string.toast_filename_empty, Toast.LENGTH_SHORT).show(); } else { String filename = curArtistDir.peek()+"/"+fn; final File f = new File(filename); if (f.exists()) { WBase.setTxtDialogParam(R.drawable.alert_dialog_icon, R.string.confirm_save, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { setSaveResult(f.getAbsolutePath().toString()); } }); showDialog(_WBase.DIALOG_YES_NO_MESSAGE+dialogIndex); dialogIndex++; } else { setSaveResult(f.getAbsolutePath().toString()); } } } protected boolean setSaveResult(String filepath) { Intent result; File f = new File(filepath); if (f.getParentFile().canWrite()) { result = new Intent(); result.putExtra("path", filepath); setResult(RESULT_OK, result); finish(); } else { Toast.makeText(getApplicationContext(), R.string.toast_folder_cant_write, Toast.LENGTH_SHORT).show(); } return true; } public void onUp(View v) { onTop(); } public void cloneRepository() throws IOException, InvalidRemoteException, TransportException, GitAPIException{ final Context context = this; LayoutInflater li = LayoutInflater.from(context); View promptsView = li.inflate(R.layout.repo_pick, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); // set prompts.xml to alertdialog builder alertDialogBuilder.setView(promptsView); final EditText mRepoUrl = (EditText) promptsView.findViewById(R.id.repo_url); final EditText mSaveRepoAs = (EditText) promptsView.findViewById(R.id.save_repo_as); // set dialog message alertDialogBuilder .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { try { String repo = mRepoUrl.getText().toString(); String repoName = mSaveRepoAs.getText().toString(); if(repo != null && repoName != null){ File localPath = new File(getCurrentDir()+"/"+repoName); localPath.mkdir(); System.out.println("Cloning from " + repo + " to " + localPath); Git.cloneRepository() .setURI(repo) .setDirectory(localPath) .call(); // now open the created repository FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repository = builder.setGitDir(localPath) .readEnvironment() // scan environment GIT_* variables .findGitDir() // scan up the file system tree .build(); System.out.println("Having repository: " + repository.getDirectory()); repository.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidRemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransportException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (GitAPIException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } public void cloneRepo(View v) throws InvalidRemoteException, TransportException, IOException, GitAPIException{ //Toast.makeText(this, getCurrentDir(), Toast.LENGTH_SHORT).show(); cloneRepository(); } }