Skip to content

Commit 92b4f75

Browse files
committed
Make menu item change between 4 themes for every language
1 parent 24d55d2 commit 92b4f75

2 files changed

Lines changed: 64 additions & 27 deletions

File tree

app/src/main/java/com/amrdeveloper/codeviewlibrary/MainActivity.java

Lines changed: 62 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.os.Bundle;
77
import android.view.Menu;
88
import android.view.MenuItem;
9+
import android.widget.ArrayAdapter;
910
import android.widget.Toast;
1011

1112
import com.amrdeveloper.codeview.CodeView;
@@ -16,6 +17,7 @@ public class MainActivity extends AppCompatActivity {
1617

1718
private CodeView mCodeView;
1819

20+
//Index of next theme to load it when user click change theme
1921
private int mNextThemeIndex = 2;
2022

2123
//To change themes easily
@@ -27,6 +29,37 @@ protected void onCreate(Bundle savedInstanceState) {
2729
setContentView(R.layout.activity_main);
2830

2931
mCodeView = findViewById(R.id.codeView);
32+
33+
configLanguageAutoComplete();
34+
35+
//Config the default theme
36+
SyntaxManager.applyMonokaiTheme(this, mCodeView, mCurrentLanguage);
37+
}
38+
39+
private void configLanguageAutoComplete() {
40+
//Load current Programming Language
41+
final String[] languageKeywords;
42+
switch (mCurrentLanguage){
43+
case JAVA:
44+
languageKeywords = getResources().getStringArray(R.array.java_keywords);
45+
break;
46+
case PYTHON:
47+
languageKeywords = getResources().getStringArray(R.array.python_keywords);
48+
break;
49+
default:
50+
languageKeywords = getResources().getStringArray(R.array.go_keywords);
51+
break;
52+
}
53+
54+
//Custom list item xml layout
55+
final int layoutId = R.layout.suggestion_list_item;
56+
57+
//TextView id to put suggestion on it
58+
final int viewId = R.id.suggestItemTextView;
59+
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, layoutId, viewId, languageKeywords);
60+
61+
//Add Custom Adapter to the CodeView
62+
mCodeView.setAdapter(adapter);
3063
}
3164

3265
@Override
@@ -39,32 +72,36 @@ public boolean onCreateOptionsMenu(Menu menu) {
3972
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
4073
final int id = item.getItemId();
4174
if (id == R.id.changeMenu) {
42-
//Change CodeView Theme
43-
if(mNextThemeIndex > 4) {
44-
mNextThemeIndex = 1;
45-
}
46-
47-
switch (mNextThemeIndex) {
48-
case 1:
49-
SyntaxManager.applyMonokaiTheme(this, mCodeView, mCurrentLanguage);
50-
Toast.makeText(this, "Monokai", Toast.LENGTH_SHORT).show();
51-
break;
52-
case 2:
53-
SyntaxManager.applyNoctisWhiteTheme(this, mCodeView, mCurrentLanguage);
54-
Toast.makeText(this, "Noctis White", Toast.LENGTH_SHORT).show();
55-
break;
56-
case 3:
57-
SyntaxManager.applyFiveColorsDarkTheme(this, mCodeView, mCurrentLanguage);
58-
Toast.makeText(this, "5 Colors Dark", Toast.LENGTH_SHORT).show();
59-
break;
60-
case 4:
61-
SyntaxManager.applyOrangeBoxTheme(this, mCodeView, mCurrentLanguage);
62-
Toast.makeText(this, "Orange Box", Toast.LENGTH_SHORT).show();
63-
break;
64-
}
65-
66-
mNextThemeIndex = mNextThemeIndex + 1;
75+
changeCodeViewTheme();
6776
}
6877
return super.onOptionsItemSelected(item);
6978
}
79+
80+
private void changeCodeViewTheme() {
81+
//Change CodeView Theme
82+
if(mNextThemeIndex > 4) {
83+
mNextThemeIndex = 1;
84+
}
85+
86+
switch (mNextThemeIndex) {
87+
case 1:
88+
SyntaxManager.applyMonokaiTheme(this, mCodeView, mCurrentLanguage);
89+
Toast.makeText(this, "Monokai", Toast.LENGTH_SHORT).show();
90+
break;
91+
case 2:
92+
SyntaxManager.applyNoctisWhiteTheme(this, mCodeView, mCurrentLanguage);
93+
Toast.makeText(this, "Noctis White", Toast.LENGTH_SHORT).show();
94+
break;
95+
case 3:
96+
SyntaxManager.applyFiveColorsDarkTheme(this, mCodeView, mCurrentLanguage);
97+
Toast.makeText(this, "5 Colors Dark", Toast.LENGTH_SHORT).show();
98+
break;
99+
case 4:
100+
SyntaxManager.applyOrangeBoxTheme(this, mCodeView, mCurrentLanguage);
101+
Toast.makeText(this, "Orange Box", Toast.LENGTH_SHORT).show();
102+
break;
103+
}
104+
105+
mNextThemeIndex = mNextThemeIndex + 1;
106+
}
70107
}

app/src/main/res/values/arrays.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
</string-array>
5353

5454
<!--GoLang Keywords List-->
55-
<string-array name="go_keyword">
55+
<string-array name="go_keywords">
5656
<item>break</item>
5757
<item>default</item>
5858
<item>func</item>
@@ -105,7 +105,7 @@
105105
</string-array>
106106

107107
<!--Python Keywords List-->
108-
<string-array name="python_keyword">
108+
<string-array name="python_keywords">
109109
<item>False</item>
110110
<item>await</item>
111111
<item>else</item>

0 commit comments

Comments
 (0)