4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * https://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | package com.apkide.apktool.androlib.res.data.value;
18 |
19 | public class ResValue {
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/mxp1/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Contains XPP3 implementation of XMLPULL V1 API.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/Iterable.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | import java.util.Iterator;
4 |
5 | //JDK15 remove and replace usage with real Iterable
6 | /**
7 | * Use java.lang.Iterable instead when JDK 1.5 comes out ...*
8 | *
9 | * @version $Revision: 1.3 $
10 | * @author Aleksander Slominski
11 | */
12 | public interface Iterable
13 | {
14 | public Iterator iterator();
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlCharacters.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Represents otrdered colection of
5 | * Character Information Items
6 | * where character code properties are put together into Java String.
7 | *
8 | * @version $Revision: 1.5 $
9 | * @author Aleksander Slominski
10 | */
11 | public interface XmlCharacters extends XmlContained
12 | {
13 | public String getText();
14 | public Boolean isWhitespaceContent();
15 | //public XmlElement getParent();
16 |
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlComment.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Represents
5 | * Comment Information Item.
6 | *
7 | *
8 | * @version $Revision: 1.5 $
9 | * @author Aleksander Slominski
10 | */
11 |
12 | public interface XmlComment //extends XmlContainer
13 | {
14 | /**
15 | * A string representing the content of the comment.
16 | */
17 | public String getContent();
18 |
19 | /**
20 | * The document or element information item which contains this information item
21 | * in its [children] property.
22 | */
23 | public XmlContainer getParent();
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlContained.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Common abstraction to represent XML infoset item that are contained in other infoet items
5 | * This is useful so parent can be updated on contained items when container is cloned ...
6 | *
7 | * @version $Revision: 1.3 $
8 | * @author Aleksander Slominski
9 | */
10 |
11 | public interface XmlContained
12 | {
13 |
14 | //Object getPrent() -- requires covariant return to work both in
15 | /// XmlElement (returns XmlContainer) and XmlComment (returns XmlContainer) ...
16 | public XmlContainer getParent();
17 | public void setParent(XmlContainer el);
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlContainer.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Common abstraction shared between XmlElement, XmlDocument and XmlDoctype
5 | * to represent XML Infoset item that can contain other Infoset items
6 | * This is useful so getParent() operation will return this instead of Object ...
7 | *
8 | * @version $Revision: 1.4 $
9 | * @author Aleksander Slominski
10 | */
11 |
12 | public interface XmlContainer
13 | {
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlSerializable.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 |
4 | import org.xmlpull.v1.XmlSerializer;
5 |
6 | import java.io.IOException;
7 |
8 | /**
9 | * This interface is used during serialization by XmlInfosetBuilder
10 | * for children that are not in XML infoset.
11 | *
12 | * @version $Revision: 1.4 $
13 | * @author Aleksander Slominski
14 | */
15 | public interface XmlSerializable
16 | {
17 | public void serialize(XmlSerializer ser) throws IOException;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlUnexpandedEntityReference.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Represents
5 | * Unexpanded Entity Reference
6 | * Information Item
7 | * .
8 | *
9 | * @version $Revision: 1.3 $
10 | * @author Aleksander Slominski
11 | */
12 | public interface XmlUnexpandedEntityReference //extends XmlContainer
13 | {
14 | public String getName();
15 | public String getSystemIdentifier();
16 | public String getPublicIdentifier();
17 | public String getDeclarationBaseUri();
18 | public XmlElement getParent();
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/XmlUnparsedEntity.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder;
2 |
3 | /**
4 | * Represents
5 | * Unparsed Entity
6 | * Information Item
7 | * .
8 | *
9 | * @version $Revision: 1.3 $
10 | * @author Aleksander Slominski
11 | */
12 | public interface XmlUnparsedEntity //extends XmlContainer
13 | {
14 | public String getName();
15 | public String getSystemIdentifier();
16 | public String getPublicIdentifier();
17 | public String getDeclarationBaseUri();
18 | public String getNotationName();
19 | public XmlNotation getNotation();
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/apktool/core/src/main/java/org/xmlpull/v1/builder/impl/XmlCommentImpl.java:
--------------------------------------------------------------------------------
1 | package org.xmlpull.v1.builder.impl;
2 |
3 | import org.xmlpull.v1.builder.XmlComment;
4 | import org.xmlpull.v1.builder.XmlContainer;
5 |
6 | /**
7 | * Simple implementation.
8 | *
9 | * @author Aleksander Slominski
10 | */
11 | public class XmlCommentImpl implements XmlComment
12 | {
13 | private XmlContainer owner_;
14 |
15 | private String content_;
16 |
17 | XmlCommentImpl(XmlContainer owner, String content) {
18 | this.owner_ = owner;
19 | this.content_ = content;
20 | if(content == null) throw new IllegalArgumentException("comment content can not be null");
21 | }
22 |
23 | public String getContent() {
24 | return content_;
25 | }
26 |
27 | public XmlContainer getParent() {
28 | return owner_;
29 | }
30 |
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/apktool/core/src/main/jniLibs/arm64-v8a/libaapt2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/apktool/core/src/main/jniLibs/arm64-v8a/libaapt2.so
--------------------------------------------------------------------------------
/apktool/core/src/main/jniLibs/armeabi-v7a/libaapt2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/apktool/core/src/main/jniLibs/armeabi-v7a/libaapt2.so
--------------------------------------------------------------------------------
/apktool/core/src/main/jniLibs/x86/libaapt2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/apktool/core/src/main/jniLibs/x86/libaapt2.so
--------------------------------------------------------------------------------
/apktool/core/src/main/jniLibs/x86_64/libaapt2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/apktool/core/src/main/jniLibs/x86_64/libaapt2.so
--------------------------------------------------------------------------------
/apktool/core/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apktool/core/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apktool/core/src/main/resources/META-INF/services/org.xmlpull.v1.XmlPullParserFactory:
--------------------------------------------------------------------------------
1 | org.xmlpull.mxp1.MXParserFactory
--------------------------------------------------------------------------------
/apktool/core/src/test/java/com/apkide/apktool/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.apkide.apktool;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import org.junit.Test;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/apktool/service/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/apktool/service/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/apktool/service/consumer-rules.pro
--------------------------------------------------------------------------------
/apktool/service/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/apktool/service/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/apktool/service/src/main/java/com/apkide/apktool/engine/ApkToolConfig.java:
--------------------------------------------------------------------------------
1 | package com.apkide.apktool.engine;
2 |
3 | import com.apkide.apktool.androlib.Config;
4 |
5 | //TODO: implementation configs
6 | public class ApkToolConfig {
7 |
8 |
9 | protected void configure(Config config){
10 |
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/apktool/service/src/main/java/com/apkide/apktool/engine/ProcessingCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.apktool.engine;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 处理回调
7 | */
8 | public interface ProcessingCallback {
9 |
10 | /**
11 | * 准备处理
12 | *
13 | * @param sourcePath 输入源路径
14 | */
15 | void processPrepare(@NonNull String sourcePath);
16 |
17 | /**
18 | * 处理中
19 | *
20 | * @param msg 处理输出信息
21 | */
22 | void processing(@NonNull String msg);
23 |
24 | /**
25 | * 处理错误
26 | *
27 | * @param error 错误
28 | */
29 | void processError(@NonNull Throwable error);
30 |
31 | /**
32 | * 处理完成
33 | *
34 | * @param outputPath 输出路径
35 | */
36 | void processDone(@NonNull String outputPath);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/apktool/service/src/main/java/com/apkide/apktool/engine/service/IProcessingCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.apktool.engine.service;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import cn.thens.okbinder2.AIDL;
6 |
7 | /**
8 | * 处理回调
9 | */
10 | @AIDL
11 | public interface IProcessingCallback {
12 |
13 | /**
14 | * 准备处理
15 | *
16 | * @param sourcePath 源文件路径
17 | */
18 | void processPrepare(@NonNull String sourcePath);
19 |
20 | /**
21 | * 处理中
22 | *
23 | * @param msg 处理输出信息
24 | */
25 | void processing(@NonNull String msg);
26 |
27 | /**
28 | * 处理错误
29 | *
30 | * @param error 错误
31 | */
32 | void processError(@NonNull Throwable error);
33 |
34 | /**
35 | * 处理完成
36 | *
37 | * @param outputPath 输出文件路径
38 | */
39 | void processDone(@NonNull String outputPath);
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /debug
3 | /release
4 | /src/main/gen
5 | .externalNativeBuild
6 | .cxx
--------------------------------------------------------------------------------
/app/libs/java_compiler.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/libs/java_compiler.jar
--------------------------------------------------------------------------------
/app/libs/jdk_compiler.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/libs/jdk_compiler.jar
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/MainUIViewModel.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui;
2 |
3 | import android.app.Application;
4 |
5 | import androidx.annotation.NonNull;
6 | import androidx.lifecycle.AndroidViewModel;
7 |
8 | public class MainUIViewModel extends AndroidViewModel {
9 |
10 | public MainUIViewModel(@NonNull Application application) {
11 | super(application);
12 | }
13 |
14 | @Override
15 | protected void onCleared() {
16 | super.onCleared();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/Browser.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers;
2 |
3 | public interface Browser {
4 |
5 | void refresh();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/BrowserMenuCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers;
2 |
3 | import androidx.annotation.DrawableRes;
4 | import androidx.annotation.StringRes;
5 |
6 | import com.apkide.common.command.Command;
7 |
8 |
9 | public interface BrowserMenuCommand extends Command {
10 |
11 | @DrawableRes
12 | int getIcon();
13 |
14 | @StringRes
15 | int getLabel();
16 |
17 | boolean isVisible();
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/build/BuildOutputModel.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.build;
2 |
3 | import com.apkide.ui.views.CodeEditTextModel;
4 |
5 | public class BuildOutputModel extends CodeEditTextModel {
6 | public BuildOutputModel() {
7 | super();
8 | }
9 |
10 | @Override
11 | public boolean isReadOnly() {
12 | return false;
13 | }
14 |
15 | @Override
16 | public boolean isLogging() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isLogErrorLine(int line) {
22 | return super.isLogErrorLine(line);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/error/ErrorBrowser.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.error;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.apkide.ui.R;
8 | import com.apkide.ui.browsers.HeaderBrowserLayout;
9 |
10 | public class ErrorBrowser extends HeaderBrowserLayout {
11 | public ErrorBrowser(@NonNull Context context) {
12 | super(context);
13 |
14 | getHeaderIcon().setImageResource(R.drawable.errors_no);
15 | getHeaderLabel().setText(R.string.browser_label_error);
16 | getHeaderHelp().setOnClickListener(view -> {
17 |
18 | });
19 | }
20 |
21 | @NonNull
22 | @Override
23 | public String getBrowserName() {
24 | return "ErrorBrowser";
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/error/ErrorEntry.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.error;
2 |
3 | import com.apkide.ui.util.Entry;
4 |
5 | public class ErrorEntry implements Entry, Comparable {
6 |
7 | @Override
8 | public int compareTo(ErrorEntry o) {
9 | return 0;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/error/ErrorEntryListAdapter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.error;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.apkide.ui.util.Entry;
8 | import com.apkide.ui.util.ListAdapter;
9 |
10 | public class ErrorEntryListAdapter extends ListAdapter {
11 | @Override
12 | protected int getLayoutId(int viewType) {
13 | return 0;
14 | }
15 |
16 | @Override
17 | protected EntryViewHolder createEntryViewHolder(View view, int viewType) {
18 | return null;
19 | }
20 |
21 | @Override
22 | protected void boundEntryViewHolder(@NonNull EntryViewHolder holder, Entry entry, int position) {
23 |
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/file/FileEntryViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.file;
2 |
3 | import android.view.View;
4 | import android.widget.ImageView;
5 | import android.widget.TextView;
6 |
7 | import androidx.annotation.NonNull;
8 |
9 | import com.apkide.ui.R;
10 | import com.apkide.ui.util.ListAdapter;
11 |
12 | public class FileEntryViewHolder extends ListAdapter.EntryViewHolder {
13 | public ImageView entryIcon;
14 | public TextView entryLabel;
15 |
16 | public FileEntryViewHolder(@NonNull View itemView) {
17 | super(itemView);
18 | entryIcon = itemView.findViewById(R.id.fileEntryIcon);
19 | entryLabel = itemView.findViewById(R.id.fileEntryLabel);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/project/ProjectEntryViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.project;
2 |
3 | import android.view.View;
4 | import android.widget.ImageView;
5 | import android.widget.TextView;
6 |
7 | import androidx.annotation.NonNull;
8 |
9 | import com.apkide.ui.R;
10 | import com.apkide.ui.util.ListAdapter;
11 |
12 | public class ProjectEntryViewHolder extends ListAdapter.EntryViewHolder {
13 |
14 | public ImageView entryIcon;
15 | public TextView entryLabel;
16 |
17 | public ProjectEntryViewHolder(@NonNull View itemView) {
18 | super(itemView);
19 | entryIcon = itemView.findViewById(R.id.projectEntryIcon);
20 | entryLabel = itemView.findViewById(R.id.projectEntryLabel);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/search/SearchBrowser.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.search;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.apkide.ui.R;
8 | import com.apkide.ui.browsers.HeaderBrowserLayout;
9 |
10 | public class SearchBrowser extends HeaderBrowserLayout {
11 | public SearchBrowser(@NonNull Context context) {
12 | super(context);
13 |
14 | getHeaderIcon().setImageResource(R.drawable.search);
15 | getHeaderLabel().setText(R.string.browser_label_search);
16 | getHeaderHelp().setOnClickListener(view -> {
17 |
18 | });
19 | }
20 |
21 | @NonNull
22 | @Override
23 | public String getBrowserName() {
24 | return "SearchBrowser";
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/search/SearchEntry.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.search;
2 |
3 |
4 | import com.apkide.ui.util.Entry;
5 |
6 | public class SearchEntry implements Entry, Comparable {
7 |
8 | private String label;
9 |
10 | @Override
11 | public int compareTo(SearchEntry o) {
12 | return 0;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/browsers/search/SearchEntryListAdapter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.browsers.search;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.apkide.ui.util.Entry;
8 | import com.apkide.ui.util.ListAdapter;
9 |
10 | public class SearchEntryListAdapter extends ListAdapter {
11 | @Override
12 | protected int getLayoutId(int viewType) {
13 | return 0;
14 | }
15 |
16 | @Override
17 | protected EntryViewHolder createEntryViewHolder(View view, int viewType) {
18 | return null;
19 | }
20 |
21 | @Override
22 | protected void boundEntryViewHolder(@NonNull EntryViewHolder holder, Entry entry, int position) {
23 |
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/CloseFileCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class CloseFileCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandCloseFile;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return true;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/ExitCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.App;
6 | import com.apkide.ui.R;
7 | import com.apkide.ui.util.MenuCommand;
8 |
9 | public class ExitCommand implements MenuCommand {
10 | @IdRes
11 | @Override
12 | public int getId() {
13 | return R.id.commandExit;
14 | }
15 |
16 | @Override
17 | public boolean isVisible() {
18 | return true;
19 | }
20 |
21 | @Override
22 | public boolean isEnabled() {
23 | return true;
24 | }
25 |
26 | @Override
27 | public boolean run() {
28 | App.getMainUI().shutdown();
29 | return true;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/GotoSettingsCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.App;
6 | import com.apkide.ui.R;
7 | import com.apkide.ui.preferences.PreferencesUI;
8 | import com.apkide.ui.util.MenuCommand;
9 |
10 | public class GotoSettingsCommand implements MenuCommand {
11 | @IdRes
12 | @Override
13 | public int getId() {
14 | return R.id.commandGotoSettings;
15 | }
16 |
17 | @Override
18 | public boolean isVisible() {
19 | return true;
20 | }
21 |
22 | @Override
23 | public boolean isEnabled() {
24 | return true;
25 | }
26 |
27 | @Override
28 | public boolean run() {
29 | App.gotoUI(PreferencesUI.class.getName());
30 | return true;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/SaveCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class SaveCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandSave;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return true;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/CopyCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class CopyCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandCopy;
13 | }
14 |
15 |
16 | @Override
17 | public boolean isVisible() {
18 | return false;
19 | }
20 |
21 | @Override
22 | public boolean isEnabled() {
23 | return false;
24 | }
25 |
26 | @Override
27 | public boolean run() {
28 | return false;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/CutCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class CutCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandCut;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/EditModeCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class EditModeCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandEditMode;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/NavigateModeCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class NavigateModeCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandNavigateMode;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/PasteCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class PasteCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandPaste;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/PickColorCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class PickColorCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandPickColor;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/RedoCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class RedoCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandRedo;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/RunCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class RunCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandRun;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return true;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return true;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/SelectAllCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class SelectAllCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandSelectAll;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/actionbar/UndoCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.actionbar;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class UndoCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandUndo;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return false;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/IndentLinesCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class IndentLinesCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandAutoIndentLines;
13 | }
14 | @Override
15 | public boolean isVisible() {
16 | return true;
17 | }
18 |
19 | @Override
20 | public boolean isEnabled() {
21 | return false;
22 | }
23 |
24 | @Override
25 | public boolean run() {
26 | return false;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/OptimizeImportsCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class OptimizeImportsCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandOptimizeImports;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/OutCommentCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class OutCommentCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandOutComment;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/ReformatCodeCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class ReformatCodeCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandReformatCode;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/SurroundWithCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class SurroundWithCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandSurroundWith;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/code/UnOutCommentCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.code;
2 |
3 | import com.apkide.ui.R;
4 | import com.apkide.ui.util.MenuCommand;
5 |
6 | public class UnOutCommentCommand implements MenuCommand {
7 | @Override
8 | public int getId() {
9 | return R.id.commandUnOutComment;
10 | }
11 |
12 | @Override
13 | public boolean isVisible() {
14 | return true;
15 | }
16 |
17 | @Override
18 | public boolean isEnabled() {
19 | return false;
20 | }
21 |
22 | @Override
23 | public boolean run() {
24 | return false;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/edit/FindCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.edit;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class FindCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandFind;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/edit/FindInFileCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.edit;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class FindInFileCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandFindInFile;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/edit/FindReplaceCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.edit;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class FindReplaceCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandFindReplace;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/edit/FindReplaceInFileCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.edit;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class FindReplaceInFileCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandFindReplaceInFile;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/navigate/BackwardCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.navigate;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class BackwardCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandBackward;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/navigate/FindUsagesCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.navigate;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class FindUsagesCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandFindUsages;
13 | }
14 |
15 |
16 | @Override
17 | public boolean isVisible() {
18 | return true;
19 | }
20 |
21 | @Override
22 | public boolean isEnabled() {
23 | return false;
24 | }
25 |
26 | @Override
27 | public boolean run() {
28 | return false;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/navigate/ForwardCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.navigate;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class ForwardCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandForward;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/navigate/GotoCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.navigate;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class GotoCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandGoto;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/project/CleanProjectCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.project;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class CleanProjectCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandCleanProject;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/project/CloseProjectCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.project;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.App;
6 | import com.apkide.ui.R;
7 | import com.apkide.ui.util.MenuCommand;
8 |
9 | public class CloseProjectCommand implements MenuCommand {
10 | @IdRes
11 | @Override
12 | public int getId() {
13 | return R.id.commandCloseProject;
14 | }
15 |
16 | @Override
17 | public boolean isVisible() {
18 | return true;
19 | }
20 |
21 | @Override
22 | public boolean isEnabled() {
23 | return App.getProjectService().isProjectOpened();
24 | }
25 |
26 | @Override
27 | public boolean run() {
28 | App.getProjectService().closeProject();
29 | return true;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/project/MakeProjectCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.project;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class MakeProjectCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandMakeProject;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/project/RebuildProjectCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.project;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class RebuildProjectCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandRebuildProject;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/refactor/InlineCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.refactor;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class InlineCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandInline;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/refactor/RenameCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.refactor;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class RenameCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandRename;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/refactor/SafeDeleteCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.refactor;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.R;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class SafeDeleteCommand implements MenuCommand {
9 | @IdRes
10 | @Override
11 | public int getId() {
12 | return R.id.commandSafeDelete;
13 | }
14 |
15 | @Override
16 | public boolean isVisible() {
17 | return true;
18 | }
19 |
20 | @Override
21 | public boolean isEnabled() {
22 | return false;
23 | }
24 |
25 | @Override
26 | public boolean run() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/view/ViewBuildCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.view;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.App;
6 | import com.apkide.ui.R;
7 | import com.apkide.ui.browsers.BrowserPager;
8 | import com.apkide.ui.util.MenuCommand;
9 |
10 | public class ViewBuildCommand implements MenuCommand {
11 | @IdRes
12 | @Override
13 | public int getId() {
14 | return R.id.commandViewBuild;
15 | }
16 |
17 | @Override
18 | public boolean isVisible() {
19 | return true;
20 | }
21 |
22 | @Override
23 | public boolean isEnabled() {
24 | return true;
25 | }
26 |
27 | @Override
28 | public boolean run() {
29 | if (!App.getMainUI().getSplitLayout().isSplit()){
30 | App.getMainUI().getSplitLayout().openSplit();
31 | }
32 | if (App.getMainUI().getBrowserPager().getIndex()!= BrowserPager.BUILD_BROWSER){
33 | App.getMainUI().getBrowserPager().toggle(BrowserPager.BUILD_BROWSER);
34 | }
35 | return true;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/view/ViewFileCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.view;
2 |
3 | import androidx.annotation.IdRes;
4 |
5 | import com.apkide.ui.App;
6 | import com.apkide.ui.R;
7 | import com.apkide.ui.browsers.BrowserPager;
8 | import com.apkide.ui.util.MenuCommand;
9 |
10 | public class ViewFileCommand implements MenuCommand {
11 | @IdRes
12 | @Override
13 | public int getId() {
14 | return R.id.commandViewFile;
15 | }
16 |
17 | @Override
18 | public boolean isVisible() {
19 | return true;
20 | }
21 |
22 | @Override
23 | public boolean isEnabled() {
24 | return true;
25 | }
26 |
27 | @Override
28 | public boolean run() {
29 | if (!App.getMainUI().getSplitLayout().isSplit()){
30 | App.getMainUI().getSplitLayout().openSplit();
31 | }
32 | if (App.getMainUI().getBrowserPager().getIndex()!= BrowserPager.FILE_BROWSER){
33 | App.getMainUI().getBrowserPager().toggle(BrowserPager.FILE_BROWSER);
34 | }
35 | return true;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/commands/view/ViewProjectCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.commands.view;
2 |
3 | import com.apkide.ui.App;
4 | import com.apkide.ui.R;
5 | import com.apkide.ui.browsers.BrowserPager;
6 | import com.apkide.ui.util.MenuCommand;
7 |
8 | public class ViewProjectCommand implements MenuCommand {
9 | @Override
10 | public int getId() {
11 | return R.id.commandViewProject;
12 | }
13 |
14 | @Override
15 | public boolean isVisible() {
16 | return true;
17 | }
18 |
19 | @Override
20 | public boolean isEnabled() {
21 | return true;
22 | }
23 |
24 | @Override
25 | public boolean run() {
26 | if (!App.getMainUI().getSplitLayout().isSplit()){
27 | App.getMainUI().getSplitLayout().openSplit();
28 | }
29 | if (App.getMainUI().getBrowserPager().getIndex()!= BrowserPager.PROJECT_BROWSER){
30 | App.getMainUI().getBrowserPager().toggle(BrowserPager.PROJECT_BROWSER);
31 | }
32 | return true;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/preferences/AppearancePreferencesFragment.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.preferences;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.preference.PreferenceFragmentCompat;
7 |
8 | import com.apkide.ui.AppPreferences;
9 | import com.apkide.ui.R;
10 |
11 | public class AppearancePreferencesFragment extends PreferenceFragmentCompat {
12 | @Override
13 | public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
14 | addPreferencesFromResource(R.xml.preferences_appearance);
15 | findPreference("app.theme.night").setEnabled(!AppPreferences.isFollowSystemTheme());
16 | findPreference("app.theme.followSystem").setOnPreferenceChangeListener((preference, newValue) -> {
17 | findPreference("app.theme.night").setEnabled(Boolean.parseBoolean(newValue.toString()));
18 | return true;
19 | });
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/preferences/CompilerPreferencesFragment.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.preferences;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.preference.PreferenceFragmentCompat;
7 |
8 | import com.apkide.ui.R;
9 |
10 | public class CompilerPreferencesFragment extends PreferenceFragmentCompat {
11 | @Override
12 | public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
13 | addPreferencesFromResource(R.xml.preferences_compiler);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/preferences/EditorPreferencesFragment.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.preferences;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.preference.PreferenceFragmentCompat;
7 |
8 | import com.apkide.ui.R;
9 |
10 | public class EditorPreferencesFragment extends PreferenceFragmentCompat {
11 | @Override
12 | public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
13 | addPreferencesFromResource(R.xml.preferences_editor);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/preferences/HeadersPreferencesFragment.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.preferences;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.preference.PreferenceFragmentCompat;
7 |
8 | import com.apkide.ui.R;
9 |
10 | public class HeadersPreferencesFragment extends PreferenceFragmentCompat {
11 |
12 | @Override
13 | public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
14 | addPreferencesFromResource(R.xml.preferences_headers);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/preferences/SourceControlPreferencesFragment.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.preferences;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.preference.PreferenceFragmentCompat;
7 |
8 | import com.apkide.ui.R;
9 |
10 | public class SourceControlPreferencesFragment extends PreferenceFragmentCompat {
11 | @Override
12 | public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
13 | addPreferencesFromResource(R.xml.preferences_sourcecontrol);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/AppService.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services;
2 |
3 | public interface AppService {
4 |
5 | void initialize();
6 |
7 | void shutdown();
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/build/BuildListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.build;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface BuildListener {
6 | void buildStarted(@NonNull String rootPath);
7 |
8 | void buildOutput(@NonNull String message);
9 |
10 | void buildFailed(@NonNull Throwable err);
11 |
12 | void buildFinished(@NonNull String outputPath);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/build/BuildService.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.build;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.ui.services.AppService;
6 |
7 | public class BuildService implements AppService {
8 |
9 |
10 | private BuildListener myListener;
11 |
12 | @Override
13 | public void initialize() {
14 |
15 | }
16 |
17 | public void setListener(@NonNull BuildListener listener) {
18 | myListener = listener;
19 | }
20 |
21 | public void build() {
22 |
23 | }
24 |
25 | @Override
26 | public void shutdown() {
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/decode/DecodeListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.decode;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface DecodeListener {
6 | void decodeStarted(@NonNull String rootPath);
7 |
8 | void decodeOutput(@NonNull String message);
9 |
10 | void decodeFailed(@NonNull Throwable err);
11 |
12 | void decodeFinished(@NonNull String outputPath);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/error/ErrorService.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.error;
2 |
3 | import com.apkide.ui.services.AppService;
4 |
5 | public class ErrorService implements AppService {
6 |
7 | @Override
8 | public void initialize() {
9 |
10 | }
11 |
12 | @Override
13 | public void shutdown() {
14 |
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/file/FileModel.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.file;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.common.io.iterator.LineIterator;
6 | import com.apkide.language.FileHighlighting;
7 |
8 | import java.io.IOException;
9 |
10 | public interface FileModel {
11 | @NonNull
12 | String getFileContent();
13 |
14 | @NonNull
15 | LineIterator getFileContents();
16 |
17 | void sync() throws IOException;
18 |
19 | void save() throws IOException;
20 |
21 | void highlighting(@NonNull FileHighlighting highlighting);
22 |
23 | void semanticHighlighting(@NonNull FileHighlighting highlighting);
24 |
25 | boolean isReadOnly();
26 |
27 | boolean isBinary();
28 |
29 | @NonNull
30 | String getFilePath();
31 |
32 | long getLastModified();
33 |
34 | long getFileSize();
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/file/FileModelFactory.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.file;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import java.io.IOException;
6 |
7 | public interface FileModelFactory {
8 |
9 | @NonNull
10 | String getName();
11 |
12 | boolean isSupportedFile(@NonNull String filePath);
13 |
14 | @NonNull
15 | FileModel createFileModel(@NonNull String filePath) throws IOException;
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/file/FileServiceListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.file;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface FileServiceListener {
6 |
7 | void fileOpened(@NonNull String filePath, @NonNull FileModel fileModel);
8 |
9 | void fileClosed(@NonNull String filePath, @NonNull FileModel fileModel);
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/navigate/NavigateService.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.navigate;
2 |
3 | import com.apkide.ui.services.AppService;
4 |
5 | public class NavigateService implements AppService {
6 | @Override
7 | public void initialize() {
8 |
9 | }
10 |
11 | @Override
12 | public void shutdown() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/project/ConfigureFileImpl.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.project;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import java.io.IOException;
6 |
7 | public class ConfigureFileImpl extends ConfigureFile {
8 |
9 | public static final String APKTOOL_YML = "apktool.yml";
10 |
11 | public ConfigureFileImpl(@NonNull String filePath) {
12 | super(filePath);
13 | }
14 |
15 |
16 | @Override
17 | protected void onSync() throws IOException {
18 | if (!getFilePath().equals(APKTOOL_YML))
19 | throw new IOException(getFilePath()+" file not supported.");
20 |
21 |
22 | }
23 |
24 | @Override
25 | protected void onDestroy() {
26 |
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/project/ProjectManager.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.project;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.annotation.Nullable;
5 |
6 | import java.io.IOException;
7 |
8 | public interface ProjectManager {
9 |
10 | @NonNull
11 | String getName();
12 |
13 | @NonNull
14 | String[] getSupportedLanguages();
15 |
16 | boolean checkIsSupportedProjectRootPath(@NonNull String rootPath);
17 |
18 | boolean checkIsSupportedProjectPath(@NonNull String path);
19 |
20 | void open(@NonNull String rootPath)throws IOException;
21 |
22 | void close();
23 |
24 | void sync();
25 |
26 | boolean isOpen();
27 |
28 | @Nullable
29 | String getRootPath();
30 |
31 | boolean isProjectFilePath(@NonNull String path);
32 |
33 | @Nullable
34 | String resolvePath(@NonNull String path);
35 |
36 | int getIcon();
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/services/project/ProjectServiceListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.services.project;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface ProjectServiceListener {
6 |
7 |
8 | void projectOpened(@NonNull String rootPath);
9 |
10 | void projectClosed(@NonNull String rootPath);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/util/Entry.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.util;
2 |
3 | public interface Entry {
4 | }
5 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/util/FileSpan.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.util;
2 |
3 | public class FileSpan {
4 |
5 | public String filePath;
6 | public int startLine,startColumn;
7 | public int endLine,endColumn;
8 |
9 | public FileSpan(String filePath, int startLine, int startColumn, int endLine, int endColumn) {
10 | this.filePath = filePath;
11 | this.startLine = startLine;
12 | this.startColumn = startColumn;
13 | this.endLine = endLine;
14 | this.endColumn = endColumn;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/util/MenuCommand.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.util;
2 |
3 | import androidx.annotation.DrawableRes;
4 | import androidx.annotation.IdRes;
5 | import androidx.annotation.Nullable;
6 |
7 | import com.apkide.common.command.Command;
8 |
9 |
10 | public interface MenuCommand extends Command {
11 |
12 | @IdRes
13 | int getId();
14 |
15 | @DrawableRes
16 | default int getIcon(){
17 | return 0;
18 | }
19 |
20 | @Nullable
21 | default String getTitle() {
22 | return null;
23 | }
24 |
25 | boolean isVisible();
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/CodeEditTextModel.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views;
2 |
3 | import com.apkide.ui.views.editor.EditorModel;
4 |
5 | public class CodeEditTextModel extends EditorModel {
6 |
7 | public CodeEditTextModel(){
8 | super();
9 | }
10 |
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/editor/CaretListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views.editor;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface CaretListener {
6 | void caretUpdate(@NonNull EditorView view,int line,int column,boolean typing);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/editor/EditorModel.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views.editor;
2 |
3 | public class EditorModel extends Model{
4 | public EditorModel(){
5 | super();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/editor/Hyperlink.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views.editor;
2 |
3 | public class Hyperlink {
4 | public String url;
5 | public int startLine,startColumn;
6 | public int endLine,endColumn;
7 |
8 | public Hyperlink(String url, int startLine, int startColumn, int endLine, int endColumn) {
9 | this.url = url;
10 | this.startLine = startLine;
11 | this.startColumn = startColumn;
12 | this.endLine = endLine;
13 | this.endColumn = endColumn;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/editor/SelectionListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views.editor;
2 |
3 | public interface SelectionListener {
4 | void selectionUpdate(EditorView view);
5 |
6 | void selectionChanged(EditorView view, boolean selectionVisibility);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/apkide/ui/views/editor/Typing.java:
--------------------------------------------------------------------------------
1 | package com.apkide.ui.views.editor;
2 |
3 | public class Typing {
4 |
5 | public int line;
6 | public int startColumn;
7 | public int endColumn;
8 |
9 | public Typing(int line, int startColumn, int endColumn) {
10 | this.line = line;
11 | this.startColumn = startColumn;
12 | this.endColumn = endColumn;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/box_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/box_blue.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/box_pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/box_pink.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/box_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/box_red.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/browser_git.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/browser_git.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/errors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/errors.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/errors_no.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/errors_no.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_new.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_c.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_cpp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_cpp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_css.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_h.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_html.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_java.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_java.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_js.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_js.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_txt.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_unknown.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/file_type_xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/file_type_xml.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/folder.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/folder_hidden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/folder_hidden.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/folder_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/folder_open.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_copy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_cut.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_design.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_design.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_edit.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_expand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_expand.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_fix.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_goto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_goto.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_help.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_manage.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_more.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_paste.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_redo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_run.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_undo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/ic_view.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/master_button_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/master_button_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/master_button_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/master_button_pressed.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/objects.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/pakage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/pakage.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/project_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/project_new.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/project_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/project_open.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/project_properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/project_properties.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/text_select_handle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/text_select_handle_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/text_select_handle_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/text_select_handle_middle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/text_select_handle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-hdpi/text_select_handle_right.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/text_select_handle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-mdpi/text_select_handle_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/text_select_handle_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-mdpi/text_select_handle_middle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/text_select_handle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-mdpi/text_select_handle_right.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_copy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_cut.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_design.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_design.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_edit.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_expand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_expand.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_fix.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_goto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_goto.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_help.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_manage.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_more.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_paste.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_redo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_run.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_undo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/ic_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-night-hdpi/ic_view.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/text_select_handle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xhdpi/text_select_handle_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/text_select_handle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xhdpi/text_select_handle_right.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/text_select_handle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xxxhdpi/text_select_handle_left.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/text_select_handle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/drawable-xxxhdpi/text_select_handle_right.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/master_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_build.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_error.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_error_entry.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_file.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_project.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/browser_search_entry.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/component_editor.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_build_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_error_entry_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_error_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_file_entry_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_file_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_project_entry_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_project_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_search_entry_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/browser_search_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF000000
4 | #03A9F4
5 | #FF000000
6 | #FF000000
7 | #03A9F4
8 | #0288D1
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF000000
4 | #FFFFFFFF
5 |
6 | #FFFFFFFF
7 | #03A9F4
8 | #FFFFFFFF
9 | #FFFFFFFF
10 | #03A9F4
11 | #0D47A1
12 | #FF000000
13 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_banner_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/data_extraction_rules.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/preferences_appearance.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/preferences_editor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/preferences_sourcecontrol.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/testkey.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/app/testkey.jks
--------------------------------------------------------------------------------
/common/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/common/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | namespace 'com.apkide.common'
7 | compileSdk 34
8 |
9 | defaultConfig {
10 | minSdk 26
11 |
12 | consumerProguardFiles "consumer-rules.pro"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 |
22 | sourceSets {
23 | main {
24 | java.srcDirs = ['src/main/java']
25 | }
26 | }
27 |
28 | compileOptions {
29 | sourceCompatibility JavaVersion.VERSION_11
30 | targetCompatibility JavaVersion.VERSION_11
31 | }
32 | }
33 |
34 | dependencies {
35 | api fileTree(dir: 'libs', include: ['*.jar'])
36 | api libs.google.guava
37 | api libs.commons.text
38 | implementation libs.androidx.annotation
39 | testImplementation libs.junit
40 | }
--------------------------------------------------------------------------------
/common/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/common/consumer-rules.pro
--------------------------------------------------------------------------------
/common/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/common/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/SafeRunner.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public final class SafeRunner {
6 |
7 | public static void run(@NonNull SafeRunnable runnable) {
8 | try {
9 | runnable.run();
10 | } catch (Exception e) {
11 | runnable.handleException(e);
12 | }
13 | }
14 |
15 |
16 | public interface SafeRunnable {
17 | void run() throws Exception;
18 |
19 | default void handleException(@NonNull Throwable e) {
20 | throw new RuntimeException(e);
21 | }
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/collection/IntPair.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.collection;
2 |
3 | public final class IntPair {
4 | private IntPair() {}
5 | public static long of(int first, int second) {
6 | return (((long)first) << 32) | ((long)second & 0xffffffffL);
7 | }
8 |
9 | public static int first(long intPair) {
10 | return (int)(intPair >> 32);
11 | }
12 |
13 | public static int second(long intPair) {
14 | return (int)intPair;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/command/Command.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.command;
2 |
3 | public interface Command {
4 | boolean isEnabled();
5 |
6 | boolean run();
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/logger/Level.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.logger;
2 |
3 | public enum Level {
4 | Debug("DEBUG"),
5 | Information("INFO"),
6 | Verbose("VERBOSE"),
7 | Warning("WARNING"),
8 | Error("ERROR");
9 | public final String prefix;
10 | public final String simplePrefix;
11 |
12 | Level(String prefix) {
13 | this.prefix = prefix;
14 | this.simplePrefix = prefix.substring(0, 1);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/logger/LoggerFactory.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.logger;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface LoggerFactory {
6 | @NonNull
7 | Logger createLogger(@NonNull String name);
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/logger/LoggerListener.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.logger;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public interface LoggerListener {
6 | void logging(@NonNull String name, @NonNull Level level, @NonNull String msg);
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/runnable/ActionRunnable.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.runnable;
2 |
3 | public interface ActionRunnable {
4 |
5 | void run();
6 |
7 | void setEnabled(boolean enabled);
8 |
9 | boolean isEnabled();
10 | }
11 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/runnable/ResultRunnable.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.runnable;
2 |
3 | import androidx.annotation.Nullable;
4 |
5 | public interface ResultRunnable {
6 | @Nullable
7 | R run(V V);
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/runnable/ValueRunnable.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.runnable;
2 |
3 | public interface ValueRunnable {
4 | void run(T value);
5 | }
6 |
--------------------------------------------------------------------------------
/common/src/main/java/com/apkide/common/text/TextGraphics.java:
--------------------------------------------------------------------------------
1 | package com.apkide.common.text;
2 |
3 | import android.graphics.Canvas;
4 | import android.graphics.Paint;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | public interface TextGraphics {
9 |
10 | float measure(int start, int end, @NonNull Paint paint);
11 |
12 | void getWidths(int start, int end, @NonNull float[] widths, @NonNull Paint paint);
13 |
14 | void draw(int start, int end, float x, float y, @NonNull Canvas canvas, @NonNull Paint paint);
15 | }
16 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/images/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/images/1.png
--------------------------------------------------------------------------------
/images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/images/2.png
--------------------------------------------------------------------------------
/images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/images/3.png
--------------------------------------------------------------------------------
/images/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/images/4.png
--------------------------------------------------------------------------------
/java-decompiler/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/java-decompiler/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/java-decompiler/consumer-rules.pro
--------------------------------------------------------------------------------
/java-decompiler/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/ClassNameConstants.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2 | package com.apkide.java.decompiler;
3 |
4 | public interface ClassNameConstants {
5 | String JAVA_LANG_STRING = "java/lang/String";
6 | }
7 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/code/ExceptionTable.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.code;
3 |
4 | import java.util.Collections;
5 | import java.util.List;
6 |
7 | public class ExceptionTable {
8 | public static final ExceptionTable EMPTY = new ExceptionTable(Collections.emptyList());
9 |
10 | private final List handlers;
11 |
12 | public ExceptionTable(List handlers) {
13 | this.handlers = handlers;
14 | }
15 |
16 | public List getHandlers() {
17 | return handlers;
18 | }
19 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/code/JumpInstruction.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.code;
3 |
4 | public class JumpInstruction extends Instruction {
5 | public int destination;
6 |
7 | public JumpInstruction(int opcode, int group, boolean wide, int bytecodeVersion, int[] operands) {
8 | super(opcode, group, wide, bytecodeVersion, operands);
9 | }
10 |
11 | @Override
12 | public void initInstruction(InstructionSequence seq) {
13 | destination = seq.getPointerByRelOffset(this.operand(0));
14 | }
15 |
16 | @Override
17 | public JumpInstruction clone() {
18 | JumpInstruction copy = (JumpInstruction)super.clone();
19 | copy.destination = destination;
20 | return copy;
21 | }
22 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/code/SimpleInstructionSequence.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.code;
3 |
4 | import com.apkide.java.decompiler.util.VBStyleCollection;
5 |
6 | public class SimpleInstructionSequence extends InstructionSequence {
7 |
8 | public SimpleInstructionSequence() {
9 | }
10 |
11 | public SimpleInstructionSequence(VBStyleCollection collinstr) {
12 | super(collinstr);
13 | }
14 |
15 | @Override
16 | public SimpleInstructionSequence clone() {
17 | SimpleInstructionSequence newseq = new SimpleInstructionSequence(collinstr.clone());
18 | newseq.setPointer(this.getPointer());
19 |
20 | return newseq;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/main/collectors/CounterContainer.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.main.collectors;
3 |
4 | public class CounterContainer {
5 | public static final int STATEMENT_COUNTER = 0;
6 | public static final int EXPRESSION_COUNTER = 1;
7 | public static final int VAR_COUNTER = 2;
8 |
9 | private final int[] values = new int[]{1, 1, 1};
10 |
11 | public void setCounter(int counter, int value) {
12 | values[counter] = value;
13 | }
14 |
15 | public int getCounter(int counter) {
16 | return values[counter];
17 | }
18 |
19 | public int getCounterAndIncrement(int counter) {
20 | return values[counter]++;
21 | }
22 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/main/extern/ClassFormatException.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.main.extern;
3 |
4 | public class ClassFormatException extends RuntimeException {
5 | public ClassFormatException(String message) {
6 | super(message);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/main/extern/IBytecodeProvider.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.main.extern;
3 |
4 | import java.io.IOException;
5 |
6 | public interface IBytecodeProvider {
7 | byte[] getBytecode(String externalPath, String internalPath) throws IOException;
8 | }
9 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/main/extern/IIdentifierRenamer.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.main.extern;
3 |
4 | public interface IIdentifierRenamer {
5 |
6 | enum Type {ELEMENT_CLASS, ELEMENT_FIELD, ELEMENT_METHOD}
7 |
8 | boolean toBeRenamed(Type elementType, String className, String element, String descriptor);
9 |
10 | String getNextClassName(String fullName, String shortName);
11 |
12 | String getNextFieldName(String className, String field, String descriptor);
13 |
14 | String getNextMethodName(String className, String method, String descriptor);
15 | }
16 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/decompiler/ClearStructHelper.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.decompiler;
3 |
4 | import com.apkide.java.decompiler.modules.decompiler.stats.RootStatement;
5 | import com.apkide.java.decompiler.modules.decompiler.stats.Statement;
6 |
7 | import java.util.LinkedList;
8 |
9 |
10 | public final class ClearStructHelper {
11 |
12 | public static void clearStatements(RootStatement root) {
13 |
14 | LinkedList stack = new LinkedList<>();
15 | stack.add(root);
16 |
17 | while (!stack.isEmpty()) {
18 |
19 | Statement stat = stack.removeFirst();
20 |
21 | stat.clearTempInformation();
22 |
23 | stack.addAll(stat.getStats());
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/decompiler/ExpressionStack.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.decompiler;
3 |
4 | import com.apkide.java.decompiler.modules.decompiler.exps.Exprent;
5 | import com.apkide.java.decompiler.util.ListStack;
6 |
7 | public class ExpressionStack extends ListStack {
8 | public ExpressionStack() { }
9 |
10 | private ExpressionStack(int initialCapacity) {
11 | super(initialCapacity);
12 | }
13 |
14 | @Override
15 | public ExpressionStack copy() {
16 | ExpressionStack copy = new ExpressionStack(size());
17 | for (Exprent expr : this) copy.push(expr.copy());
18 | return copy;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/decompiler/decompose/IGraph.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.decompiler.decompose;
3 |
4 | import java.util.List;
5 | import java.util.Set;
6 |
7 | public interface IGraph {
8 |
9 | List extends IGraphNode> getReversePostOrderList();
10 |
11 | Set extends IGraphNode> getRoots();
12 | }
13 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/decompiler/decompose/IGraphNode.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.decompiler.decompose;
3 |
4 | import java.util.List;
5 |
6 | public interface IGraphNode {
7 | List extends IGraphNode> getPredecessorNodes();
8 | }
9 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/renamer/ClassWrapperNode.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.renamer;
3 |
4 | import com.apkide.java.decompiler.struct.StructClass;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | public class ClassWrapperNode {
10 | private final StructClass classStruct;
11 | private final List subclasses = new ArrayList<>();
12 |
13 | public ClassWrapperNode(StructClass cl) {
14 | this.classStruct = cl;
15 | }
16 |
17 | public void addSubclass(ClassWrapperNode node) {
18 | subclasses.add(node);
19 | }
20 |
21 | public StructClass getClassStruct() {
22 | return classStruct;
23 | }
24 |
25 | public List getSubclasses() {
26 | return subclasses;
27 | }
28 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/modules/renamer/PoolInterceptor.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.modules.renamer;
3 |
4 | import java.util.HashMap;
5 | import java.util.Map;
6 |
7 | public class PoolInterceptor {
8 | private final Map mapOldToNewNames = new HashMap<>();
9 | private final Map mapNewToOldNames = new HashMap<>();
10 |
11 | public void addName(String oldName, String newName) {
12 | mapOldToNewNames.put(oldName, newName);
13 | mapNewToOldNames.put(newName, oldName);
14 | }
15 |
16 | public String getName(String oldName) {
17 | return mapOldToNewNames.get(oldName);
18 | }
19 |
20 | public String getOldName(String newName) {
21 | return mapNewToOldNames.get(newName);
22 | }
23 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/IDecompiledData.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct;
3 |
4 | public interface IDecompiledData {
5 |
6 | String getClassEntryName(StructClass cl, String entryname);
7 |
8 | String getClassContent(StructClass cl);
9 | }
10 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/attr/StructAnnDefaultAttribute.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.attr;
3 |
4 | import com.apkide.java.decompiler.modules.decompiler.exps.Exprent;
5 | import com.apkide.java.decompiler.struct.consts.ConstantPool;
6 | import com.apkide.java.decompiler.util.DataInputFullStream;
7 |
8 | import java.io.IOException;
9 |
10 | public class StructAnnDefaultAttribute extends StructGeneralAttribute {
11 |
12 | private Exprent defaultValue;
13 |
14 | @Override
15 | public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException {
16 | defaultValue = StructAnnotationAttribute.parseAnnotationElement(data, pool);
17 | }
18 |
19 | public Exprent getDefaultValue() {
20 | return defaultValue;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/attr/StructConstantValueAttribute.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.attr;
3 |
4 | import com.apkide.java.decompiler.struct.consts.ConstantPool;
5 | import com.apkide.java.decompiler.util.DataInputFullStream;
6 |
7 | import java.io.IOException;
8 |
9 | public class StructConstantValueAttribute extends StructGeneralAttribute {
10 |
11 | private int index;
12 |
13 | @Override
14 | public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException {
15 | index = data.readUnsignedShort();
16 | }
17 |
18 | public int getIndex() {
19 | return index;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/attr/StructGenericSignatureAttribute.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.attr;
3 |
4 | import com.apkide.java.decompiler.struct.consts.ConstantPool;
5 | import com.apkide.java.decompiler.util.DataInputFullStream;
6 |
7 | import java.io.IOException;
8 |
9 | public class StructGenericSignatureAttribute extends StructGeneralAttribute {
10 |
11 | private String signature;
12 |
13 | @Override
14 | public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException {
15 | int index = data.readUnsignedShort();
16 | signature = pool.getPrimitiveConstant(index).getString();
17 | }
18 |
19 | public String getSignature() {
20 | return signature;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/consts/PooledConstant.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.consts;
3 |
4 | import com.apkide.java.decompiler.code.CodeConstants;
5 |
6 | public class PooledConstant implements CodeConstants {
7 | public final int type;
8 |
9 | public PooledConstant(int type) {
10 | this.type = type;
11 | }
12 |
13 | public void resolveConstant(ConstantPool pool) { }
14 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/gen/NewClassNameBuilder.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.gen;
3 |
4 | public interface NewClassNameBuilder {
5 | String buildNewClassname(String className);
6 | }
7 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/gen/Type.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2 | package com.apkide.java.decompiler.struct.gen;
3 |
4 | public interface Type {
5 | int getType();
6 |
7 | int getArrayDim();
8 |
9 | String getValue();
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/gen/generics/GenericClassDescriptor.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.gen.generics;
3 |
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | public class GenericClassDescriptor {
8 |
9 | public GenericType superclass;
10 |
11 | public final List superinterfaces = new ArrayList<>();
12 |
13 | public final List fparameters = new ArrayList<>();
14 |
15 | public final List> fbounds = new ArrayList<>();
16 | }
17 |
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/gen/generics/GenericFieldDescriptor.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.gen.generics;
3 |
4 | public class GenericFieldDescriptor {
5 | public final GenericType type;
6 |
7 | public GenericFieldDescriptor(GenericType type) {
8 | this.type = type;
9 | }
10 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/struct/match/IMatchable.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.struct.match;
3 |
4 | public interface IMatchable {
5 | enum MatchProperties {
6 | STATEMENT_TYPE,
7 | STATEMENT_RET,
8 | STATEMENT_STATSIZE,
9 | STATEMENT_EXPRSIZE,
10 | STATEMENT_POSITION,
11 | STATEMENT_IFTYPE,
12 |
13 | EXPRENT_TYPE,
14 | EXPRENT_RET,
15 | EXPRENT_POSITION,
16 | EXPRENT_FUNCTYPE,
17 | EXPRENT_EXITTYPE,
18 | EXPRENT_CONSTTYPE,
19 | EXPRENT_CONSTVALUE,
20 | EXPRENT_INVOCATION_CLASS,
21 | EXPRENT_INVOCATION_SIGNATURE,
22 | EXPRENT_INVOCATION_PARAMETER,
23 | EXPRENT_VAR_INDEX,
24 | EXPRENT_FIELD_NAME,
25 | }
26 |
27 | IMatchable findObject(MatchNode matchNode, int index);
28 |
29 | boolean match(MatchNode matchNode, MatchEngine engine);
30 | }
--------------------------------------------------------------------------------
/java-decompiler/src/main/java/com/apkide/java/decompiler/util/DataInputFullStream.java:
--------------------------------------------------------------------------------
1 | // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 | package com.apkide.java.decompiler.util;
3 |
4 | import java.io.ByteArrayInputStream;
5 | import java.io.DataInputStream;
6 | import java.io.IOException;
7 |
8 | public class DataInputFullStream extends DataInputStream {
9 | public DataInputFullStream(byte[] bytes) {
10 | super(new ByteArrayInputStream(bytes));
11 | }
12 |
13 | public byte[] read(int n) throws IOException {
14 | return InterpreterUtil.readBytes(this, n);
15 | }
16 |
17 | public void discard(int n) throws IOException {
18 | InterpreterUtil.discardBytes(this, n);
19 | }
20 | }
--------------------------------------------------------------------------------
/language/api/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/api/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/api/consumer-rules.pro
--------------------------------------------------------------------------------
/language/api/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/api/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeAnalyzer.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 代码分析接口
7 | */
8 | public interface CodeAnalyzer {
9 |
10 | void analyze(@NonNull String filePath,@NonNull CodeAnalyzerCallback callback);
11 | }
12 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeAnalyzerCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 代码分析回调
7 | */
8 | public interface CodeAnalyzerCallback extends FileStoreCallback{
9 |
10 | void errorFound(@NonNull String source, @NonNull String message, @NonNull String code);
11 | void errorFound(@NonNull String filePath, @NonNull String message, @NonNull String code,
12 | int startLine, int startColumn, int endLine, int endColumn);
13 | void warningFound(@NonNull String source, @NonNull String message, @NonNull String code);
14 | void warningFound(@NonNull String filePath, @NonNull String message, @NonNull String code,
15 | int startLine, int startColumn, int endLine, int endColumn);
16 | }
17 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeCompiler.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | /**
4 | * 代码编译接口
5 | *
6 | * apkide 似乎不需要,所以不会实现该接口
7 | */
8 |
9 | public interface CodeCompiler {
10 |
11 | /* void compile(@NonNull String filePath,
12 | @NonNull CodeCompilerCallback callback);*/
13 | }
14 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeCompilerCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | /**
4 | * 代码编译回调
5 | */
6 | public interface CodeCompilerCallback extends FileStoreCallback{
7 | }
8 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeCompleter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 |
6 | /**
7 | * 代码补全接口
8 | */
9 | public interface CodeCompleter {
10 |
11 | /**
12 | * 请求补全
13 | *
14 | * @param filePath 文件路径
15 | * @param line 标识符所在行
16 | * @param column 标识符所在列
17 | * @param allowTypes 包括类型
18 | * @param callback 补全回调
19 | */
20 | void completion(@NonNull String filePath, int line, int column, boolean allowTypes,
21 | @NonNull CodeCompleterCallback callback);
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeCompleterCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.annotation.Nullable;
5 |
6 | /**
7 | * 代码补全回调
8 | */
9 | public interface CodeCompleterCallback extends FileStoreCallback{
10 |
11 | void completionFound(int kind, @NonNull String label, @Nullable String details,
12 | @Nullable String documentation, boolean deprecated, boolean preselect,
13 | @Nullable String sortText, @NonNull String insertText, boolean snippet);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeFormatterCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 格式化回调
7 | */
8 | public interface CodeFormatterCallback extends FileStoreCallback {
9 |
10 | int getLineIndentation(int line);
11 |
12 | void indentationLine(int line, int indentationSize);
13 |
14 | int getIndentationSize();
15 |
16 | int getTabSize();
17 |
18 | int getLineCount();
19 |
20 | int getLineLength(int line);
21 |
22 | char getChar(int line, int column);
23 |
24 | int getStyle(int line, int column);
25 |
26 | void insertLineBreak(int line, int column);
27 |
28 | void removeLineBreak(int line);
29 |
30 | void insertText(int line, int column, @NonNull String text);
31 |
32 | void removeText(int startLine, int startColumn, int endLine, int endColumn);
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeHighlighter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 高亮接口
7 | */
8 | public interface CodeHighlighter {
9 |
10 | void highlighting(@NonNull String filePath, @NonNull CodeHighlighterCallback callback);
11 |
12 | void semanticHighlighting(@NonNull String filePath, @NonNull CodeHighlighterCallback callback);
13 | }
14 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeHighlighterCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | /**
4 | * 高亮回调
5 | */
6 | public interface CodeHighlighterCallback extends FileStoreCallback {
7 |
8 | void tokenFound(int styleKind, int startLine, int startColumn,
9 | int endLine, int endColumn);
10 |
11 | void semanticTokenFound(int styleKind, int startLine, int startColumn,
12 | int endLine, int endColumn);
13 | }
14 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/CodeNavigationCallback.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * 代码导航回调
7 | */
8 | public interface CodeNavigationCallback extends FileStoreCallback{
9 |
10 |
11 | void usageFound(@NonNull String filePath,int startLine,int startColumn,
12 | int endLine,int endColumn);
13 |
14 |
15 |
16 | void symbolFound(int kind,@NonNull String name,boolean deprecated,
17 | @NonNull String filePath,int startLine,int startColumn,
18 | int endLine,int endColumn);
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/language/api/src/main/java/com/apkide/language/api/StyleKind.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | public class StyleKind {
4 | public static final int PlainStyle = 0;
5 | public static final int KeywordStyle = 1;
6 | public static final int OperatorStyle = 2;
7 | public static final int SeparatorStyle = 3;
8 | public static final int StringStyle = 4;
9 | public static final int NumberStyle = 5;
10 | public static final int MetadataStyle = 6;
11 | public static final int IdentifierStyle = 7;
12 | public static final int NamespaceStyle = 8;
13 | public static final int TypeStyle = 9;
14 | public static final int VariableStyle = 10;
15 | public static final int FunctionStyle = 11;
16 | public static final int FunctionCallStyle = 12;
17 | public static final int ParameterStyle = 13;
18 | public static final int CommentStyle = 14;
19 | public static final int BlockCommentStyle = 15;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/language/api/src/test/java/com/apkide/language/api/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.api;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import org.junit.Test;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/language/language-java/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/language-java/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/language-java/consumer-rules.pro
--------------------------------------------------------------------------------
/language/language-java/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/language-java/src/main/java/com/apkide/language/java/JavaCodeAnalyzer.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.java;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeAnalyzer;
6 | import com.apkide.language.api.CodeAnalyzerCallback;
7 |
8 | public class JavaCodeAnalyzer implements CodeAnalyzer {
9 | private final JavaLanguage myLanguage;
10 |
11 | public JavaCodeAnalyzer(JavaLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void analyze(@NonNull String filePath, @NonNull CodeAnalyzerCallback callback) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/language/language-java/src/main/java/com/apkide/language/java/JavaCodeCompleter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.java;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeCompleter;
6 | import com.apkide.language.api.CodeCompleterCallback;
7 |
8 | public class JavaCodeCompleter implements CodeCompleter {
9 | private final JavaLanguage myLanguage;
10 |
11 | public JavaCodeCompleter(JavaLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void completion(@NonNull String filePath, int line, int column, boolean allowTypes,
17 | @NonNull CodeCompleterCallback callback) {
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/language/language-java/src/main/java/com/apkide/language/java/JavaCodeFormatter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.java;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeFormatter;
6 | import com.apkide.language.api.CodeFormatterCallback;
7 |
8 | public class JavaCodeFormatter implements CodeFormatter {
9 | private final JavaLanguage myLanguage;
10 |
11 | public JavaCodeFormatter(JavaLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void indentLines(@NonNull String filePath, int startLine, int startColumn,
17 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void formatLines(@NonNull String filePath, int startLine, int startColumn,
23 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/language/language-java/src/main/java/com/apkide/language/java/JavaCodeNavigation.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.java;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeNavigation;
6 | import com.apkide.language.api.CodeNavigationCallback;
7 |
8 | public class JavaCodeNavigation implements CodeNavigation {
9 | private final JavaLanguage myLanguage;
10 |
11 | public JavaCodeNavigation(JavaLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void searchUsages(@NonNull String filePath, int line, int column,
17 | @NonNull CodeNavigationCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void searchSymbol(@NonNull String filePath, int line, int column,
23 | boolean includeDeclaration,
24 | @NonNull CodeNavigationCallback callback) {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/language/language-smali/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/language-smali/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/language-smali/consumer-rules.pro
--------------------------------------------------------------------------------
/language/language-smali/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/language-smali/src/main/java/com/apkide/language/smali/SmaliCodeAnalyzer.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.smali;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeAnalyzer;
6 | import com.apkide.language.api.CodeAnalyzerCallback;
7 |
8 | public class SmaliCodeAnalyzer implements CodeAnalyzer {
9 | private final SmaliLanguage myLanguage;
10 |
11 | public SmaliCodeAnalyzer(SmaliLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void analyze(@NonNull String filePath, @NonNull CodeAnalyzerCallback callback) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/language/language-smali/src/main/java/com/apkide/language/smali/SmaliCodeCompleter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.smali;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeCompleter;
6 | import com.apkide.language.api.CodeCompleterCallback;
7 |
8 | public class SmaliCodeCompleter implements CodeCompleter {
9 | private final SmaliLanguage myLanguage;
10 |
11 | public SmaliCodeCompleter(SmaliLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void completion(@NonNull String filePath, int line, int column, boolean allowTypes,
17 | @NonNull CodeCompleterCallback callback) {
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/language/language-smali/src/main/java/com/apkide/language/smali/SmaliCodeFormatter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.smali;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeFormatter;
6 | import com.apkide.language.api.CodeFormatterCallback;
7 |
8 | public class SmaliCodeFormatter implements CodeFormatter {
9 | private final SmaliLanguage myLanguage;
10 |
11 | public SmaliCodeFormatter(SmaliLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void indentLines(@NonNull String filePath, int startLine, int startColumn,
17 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void formatLines(@NonNull String filePath, int startLine, int startColumn,
23 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/language/language-smali/src/main/java/com/apkide/language/smali/SmaliCodeHighlighter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.smali;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeHighlighter;
6 | import com.apkide.language.api.CodeHighlighterCallback;
7 |
8 | public class SmaliCodeHighlighter implements CodeHighlighter {
9 | private final SmaliLanguage myLanguage;
10 |
11 | public SmaliCodeHighlighter(SmaliLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void highlighting(@NonNull String filePath,
17 | @NonNull CodeHighlighterCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void semanticHighlighting(@NonNull String filePath,
23 | @NonNull CodeHighlighterCallback callback) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/language/language-smali/src/main/java/com/apkide/language/smali/SmaliCodeNavigation.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.smali;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeNavigation;
6 | import com.apkide.language.api.CodeNavigationCallback;
7 |
8 | public class SmaliCodeNavigation implements CodeNavigation {
9 | private final SmaliLanguage myLanguage;
10 |
11 | public SmaliCodeNavigation(SmaliLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void searchUsages(@NonNull String filePath, int line, int column,
17 | @NonNull CodeNavigationCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void searchSymbol(@NonNull String filePath, int line, int column,
23 | boolean includeDeclaration,
24 | @NonNull CodeNavigationCallback callback) {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/language/language-xml/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/language-xml/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/language-xml/consumer-rules.pro
--------------------------------------------------------------------------------
/language/language-xml/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/language-xml/src/main/java/com/apkide/language/xml/XmlCodeAnalyzer.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.xml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeAnalyzer;
6 | import com.apkide.language.api.CodeAnalyzerCallback;
7 |
8 | public class XmlCodeAnalyzer implements CodeAnalyzer {
9 | private final XmlLanguage myLanguage;
10 |
11 | public XmlCodeAnalyzer(XmlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void analyze(@NonNull String filePath, @NonNull CodeAnalyzerCallback callback) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/language/language-xml/src/main/java/com/apkide/language/xml/XmlCodeCompleter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.xml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeCompleter;
6 | import com.apkide.language.api.CodeCompleterCallback;
7 |
8 | public class XmlCodeCompleter implements CodeCompleter {
9 | private final XmlLanguage myLanguage;
10 |
11 | public XmlCodeCompleter(XmlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void completion(@NonNull String filePath, int line, int column, boolean allowTypes,
17 | @NonNull CodeCompleterCallback callback) {
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/language/language-xml/src/main/java/com/apkide/language/xml/XmlCodeFormatter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.xml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeFormatter;
6 | import com.apkide.language.api.CodeFormatterCallback;
7 |
8 | public class XmlCodeFormatter implements CodeFormatter {
9 | private final XmlLanguage myLanguage;
10 |
11 | public XmlCodeFormatter(XmlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void indentLines(@NonNull String filePath, int startLine, int startColumn,
17 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void formatLines(@NonNull String filePath, int startLine, int startColumn,
23 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/language/language-xml/src/main/java/com/apkide/language/xml/XmlCodeNavigation.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.xml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeNavigation;
6 | import com.apkide.language.api.CodeNavigationCallback;
7 |
8 | public class XmlCodeNavigation implements CodeNavigation {
9 | private final XmlLanguage myLanguage;
10 |
11 | public XmlCodeNavigation(XmlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void searchUsages(@NonNull String filePath, int line, int column,
17 | @NonNull CodeNavigationCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void searchSymbol(@NonNull String filePath, int line, int column,
23 | boolean includeDeclaration,
24 | @NonNull CodeNavigationCallback callback) {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/language/language-yaml/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/language-yaml/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/language-yaml/consumer-rules.pro
--------------------------------------------------------------------------------
/language/language-yaml/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/language-yaml/src/main/java/com/apkide/language/yaml/YamlCodeAnalyzer.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.yaml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeAnalyzer;
6 | import com.apkide.language.api.CodeAnalyzerCallback;
7 |
8 | public class YamlCodeAnalyzer implements CodeAnalyzer {
9 | private final YamlLanguage myLanguage;
10 |
11 | public YamlCodeAnalyzer(YamlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void analyze(@NonNull String filePath, @NonNull CodeAnalyzerCallback callback) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/language/language-yaml/src/main/java/com/apkide/language/yaml/YamlCodeCompleter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.yaml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeCompleter;
6 | import com.apkide.language.api.CodeCompleterCallback;
7 |
8 | public class YamlCodeCompleter implements CodeCompleter {
9 | private final YamlLanguage myLanguage;
10 |
11 | public YamlCodeCompleter(YamlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void completion(@NonNull String filePath, int line, int column, boolean allowTypes,
17 | @NonNull CodeCompleterCallback callback) {
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/language/language-yaml/src/main/java/com/apkide/language/yaml/YamlCodeFormatter.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.yaml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeFormatter;
6 | import com.apkide.language.api.CodeFormatterCallback;
7 |
8 | public class YamlCodeFormatter implements CodeFormatter {
9 | private final YamlLanguage myLanguage;
10 |
11 | public YamlCodeFormatter(YamlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void indentLines(@NonNull String filePath, int startLine, int startColumn,
17 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void formatLines(@NonNull String filePath, int startLine, int startColumn,
23 | int endLine, int endColumn, @NonNull CodeFormatterCallback callback) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/language/language-yaml/src/main/java/com/apkide/language/yaml/YamlCodeNavigation.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language.yaml;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import com.apkide.language.api.CodeNavigation;
6 | import com.apkide.language.api.CodeNavigationCallback;
7 |
8 | public class YamlCodeNavigation implements CodeNavigation {
9 | private final YamlLanguage myLanguage;
10 |
11 | public YamlCodeNavigation(YamlLanguage language) {
12 | myLanguage = language;
13 | }
14 |
15 | @Override
16 | public void searchUsages(@NonNull String filePath, int line, int column,
17 | @NonNull CodeNavigationCallback callback) {
18 |
19 | }
20 |
21 | @Override
22 | public void searchSymbol(@NonNull String filePath, int line, int column,
23 | boolean includeDeclaration,
24 | @NonNull CodeNavigationCallback callback) {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/language/service/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/language/service/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/language/service/consumer-rules.pro
--------------------------------------------------------------------------------
/language/service/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/language/service/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/Assembly.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable Assembly;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/Completion.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable Completion;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/FileHighlighting.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable FileHighlighting;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/FileSpan.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable FileSpan;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/IEngine.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | interface IEngine {
4 |
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/LanguageProvider.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | import com.apkide.language.api.Language;
4 |
5 | public abstract class LanguageProvider {
6 | private static final Object sLock=new Object();
7 | private static LanguageProvider sProvider;
8 |
9 | public static void set(LanguageProvider provider) {
10 | synchronized (sLock) {
11 | sProvider = provider;
12 | }
13 | }
14 |
15 | public static LanguageProvider get() {
16 | synchronized (sLock) {
17 | return sProvider;
18 | }
19 | }
20 |
21 | public abstract Language[] createLanguages();
22 | }
23 |
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/Modification.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable Modification;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/Problem.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable Problem;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/StyleKind.java:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | public class StyleKind {
4 | public static final int PlainStyle = 0;
5 | public static final int KeywordStyle = 1;
6 | public static final int OperatorStyle = 2;
7 | public static final int SeparatorStyle = 3;
8 | public static final int StringStyle = 4;
9 | public static final int NumberStyle = 5;
10 | public static final int MetadataStyle = 6;
11 | public static final int IdentifierStyle = 7;
12 | public static final int NamespaceStyle = 8;
13 | public static final int TypeStyle = 9;
14 | public static final int VariableStyle = 10;
15 | public static final int FunctionStyle = 11;
16 | public static final int FunctionCallStyle = 12;
17 | public static final int ParameterStyle = 13;
18 | public static final int CommentStyle = 14;
19 | public static final int BlockCommentStyle = 15;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/Symbol.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language;
2 |
3 | parcelable Symbol;
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/service/ICodeAnayzingListener.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language.service;
2 |
3 | import com.apkide.language.Problem;
4 |
5 | interface ICodeAnayzingListener {
6 |
7 | void analyzeFinished(in String filePath,in List list);
8 | }
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/service/ICodeCompletionListener.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language.service;
2 |
3 | import com.apkide.language.Completion;
4 |
5 | interface ICodeCompletionListener {
6 |
7 | void completionFinished(in String filePath,in int line,in int column,
8 | in boolean allowTypes,in List list);
9 | }
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/service/ICodeHighlightingListener.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language.service;
2 |
3 | import com.apkide.language.FileHighlighting;
4 |
5 | interface ICodeHighlightingListener {
6 |
7 | void highlightingFinished(in FileHighlighting highlight);
8 |
9 | void semanticHighlightingFinished(in FileHighlighting highlight);
10 | }
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/service/ICodeNavigationListener.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language.service;
2 |
3 | import com.apkide.language.FileSpan;
4 | import com.apkide.language.Symbol;
5 |
6 | interface ICodeNavigationListener {
7 |
8 | void searchUsagesFinished(in String filePath,in int line,in int column,
9 | in List list);
10 |
11 | void searchSymbolFinished(in String filePath,in int line,in int column,
12 | in boolean includeDeclaration,
13 | in List list);
14 | }
--------------------------------------------------------------------------------
/language/service/src/main/java/com/apkide/language/service/IFileEditor.aidl:
--------------------------------------------------------------------------------
1 | package com.apkide.language.service;
2 |
3 | interface IFileEditor {
4 |
5 | int getLineIndentation(in int line);
6 |
7 | void indentationLine(in int line,in int indentationSize);
8 |
9 | int getIndentationSize();
10 |
11 | int getTabSize();
12 |
13 | int getLineCount();
14 |
15 | int getLineLength(in int line);
16 |
17 | char getChar(in int line,in int column);
18 |
19 | int getStyle(in int line,in int column);
20 |
21 | void insertLineBreak(in int line,in int column);
22 |
23 | void removeLineBreak(in int line);
24 |
25 | void insertText(in int line,in int column,in String text);
26 |
27 | void removeText(in int startLine,in int startColumn,in int endLine,in int endColumn);
28 | }
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = "apkide"
2 | include ':app'
3 | include ':analytics'
4 | include ':common'
5 | include ':language:api'
6 | include ':language:language-java'
7 | include ':language:language-smali'
8 | include ':language:language-xml'
9 | include ':language:language-yaml'
10 | include ':language:service'
11 | include ':apktool:core'
12 | include ':apktool:service'
13 | include ':smali'
14 | include ':java-decompiler'
15 | include ':util:antlr4-runtime'
16 | include ':util:antlr-runtime'
17 |
--------------------------------------------------------------------------------
/smali/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/smali/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/smali/consumer-rules.pro
--------------------------------------------------------------------------------
/smali/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/smali/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/smali/src/test/java/com/apkide/smali/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.apkide.smali;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import org.junit.Test;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/util/antlr-runtime/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/util/antlr-runtime/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/util/antlr-runtime/consumer-rules.pro
--------------------------------------------------------------------------------
/util/antlr-runtime/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/util/antlr4-runtime/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/util/antlr4-runtime/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weg2022/apkide-old/c6b819ec1112caf2792f58e6d2ec6c754b40bc8c/util/antlr4-runtime/consumer-rules.pro
--------------------------------------------------------------------------------
/util/antlr4-runtime/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/WritableToken.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime;
8 |
9 | public interface WritableToken extends Token {
10 | public void setText(String text);
11 |
12 | public void setType(int ttype);
13 |
14 | public void setLine(int line);
15 |
16 | public void setCharPositionInLine(int pos);
17 |
18 | public void setChannel(int channel);
19 |
20 | public void setTokenIndex(int index);
21 | }
22 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/ATNType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /**
10 | * Represents the type of recognizer an ATN applies to.
11 | *
12 | * @author Sam Harwell
13 | */
14 | public enum ATNType {
15 |
16 | /**
17 | * A lexer grammar.
18 | */
19 | LEXER,
20 |
21 | /**
22 | * A parser grammar.
23 | */
24 | PARSER,
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/AbstractPredicateTransition.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /**
10 | *
11 | * @author Sam Harwell
12 | */
13 | public abstract class AbstractPredicateTransition extends Transition {
14 |
15 | public AbstractPredicateTransition(ATNState target) {
16 | super(target);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/BasicBlockStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /**
10 | *
11 | * @author Sam Harwell
12 | */
13 | public final class BasicBlockStartState extends BlockStartState {
14 | @Override
15 | public int getStateType() {
16 | return BLOCK_START;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/BasicState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /**
10 | *
11 | * @author Sam Harwell
12 | */
13 | public final class BasicState extends ATNState {
14 |
15 | @Override
16 | public int getStateType() {
17 | return BASIC;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/BlockEndState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** Terminal node of a simple {@code (a|b|c)} block. */
10 | public final class BlockEndState extends ATNState {
11 | public BlockStartState startState;
12 |
13 | @Override
14 | public int getStateType() {
15 | return BLOCK_END;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/BlockStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** The start of a regular {@code (...)} block. */
10 | public abstract class BlockStartState extends DecisionState {
11 | public BlockEndState endState;
12 | }
13 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/DecisionState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | public abstract class DecisionState extends ATNState {
10 | public int decision = -1;
11 | public boolean nonGreedy;
12 | }
13 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/LoopEndState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** Mark the end of a * or + loop. */
10 | public final class LoopEndState extends ATNState {
11 | public ATNState loopBackState;
12 |
13 | @Override
14 | public int getStateType() {
15 | return LOOP_END;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/OrderedATNConfigSet.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | import org.antlr.v4.runtime.misc.ObjectEqualityComparator;
10 |
11 | /**
12 | *
13 | * @author Sam Harwell
14 | */
15 | public class OrderedATNConfigSet extends ATNConfigSet {
16 |
17 | public OrderedATNConfigSet() {
18 | this.configLookup = new LexerConfigHashSet();
19 | }
20 |
21 | public static class LexerConfigHashSet extends AbstractConfigHashSet {
22 | public LexerConfigHashSet() {
23 | super(ObjectEqualityComparator.INSTANCE);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/PlusBlockStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** Start of {@code (A|B|...)+} loop. Technically a decision state, but
10 | * we don't use for code generation; somebody might need it, so I'm defining
11 | * it for completeness. In reality, the {@link PlusLoopbackState} node is the
12 | * real decision-making note for {@code A+}.
13 | */
14 | public final class PlusBlockStartState extends BlockStartState {
15 | public PlusLoopbackState loopBackState;
16 |
17 | @Override
18 | public int getStateType() {
19 | return PLUS_BLOCK_START;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/PlusLoopbackState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** Decision state for {@code A+} and {@code (A|B)+}. It has two transitions:
10 | * one to the loop back to start of the block and one to exit.
11 | */
12 | public final class PlusLoopbackState extends DecisionState {
13 |
14 | @Override
15 | public int getStateType() {
16 | return PLUS_LOOP_BACK;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/RuleStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | public final class RuleStartState extends ATNState {
10 | public RuleStopState stopState;
11 | public boolean isLeftRecursiveRule;
12 |
13 | @Override
14 | public int getStateType() {
15 | return RULE_START;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/RuleStopState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** The last node in the ATN for a rule, unless that rule is the start symbol.
10 | * In that case, there is one transition to EOF. Later, we might encode
11 | * references to all calls to this rule to compute FOLLOW sets for
12 | * error handling.
13 | */
14 | public final class RuleStopState extends ATNState {
15 |
16 | @Override
17 | public int getStateType() {
18 | return RULE_STOP;
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/StarBlockStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** The block that begins a closure loop. */
10 | public final class StarBlockStartState extends BlockStartState {
11 |
12 | @Override
13 | public int getStateType() {
14 | return STAR_BLOCK_START;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/StarLoopbackState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | public final class StarLoopbackState extends ATNState {
10 | public final StarLoopEntryState getLoopEntryState() {
11 | return (StarLoopEntryState)transition(0).target;
12 | }
13 |
14 | @Override
15 | public int getStateType() {
16 | return STAR_LOOP_BACK;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/TokensStartState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | /** The Tokens rule start state linking to each lexer rule start state */
10 | public final class TokensStartState extends DecisionState {
11 |
12 | @Override
13 | public int getStateType() {
14 | return TOKEN_START;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/atn/WildcardTransition.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.atn;
8 |
9 | public final class WildcardTransition extends Transition {
10 | public WildcardTransition(ATNState target) { super(target); }
11 |
12 | @Override
13 | public int getSerializationType() {
14 | return WILDCARD;
15 | }
16 |
17 | @Override
18 | public boolean matches(int symbol, int minVocabSymbol, int maxVocabSymbol) {
19 | return symbol >= minVocabSymbol && symbol <= maxVocabSymbol;
20 | }
21 |
22 | @Override
23 | public String toString() {
24 | return ".";
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/dfa/LexerDFASerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.dfa;
8 |
9 | import org.antlr.v4.runtime.VocabularyImpl;
10 |
11 | public class LexerDFASerializer extends DFASerializer {
12 | public LexerDFASerializer(DFA dfa) {
13 | super(dfa, VocabularyImpl.EMPTY_VOCABULARY);
14 | }
15 |
16 | @Override
17 |
18 | protected String getEdgeLabel(int i) {
19 | return new StringBuilder("'")
20 | .appendCodePoint(i)
21 | .append("'")
22 | .toString();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/misc/AbstractEqualityComparator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 | package org.antlr.v4.runtime.misc;
7 |
8 | /**
9 | * This abstract base class is provided so performance-critical applications can
10 | * use virtual- instead of interface-dispatch when calling comparator methods.
11 | *
12 | * @author Sam Harwell
13 | */
14 | public abstract class AbstractEqualityComparator implements EqualityComparator {
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/misc/IntegerStack.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 | package org.antlr.v4.runtime.misc;
7 |
8 | /**
9 | *
10 | * @author Sam Harwell
11 | */
12 | public class IntegerStack extends IntegerList {
13 |
14 | public IntegerStack() {
15 | }
16 |
17 | public IntegerStack(int capacity) {
18 | super(capacity);
19 | }
20 |
21 | public IntegerStack(IntegerStack list) {
22 | super(list);
23 | }
24 |
25 | public final void push(int value) {
26 | add(value);
27 | }
28 |
29 | public final int pop() {
30 | return removeAt(size() - 1);
31 | }
32 |
33 | public final int peek() {
34 | return get(size() - 1);
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/misc/NotNull.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 | package org.antlr.v4.runtime.misc;
7 |
8 | import java.lang.annotation.Documented;
9 | import java.lang.annotation.ElementType;
10 | import java.lang.annotation.Retention;
11 | import java.lang.annotation.RetentionPolicy;
12 | import java.lang.annotation.Target;
13 |
14 | /** @deprecated THIS IS HERE FOR BACKWARD COMPATIBILITY WITH 4.5 ONLY. It will
15 | * disappear in 4.6+
16 | */
17 | @Documented
18 | @Retention(RetentionPolicy.CLASS)
19 | @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
20 | @Deprecated
21 | public @interface NotNull {
22 | }
23 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/misc/Predicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.misc;
8 |
9 | public interface Predicate {
10 | boolean test(T t);
11 | }
12 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/ErrorNode.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree;
8 |
9 | public interface ErrorNode extends TerminalNode {
10 | }
11 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/RuleNode.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree;
8 |
9 | import org.antlr.v4.runtime.RuleContext;
10 |
11 | public interface RuleNode extends ParseTree {
12 | RuleContext getRuleContext();
13 | }
14 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/TerminalNode.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree;
8 |
9 | import org.antlr.v4.runtime.Token;
10 |
11 | public interface TerminalNode extends ParseTree {
12 | Token getSymbol();
13 | }
14 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/pattern/Chunk.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree.pattern;
8 |
9 | /**
10 | * A chunk is either a token tag, a rule tag, or a span of literal text within a
11 | * tree pattern.
12 | *
13 | * The method {@link ParseTreePatternMatcher#split(String)} returns a list of
14 | * chunks in preparation for creating a token stream by
15 | * {@link ParseTreePatternMatcher#tokenize(String)}. From there, we get a parse
16 | * tree from with {@link ParseTreePatternMatcher#compile(String, int)}. These
17 | * chunks are converted to {@link RuleTagToken}, {@link TokenTagToken}, or the
18 | * regular tokens of the text surrounding the tags.
19 | */
20 | abstract class Chunk {
21 | }
22 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/xpath/XPathLexerErrorListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree.xpath;
8 |
9 | import org.antlr.v4.runtime.BaseErrorListener;
10 | import org.antlr.v4.runtime.RecognitionException;
11 | import org.antlr.v4.runtime.Recognizer;
12 |
13 | public class XPathLexerErrorListener extends BaseErrorListener {
14 | @Override
15 | public void syntaxError(Recognizer, ?> recognizer, Object offendingSymbol,
16 | int line, int charPositionInLine, String msg,
17 | RecognitionException e)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/xpath/XPathRuleAnywhereElement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree.xpath;
8 |
9 | import org.antlr.v4.runtime.tree.ParseTree;
10 | import org.antlr.v4.runtime.tree.Trees;
11 |
12 | import java.util.Collection;
13 |
14 | /**
15 | * Either {@code ID} at start of path or {@code ...//ID} in middle of path.
16 | */
17 | public class XPathRuleAnywhereElement extends XPathElement {
18 | protected int ruleIndex;
19 | public XPathRuleAnywhereElement(String ruleName, int ruleIndex) {
20 | super(ruleName);
21 | this.ruleIndex = ruleIndex;
22 | }
23 |
24 | @Override
25 | public Collection evaluate(ParseTree t) {
26 | return Trees.findAllRuleNodes(t, ruleIndex);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/xpath/XPathTokenAnywhereElement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree.xpath;
8 |
9 | import org.antlr.v4.runtime.tree.ParseTree;
10 | import org.antlr.v4.runtime.tree.Trees;
11 |
12 | import java.util.Collection;
13 |
14 | public class XPathTokenAnywhereElement extends XPathElement {
15 | protected int tokenType;
16 | public XPathTokenAnywhereElement(String tokenName, int tokenType) {
17 | super(tokenName);
18 | this.tokenType = tokenType;
19 | }
20 |
21 | @Override
22 | public Collection evaluate(ParseTree t) {
23 | return Trees.findAllTokenNodes(t, tokenType);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/util/antlr4-runtime/src/main/java/org/antlr/v4/runtime/tree/xpath/XPathWildcardAnywhereElement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
3 | * Use of this file is governed by the BSD 3-clause license that
4 | * can be found in the LICENSE.txt file in the project root.
5 | */
6 |
7 | package org.antlr.v4.runtime.tree.xpath;
8 |
9 | import org.antlr.v4.runtime.tree.ParseTree;
10 | import org.antlr.v4.runtime.tree.Trees;
11 |
12 | import java.util.ArrayList;
13 | import java.util.Collection;
14 |
15 | public class XPathWildcardAnywhereElement extends XPathElement {
16 | public XPathWildcardAnywhereElement() {
17 | super(XPath.WILDCARD);
18 | }
19 |
20 | @Override
21 | public Collection evaluate(ParseTree t) {
22 | if ( invert ) return new ArrayList(); // !* is weird but valid (empty)
23 | return Trees.getDescendants(t);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------