package justlog.fragments; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import java.io.File; import cn.androidy.common.utils.DimenUtils; import cn.androidy.common.utils.FileUtils; import cn.androidy.common.utils.SizeColorPhrase; import cn.androidy.logger.core.SupportLogger; import cn.androidy.logger.data.LogEntity; import cn.androidy.logger.data.LogReadTask; import cn.androidy.logger.view.LoggerDetailView; import cn.androidy.thinking.R; public class LogDetailFragment extends Fragment implements LogReadTask.ILogReadListener { public static final String KEY_LOG_TAG = "KEY_LOG_TAG"; LoggerDetailView customLoggerView; public static LogDetailFragment newInstance(String tag) { LogDetailFragment detailFragment = new LogDetailFragment(); Bundle args = new Bundle(); args.putString(KEY_LOG_TAG, tag); detailFragment.setArguments(args); return detailFragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_logdetail, null); customLoggerView = (LoggerDetailView) view.findViewById(R.id.customLoggerView); final String tag = getLogTag(); SupportLogger.readLog(tag, LogDetailFragment.this); view.findViewById(R.id.btn_clear).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { File f; if (!TextUtils.isEmpty(tag)) { f = new File(SupportLogger.getCommonLogDir(), tag); } else { f = new File(SupportLogger.getCommonLogDir()); } FileUtils.deleteFile(f.getAbsolutePath()); SupportLogger.readLog(tag, LogDetailFragment.this); } }); return view; } private String getLogTag() { return getArguments().getString(KEY_LOG_TAG); } @Override public void onLogGet(LogEntity entity) { if (entity != null) { customLoggerView.getLogDetailText().setText(getHighliText(entity.getMsg())); } else { customLoggerView.getLogDetailText().setText(""); } } @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); } public static final String TEXT_TO_HIGHLIGHT = "==="; private CharSequence getHighliText(String msg) { if (TextUtils.isEmpty(msg) || !msg.contains(TEXT_TO_HIGHLIGHT)) { return msg; } else { // msg = msg.replaceAll(TEXT_TO_HIGHLIGHT, "{" + TEXT_TO_HIGHLIGHT + "}"); // CharSequence charSequence = SizeColorPhrase.from(msg).withSeparator("{}") // .innerColorSize(Color.RED, DimenUtils.spTopx(getActivity(), 18)).format(); return msg; } } }