├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── apk
└── canary.apk
├── app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── io
│ │ └── geeteshk
│ │ └── hyper
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── color
│ │ ├── css.json
│ │ ├── html.json
│ │ └── js.json
│ ├── files
│ │ ├── default
│ │ │ ├── index.html
│ │ │ ├── main.js
│ │ │ └── style.css
│ │ └── import
│ │ │ └── index.html
│ ├── fonts
│ │ └── Inconsolata-Regular.ttf
│ └── web
│ │ └── favicon.ico
│ ├── java
│ └── io
│ │ └── geeteshk
│ │ └── hyper
│ │ ├── Hyper.kt
│ │ ├── extensions
│ │ ├── Callback.kt
│ │ ├── Context.kt
│ │ ├── File.kt
│ │ ├── Input.kt
│ │ ├── LiveData.kt
│ │ ├── String.kt
│ │ └── View.kt
│ │ ├── git
│ │ ├── CheckoutTask.kt
│ │ ├── CloneTask.kt
│ │ ├── CommitTask.kt
│ │ ├── FetchTask.kt
│ │ ├── GitTask.kt
│ │ ├── GitWrapper.kt
│ │ ├── PullTask.kt
│ │ └── PushTask.kt
│ │ ├── ui
│ │ ├── activity
│ │ │ ├── AnalyzeActivity.kt
│ │ │ ├── IntroActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── ProjectActivity.kt
│ │ │ ├── RemotesActivity.kt
│ │ │ ├── SettingsActivity.kt
│ │ │ ├── SplashActivity.kt
│ │ │ ├── ThemedActivity.kt
│ │ │ └── WebActivity.kt
│ │ ├── adapter
│ │ │ ├── AnalyzeAdapter.kt
│ │ │ ├── FileAdapter.kt
│ │ │ ├── FileBrowserAdapter.kt
│ │ │ ├── GitLogsAdapter.kt
│ │ │ ├── IntroAdapter.kt
│ │ │ ├── LogsAdapter.kt
│ │ │ ├── ProjectAdapter.kt
│ │ │ └── RemotesAdapter.kt
│ │ ├── fragment
│ │ │ ├── EditorFragment.kt
│ │ │ ├── ImageFragment.kt
│ │ │ ├── IntroFragment.kt
│ │ │ ├── SettingsFragment.kt
│ │ │ └── analyze
│ │ │ │ └── AnalyzeFileFragment.kt
│ │ ├── helper
│ │ │ └── MenuPrepareHelper.kt
│ │ ├── viewmodel
│ │ │ └── ProjectViewModel.kt
│ │ └── widget
│ │ │ ├── DiffView.kt
│ │ │ ├── Editor.kt
│ │ │ └── ScrimInsetsFrameLayout.kt
│ │ └── util
│ │ ├── Constants.kt
│ │ ├── Prefs.kt
│ │ ├── editor
│ │ ├── Clipboard.kt
│ │ ├── Highlighter.kt
│ │ ├── ProjectFiles.kt
│ │ └── ResourceHelper.kt
│ │ ├── json
│ │ └── ColorReader.kt
│ │ ├── net
│ │ ├── HtmlCompat.kt
│ │ ├── HtmlParser.kt
│ │ ├── HyperServer.kt
│ │ └── NetworkUtils.kt
│ │ ├── project
│ │ ├── DataValidator.kt
│ │ └── ProjectManager.kt
│ │ └── ui
│ │ ├── FontsOverride.kt
│ │ └── Styles.kt
│ └── res
│ ├── drawable-hdpi-v11
│ └── ic_git_small.png
│ ├── drawable-hdpi
│ ├── drawer_shadow.9.png
│ ├── ic_action_done.png
│ ├── ic_action_element_edit.png
│ ├── ic_action_import.png
│ ├── ic_alert_error.png
│ ├── ic_binary.png
│ ├── ic_css.png
│ ├── ic_file.png
│ ├── ic_folder.png
│ ├── ic_font.png
│ ├── ic_git_small.png
│ ├── ic_html.png
│ ├── ic_image.png
│ ├── ic_js.png
│ ├── ic_overflow.png
│ └── ic_tab.png
│ ├── drawable-mdpi-v11
│ └── ic_git_small.png
│ ├── drawable-mdpi
│ ├── drawer_shadow.9.png
│ ├── ic_action_done.png
│ ├── ic_action_element_edit.png
│ ├── ic_action_import.png
│ ├── ic_alert_error.png
│ ├── ic_binary.png
│ ├── ic_css.png
│ ├── ic_file.png
│ ├── ic_folder.png
│ ├── ic_font.png
│ ├── ic_git_small.png
│ ├── ic_html.png
│ ├── ic_image.png
│ ├── ic_js.png
│ ├── ic_overflow.png
│ └── ic_tab.png
│ ├── drawable-nodpi
│ ├── ic_intro_done.png
│ ├── ic_intro_editor.png
│ ├── ic_intro_git.png
│ ├── ic_intro_logo_n.png
│ ├── ic_launcher.png
│ └── logo.png
│ ├── drawable-xhdpi-v11
│ └── ic_git_small.png
│ ├── drawable-xhdpi
│ ├── drawer_shadow.9.png
│ ├── ic_action_done.png
│ ├── ic_action_element_edit.png
│ ├── ic_action_import.png
│ ├── ic_alert_error.png
│ ├── ic_binary.png
│ ├── ic_css.png
│ ├── ic_file.png
│ ├── ic_folder.png
│ ├── ic_font.png
│ ├── ic_git_small.png
│ ├── ic_html.png
│ ├── ic_image.png
│ ├── ic_js.png
│ ├── ic_overflow.png
│ └── ic_tab.png
│ ├── drawable-xxhdpi-v11
│ └── ic_git_small.png
│ ├── drawable-xxhdpi
│ ├── drawer_shadow.9.png
│ ├── ic_action_done.png
│ ├── ic_action_element_edit.png
│ ├── ic_action_import.png
│ ├── ic_alert_error.png
│ ├── ic_binary.png
│ ├── ic_css.png
│ ├── ic_file.png
│ ├── ic_folder.png
│ ├── ic_font.png
│ ├── ic_git_small.png
│ ├── ic_html.png
│ ├── ic_image.png
│ ├── ic_js.png
│ ├── ic_overflow.png
│ └── ic_tab.png
│ ├── drawable-xxxhdpi-v11
│ └── ic_git_small.png
│ ├── drawable-xxxhdpi
│ ├── drawer_shadow.9.png
│ ├── ic_action_done.png
│ ├── ic_action_element_edit.png
│ ├── ic_action_import.png
│ ├── ic_alert_error.png
│ ├── ic_binary.png
│ ├── ic_css.png
│ ├── ic_file.png
│ ├── ic_folder.png
│ ├── ic_font.png
│ ├── ic_git_small.png
│ ├── ic_html.png
│ ├── ic_image.png
│ ├── ic_js.png
│ ├── ic_overflow.png
│ └── ic_tab.png
│ ├── drawable
│ ├── bottom_shadow.xml
│ ├── header_bg.xml
│ ├── ic_dark_theme_code.xml
│ ├── ic_factory_reset.xml
│ ├── ic_line_numbers.xml
│ ├── ic_night_mode.xml
│ └── ic_notices.xml
│ ├── layout
│ ├── activity_analyze.xml
│ ├── activity_intro.xml
│ ├── activity_main.xml
│ ├── activity_project.xml
│ ├── activity_remotes.xml
│ ├── activity_settings.xml
│ ├── activity_splash.xml
│ ├── activity_web.xml
│ ├── dialog_clone.xml
│ ├── dialog_create.xml
│ ├── dialog_diff.xml
│ ├── dialog_git_branch.xml
│ ├── dialog_import.xml
│ ├── dialog_input_single.xml
│ ├── dialog_pull.xml
│ ├── dialog_push.xml
│ ├── dialog_refactor.xml
│ ├── dialog_remote_add.xml
│ ├── fragment_analyze_file.xml
│ ├── fragment_editor.xml
│ ├── fragment_intro.xml
│ ├── item_attr.xml
│ ├── item_file_browser.xml
│ ├── item_file_project.xml
│ ├── item_file_root.xml
│ ├── item_git_log.xml
│ ├── item_git_status.xml
│ ├── item_log.xml
│ ├── item_project.xml
│ ├── item_remote.xml
│ ├── sheet_about.xml
│ ├── sheet_logs.xml
│ ├── sheet_web_settings.xml
│ └── widget_toolbar.xml
│ ├── menu
│ ├── menu_file_options.xml
│ ├── menu_main.xml
│ ├── menu_project.xml
│ └── menu_web.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxxhdpi
│ └── ic_launcher.png
│ ├── values-sw600dp
│ └── bools.xml
│ ├── values-v21
│ └── styles.xml
│ ├── values-w820dp
│ └── dimens.xml
│ ├── values
│ ├── attrs.xml
│ ├── bools.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ └── settings.xml
├── art
├── left.png
├── logo.png
├── middle.png
└── right.png
├── build.gradle
├── dependencies.gradle
├── docs
├── css
│ ├── normalize.min.css
│ └── styles.css
├── favicon.ico
├── index.html
├── js
│ ├── html5shiv-printshiv.js
│ └── prefixfree.min.js
└── multimedia
│ ├── android.png
│ ├── device.png
│ ├── github.png
│ └── logo.png
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── scripts
└── update_apk
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # files for the dex VM
2 | *.dex
3 |
4 | # Java class files
5 | *.class
6 |
7 | # generated files
8 | bin/
9 | gen/
10 |
11 | # Local configuration file (sdk path, etc)
12 | local.properties
13 |
14 | # Windows thumbnail db
15 | Thumbs.db
16 |
17 | # Eclipse project files
18 | .classpath
19 | .project
20 |
21 | # Android Studio
22 | *.iml
23 | .idea
24 | .gradle
25 | build/
26 |
27 | #NDK
28 | obj/
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 | jdk: oraclejdk8
3 | branches:
4 | only:
5 | - master
6 | env:
7 | matrix:
8 | - ANDROID_BUILD_TOOLS_VERSION=28.0.3 ANDROID_API_LEVEL=28
9 | global:
10 | secure: ANuK99R514P6uRpt/zK23WMPj0QxEyzOZRymOqKqjZVp+YAj6hXayDhMwwPc2RkmH+psVwjBqFMxw1YnovaQrX9rjR0O+FoAnYQIeQZRTCrDC565Vn9GjqBMSk31nFjzcCNKpZriwzRAf3DATE6//sMpJA3RYaslhzNL5Vyq+d7bCE/S1z9LP4Bu6k4nPSvmRvamzvMFzKjkdYz1ix/Ct61d+ag1WYEwmScXIQKWHY0swKKdsUMFTUKoCu8Xrd9HqoHm+1kGl5unG6hjsZ/YxKM7XjOoMlIvVA+WQFIrLpiAngEHWLdyUFLw8tXZnJvjVVlRjagCrvhmEg57ZCQxWzCpLYzpsx0DaN839OrNxAAJ7pIorhLp4yLLzwXLkJkFX29mxUVhCZO0ToBNc/yRMSttQqe9IGRGij4goDnTZAEqNHDcoVVADkoPgTDAENpB+HiI/BurhZZwB9s6EA6o7xuYOqTV2u2pTVr8w5TkLMQdRdMNNQ8xgC2jnPOudifluY+bj2Tkxcc6+g+H/nv8kXUHDGnqy4d1kiVl1Urs2NH8d40mBX+EYXbmLZMIbEVnIhv8hEd9zjEkmju6DDF18Np8v7zT7YSuCKhS5Zn0vzBckEE7CkFDkW0ZFLit0OszKiUaAtwlegWD2RmZJLGP+Uxww6/dWiJ/TAPGxgi8mOY=
11 | before_cache:
12 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
13 | - rm -rf $HOME/.gradle/caches/*/plugin-resolution/
14 | cache:
15 | directories:
16 | - "$HOME/.gradle/caches/"
17 | - "$HOME/.gradle/wrapper/"
18 | - "$HOME/.android/build-cache"
19 | install:
20 | - echo yes | sdkmanager "tools" &>/dev/null
21 | - echo yes | sdkmanager "platform-tools" &>/dev/null
22 | - echo yes | sdkmanager "build-tools;$ANDROID_BUILD_TOOLS_VERSION" &>/dev/null
23 | - echo yes | sdkmanager "platforms;android-$ANDROID_API_LEVEL" &>/dev/null
24 | - echo yes | sdkmanager "extras;android;m2repository" &>/dev/null
25 | - echo yes | sdkmanager "extras;google;m2repository" &>/dev/null
26 | before_script:
27 | - chmod +x scripts/update_apk
28 | script:
29 | - "./gradlew clean assembleDebug"
30 | notifications:
31 | email: false
32 | after_success:
33 | - "./scripts/update_apk"
34 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Hyper is a powerful, open source web development IDE for Android.
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/apk/canary.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/apk/canary.apk
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016 Geetesh Kalakoti
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | apply plugin: 'com.android.application'
18 | apply plugin: 'kotlin-android'
19 | apply plugin: 'kotlin-android-extensions'
20 | apply plugin: 'kotlin-kapt'
21 | apply plugin: 'com.github.ben-manes.versions'
22 | apply plugin: 'com.google.android.gms.oss-licenses-plugin'
23 |
24 | android {
25 | compileSdkVersion versions.compileSdk
26 |
27 | defaultConfig {
28 | applicationId "io.geeteshk.hyper"
29 | minSdkVersion versions.minSdk
30 | targetSdkVersion versions.targetSdk
31 | versionCode versions.code
32 | versionName versions.name
33 | multiDexEnabled true
34 | }
35 |
36 | buildTypes {
37 | debug {
38 | testCoverageEnabled false
39 | }
40 |
41 | release {
42 | testCoverageEnabled false
43 | minifyEnabled true
44 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
45 | }
46 | }
47 |
48 | packagingOptions {
49 | exclude "**/*.txt"
50 | exclude "**/*.xml"
51 | exclude "**/*.properties"
52 | }
53 | }
54 |
55 | dependencies {
56 | implementation fileTree(include: ['*.jar'], dir: 'libs')
57 | implementation libraries.kotlin
58 |
59 | implementation 'androidx.appcompat:appcompat:1.0.2'
60 | implementation 'com.google.android.material:material:1.1.0-alpha02'
61 | implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha01'
62 |
63 | implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha01'
64 | implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0-alpha01'
65 | kapt 'androidx.lifecycle:lifecycle-compiler:2.1.0-alpha01'
66 |
67 | implementation 'androidx.multidex:multidex:2.0.1'
68 | implementation 'androidx.preference:preference:1.1.0-alpha02'
69 |
70 | implementation libraries.timber
71 |
72 | implementation libraries.nanohttpd
73 | implementation libraries.jsoup
74 | implementation libraries.uaUtils
75 | implementation(libraries.jgit) {
76 | exclude module: 'httpclient'
77 | exclude group: 'org.apache.httpcomponents'
78 | exclude group: 'org.apache.httpcomponents', module: 'httpclient'
79 | }
80 |
81 | implementation libraries.playServicesLicenses
82 | implementation libraries.mpchart
83 | }
84 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\Users\Geetesh\AppData\Local\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 | #}
18 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/io/geeteshk/hyper/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016 Geetesh Kalakoti
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package io.geeteshk.hyper;
18 |
19 | import android.app.Application;
20 | import android.test.ApplicationTestCase;
21 |
22 | /**
23 | * Testing Fundamentals
24 | */
25 | public class ApplicationTest extends ApplicationTestCase {
26 | public ApplicationTest() {
27 | super(Application.class);
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
45 |
49 |
56 |
59 |
60 |
61 |
64 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/app/src/main/assets/color/css.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": "keyword",
4 | "pattern": "(<|<\\)\\b(a|address|app|applet|area|b|base|basefont|bgsound|big|blink|blockquote|body|br|button|caption|center|cite|code|col|colgroup|comment|dd|dfn|dir|div|dl|dt|em|embed|fieldset|font|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|hr|html|htmlplus|hype|i|iframe|img|input|ins|del|isindex|kbd|label|legend|li|link|listing|map|marquee|menu|meta|multicol|nobr|noembed|noframes|noscript|ol|option|p|param|plaintext|pre|s|samp|script|select|small|sound|spacer|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var|wbr|xmp|import)\\b>",
5 | "color": "#f92672",
6 | "dark": "#f92672"
7 | },
8 | {
9 | "id": "param",
10 | "pattern": "\\b(azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-collapse|border-color|border-spacing|border-style|border-top|border-right|border-bottom|border-left|border-top-color|border-right-color|border-left-color|border-bottom-color|border-top-style|border-right-style|border-bottom-style|border-left-style|border-top-width|border-right-width|border-bottom-width|border-left-width|border-width|border|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-left|margin-right|margin-top|margin-bottom|margin|max-height|max-width|min-height|min-width|orphans|outline-color|outline-style|outline-width|outline|overflow|padding-top|padding-right|padding-bottom|padding-left|padding|page-break-after|page-break-before|page-break-inside|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index)\\b:",
11 | "color": "#64cbf4",
12 | "dark": "#64cbf4"
13 | },
14 | {
15 | "id": "value",
16 | "pattern": ":.*;",
17 | "color": "#9a79dd",
18 | "dark": "#9a79dd"
19 | },
20 | {
21 | "id": "class",
22 | "pattern": "\\..*\\{",
23 | "color": "#72b000",
24 | "dark": "#a6e22e"
25 | },
26 | {
27 | "id": "id",
28 | "pattern": "#.*\\{",
29 | "color": "#72b000",
30 | "dark": "#a6e22e"
31 | },
32 | {
33 | "id": "ending",
34 | "pattern": "(em|rem|px|pt|%)",
35 | "color": "#9a79dd",
36 | "dark": "#9a79dd"
37 | },
38 | {
39 | "id": "string",
40 | "pattern": "([\"'])(?:(?=(\\?))\\2.)*?\\1",
41 | "color": "#ed5c00",
42 | "dark": "#e6db74"
43 | },
44 | {
45 | "id": "comment",
46 | "pattern": "/\\*(?:.|[\\n\\r])*?\\*/|//.*",
47 | "color": "#a0a0a0",
48 | "dark": "#75715e"
49 | }
50 | ]
--------------------------------------------------------------------------------
/app/src/main/assets/color/html.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": "keyword",
4 | "pattern": "(<|<\\)\\b(a|address|app|applet|area|b|base|basefont|bgsound|big|blink|blockquote|body|br|button|caption|center|cite|code|col|colgroup|comment|dd|dfn|dir|div|dl|dt|em|embed|fieldset|font|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|hr|html|htmlplus|hype|i|iframe|img|input|ins|del|isindex|kbd|label|legend|li|link|listing|map|marquee|menu|meta|multicol|nobr|noembed|noframes|noscript|ol|option|p|param|plaintext|pre|s|samp|script|select|small|sound|spacer|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var|wbr|xmp|import)\\b>",
5 | "color": "#f92672",
6 | "dark": "#f92672"
7 | },
8 | {
9 | "id": "built_in",
10 | "pattern": "\\b(charset|lang|href|onclick|onmouseover|onmouseout|code|codebase|width|height|align|vspace|hspace|name|archive|mayscript|alt|shape|coords|target|nohref|size|color|face|src|loop|bgcolor|background|text|vlink|alink|bgproperties|topmargin|leftmargin|marginheight|marginwidth|onload|onunload|onfocus|onblur|stylesrc|scroll|clear|type|value|valign|span|compact|pluginspage|pluginurl|hidden|autostart|playcount|volume|controller|mastersound|starttime|endtime|point-size|weight|action|method|enctype|onsubmit|onreset|scrolling|noresize|frameborder|bordercolor|cols|rows|framespacing|border|noshade|longdesc|ismap|usemap|lowsrc|naturalsizeflag|nosave|dynsrc|controls|start|suppress|maxlength|checked|language|onchange|onkeypress|onkeyup|onkeydown|autocomplete|prompt|for|rel|rev|media|direction|behaviour|scrolldelay|scrollamount|http-equiv|content|gutter|defer|event|multiple|readonly|cellpadding|cellspacing|rules|bordercolorlight|bordercolordark|summary|colspan|rowspan|nowrap|halign|disabled|accesskey|tabindex|id|class)\\b=",
11 | "color": "#72b000",
12 | "dark": "#a6e22e"
13 | },
14 | {
15 | "id": "string",
16 | "pattern": "([\"'])(?:(?=(\\?))\\2.)*?\\1",
17 | "color": "#ed5c00",
18 | "dark": "#e6db74"
19 | },
20 | {
21 | "id": "comment",
22 | "pattern": "/\\**?\\*/|
16 |
17 |
19 |
20 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/header_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_dark_theme_code.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_factory_reset.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_line_numbers.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_night_mode.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_notices.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_analyze.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
23 |
24 |
29 |
30 |
31 |
32 |
41 |
42 |
43 |
44 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_intro.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
20 |
21 |
25 |
26 |
34 |
35 |
41 |
42 |
52 |
53 |
63 |
64 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
35 |
42 |
43 |
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_remotes.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
22 |
27 |
28 |
29 |
30 |
31 |
32 |
37 |
38 |
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_settings.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
22 |
27 |
28 |
29 |
30 |
31 |
32 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_splash.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
23 |
24 |
27 |
28 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_web.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
22 |
29 |
30 |
41 |
42 |
47 |
48 |
49 |
50 |
51 |
52 |
58 |
59 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_clone.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
34 |
35 |
36 |
37 |
41 |
42 |
48 |
49 |
50 |
51 |
55 |
56 |
62 |
63 |
64 |
65 |
69 |
70 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_diff.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
20 |
21 |
25 |
26 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_git_branch.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_input_single.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_pull.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
32 |
33 |
39 |
40 |
41 |
42 |
46 |
47 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_push.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
33 |
34 |
39 |
40 |
45 |
46 |
52 |
53 |
57 |
58 |
64 |
65 |
66 |
67 |
71 |
72 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_refactor.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
34 |
35 |
36 |
37 |
41 |
42 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_remote_add.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
27 |
28 |
34 |
35 |
36 |
37 |
41 |
42 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_analyze_file.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
22 |
26 |
27 |
35 |
36 |
43 |
44 |
49 |
50 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_intro.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
21 |
22 |
28 |
29 |
33 |
34 |
42 |
43 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_attr.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
31 |
32 |
40 |
41 |
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_file_browser.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
26 |
27 |
31 |
32 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_file_project.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
23 |
24 |
29 |
30 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_file_root.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
26 |
27 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_git_log.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
23 |
29 |
30 |
38 |
39 |
46 |
47 |
55 |
56 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_log.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
26 |
27 |
34 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_project.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
23 |
24 |
28 |
29 |
35 |
36 |
43 |
44 |
52 |
53 |
62 |
63 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_remote.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
25 |
26 |
32 |
33 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sheet_logs.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
20 |
21 |
25 |
26 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/widget_toolbar.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_file_options.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
19 |
20 |
24 |
25 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_web.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
19 |
20 |
24 |
25 |
29 |
30 |
34 |
35 |
39 |
40 |
44 |
45 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-sw600dp/bools.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
21 | 64dp
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/values/bools.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 | #448AFF
19 | #2962FF
20 | #FF6B69
21 | #FF7163
22 |
23 |
24 |
25 | #f64c73
26 | #20d2bb
27 | #3395ff
28 | #c873f4
29 |
30 | #d1395c
31 | #14a895
32 | #2278d4
33 | #a854d4
34 |
35 | #f98da5
36 | #8cf9eb
37 | #93c6fd
38 | #e4b5fc
39 |
40 |
41 | - @color/bg_screen1
42 | - @color/bg_screen2
43 | - @color/bg_screen3
44 | - @color/bg_screen4
45 |
46 |
47 |
48 | - @color/dot_light_screen1
49 | - @color/dot_light_screen2
50 | - @color/dot_light_screen3
51 | - @color/dot_light_screen4
52 |
53 |
54 |
55 | - @color/dot_dark_screen1
56 | - @color/dot_dark_screen2
57 | - @color/dot_dark_screen3
58 | - @color/dot_dark_screen4
59 |
60 |
61 | #10000000
62 | #a0a0a0
63 | #f8f8f8
64 | #222222
65 |
66 | #10ffffff
67 | #d3d3d3
68 | #222222
69 | #f8f8f8
70 |
71 |
72 | - @color/code_line_shadow
73 | - @color/code_number
74 | - @color/code_bg
75 | - @color/code_text
76 |
77 |
78 |
79 | - @color/code_line_shadow_dark
80 | - @color/code_number_dark
81 | - @color/code_bg_dark
82 | - @color/code_text_dark
83 |
84 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 | 16dp
20 | 16dp
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
28 |
29 |
38 |
39 |
45 |
46 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/settings.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
21 |
22 |
28 |
29 |
30 |
31 |
33 |
34 |
40 |
41 |
47 |
48 |
49 |
50 |
52 |
53 |
58 |
59 |
60 |
61 |
63 |
64 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/art/left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/art/left.png
--------------------------------------------------------------------------------
/art/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/art/logo.png
--------------------------------------------------------------------------------
/art/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/art/middle.png
--------------------------------------------------------------------------------
/art/right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/art/right.png
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016 Geetesh Kalakoti
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | apply from: 'dependencies.gradle'
18 | buildscript {
19 | apply from: 'dependencies.gradle'
20 | repositories {
21 | jcenter()
22 | google()
23 | maven { url "https://jitpack.io" }
24 | }
25 |
26 | dependencies {
27 | classpath gradlePlugins.android
28 | classpath gradlePlugins.kotlinGradle
29 | classpath gradlePlugins.kotlinExtensions
30 | classpath gradlePlugins.versions
31 | classpath gradlePlugins.ossLicenses
32 | }
33 | }
34 |
35 | allprojects {
36 | repositories {
37 | jcenter()
38 | google()
39 | maven { url "https://jitpack.io" }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/dependencies.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016 Geetesh Kalakoti
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | ext.versions = [
18 | code : 1,
19 | name : '1.0',
20 |
21 | minSdk : 15,
22 | targetSdk : 28,
23 | compileSdk : 28,
24 |
25 | androidGradlePlugin : '3.2.1',
26 | kotlinPlugin : '1.3.10',
27 | versionsPlugin : '0.20.0',
28 | ossLicensesPlugin : '0.9.3',
29 |
30 | playServicesLicensesPlugin : '16.0.0',
31 | mpchart : '3.0.3',
32 |
33 | timber : '4.7.1',
34 |
35 | nanohttpd : '2.3.1',
36 | jgit : '3.7.1.201504261725-r', // no-update
37 | jsoup : '1.11.3',
38 | uaUtils : '1.21'
39 | ]
40 |
41 | ext.gradlePlugins = [
42 | android : "com.android.tools.build:gradle:$versions.androidGradlePlugin",
43 | kotlinGradle : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlinPlugin",
44 | kotlinExtensions : "org.jetbrains.kotlin:kotlin-android-extensions:$versions.kotlinPlugin",
45 | versions : "com.github.ben-manes:gradle-versions-plugin:$versions.versionsPlugin",
46 | ossLicenses : "com.google.android.gms:oss-licenses-plugin:$versions.ossLicensesPlugin",
47 | ]
48 |
49 | ext.libraries = [
50 | kotlin : "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlinPlugin",
51 | timber : "com.jakewharton.timber:timber:$versions.timber",
52 |
53 | playServicesLicenses : "com.google.android.gms:play-services-oss-licenses:$versions.playServicesLicensesPlugin",
54 | mpchart : "com.github.PhilJay:MPAndroidChart:$versions.mpchart",
55 |
56 | nanohttpd : "org.nanohttpd:nanohttpd-webserver:$versions.nanohttpd",
57 | jgit : "org.eclipse.jgit:org.eclipse.jgit:$versions.jgit",
58 | jsoup : "org.jsoup:jsoup:$versions.jsoup",
59 | uaUtils : "eu.bitwalker:UserAgentUtils:$versions.uaUtils",
60 | ]
61 |
62 | def addRepos(RepositoryHandler repoHandler) {
63 | repoHandler.jcenter()
64 | repoHandler.google()
65 | repoHandler.maven { url "https://jitpack.io" }
66 | }
67 |
68 | ext.addRepos = this.&addRepos
--------------------------------------------------------------------------------
/docs/css/normalize.min.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}
2 | /*# sourceMappingURL=normalize.min.css.map */
--------------------------------------------------------------------------------
/docs/css/styles.css:
--------------------------------------------------------------------------------
1 | a:link{color:#0271fb}a:visited{color:#bd02fb}a:focus,a:hover{color:#000}a:active{color:#fb0e02}body{text-align:center;background-color:#fff;overflow:hidden;user-select:none}#page-wrap{position:relative;text-align:left;width:800px;margin:0 auto}img{filter:none;filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='0');user-drag:none}a{text-decoration:none}#container{position:absolute;height:600px;width:450px;top:5%}.logo{position:absolute;top:20%;transition:filter .16s;filter:drop-shadow(2px 2px 2px #bebebe)}.logo:focus,.logo:hover{filter:drop-shadow(2px 4px 3px #bebebe)}#buttons{position:absolute;top:54%;right:8px;margin-right:20px}.button{z-index:100;transition:box-shadow .16s;outline:0;background-repeat:no-repeat;padding:12px 16px;border-radius:4px;background-size:200px 80px;background-position:50% 50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.button:focus,.button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.github{background:linear-gradient(to right,#42bcff,#5476ff);margin-right:4px}.android{background:linear-gradient(to right,#f84,#ff5982);margin-left:4px}.device{transform:matrix(.25,0,0,.25,-200,-1000)}@media print{*{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important}html{background-color:#fff}nav{display:none}a[href]:after{content:" (" attr(href) ") "}a[href]{font-weight:700;text-decoration:underline;color:#06c;border:0}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}figure{margin-bottom:1em;overflow:hidden}figure img{border:1px solid #000}}
2 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 | Hyper
2 |
--------------------------------------------------------------------------------
/docs/multimedia/android.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/docs/multimedia/android.png
--------------------------------------------------------------------------------
/docs/multimedia/device.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/docs/multimedia/device.png
--------------------------------------------------------------------------------
/docs/multimedia/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/docs/multimedia/github.png
--------------------------------------------------------------------------------
/docs/multimedia/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/docs/multimedia/logo.png
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Settings specified in this file will override any Gradle settings
5 | # configured through the IDE.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # The Gradle daemon aims to improve the startup and execution time of Gradle.
11 | # When set to true the Gradle daemon is to run the build.
12 | org.gradle.daemon=true
13 |
14 | # Specifies the JVM arguments used for the daemon process.
15 | # The setting is particularly useful for tweaking memory settings.
16 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
17 | org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
18 |
19 | # When configured, Gradle will run in incubating parallel mode.
20 | # This option should only be used with decoupled projects. More details, visit
21 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
22 | org.gradle.parallel=true
23 |
24 | # Enables new incubating mode that makes Gradle selective when configuring projects.
25 | # Only relevant projects are configured which results in faster builds for large multi-projects.
26 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
27 | org.gradle.configureondemand=true
28 | android.useAndroidX=true
29 | android.enableJetifier=true
30 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/geeteshk/Hyper/fc492e0d9d1c112f851163d15dadf2977436123b/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 17 16:29:43 CST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/scripts/update_apk:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | cat << "EOF"
4 |
5 | ('-. .-. _ (`-. ('-. _ .-')
6 | ( OO ) / ( (OO ) _( OO)( \( -O )
7 | ,--. ,--. ,--. ,--._.` \(,------.,------.
8 | | | | | \ `.' /(__...--'' | .---'| /`. '
9 | | .| | .-') / | / | | | | | / | |
10 | | |(OO \ / | |_.' |(| '--. | |_.' |
11 | | .-. | | / /\_ | .___.' | .--' | . '.'
12 | | | | | `-./ /.__) | | | `---.| |\ \
13 | `--' `--' `--' `--' `------'`--' '--'
14 |
15 | EOF
16 |
17 | if [ "$TRAVIS_PULL_REQUEST" != "false" ]
18 | then
19 | echo "Pull request. Skipping APK upload."
20 | exit 1
21 | fi
22 |
23 | COMMIT_MSG="$(git log -1)"
24 |
25 | if [[ $COMMIT_MSG != *"[apk skip]"* ]]
26 | then
27 | git config --global user.email "travis@travis-ci.org"
28 | git config --global user.name "Travis CI"
29 |
30 | git config credential.helper "store --file=.git/credentials"
31 | echo "https://${GH_TOKEN}:@github.com" > .git/credentials
32 |
33 | cp -R app/build/outputs/apk/debug/app-debug.apk apk/canary.apk
34 |
35 | git add apk/canary.apk
36 | git commit -F- <