Skip to content

Commit 61f9d03

Browse files
committed
support filter message
1 parent aaed637 commit 61f9d03

File tree

5 files changed

+43
-2
lines changed

5 files changed

+43
-2
lines changed

lib-n-ide/src/main/java/com/duy/ide/core/IdeActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@ protected void onCreate(Bundle savedInstanceState) {
157157
@Override
158158
public void onDrawerOpened(View drawerView) {
159159
super.onDrawerOpened(drawerView);
160+
EditorDelegate currentEditorDelegate = getCurrentEditorDelegate();
161+
if (currentEditorDelegate != null){
162+
currentEditorDelegate.getEditText().clearFocus();
163+
}
160164
mDrawerLayout.requestFocus();
161165
hideSoftInput();
162166
}

lib-n-ide/src/main/java/com/duy/ide/diagnostic/DiagnosticContract.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,11 @@ public interface Presenter extends ILogger {
9494

9595
@NonNull
9696
OutputStream getErrorOutput();
97+
98+
void setFilter(@NonNull MessageFilter filter);
99+
}
100+
101+
public interface MessageFilter {
102+
boolean accept(Message message);
97103
}
98104
}

lib-n-ide/src/main/java/com/duy/ide/diagnostic/DiagnosticPresenter.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ public class DiagnosticPresenter implements DiagnosticContract.Presenter {
6060
private OutputStream mStdOut;
6161
private OutputStream mStdErr;
6262

63+
private DiagnosticContract.MessageFilter mMessageFilter = new DiagnosticContract.MessageFilter() {
64+
@Override
65+
public boolean accept(Message message) {
66+
return true;
67+
}
68+
};
69+
6370
public DiagnosticPresenter(@Nullable DiagnosticContract.View view,
6471
@NonNull IdeActivity activity,
6572
@NonNull TabManager tabManager,
@@ -158,7 +165,7 @@ public void hidePanel() {
158165
@SuppressLint("WrongThread")
159166
@Override
160167
public void setMessages(ArrayList<Message> messages) {
161-
show(messages);
168+
show(filter(messages));
162169
highlightError(messages);
163170
}
164171

@@ -245,6 +252,11 @@ public OutputStream getErrorOutput() {
245252
return mStdErr;
246253
}
247254

255+
@Override
256+
public void setFilter(@NonNull DiagnosticContract.MessageFilter filter) {
257+
this.mMessageFilter = filter;
258+
}
259+
248260
@Override
249261
public void onNewMessage(String text) {
250262
if (mView != null) {
@@ -255,11 +267,23 @@ public void onNewMessage(String text) {
255267
}
256268

257269
//parse output, show diagnosis
258-
final List<Message> messages = mToolOutputParser.parseToolOutput(text);
270+
List<Message> messages = mToolOutputParser.parseToolOutput(text);
271+
messages = filter(messages);
272+
259273
mView.addMessage(messages);
260274
highlightError(messages);
261275
}
262276

277+
private List<Message> filter(List<Message> messages) {
278+
ArrayList<Message> result = new ArrayList<>();
279+
for (Message message : messages) {
280+
if (mMessageFilter.accept(message)) {
281+
result.add(message);
282+
}
283+
}
284+
return result;
285+
}
286+
263287
@Override
264288
public void error(@Nullable Throwable t, @Nullable String msgFormat, Object... args) {
265289

lib-n-ide/src/main/java/com/duy/ide/editor/view/GestureSupportEditor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ public void computeScroll() {
154154
}
155155
if (mScroller != null) {
156156
if (mScroller.computeScrollOffset()) {
157+
if (hasFocus()) {
158+
clearFocus();
159+
}
157160
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
158161
}
159162
} else {
@@ -171,6 +174,9 @@ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
171174
if (mIsTextScaling){
172175
return true;
173176
}
177+
if (hasFocus()){
178+
clearFocus();
179+
}
174180
Layout layout = getLayout();
175181
if (mScroller != null && layout != null) {
176182
int maxX = layout.getWidth() - mVisibleRect.width() - getPaddingRight() - getPaddingLeft();

lib-n-ide/src/main/java/com/duy/ide/editor/view/IEditAreaView.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,5 @@ public interface IEditAreaView extends IEditActionSupport, IdeEditor {
6868

6969
Context getContext();
7070

71+
void clearFocus();
7172
}

0 commit comments

Comments
 (0)