Skip to content

Commit 7256dff

Browse files
committed
release 1.0.1
1 parent efa4d64 commit 7256dff

File tree

140 files changed

+10180
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+10180
-0
lines changed

.gitignore

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Base .gitignore taken from "https://raw.githubusercontent.com/github/gitignore/master/Android.gitignore"
2+
# Built application files
3+
*.apk
4+
*.ap_
5+
6+
# Files for the ART/Dalvik VM
7+
*.dex
8+
9+
# Java class files
10+
*.class
11+
12+
# Generated files
13+
bin/
14+
gen/
15+
out/
16+
17+
# Gradle files
18+
.gradle/
19+
build/
20+
21+
# Local configuration file (sdk path, etc)
22+
local.properties
23+
24+
# Proguard folder generated by Eclipse
25+
proguard/
26+
27+
# Log Files
28+
*.log
29+
30+
# Android Studio Navigation editor temp files
31+
.navigation/
32+
33+
# Android Studio captures folder
34+
captures/
35+
36+
# Intellij
37+
*.iml
38+
.idea/workspace.xml
39+
.idea/tasks.xml
40+
.idea/libraries
41+
.idea/
42+
43+
# Keystore files
44+
*.jks
45+
46+
# External native build folder generated in Android Studio 2.2 and later
47+
.externalNativeBuild
48+
.idea/vcs.xml
49+
.idea/misc.xml

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/build.gradle

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion 25
5+
buildToolsVersion '25.0.2'
6+
defaultConfig {
7+
applicationId "com.pddstudio.highlightjs.demo"
8+
minSdkVersion 16
9+
targetSdkVersion 25
10+
versionCode 2
11+
versionName "1.0.1"
12+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13+
}
14+
15+
buildTypes {
16+
release {
17+
minifyEnabled false
18+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19+
}
20+
}
21+
22+
packagingOptions {
23+
exclude 'META-INF/LICENSE.txt'
24+
exclude 'META-INF/LICENSE'
25+
exclude 'META-INF/NOTICE.txt'
26+
}
27+
}
28+
29+
dependencies {
30+
compile fileTree(include: ['*.jar'], dir: 'libs')
31+
compile project(':library')
32+
33+
compile 'org.kohsuke:github-api:1.82'
34+
compile 'com.android.support:appcompat-v7:25.2.0'
35+
compile 'com.android.support:recyclerview-v7:25.2.0'
36+
compile 'com.android.support:design:25.2.0'
37+
38+
//testing dependencies
39+
testCompile 'junit:junit:4.12'
40+
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
41+
androidTestCompile 'com.android.support.test:runner:0.5'
42+
androidTestCompile 'com.android.support:support-annotations:25.2.0'
43+
}

app/proguard-rules.pro

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in /home/pddstudio/Android/Sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the proguardFiles
5+
# directive in build.gradle.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.pddstudio.highlightjs.demo;
2+
3+
import android.content.Context;
4+
import android.support.test.InstrumentationRegistry;
5+
import android.support.test.filters.MediumTest;
6+
import android.support.test.runner.AndroidJUnit4;
7+
8+
import org.junit.Test;
9+
import org.junit.runner.RunWith;
10+
11+
12+
import static org.junit.Assert.*;
13+
14+
/**
15+
* Instrumentation test, which will execute on an Android device.
16+
*
17+
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
18+
*/
19+
@MediumTest
20+
@RunWith(AndroidJUnit4.class)
21+
public class ExampleInstrumentationTest {
22+
@Test
23+
public void useAppContext() throws Exception {
24+
// Context of the app under test.
25+
Context appContext = InstrumentationRegistry.getTargetContext();
26+
27+
assertEquals("com.pddstudio.highlightjs.demo", appContext.getPackageName());
28+
}
29+
}

