5454
5555import com .duy .common .StoreUtil ;
5656import com .duy .file .explorer .FileExplorerActivity ;
57+ import com .duy .ide .code .api .CodeFormatProvider ;
5758import com .duy .ide .code .format .CodeFormatProviderImpl ;
5859import com .duy .ide .database .SQLHelper ;
60+ import com .duy .ide .diagnostic .DiagnosticContract ;
5961import com .duy .ide .diagnostic .DiagnosticPresenter ;
62+ import com .duy .ide .diagnostic .parser .PatternAwareOutputParser ;
6063import com .duy .ide .diagnostic .view .DiagnosticFragment ;
6164import com .duy .ide .editor .editor .BuildConfig ;
6265import com .duy .ide .editor .editor .R ;
100103import static android .view .View .VISIBLE ;
101104
102105
106+ /**
107+ * Some method should override:
108+ * <p>
109+ * {@link #populateDiagnostic(DiagnosticContract.Presenter)} init diagnostic, you should set output
110+ * parser for std out and std error by using method
111+ * {@link DiagnosticContract.Presenter#setOutputParser(PatternAwareOutputParser...)}
112+ */
103113public abstract class IdeActivity extends ThemeSupportActivity implements MenuItem .OnMenuItemClickListener ,
104114 IEditorStateListener ,
105115 SharedPreferences .OnSharedPreferenceChangeListener {
@@ -116,16 +126,16 @@ public abstract class IdeActivity extends ThemeSupportActivity implements MenuIt
116126 protected TabManager mTabManager ;
117127 protected DiagnosticPresenter mDiagnosticPresenter ;
118128
119- private Toolbar mToolbar ;
120- private DrawerLayout mDrawerLayout ;
129+ protected Toolbar mToolbar ;
130+ protected DrawerLayout mDrawerLayout ;
121131 @ Nullable
122- private SymbolBarLayout mSymbolBarLayout ;
132+ protected SymbolBarLayout mSymbolBarLayout ;
123133 @ Nullable
124- private SmartTabLayout mTabLayout ;
134+ protected SmartTabLayout mTabLayout ;
125135 @ Nullable
126- private TextView mTxtDocumentInfo ;
136+ protected TextView mTxtDocumentInfo ;
127137
128- private Preferences mPreferences ;
138+ protected Preferences mPreferences ;
129139 private long mExitTime ;
130140 private KeyBoardEventListener mKeyBoardListener ;
131141
@@ -134,9 +144,10 @@ protected void onCreate(Bundle savedInstanceState) {
134144 super .onCreate (savedInstanceState );
135145 setContentView (getRootLayoutId ());
136146 initToolbar ();
137-
138147 MenuManager .init (this );
148+
139149 mPreferences = Preferences .getInstance (this );
150+ mPreferences .registerOnSharedPreferenceChangeListener (this );
140151
141152 mTabLayout = findViewById (R .id .tab_layout );
142153 mTxtDocumentInfo = findViewById (R .id .txt_document_info );
@@ -150,37 +161,41 @@ public void onDrawerOpened(View drawerView) {
150161 hideSoftInput ();
151162 }
152163 });
153- ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle (
154- this , mDrawerLayout , mToolbar , R .string .open_drawer , R .string .close_drawer );
164+
165+ ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle (this ,
166+ mDrawerLayout , mToolbar , R .string .open_drawer , R .string .close_drawer );
155167 mDrawerLayout .addDrawerListener (actionBarDrawerToggle );
156168 actionBarDrawerToggle .syncState ();
157-
158169 mSymbolBarLayout = findViewById (R .id .symbolBarLayout );
159170 if (mSymbolBarLayout != null ) {
160- mSymbolBarLayout .setOnSymbolCharClickListener (new SymbolBarLayout .OnSymbolCharClickListener () {
161- @ Override
162- public void onClick (View v , String text ) {
163- insertText (text );
164- }
165- });
171+ mSymbolBarLayout .setOnSymbolCharClickListener (
172+ new SymbolBarLayout .OnSymbolCharClickListener () {
173+ @ Override
174+ public void onClick (View v , String text ) {
175+ insertText (text );
176+ }
177+ });
166178 }
167179
168180 setScreenOrientation ();
169181
170182 TextView versionView = findViewById (R .id .versionTextView );
171183 versionView .setText (SysUtils .getVersionName (this ));
172184
173- mTabManager = new TabManager (this , (ViewPager ) findViewById (R .id .editor_view_pager ));
174-
175185 initMenuView ();
176186 intiDiagnosticView ();
177- processIntent ();
178187
179- mPreferences .registerOnSharedPreferenceChangeListener (this );
180188
181189 //attach listener hide/show keyboard
182190 mKeyBoardListener = new KeyBoardEventListener (this );
183191 mDrawerLayout .getViewTreeObserver ().addOnGlobalLayoutListener (mKeyBoardListener );
192+
193+ // initLeftNavigationView(findViewById(R.id.left_nav_view));
194+
195+ //final, create editor
196+ mTabManager = new TabManager (this , (ViewPager ) findViewById (R .id .editor_view_pager ));
197+
198+ processIntent ();
184199 }
185200
186201 private void initToolbar () {
@@ -203,7 +218,6 @@ public void onPanelSlide(View panel, float slideOffset) {
203218 }
204219 });
205220
206-
207221 FragmentManager fm = getSupportFragmentManager ();
208222 String tag = DiagnosticFragment .class .getSimpleName ();
209223 DiagnosticFragment diagnosticFragment = (DiagnosticFragment ) fm .findFragmentByTag (tag );
@@ -213,15 +227,19 @@ public void onPanelSlide(View panel, float slideOffset) {
213227 fm .beginTransaction ()
214228 .replace (R .id .container_diagnostic_list_view , diagnosticFragment , tag )
215229 .commit ();
230+
216231 mDiagnosticPresenter = new DiagnosticPresenter (diagnosticFragment , this , mTabManager , mHandler );
217232 populateDiagnostic (mDiagnosticPresenter );
218233 }
219234
220235 /**
221236 * Called when create diagnostic view
222237 */
223- protected abstract void populateDiagnostic (@ NonNull DiagnosticPresenter diagnosticPresenter );
238+ protected abstract void populateDiagnostic (@ NonNull DiagnosticContract . Presenter diagnosticPresenter );
224239
240+ /**
241+ * @return main layout id
242+ */
225243 @ LayoutRes
226244 protected abstract int getRootLayoutId ();
227245
@@ -246,12 +264,12 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
246264 }
247265
248266 private void setScreenOrientation () {
249- int orgi = mPreferences .getScreenOrientation ();
250- if (Preferences .SCREEN_ORIENTATION_AUTO == orgi ) {
267+ int orientation = mPreferences .getScreenOrientation ();
268+ if (Preferences .SCREEN_ORIENTATION_AUTO == orientation ) {
251269 setRequestedOrientation (ActivityInfo .SCREEN_ORIENTATION_UNSPECIFIED );
252- } else if (Preferences .SCREEN_ORIENTATION_LANDSCAPE == orgi ) {
270+ } else if (Preferences .SCREEN_ORIENTATION_LANDSCAPE == orientation ) {
253271 setRequestedOrientation (ActivityInfo .SCREEN_ORIENTATION_LANDSCAPE );
254- } else if (Preferences .SCREEN_ORIENTATION_PORTRAIT == orgi ) {
272+ } else if (Preferences .SCREEN_ORIENTATION_PORTRAIT == orientation ) {
255273 setRequestedOrientation (ActivityInfo .SCREEN_ORIENTATION_PORTRAIT );
256274 }
257275 }
@@ -260,12 +278,13 @@ private void initMenuView() {
260278 NavigationView rightMenu = findViewById (R .id .menuNavView );
261279 Menu menu = rightMenu .getMenu ();
262280 onCreateNavigationMenu (menu );
263- rightMenu .setNavigationItemSelectedListener (new NavigationView .OnNavigationItemSelectedListener () {
264- @ Override
265- public boolean onNavigationItemSelected (@ NonNull MenuItem item ) {
266- return onOptionsItemSelected (item );
267- }
268- });
281+ rightMenu .setNavigationItemSelectedListener (
282+ new NavigationView .OnNavigationItemSelectedListener () {
283+ @ Override
284+ public boolean onNavigationItemSelected (@ NonNull MenuItem item ) {
285+ return onOptionsItemSelected (item );
286+ }
287+ });
269288 }
270289
271290
@@ -398,7 +417,6 @@ public boolean onCreateOptionsMenu(Menu container) {
398417 return super .onCreateOptionsMenu (container );
399418 }
400419
401-
402420 @ CallSuper
403421 protected void onCreateNavigationMenu (Menu menu ) {
404422 MenuFactory menuFactory = MenuFactory .getInstance (this );
@@ -789,7 +807,8 @@ protected void onDestroy() {
789807 super .onDestroy ();
790808 }
791809
792- protected CodeFormatProviderImpl getCodeFormatProvider () {
810+ @ Nullable
811+ protected CodeFormatProvider getCodeFormatProvider () {
793812 return new CodeFormatProviderImpl (this );
794813 }
795814
0 commit comments