Skip to content

Commit a837dd1

Browse files
committed
fix index out of bound
1 parent 8f71602 commit a837dd1

File tree

6 files changed

+29
-16
lines changed

6 files changed

+29
-16
lines changed

app/src/main/java/com/duy/ccppcompiler/compiler/CompileManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,15 @@ private void finishCompile() {
8181
public void onCompileFailed(ShellResult shellResult) {
8282
finishCompile();
8383
if (mCompileDialog != null && mCompileDialog.isShowing()) {
84-
mCompileDialog.setMessage(shellResult.getMessage());
84+
mCompileDialog.dismiss();
8585
}
8686
if (DLog.DEBUG) DLog.w(TAG, "onCompileFailed: \n" + shellResult.getMessage());
8787
if (mDiagnosticPresenter != null) {
8888
DiagnosticsCollector diagnosticsCollector = new DiagnosticsCollector<>();
8989
OutputParser parser = new OutputParser(diagnosticsCollector);
9090
parser.parse(shellResult.getMessage());
9191
mDiagnosticPresenter.setDiagnostics(diagnosticsCollector.getDiagnostics());
92+
mDiagnosticPresenter.showView();
9293
}
9394
}
9495

app/src/main/java/com/duy/ccppcompiler/diagnostic/DiagnosticAdapter.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,6 @@ public int getItemCount() {
7070
return mDiagnostics.size();
7171
}
7272

73-
public void addAll(List<Diagnostic> diagnostics) {
74-
int start = mDiagnostics.size() - 1;
75-
mDiagnostics.addAll(diagnostics);
76-
notifyItemRangeInserted(start, start + diagnostics.size());
77-
}
78-
7973
public void remove(Diagnostic diagnostic) {
8074
int i = mDiagnostics.indexOf(diagnostic);
8175
if (i >= 0) {
@@ -102,6 +96,12 @@ public List<Diagnostic> getDiagnostics() {
10296
return mDiagnostics;
10397
}
10498

99+
public void setData(List<Diagnostic> diagnostics) {
100+
mDiagnostics.clear();
101+
mDiagnostics.addAll(diagnostics);
102+
notifyDataSetChanged();
103+
}
104+
105105
static class ViewHolder extends RecyclerView.ViewHolder {
106106
TextView txtLine, txtCol, txtMessage, txtFile;
107107
View root;

app/src/main/java/com/duy/ccppcompiler/diagnostic/DiagnosticContract.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,9 @@ public static interface View {
3939

4040
public interface Presenter {
4141
void onDiagnosticClick(android.view.View view, Diagnostic diagnostic);
42+
43+
void showView();
44+
45+
void hideView();
4246
}
4347
}

app/src/main/java/com/duy/ccppcompiler/diagnostic/DiagnosticFragment.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.support.annotation.NonNull;
2121
import android.support.annotation.Nullable;
2222
import android.support.v4.app.Fragment;
23+
import android.support.v7.widget.DividerItemDecoration;
2324
import android.support.v7.widget.LinearLayoutManager;
2425
import android.support.v7.widget.RecyclerView;
2526
import android.view.LayoutInflater;
@@ -70,6 +71,9 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
7071

7172
mRecyclerView = view.findViewById(R.id.diagnostic_list_view);
7273
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
74+
mRecyclerView.addItemDecoration(new DividerItemDecoration(getContext(),
75+
DividerItemDecoration.VERTICAL));
76+
7377
mAdapter = new DiagnosticAdapter(diagnostics, getContext());
7478
mAdapter.setDiagnosticClickListener(this);
7579
mRecyclerView.setAdapter(mAdapter);
@@ -84,12 +88,7 @@ public void onSaveInstanceState(@NonNull Bundle outState) {
8488

8589
@Override
8690
public void show(List<Diagnostic> diagnostics) {
87-
clear();
88-
addAll(diagnostics);
89-
}
90-
91-
private void addAll(List<Diagnostic> diagnostics) {
92-
mAdapter.addAll(diagnostics);
91+
mAdapter.setData(diagnostics);
9392
}
9493

9594
@Override

app/src/main/java/com/duy/ccppcompiler/diagnostic/DiagnosticPresenter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.duy.ccppcompiler.compiler.diagnostic.Diagnostic;
2323
import com.jecelyin.editor.v2.ui.activities.EditorActivity;
2424
import com.jecelyin.editor.v2.ui.manager.TabManager;
25+
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
2526

2627
import java.util.ArrayList;
2728

@@ -50,6 +51,16 @@ public void onDiagnosticClick(View view, Diagnostic diagnostic) {
5051
// TODO: 28-Apr-18 implement
5152
}
5253

54+
@Override
55+
public void showView() {
56+
mActivity.mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
57+
}
58+
59+
@Override
60+
public void hideView(){
61+
mActivity.mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
62+
}
63+
5364
@MainThread
5465
public void setDiagnostics(ArrayList<Diagnostic> diagnostics) {
5566
this.diagnostics = diagnostics;

app/src/main/java/com/jecelyin/editor/v2/ui/activities/EditorActivity.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,12 @@ public class EditorActivity extends FullScreenActivity
106106
public RecyclerView mTabRecyclerView;
107107
public TextView mVersionTextView;
108108
public SymbolBarLayout mSymbolBarLayout;
109-
109+
public SlidingUpPanelLayout mSlidingUpPanelLayout;
110110
private TabManager mTabManager;
111-
112111
private Preferences mPreferences;
113112
private ClusterCommand clusterCommand;
114113
private MenuManager mMenuManager;
115114
private long mExitTime;
116-
private SlidingUpPanelLayout mSlidingUpPanelLayout;
117115
private DiagnosticPresenter mDiagnosticPresenter;
118116

119117
@Override

0 commit comments

Comments
 (0)