app/src/main/AndroidManifest.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.pddstudio.highlightjs.demo">
4+
5+
<uses-permission android:name="android.permission.INTERNET" />
6+
7+
<application
8+
android:allowBackup="true"
9+
android:icon="@mipmap/ic_launcher"
10+
android:label="@string/app_name"
11+
android:supportsRtl="true"
12+
android:theme="@style/AppTheme">
13+
<activity android:name=".MainActivity">
14+
<intent-filter>
15+
<action android:name="android.intent.action.MAIN" />
16+
17+
<category android:name="android.intent.category.LAUNCHER" />
18+
</intent-filter>
19+
</activity>
20+
<activity android:name=".SyntaxActivity"></activity>
21+
</application>
22+
23+
</manifest>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.pddstudio.highlightjs.demo;
2+
3+
import android.os.Bundle;
4+
import android.support.v7.app.AppCompatActivity;
5+
6+
import com.pddstudio.highlightjs.demo.fragments.FilesListFragment;
7+
8+
public class MainActivity extends AppCompatActivity {
9+
10+
@Override
11+
protected void onCreate(Bundle savedInstanceState) {
12+
super.onCreate(savedInstanceState);
13+
setContentView(R.layout.activity_main);
14+
getSupportFragmentManager()
15+
.beginTransaction()
16+
.replace(R.id.activity_main, FilesListFragment.newInstance())
17+
.commit();
18+
}
19+
20+
}
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package com.pddstudio.highlightjs.demo;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.NonNull;
5+
import android.support.v4.widget.SwipeRefreshLayout;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.view.Menu;
8+
import android.view.MenuInflater;
9+
import android.view.MenuItem;
10+
import android.widget.Toast;
11+
12+
import com.pddstudio.highlightjs.HighlightJsView;
13+
import com.pddstudio.highlightjs.demo.utils.FileObject;
14+
import com.pddstudio.highlightjs.demo.utils.ThemeChangerDialog;
15+
import com.pddstudio.highlightjs.models.Language;
16+
import com.pddstudio.highlightjs.models.Theme;
17+
18+
import java.util.Random;
19+
20+
public class SyntaxActivity extends AppCompatActivity implements
21+
SwipeRefreshLayout.OnRefreshListener,
22+
HighlightJsView.OnThemeChangedListener,
23+
ThemeChangerDialog.ThemeChangeListener {
24+
25+
private SwipeRefreshLayout swipeRefreshLayout;
26+
private HighlightJsView highlightJsView;
27+
private FileObject fileObject;
28+
29+
private ThemeChangerDialog themeChangerDialog;
30+
31+
@Override
32+
protected void onCreate(Bundle savedInstanceState) {
33+
super.onCreate(savedInstanceState);
34+
setContentView(R.layout.activity_syntax);
35+
fileObject = (FileObject) getIntent().getExtras().getSerializable("fileObject");
36+
if(getActionBar() != null) {
37+
getActionBar().setTitle(fileObject.getAbsoluteFilePath());
38+
getActionBar().setDisplayHomeAsUpEnabled(true);
39+
}
40+
if(getSupportActionBar() != null) {
41+
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
42+
getSupportActionBar().setTitle(fileObject.getAbsoluteFilePath());
43+
}
44+
//set and assign swipe refresh listener
45+
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
46+
swipeRefreshLayout.setOnRefreshListener(this);
47+
//find and instantiate the view
48+
highlightJsView = (HighlightJsView) findViewById(R.id.highlight_view);
49+
//register theme change listener
50+
highlightJsView.setOnThemeChangedListener(this);
51+
//change theme and set language to auto detect
52+
highlightJsView.setTheme(Theme.ARDUINO_LIGHT);
53+
highlightJsView.setHighlightLanguage(Language.JAVA);
54+
highlightJsView.setShowLineNumbers(false);
55+
//load the source
56+
highlightJsView.setSource(fileObject.getUrl());
57+
}
58+
59+
@Override
60+
protected void onResume() {
61+
super.onResume();
62+
themeChangerDialog = new ThemeChangerDialog(this);
63+
}
64+
65+
@Override
66+
public boolean onCreateOptionsMenu(Menu menu) {
67+
new MenuInflater(this).inflate(R.menu.menu_theme_switch, menu);
68+
return super.onCreateOptionsMenu(menu);
69+
}
70+
71+
@Override
72+
public boolean onOptionsItemSelected(MenuItem item) {
73+
switch (item.getItemId()) {
74+
case android.R.id.home:
75+
onBackPressed();
76+
break;
77+
case R.id.menu_switch_theme:
78+
themeChangerDialog.show(this);
79+
break;
80+
case R.id.menu_check_line_numbers:
81+
item.setChecked(!item.isChecked());
82+
onShowLineNumbersToggled(item.isChecked());
83+
break;
84+
case R.id.menu_check_zoom:
85+
item.setChecked(!item.isChecked());
86+
onZoomSupportToggled(item.isChecked());
87+
break;
88+
default:
89+
break;
90+
}
91+
return super.onOptionsItemSelected(item);
92+
}
93+
94+
private void onShowLineNumbersToggled(boolean enableLineNumbers) {
95+
highlightJsView.setShowLineNumbers(enableLineNumbers);
96+
highlightJsView.refresh();
97+
}
98+
99+
private void onZoomSupportToggled(boolean enableZooming) {
100+
highlightJsView.setZoomSupportEnabled(enableZooming);
101+
highlightJsView.refresh();
102+
}
103+
104+
@Override
105+
public void onRefresh() {
106+
swipeRefreshLayout.setRefreshing(true);
107+
highlightJsView.setTheme(getRandom(Theme.values()));
108+
highlightJsView.refresh();
109+
}
110+
111+
private <T> T getRandom(T... items) {
112+
return items[new Random().nextInt(items.length)];
113+
}
114+
115+
@Override
116+
public void onThemeChanged(@NonNull Theme theme) {
117+
swipeRefreshLayout.setRefreshing(false);
118+
Toast.makeText(this, "Theme: " + theme.name(), Toast.LENGTH_SHORT).show();
119+
}
120+
121+
@Override
122+
public void onChangeTheme(@NonNull Theme theme) {
123+
highlightJsView.setTheme(theme);
124+
highlightJsView.refresh();
125+
}
126+
127+
}

0 commit comments

Comments
 (0)