package com.hipipal.texteditor; import greendroid.graphics.drawable.ActionBarDrawable; import greendroid.widget.NormalActionBarItem; import greendroid.widget.QuickAction; import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.LightingColorFilter; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.view.View; import com.zuowuxuxi.base.MyApp; import com.zuowuxuxi.base._WBase; import com.zuowuxuxi.common.GDBase; import com.zuowuxuxi.util.NAction; import com.zuowuxuxi.util.NUtil; public class _ABaseAct extends GDBase { protected static final int SCRIPT_EXEC_PY = 2235; protected static final int SCRIPT_EXEC_CODE = 1235; @SuppressLint("NewApi") protected void initWidgetTabItem(int flag) { /*addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_save_as)), 10);*/ String code = NAction.getCode(getApplicationContext()); if (code.equals("qpyplus") || code.equals("qpy3")) { addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_local)), 20); addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_new_a)), 30); } else if (code.equals("texteditor")) { if (flag == 0) { addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_local)), 20); addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_new_a)), 30); } addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_action_overflow)), 40); } else { addActionBarItem(getGDActionBar() .newActionBarItem(NormalActionBarItem.class) .setDrawable(new ActionBarDrawable(this, R.drawable.ic_save_as)), 10); } } protected static class MyQuickAction extends QuickAction { protected static final ColorFilter BLACK_CF = new LightingColorFilter(Color.BLACK, Color.BLACK); protected static final ColorFilter WHITE_CF = new LightingColorFilter(Color.WHITE, Color.WHITE); public MyQuickAction(Context ctx, int drawableId, int titleId) { super(ctx, buildDrawable(ctx, drawableId), titleId); } protected static Drawable buildDrawable(Context ctx, int drawableId) { Drawable d = ctx.getResources().getDrawable(drawableId); d.setColorFilter(BLACK_CF); return d; } } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } /** * call the Qpython API * @param flag * @param param * @param pyCode is the python code to run */ @SuppressWarnings("deprecation") public void callPyApi(String flag, String param, String pyCode) { //Log.d(TAG, "callPyApi:"+pyCode); //String appCode = NAction.getCode(getApplicationContext()); //String proxyHost = NAction.getProxyHost(getApplicationContext()); //String proxyPort = NAction.getProxyPort(getApplicationContext()); String proxyCode = ""; /*if (!proxyHost.equals("")) { if (proxyPort.equals("")) { proxyPort = "80"; } proxyCode = "PROXY = {'http':'"+proxyHost+":"+proxyPort+"'}\n"; } else { proxyCode = "PROXY = {}\n"; }*/ String extPlgPlusName = com.zuowuxuxi.config.CONF.EXT_PLG_PLUS; String extPlg3Name = CONF.EXT_PLG_3; String extPlgName = NAction.getExtP(getApplicationContext(), "ext_plugin"); if (extPlgName.equals("")) { extPlgName = com.zuowuxuxi.config.CONF.EXT_PLG; } String plgUrl = NAction.getExtP(getApplicationContext(), "ext_plugin_pkg"); if (plgUrl.equals("")) { plgUrl = com.zuowuxuxi.config.CONF.EXT_PLG_URL; } String localQPylib = "com.hipipal.qpylib"; // call local api //if (!appCode.startsWith("xx")) { //} else { try { String localPlugin = this.getPackageName(); Intent intent = new Intent(); intent.setClassName(localPlugin, localQPylib+".MPyApi"); intent.setAction(localQPylib+".action.MPyApi"); Bundle mBundle = new Bundle(); mBundle.putString("root", MyApp.getInstance().getRoot()); mBundle.putString("app", NAction.getCode(getApplicationContext())); mBundle.putString("act", "onPyApi"); mBundle.putString("flag", flag); mBundle.putString("param", param); mBundle.putString("pycode", proxyCode+pyCode); intent.putExtras(mBundle); startActivityForResult(intent, SCRIPT_EXEC_PY); } catch (Exception e) { // qpython 3 if (pyCode.contains("#qpy3\n")) { if (NUtil.checkAppInstalledByName(getApplicationContext(), extPlg3Name)) { Intent intent = new Intent(); intent.setClassName(extPlg3Name, extPlg3Name+".MPyApi"); intent.setAction(extPlg3Name+".action.MPyApi"); Bundle mBundle = new Bundle(); mBundle.putString("app", NAction.getCode(getApplicationContext())); mBundle.putString("act", "onPyApi"); mBundle.putString("flag", flag); mBundle.putString("param", param); mBundle.putString("pycode", proxyCode+pyCode); intent.putExtras(mBundle); startActivityForResult(intent, SCRIPT_EXEC_PY); } else { WBase.setTxtDialogParam(0, R.string.pls_install_ext_plg, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String plgUrl = NAction.getExtP(getApplicationContext(), "ext_plugin_pkg3"); if (plgUrl.equals("")) { plgUrl = CONF.EXT_PLG_URL3; } try { Intent intent = NAction.openRemoteLink(getApplicationContext(), plgUrl); startActivity(intent); } catch (Exception e) { plgUrl = CONF.EXT_PLG_URL3; Intent intent = NAction.openRemoteLink(getApplicationContext(), plgUrl); startActivity(intent); } } }, null); showDialog(_WBase.DIALOG_EXIT+dialogIndex); dialogIndex++; } } else { // if (NUtil.checkAppInstalledByName(getApplicationContext(), extPlgPlusName)) { Intent intent = new Intent(); intent.setClassName(extPlgPlusName, extPlgPlusName+".MPyApi"); intent.setAction(extPlgPlusName+".action.MPyApi"); Bundle mBundle = new Bundle(); mBundle.putString("app", NAction.getCode(getApplicationContext())); mBundle.putString("act", "onPyApi"); mBundle.putString("flag", flag); mBundle.putString("param", param); mBundle.putString("pycode", proxyCode+pyCode); intent.putExtras(mBundle); startActivityForResult(intent, SCRIPT_EXEC_PY); } else if (NUtil.checkAppInstalledByName(getApplicationContext(), extPlgName)) { Intent intent = new Intent(); intent.setClassName(extPlgName, extPlgName+".MPyApi"); intent.setAction(extPlgName+".action.MPyApi"); Bundle mBundle = new Bundle(); mBundle.putString("app", NAction.getCode(getApplicationContext())); mBundle.putString("act", "onPyApi"); mBundle.putString("flag", flag); mBundle.putString("param", param); mBundle.putString("pycode", proxyCode+pyCode); intent.putExtras(mBundle); startActivityForResult(intent, SCRIPT_EXEC_PY); } else { WBase.setTxtDialogParam(0, R.string.pls_install_ext_plg, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String plgUrl = NAction.getExtP(getApplicationContext(), "ext_plugin_pkg"); if (plgUrl.equals("")) { plgUrl = com.zuowuxuxi.config.CONF.EXT_PLG_URL; } try { Intent intent = NAction.openRemoteLink(getApplicationContext(), plgUrl); startActivity(intent); } catch (Exception e) { plgUrl = com.zuowuxuxi.config.CONF.EXT_PLG_URL2; Intent intent = NAction.openRemoteLink(getApplicationContext(), plgUrl); startActivity(intent); } } }, null); showDialog(_WBase.DIALOG_EXIT+dialogIndex); dialogIndex++; } } } } public void onAbout(View v) { Intent intent2 = new Intent(getApplicationContext(), OAboutAct.class); startActivity(intent2); //overridePendingTransition(R.anim.push_down_in, R.anim.push_down_out); } public void onGSetting(View v) { Intent intent = new Intent(this, MSettingAct.class); startActivity(intent); } @Override public Class<?> getUpdateSrv() { // TODO Auto-generated method stub return null; } @SuppressWarnings("deprecation") @SuppressLint("DefaultLocale") public void playFromRemote(String link) { //String process = NUtil.getCpuProcessFromByInfo(); //String features = NUtil.getCpuFeaturesFromByInfo(); String code = NAction.getCode(getApplicationContext()); if (code.startsWith("mn")) { String a8Name = NAction.getExtP(getApplicationContext(), "extend_a8_pkg"); if (a8Name.equals("")) { a8Name = CONF.A8_PLAY; } String pluginName1 = NAction.getExtP(getApplicationContext(), "extend_plugin_pkg1"); if (pluginName1.equals("")) { pluginName1 = CONF.PLAY_PLUGIN_1; } String pluginName2 = NAction.getExtP(getApplicationContext(), "extend_plugin_pkg2"); if (pluginName2.equals("")) { pluginName2 = CONF.PLAY_PLUGIN_2; } if (NUtil.checkAppInstalledByName(getApplicationContext(), pluginName2)) { Intent intent = new Intent(); intent.setClassName(pluginName2, "com.hipipal.p.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else if (NUtil.checkAppInstalledByName(getApplicationContext(), pluginName1)) { Intent intent = new Intent(); intent.setClassName(pluginName1, "com.hipipal.p.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else { // 如果cpu为armv7 并且 系统已经安装了A8 Player, 则使用A8Player /*if (NUtil.checkAppInstalledByName(getApplicationContext(), a8Name)) { //Toast.makeText(getApplicationContext(), R.string.using_optimized_play, Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClassName(a8Name, "com.hipipal.mna8.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else {*/ boolean useDefault = false; int indexOfDot = link.lastIndexOf('.'); if (indexOfDot != -1) { String extension = link.substring(indexOfDot).toLowerCase(); if (extension.compareTo(".mp4") == 0) { useDefault = true; } } if (!useDefault) { String a8VName = this.getPackageName(); Intent intent = new Intent(); intent.setClassName(a8VName, "com.hipipal.p.FFMpegPlayer"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else { String a8VName = this.getPackageName(); Intent intent = new Intent(); intent.setClassName(a8VName, "com.hipipal.m.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } /* Intent intent = new Intent(this, PLAPlayerAct.class); ArrayList<Uri> playlist = new ArrayList<Uri>(); Uri selectedUri = null; Uri tempUri = Uri.parse(link); playlist.add(tempUri); selectedUri = tempUri; intent.putExtra("selected", 0); intent.putExtra("playlist", playlist); intent.setAction(Intent.ACTION_VIEW); intent.setData(selectedUri); this.startActivity(intent); */ } } else { // 不是MVP // String pkgName = NAction.getExtP(getApplicationContext(), "extend_a8_pkg"); if (pkgName.equals("")) { pkgName = CONF.A8_PLAY; } if (NUtil.checkAppInstalledByName(getApplicationContext(), pkgName)) { String a8Name = CONF.A8_PLAY; Intent intent = new Intent(); intent.setClassName(a8Name, "com.hipipal.mna8.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else { // 检查MVP是否在 String mpvName = CONF.MPV_PLAY; if (NUtil.checkAppInstalledByName(getApplicationContext(), mpvName)) { Intent intent = new Intent(); intent.setClassName(mpvName, "com.hipipal.m.PLAPlayerAct"); intent.setAction("android.intent.action.VIEW"); Uri uri = Uri.parse(link); intent.setDataAndType(uri , "video/*"); startActivity(intent); } else { WBase.setTxtDialogParam(0, R.string.pls_install_a8_play, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String pkgUrl = NAction.getExtP(getApplicationContext(), "extend_a8_play_url"); if (pkgUrl.equals("")) { pkgUrl = CONF.A8_PLAY_URL; } //if (pkgUrl.startsWith("http:")) { try { Intent intent = NAction.openRemoteLink(getApplicationContext(), pkgUrl); startActivity(intent); } catch (Exception e) { pkgUrl = CONF.A8_PLAY_URL2; Intent intent = NAction.openRemoteLink(getApplicationContext(), pkgUrl); startActivity(intent); } /*} else { Intent intent = NAction.openMarketLink(pkgUrl); startActivity(intent); }*/ } }, null); showDialog(_WBase.DIALOG_EXIT+dialogIndex); dialogIndex++; } } } } @Override public String confGetUpdateURL(int flag) { if (flag == 2) { return CONF.LOG_URL+this.getPackageName()+"/"+NUtil.getVersinoCode(this); } else { return CONF.UPDATE_URL+this.getPackageName()+"/"+NUtil.getVersinoCode(this); } } }