diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.idea/.gitignore b/.idea/.gitignore old mode 100644 new mode 100755 index 26d33521a..eaf91e2ac --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,3 +1,3 @@ -# Default ignored files -/shelf/ -/workspace.xml +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name old mode 100644 new mode 100755 diff --git a/.idea/compiler.xml b/.idea/compiler.xml old mode 100644 new mode 100755 index fb7f4a8a4..7d7ec2eaf --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/.idea/copyright/Akash_Yadav.xml b/.idea/copyright/Akash_Yadav.xml old mode 100644 new mode 100755 index 33351c8ad..e3094f0c1 --- a/.idea/copyright/Akash_Yadav.xml +++ b/.idea/copyright/Akash_Yadav.xml @@ -1,6 +1,6 @@ - - - + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml old mode 100644 new mode 100755 index 476a3e706..c06eac70c --- a/.idea/copyright/profiles_settings.xml +++ b/.idea/copyright/profiles_settings.xml @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml old mode 100644 new mode 100755 index 1c6fee5ed..af5b22e87 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -1,35 +1,40 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml old mode 100644 new mode 100755 index 51e88be32..f60769d94 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,18 +1,35 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/app/.gitignore b/app/.gitignore old mode 100644 new mode 100755 diff --git a/app/build.gradle b/app/build.gradle old mode 100644 new mode 100755 index 81127d1ad..a987c873e --- a/app/build.gradle +++ b/app/build.gradle @@ -31,7 +31,9 @@ android { "SmallSp" } - buildFeatures.viewBinding true + buildFeatures { + viewBinding true + } signingConfigs { diff --git a/app/dev.keystore b/app/dev.keystore old mode 100644 new mode 100755 diff --git a/app/dictionary.txt b/app/dictionary.txt old mode 100644 new mode 100755 diff --git a/app/google-services.json b/app/google-services.json old mode 100644 new mode 100755 diff --git a/app/libs/zip4j-2.9.0.jar b/app/libs/zip4j-2.9.0.jar old mode 100644 new mode 100755 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro old mode 100644 new mode 100755 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml old mode 100644 new mode 100755 diff --git a/app/src/main/assets/changelog.json b/app/src/main/assets/changelog.json old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/arm64-v8a/busybox b/app/src/main/assets/data/arm64-v8a/busybox old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/arm64-v8a/libhook.so b/app/src/main/assets/data/arm64-v8a/libhook.so old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/arm64-v8a/libhook2.so b/app/src/main/assets/data/arm64-v8a/libhook2.so old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/armeabi-v7a/busybox b/app/src/main/assets/data/armeabi-v7a/busybox old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/armeabi-v7a/libhook.so b/app/src/main/assets/data/armeabi-v7a/libhook.so old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/armeabi-v7a/libhook2.so b/app/src/main/assets/data/armeabi-v7a/libhook2.so old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/common/d8.jar b/app/src/main/assets/data/common/d8.jar old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/common/gradle-wrapper.zip b/app/src/main/assets/data/common/gradle-wrapper.zip old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/common/jls.jar b/app/src/main/assets/data/common/jls.jar old mode 100644 new mode 100755 diff --git a/app/src/main/assets/data/common/logsender.zip b/app/src/main/assets/data/common/logsender.zip old mode 100644 new mode 100755 diff --git a/app/src/main/assets/fonts/jetbrains-mono.ttf b/app/src/main/assets/fonts/jetbrains-mono.ttf old mode 100644 new mode 100755 diff --git a/app/src/main/assets/fonts/josefin-sans.ttf b/app/src/main/assets/fonts/josefin-sans.ttf old mode 100644 new mode 100755 diff --git a/app/src/main/assets/fonts/quicksand.ttf b/app/src/main/assets/fonts/quicksand.ttf old mode 100644 new mode 100755 diff --git a/app/src/main/assets/licenses.json b/app/src/main/assets/licenses.json old mode 100644 new mode 100755 diff --git a/app/src/main/assets/templates/0.zip b/app/src/main/assets/templates/0.zip old mode 100644 new mode 100755 diff --git a/app/src/main/assets/templates/1.zip b/app/src/main/assets/templates/1.zip old mode 100644 new mode 100755 diff --git a/app/src/main/assets/templates/2.zip b/app/src/main/assets/templates/2.zip old mode 100644 new mode 100755 diff --git a/app/src/main/googlePlay.png b/app/src/main/googlePlay.png old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/AboutActivity.java b/app/src/main/java/com/itsaky/androidide/AboutActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/DesignerActivity.java b/app/src/main/java/com/itsaky/androidide/DesignerActivity.java old mode 100644 new mode 100755 index 2f16091d5..d4e58dc40 --- a/app/src/main/java/com/itsaky/androidide/DesignerActivity.java +++ b/app/src/main/java/com/itsaky/androidide/DesignerActivity.java @@ -17,18 +17,43 @@ **************************************************************************************/ package com.itsaky.androidide; -import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CheckedTextView; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.RadioButton; +import android.widget.RelativeLayout; +import android.widget.SeekBar; +import android.widget.Spinner; import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.core.content.ContextCompat; + import com.blankj.utilcode.util.ThrowableUtils; +import com.itsaky.androidide.adapters.WidgetGroupItemAdapter; +import com.itsaky.androidide.adapters.WidgetItemAdapter; import com.itsaky.androidide.app.StudioActivity; import com.itsaky.androidide.databinding.ActivityDesignerBinding; +import com.itsaky.androidide.models.UIWidget; +import com.itsaky.androidide.models.UIWidgetGroup; import com.itsaky.androidide.utils.Logger; import com.itsaky.layoutinflater.ILayoutInflater; import com.itsaky.layoutinflater.IView; +import com.itsaky.toaster.Toaster; + +import org.jetbrains.annotations.Contract; + +import java.util.ArrayList; +import java.util.List; public class DesignerActivity extends StudioActivity { @@ -36,7 +61,14 @@ public class DesignerActivity extends StudioActivity { public static final String KEY_LAYOUT_PATH = "designer_layoutPath"; private static final Logger LOG = Logger.instance("DesignerActivity"); - + + private final List widgetGroups = new ArrayList<>(); + + private final WidgetItemAdapter.OnWidgetDragListener dragListener = (widget, v, event) -> { + getApp().toast("Dragging: " + widget.getName(), Toaster.Type.INFO); + return true; + }; + @Override protected View bindLayout() { mBinding = ActivityDesignerBinding.inflate(getLayoutInflater()); @@ -46,10 +78,13 @@ public class DesignerActivity extends StudioActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + + final var toggle = new ActionBarDrawerToggle(this, mBinding.getRoot(), mBinding.toolbar, R.string.app_name, R.string.app_name); + mBinding.getRoot().addDrawerListener(toggle); + toggle.syncState(); + setSupportActionBar(mBinding.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); - mBinding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); final Bundle extras = getIntent().getExtras(); final String path = extras.getString(KEY_LAYOUT_PATH, null); @@ -57,25 +92,60 @@ public class DesignerActivity extends StudioActivity { try { final ILayoutInflater inflater = getApp().getLayoutInflater(); inflater.resetContextProvider(newContextProvider()); - final IView view = inflater.inflatePath(path, mBinding.realContainer); - mBinding.realContainer.addView(view.asView()); + final IView view = inflater.inflatePath(path, mBinding.layoutContainer); + mBinding.layoutContainer.addView(view.asView()); } catch (Throwable th) { - mBinding.realContainer.removeAllViews(); - mBinding.realContainer.addView(createErrorText(th)); + mBinding.layoutContainer.removeAllViews(); + mBinding.layoutContainer.addView(createErrorText(th)); LOG.error (getString(R.string.err_cannot_inflate_layout)); } + + setupWidgets(); } + private void setupWidgets() { + final var common = new UIWidgetGroup(getString(R.string.widget_group_android)); + common.addChild(new UIWidget(getString(R.string.widget_button), R.drawable.ic_widget_button, Button.class)); + common.addChild(new UIWidget(getString(R.string.widget_checkbox), R.drawable.ic_widget_checkbox, CheckBox.class)); + common.addChild(new UIWidget(getString(R.string.widget_checked_textview), R.drawable.ic_widget_checked_textview, CheckedTextView.class)); + common.addChild(new UIWidget(getString(R.string.widget_edittext), R.drawable.ic_widget_edittext, EditText.class)); + common.addChild(new UIWidget(getString(R.string.widget_image_button), R.drawable.ic_widget_image, ImageButton.class)); + common.addChild(new UIWidget(getString(R.string.widget_image_view), R.drawable.ic_widget_image, ImageView.class)); + common.addChild(new UIWidget(getString(R.string.widget_progressbar), R.drawable.ic_widget_progress, ProgressBar.class)); + common.addChild(new UIWidget(getString(R.string.widget_radio_button), R.drawable.ic_widget_radio_button, RadioButton.class)); + common.addChild(new UIWidget(getString(R.string.widget_seekbar), R.drawable.ic_widget_seekbar, SeekBar.class)); + common.addChild(new UIWidget(getString(R.string.widget_spinner), R.drawable.ic_widget_spinner, Spinner.class)); + common.addChild(new UIWidget(getString(R.string.widget_textview), R.drawable.ic_widget_textview, TextView.class)); + + // IMPORTANT: Do not select any other groups here + common.setSelected(true); + widgetGroups.add(common); + + final var layouts = new UIWidgetGroup("Layouts"); + layouts.addChild(new UIWidget("LinearLayout", R.drawable.ic_widget_linear, LinearLayout.class)); + layouts.addChild(new UIWidget("RelativeLayout", R.drawable.ic_widget_relative, RelativeLayout.class)); + + widgetGroups.add(layouts); + + final var adapter = new WidgetGroupItemAdapter(widgetGroups, this::showWidgetGroup); + mBinding.groupItems.setAdapter(adapter); + + showWidgetGroup(common); + } + + private void showWidgetGroup (@NonNull UIWidgetGroup group) { + final var children = group.getChildren(); + mBinding.widgetItems.setAdapter(new WidgetItemAdapter(children, dragListener)); + } + + @NonNull + @Contract(pure = true) private ILayoutInflater.ContextProvider newContextProvider() { - return new ILayoutInflater.ContextProvider() { - @Override - public Context getContext() { - return DesignerActivity.this; - } - }; + return () -> DesignerActivity.this; } + @NonNull private TextView createErrorText (Throwable th) { final TextView error = new TextView (this); error.setText(ThrowableUtils.getFullStackTrace(th)); diff --git a/app/src/main/java/com/itsaky/androidide/DownloadActivity.java b/app/src/main/java/com/itsaky/androidide/DownloadActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/EditorActivity.java b/app/src/main/java/com/itsaky/androidide/EditorActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/MainActivity.java b/app/src/main/java/com/itsaky/androidide/MainActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/PreferencesActivity.java b/app/src/main/java/com/itsaky/androidide/PreferencesActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/SplashActivity.java b/app/src/main/java/com/itsaky/androidide/SplashActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/TerminalActivity.java b/app/src/main/java/com/itsaky/androidide/TerminalActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/CompletionListAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/CompletionListAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/DiagnosticItemAdpater.java b/app/src/main/java/com/itsaky/androidide/adapters/DiagnosticItemAdpater.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/DiagnosticsAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/DiagnosticsAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/EditorPagerAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/EditorPagerAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/MainPagerAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/MainPagerAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/ModuleInfoAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/ModuleInfoAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/OptionsSheetAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/OptionsSheetAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/ProjectsListAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/ProjectsListAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/SearchListAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/SearchListAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/SimpleIconTextAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/SimpleIconTextAdapter.java new file mode 100755 index 000000000..af4cd6240 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/adapters/SimpleIconTextAdapter.java @@ -0,0 +1,105 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.adapters; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.itsaky.androidide.databinding.LayoutSimpleIconTextBinding; +import com.itsaky.androidide.models.IconTextListItem; + +import java.util.List; + +/** + * A RecyclerView.Adapter which can be used to show a list with an icon and a text. + * + * @author Akash Yadav + */ +public class SimpleIconTextAdapter extends RecyclerView.Adapter { + + private final List items; + private OnBindListener bindListener; + + public SimpleIconTextAdapter(@NonNull List items) { + this.items = items; + } + + public SimpleIconTextAdapter setOnBindListener (OnBindListener listener) { + this.bindListener = listener; + return this; + } + + @NonNull + @Override + public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new VH (LayoutSimpleIconTextBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull VH holder, int position) { + final var binding = holder.binding; + final var item = items.get(position); + + if (this.bindListener != null && this.bindListener.onBind(item, holder, position)) { + return; + } + + final var icon = item.getIconResource(); + + if (icon == -1) { + binding.icon.setVisibility(View.GONE); + } else { + binding.icon.setImageResource(icon); + } + binding.text.setText(item.getText()); + + if (this.bindListener != null) { + this.bindListener.postBind(item, holder, position); + } + } + + @Override + public int getItemCount() { + return items.size(); + } + + public IconTextListItem getItemAt (int index) { + return this.items.get(index); + } + + public static class VH extends RecyclerView.ViewHolder { + + public final LayoutSimpleIconTextBinding binding; + + public VH(@NonNull LayoutSimpleIconTextBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + } + + public static interface OnBindListener { + boolean onBind (IconTextListItem item, VH holder, int position); + + default void postBind (IconTextListItem item, VH holder, int position) {} + } +} diff --git a/app/src/main/java/com/itsaky/androidide/adapters/SymbolInputAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/SymbolInputAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/adapters/WidgetGroupItemAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/WidgetGroupItemAdapter.java new file mode 100755 index 000000000..52125793c --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/adapters/WidgetGroupItemAdapter.java @@ -0,0 +1,60 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.adapters; + +import com.itsaky.androidide.models.IconTextListItem; +import com.itsaky.androidide.models.UIWidgetGroup; + +import java.util.List; + +public class WidgetGroupItemAdapter extends SimpleIconTextAdapter implements SimpleIconTextAdapter.OnBindListener { + + private final OnGroupClickListener clickListener; + + public WidgetGroupItemAdapter(List groups, OnGroupClickListener clickListener) { + super(groups); + this.clickListener = clickListener; + } + + @Override + public boolean onBind(IconTextListItem item, VH holder, int position) { + final var binding = holder.binding; + final var group = (UIWidgetGroup) getItemAt(position); + + if (this.clickListener != null) { + binding.getRoot().setOnClickListener(v -> this.clickListener.onGroupClick(group)); + } + + return false; + } + + @Override + public void postBind(IconTextListItem item, VH holder, int position) { + final var binding = holder.binding; + final var group = (UIWidgetGroup) item; + + if (group.isSelected()) { + + } + } + + public interface OnGroupClickListener { + void onGroupClick(UIWidgetGroup group); + } + +} diff --git a/app/src/main/java/com/itsaky/androidide/adapters/WidgetItemAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/WidgetItemAdapter.java new file mode 100755 index 000000000..2a487e2e0 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/adapters/WidgetItemAdapter.java @@ -0,0 +1,58 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.adapters; + +import android.view.DragEvent; +import android.view.View; + +import androidx.annotation.NonNull; + +import com.itsaky.androidide.models.IconTextListItem; +import com.itsaky.androidide.models.UIWidget; + +import java.util.List; + +public class WidgetItemAdapter extends SimpleIconTextAdapter implements SimpleIconTextAdapter.OnBindListener { + + private final OnWidgetDragListener dragListener; + + public WidgetItemAdapter(List widgets, OnWidgetDragListener dragListener) { + super(widgets); + this.dragListener = dragListener; + + setOnBindListener(this); + } + + @Override + public boolean onBind(IconTextListItem item, @NonNull VH holder, int position) { + final var binding = holder.binding; + final var widget = (UIWidget) getItemAt(position); + + if (this.dragListener != null) { + binding.getRoot().setOnDragListener((v, event) -> { + return this.dragListener.onDrag(widget, v, event); + }); + } + + return false; // Returning true will not set the text and icon + } + + public static interface OnWidgetDragListener { + boolean onDrag(UIWidget widget, View v, DragEvent event); + } +} diff --git a/app/src/main/java/com/itsaky/androidide/adapters/viewholders/FileTreeViewHolder.java b/app/src/main/java/com/itsaky/androidide/adapters/viewholders/FileTreeViewHolder.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/app/StudioActivity.java b/app/src/main/java/com/itsaky/androidide/app/StudioActivity.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/app/StudioApp.java b/app/src/main/java/com/itsaky/androidide/app/StudioApp.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/BaseFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/BaseFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/EditorFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/EditorFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/FileTreeFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/FileTreeFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/ProjectsFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/ProjectsFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/BasePreferenceFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/BasePreferenceFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/BuildPreferences.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/BuildPreferences.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/GeneralPreferences.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/GeneralPreferences.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/IDEPreferences.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/IDEPreferences.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/BaseBottomSheetFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/BaseBottomSheetFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/LogSheet.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/LogSheet.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/OptionsListFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/OptionsListFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/ProgressSheet.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/ProgressSheet.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/ProjectInfoSheet.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/ProjectInfoSheet.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sheets/TextSheetFragment.java b/app/src/main/java/com/itsaky/androidide/fragments/sheets/TextSheetFragment.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/handlers/BuildServiceHandler.java b/app/src/main/java/com/itsaky/androidide/handlers/BuildServiceHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/handlers/FileOptionsHandler.java b/app/src/main/java/com/itsaky/androidide/handlers/FileOptionsHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/handlers/IDEHandler.java b/app/src/main/java/com/itsaky/androidide/handlers/IDEHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/interfaces/DexResultListener.java b/app/src/main/java/com/itsaky/androidide/interfaces/DexResultListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/interfaces/DiagnosticClickListener.java b/app/src/main/java/com/itsaky/androidide/interfaces/DiagnosticClickListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/interfaces/EditorActivityProvider.java b/app/src/main/java/com/itsaky/androidide/interfaces/EditorActivityProvider.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/BaseLanguage.java b/app/src/main/java/com/itsaky/androidide/language/BaseLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyAnalyzer.java b/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyAnalyzer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyAutoComplete.java b/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyAutoComplete.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyLanguage.java b/app/src/main/java/com/itsaky/androidide/language/groovy/GroovyLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/java/JavaAutoComplete.java b/app/src/main/java/com/itsaky/androidide/language/java/JavaAutoComplete.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java b/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/logs/LogLanguageImpl.java b/app/src/main/java/com/itsaky/androidide/language/logs/LogLanguageImpl.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/xml/XMLAnalyzer.java b/app/src/main/java/com/itsaky/androidide/language/xml/XMLAnalyzer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/xml/XMLAutoComplete.java b/app/src/main/java/com/itsaky/androidide/language/xml/XMLAutoComplete.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java b/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/language/xml/completion/XMLCompletionService.java b/app/src/main/java/com/itsaky/androidide/language/xml/completion/XMLCompletionService.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/AsynchronousSocketLauncher.java b/app/src/main/java/com/itsaky/androidide/lsp/AsynchronousSocketLauncher.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/IDELanguageClientImpl.java b/app/src/main/java/com/itsaky/androidide/lsp/IDELanguageClientImpl.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LSP.java b/app/src/main/java/com/itsaky/androidide/lsp/LSP.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LSPClientLauncher.java b/app/src/main/java/com/itsaky/androidide/lsp/LSPClientLauncher.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LSPProvider.java b/app/src/main/java/com/itsaky/androidide/lsp/LSPProvider.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java b/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/StandardStreamsLauncher.java b/app/src/main/java/com/itsaky/androidide/lsp/StandardStreamsLauncher.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/TokenModifiers.java b/app/src/main/java/com/itsaky/androidide/lsp/TokenModifiers.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/TokenType.java b/app/src/main/java/com/itsaky/androidide/lsp/TokenType.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java b/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/handlers/LSPHandler.java b/app/src/main/java/com/itsaky/androidide/lsp/handlers/LSPHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/lsp/providers/CodeActionProvider.java b/app/src/main/java/com/itsaky/androidide/lsp/providers/CodeActionProvider.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/ApkMetadata.java b/app/src/main/java/com/itsaky/androidide/models/ApkMetadata.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/DiagnosticGroup.java b/app/src/main/java/com/itsaky/androidide/models/DiagnosticGroup.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/IconTextListItem.java b/app/src/main/java/com/itsaky/androidide/models/IconTextListItem.java new file mode 100755 index 000000000..fe394aff8 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/IconTextListItem.java @@ -0,0 +1,26 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models; + +public interface IconTextListItem { + + String getText (); + + int getIconResource (); + +} diff --git a/app/src/main/java/com/itsaky/androidide/models/License.java b/app/src/main/java/com/itsaky/androidide/models/License.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/LogLine.java b/app/src/main/java/com/itsaky/androidide/models/LogLine.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/NewProjectDetails.java b/app/src/main/java/com/itsaky/androidide/models/NewProjectDetails.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/ProjectTemplate.java b/app/src/main/java/com/itsaky/androidide/models/ProjectTemplate.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/SearchResult.java b/app/src/main/java/com/itsaky/androidide/models/SearchResult.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/SuggestItem.java b/app/src/main/java/com/itsaky/androidide/models/SuggestItem.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/models/UIWidget.java b/app/src/main/java/com/itsaky/androidide/models/UIWidget.java new file mode 100755 index 000000000..ad9b1b84d --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/UIWidget.java @@ -0,0 +1,87 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models; + +import androidx.annotation.DrawableRes; + +import java.util.Objects; + +/** + * Holds data about the widget item in widgets list shown in + * UI Designer screen. + * + * @author Akash Yadav + */ +public class UIWidget implements IconTextListItem { + + private final String name; + private final int icon; + + private final String clazz; + + public UIWidget(String name, @DrawableRes int icon, Class clazz) { + this.name = name; + this.icon = icon; + this.clazz = clazz.getName(); + } + + public String getName() { + return name; + } + + public int getIcon() { + return icon; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UIWidget widget = (UIWidget) o; + return getIcon() == widget.getIcon() && getName().equals(widget.getName()) && clazz.equals(widget.clazz); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getIcon(), clazz); + } + + /** + * Get the class of this widget. + * @return The class that this widget represents + * @throws ClassNotFoundException If there is no class with this widget's class name. + * However, this will never be thrown. + */ + public Class asClass () throws ClassNotFoundException { + return getClass().getClassLoader().loadClass(this.clazz); + } + + public String getWidgetClassName () { + return this.clazz; + } + + @Override + public String getText() { + return getName(); + } + + @Override + public int getIconResource() { + return getIcon(); + } +} diff --git a/app/src/main/java/com/itsaky/androidide/models/UIWidgetGroup.java b/app/src/main/java/com/itsaky/androidide/models/UIWidgetGroup.java new file mode 100755 index 000000000..6c76fa92e --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/UIWidgetGroup.java @@ -0,0 +1,128 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models; + +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Model class for holding data about a group that will be displayed + * in Widgets list in UI Designer screen. + * + * A UIWidgetGroup contains multiple {@link UIWidget}. + * + * @author Akash Yadav + */ +public class UIWidgetGroup implements IconTextListItem { + + /** + * Name of this group. + */ + private final String name; + + /** + * Children of this group. + */ + private final List children; + + /** + * Is this group currently selected in the group list? + */ + private boolean selected; + + public UIWidgetGroup(String name) { + this.name = name; + this.selected = false; + this.children = new ArrayList<>(); + } + + /** + * Get the name of this group. + * @return The name of this group. + */ + public String getName() { + return name; + } + + /** + * Get the children of this group. + * @return The children. + */ + @NonNull + public List getChildren() { + return children; + } + + public void setSelected(boolean selected) { + this.selected = selected; + } + + public boolean isSelected() { + return selected; + } + + /** + * Add this widget to this group. Does nothing if the child is already present. + * @param child The child to add. + * @return This instance for chained method calls. + */ + public UIWidgetGroup addChild (UIWidget child) { + if (children.contains(child)) { + return this; + } + this.children.add(child); + return this; + } + + /** + * Get the child at the given index. + * @param index The index of the child. + * @return The child at the index. + * @throws IndexOutOfBoundsException If the given index is not valid. + */ + public UIWidget getChild (int index ){ + return children.get(index); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UIWidgetGroup group = (UIWidgetGroup) o; + return isSelected() == group.isSelected() && getName().equals(group.getName()) && getChildren().equals(group.getChildren()); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getChildren(), isSelected()); + } + + @Override + public String getText() { + return getName(); + } + + @Override + public int getIconResource() { + return -1; + } +} diff --git a/app/src/main/java/com/itsaky/androidide/project/AndroidProject.java b/app/src/main/java/com/itsaky/androidide/project/AndroidProject.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/project/IDEModule.java b/app/src/main/java/com/itsaky/androidide/project/IDEModule.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/project/IDEProject.java b/app/src/main/java/com/itsaky/androidide/project/IDEProject.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/project/IDETask.java b/app/src/main/java/com/itsaky/androidide/project/IDETask.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/project/ProjectResourceFinder.java b/app/src/main/java/com/itsaky/androidide/project/ProjectResourceFinder.java old mode 100644 new mode 100755 index b522ef55b..2a018a560 --- a/app/src/main/java/com/itsaky/androidide/project/ProjectResourceFinder.java +++ b/app/src/main/java/com/itsaky/androidide/project/ProjectResourceFinder.java @@ -1,116 +1,116 @@ -/************************************************************************************ - * This file is part of AndroidIDE. - * - * AndroidIDE is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * AndroidIDE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AndroidIDE. If not, see . - * -**************************************************************************************/ -package com.itsaky.androidide.project; - -import com.itsaky.layoutinflater.IResourceFinder; -import java.io.File; -import java.io.FileFilter; - -public class ProjectResourceFinder implements IResourceFinder { - - private File resDir; - private File color; - private File layout; - private File values; - - private File[] drawables; - private File[] mipmaps; - - @Override - public File inflateDrawable(String name) { - for (File drawable : drawables) { - final File file = findFileWithName(drawable.listFiles(), name); - if (file != null) { - return file; - } - } - return null; - } - - @Override - public File inflateLayout(String name) { - return findFileWithName(this.layout.listFiles(), name); - } - - @Override - public String findString(String name) { - return null; - } - - @Override - public String findColor(String name) { - return null; - } - - @Override - public String[] findArray(String name) { - return null; - } - - @Override - public String findDimension(String name) { - return null; - } - - @Override - public void setInflatingFile(File file) { - setupDirectories(file.getParentFile().getParentFile()); - } - - private void setupDirectories (File resDir) { - this.resDir = resDir; - this.color = new File (resDir, "color"); - this.layout = new File (resDir, "layout"); - this.values = new File (resDir, "values"); - - final File[] drawables = resDir.listFiles(new NameStartsWith ("drawable")); - this.drawables = drawables == null ? new File [0] : drawables; - - final File[] mipmaps = resDir.listFiles(new NameStartsWith ("mipmap")); - this.mipmaps = mipmaps == null ? new File [0] : mipmaps; - } - - private File findFileWithName (File[] files, String name) { - for (File file : files) { - String simpleName = file.getName(); - if (simpleName.contains(".")) { - simpleName = simpleName.substring(simpleName.lastIndexOf(".") + 1); - } - - if (simpleName.equals(name)) { - return file; - } - } - - return null; - } - - private class NameStartsWith implements FileFilter { - - private final String name; - - public NameStartsWith(String name) { - this.name = name; - } - - @Override - public boolean accept(File file) { - return file.getName().startsWith(name); - } - }; -} +/************************************************************************************ + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + * +**************************************************************************************/ +package com.itsaky.androidide.project; + +import com.itsaky.layoutinflater.IResourceFinder; +import java.io.File; +import java.io.FileFilter; + +public class ProjectResourceFinder implements IResourceFinder { + + private File resDir; + private File color; + private File layout; + private File values; + + private File[] drawables; + private File[] mipmaps; + + @Override + public File inflateDrawable(String name) { + for (File drawable : drawables) { + final File file = findFileWithName(drawable.listFiles(), name); + if (file != null) { + return file; + } + } + return null; + } + + @Override + public File inflateLayout(String name) { + return findFileWithName(this.layout.listFiles(), name); + } + + @Override + public String findString(String name) { + return null; + } + + @Override + public String findColor(String name) { + return null; + } + + @Override + public String[] findArray(String name) { + return null; + } + + @Override + public String findDimension(String name) { + return null; + } + + @Override + public void setInflatingFile(File file) { + setupDirectories(file.getParentFile().getParentFile()); + } + + private void setupDirectories (File resDir) { + this.resDir = resDir; + this.color = new File (resDir, "color"); + this.layout = new File (resDir, "layout"); + this.values = new File (resDir, "values"); + + final File[] drawables = resDir.listFiles(new NameStartsWith ("drawable")); + this.drawables = drawables == null ? new File [0] : drawables; + + final File[] mipmaps = resDir.listFiles(new NameStartsWith ("mipmap")); + this.mipmaps = mipmaps == null ? new File [0] : mipmaps; + } + + private File findFileWithName (File[] files, String name) { + for (File file : files) { + String simpleName = file.getName(); + if (simpleName.contains(".")) { + simpleName = simpleName.substring(simpleName.lastIndexOf(".") + 1); + } + + if (simpleName.equals(name)) { + return file; + } + } + + return null; + } + + private class NameStartsWith implements FileFilter { + + private final String name; + + public NameStartsWith(String name) { + this.name = name; + } + + @Override + public boolean accept(File file) { + return file.getName().startsWith(name); + } + }; +} diff --git a/app/src/main/java/com/itsaky/androidide/services/Jar2DexService.java b/app/src/main/java/com/itsaky/androidide/services/Jar2DexService.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/services/LogReceiver.java b/app/src/main/java/com/itsaky/androidide/services/LogReceiver.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/services/MessagingService.java b/app/src/main/java/com/itsaky/androidide/services/MessagingService.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/services/builder/BuildListener.java b/app/src/main/java/com/itsaky/androidide/services/builder/BuildListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/services/builder/IDEService.java b/app/src/main/java/com/itsaky/androidide/services/builder/IDEService.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/services/builder/MainThreadBuildListener.java b/app/src/main/java/com/itsaky/androidide/services/builder/MainThreadBuildListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/colorschemes/SchemeAndroidIDE.java b/app/src/main/java/com/itsaky/androidide/syntax/colorschemes/SchemeAndroidIDE.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/colorschemes/SchemeWombat.java b/app/src/main/java/com/itsaky/androidide/syntax/colorschemes/SchemeWombat.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/DefaultLexer.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/DefaultLexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/Lexer.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/Lexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/highlighters/Highlighter.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/highlighters/Highlighter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/highlighters/JavaHighlighter.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/highlighters/JavaHighlighter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/BaseJavaLexer.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/BaseJavaLexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/groovy/GroovyLexerImpl.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/groovy/GroovyLexerImpl.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/tokens/Token.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/tokens/Token.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/tokens/TokenType.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/tokens/TokenType.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/BaseGradleTask.java b/app/src/main/java/com/itsaky/androidide/tasks/BaseGradleTask.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/GradleTask.java b/app/src/main/java/com/itsaky/androidide/tasks/GradleTask.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/TaskExecutor.java b/app/src/main/java/com/itsaky/androidide/tasks/TaskExecutor.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/LicenseReader.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/LicenseReader.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/ListDirectoryCallable.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/ListDirectoryCallable.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/ProjectCreatorCallable.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/ProjectCreatorCallable.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/ReadFileTask.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/ReadFileTask.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/UnzipCallable.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/UnzipCallable.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/BaseGradleTasks.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/BaseGradleTasks.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/AssembleDebug.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/AssembleDebug.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/AssembleRelease.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/AssembleRelease.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Build.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Build.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Bundle.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Bundle.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Clean.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/Clean.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/CleanBuild.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/build/CleanBuild.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/Lint.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/Lint.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/LintDebug.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/LintDebug.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/LintRelease.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/lint/LintRelease.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/plugin/InitializeIDEProject.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/plugin/InitializeIDEProject.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/DatabindingGenBaseClassesDebug.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/DatabindingGenBaseClassesDebug.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/ProcessDebugResources.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/ProcessDebugResources.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/UpdateResourceClassesTask.java b/app/src/main/java/com/itsaky/androidide/tasks/gradle/resources/UpdateResourceClassesTask.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/ClassBuilder.java b/app/src/main/java/com/itsaky/androidide/utils/ClassBuilder.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/JSONUtility.java b/app/src/main/java/com/itsaky/androidide/utils/JSONUtility.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java b/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/ProjectFinder.java b/app/src/main/java/com/itsaky/androidide/utils/ProjectFinder.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/ProjectWriter.java b/app/src/main/java/com/itsaky/androidide/utils/ProjectWriter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/RecursiveFileSearcher.java b/app/src/main/java/com/itsaky/androidide/utils/RecursiveFileSearcher.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/RuntimeTypeAdapterFactory.java b/app/src/main/java/com/itsaky/androidide/utils/RuntimeTypeAdapterFactory.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/Symbols.java b/app/src/main/java/com/itsaky/androidide/utils/Symbols.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/utils/TransformUtils.java b/app/src/main/java/com/itsaky/androidide/utils/TransformUtils.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/Editor.java b/app/src/main/java/com/itsaky/androidide/views/Editor.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/EmptyView.java b/app/src/main/java/com/itsaky/androidide/views/EmptyView.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/MaterialBanner.java b/app/src/main/java/com/itsaky/androidide/views/MaterialBanner.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/NonSwipableViewPager.java b/app/src/main/java/com/itsaky/androidide/views/NonSwipableViewPager.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/SymbolInputView.java b/app/src/main/java/com/itsaky/androidide/views/SymbolInputView.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/TooltipLayout.java b/app/src/main/java/com/itsaky/androidide/views/TooltipLayout.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/VerticalViewPager.java b/app/src/main/java/com/itsaky/androidide/views/VerticalViewPager.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/transition/ArcMotionPlus.java b/app/src/main/java/com/itsaky/androidide/views/transition/ArcMotionPlus.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/transition/CubicBezierArc.java b/app/src/main/java/com/itsaky/androidide/views/transition/CubicBezierArc.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/itsaky/androidide/views/transition/ProgressTransition.java b/app/src/main/java/com/itsaky/androidide/views/transition/ProgressTransition.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/annotations/Experimental.java b/app/src/main/java/io/github/rosemoe/editor/annotations/Experimental.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/interfaces/AutoCompleteProvider.java b/app/src/main/java/io/github/rosemoe/editor/interfaces/AutoCompleteProvider.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/interfaces/CodeAnalyzer.java b/app/src/main/java/io/github/rosemoe/editor/interfaces/CodeAnalyzer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/interfaces/EditorEventListener.java b/app/src/main/java/io/github/rosemoe/editor/interfaces/EditorEventListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/interfaces/EditorLanguage.java b/app/src/main/java/io/github/rosemoe/editor/interfaces/EditorLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/interfaces/NewlineHandler.java b/app/src/main/java/io/github/rosemoe/editor/interfaces/NewlineHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/langs/AbstractCodeAnalyzer.java b/app/src/main/java/io/github/rosemoe/editor/langs/AbstractCodeAnalyzer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/langs/AbstractEditorLanguage.java b/app/src/main/java/io/github/rosemoe/editor/langs/AbstractEditorLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/langs/EmptyLanguage.java b/app/src/main/java/io/github/rosemoe/editor/langs/EmptyLanguage.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/struct/BlockLine.java b/app/src/main/java/io/github/rosemoe/editor/struct/BlockLine.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/struct/NavigationItem.java b/app/src/main/java/io/github/rosemoe/editor/struct/NavigationItem.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/struct/Span.java b/app/src/main/java/io/github/rosemoe/editor/struct/Span.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/CachedIndexer.java b/app/src/main/java/io/github/rosemoe/editor/text/CachedIndexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/CharPosition.java b/app/src/main/java/io/github/rosemoe/editor/text/CharPosition.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/Content.java b/app/src/main/java/io/github/rosemoe/editor/text/Content.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/ContentLine.java b/app/src/main/java/io/github/rosemoe/editor/text/ContentLine.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/ContentListener.java b/app/src/main/java/io/github/rosemoe/editor/text/ContentListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/Cursor.java b/app/src/main/java/io/github/rosemoe/editor/text/Cursor.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/FontCache.java b/app/src/main/java/io/github/rosemoe/editor/text/FontCache.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/FormatThread.java b/app/src/main/java/io/github/rosemoe/editor/text/FormatThread.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/Indexer.java b/app/src/main/java/io/github/rosemoe/editor/text/Indexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/LineNumberCalculator.java b/app/src/main/java/io/github/rosemoe/editor/text/LineNumberCalculator.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/LineRemoveListener.java b/app/src/main/java/io/github/rosemoe/editor/text/LineRemoveListener.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/NoCacheIndexer.java b/app/src/main/java/io/github/rosemoe/editor/text/NoCacheIndexer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/ObjectAllocator.java b/app/src/main/java/io/github/rosemoe/editor/text/ObjectAllocator.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/SpanMapUpdater.java b/app/src/main/java/io/github/rosemoe/editor/text/SpanMapUpdater.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/SpanRecycler.java b/app/src/main/java/io/github/rosemoe/editor/text/SpanRecycler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java b/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzer.java b/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzer.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/TextUtils.java b/app/src/main/java/io/github/rosemoe/editor/text/TextUtils.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/text/UndoManager.java b/app/src/main/java/io/github/rosemoe/editor/text/UndoManager.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/util/BinaryHeap.java b/app/src/main/java/io/github/rosemoe/editor/util/BinaryHeap.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/util/IntPair.java b/app/src/main/java/io/github/rosemoe/editor/util/IntPair.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/util/LongArrayList.java b/app/src/main/java/io/github/rosemoe/editor/util/LongArrayList.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/util/Objects.java b/app/src/main/java/io/github/rosemoe/editor/util/Objects.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/AbstractLayout.java b/app/src/main/java/io/github/rosemoe/editor/widget/AbstractLayout.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java b/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/CursorBlink.java b/app/src/main/java/io/github/rosemoe/editor/widget/CursorBlink.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/DefaultCompletionItemAdapter.java b/app/src/main/java/io/github/rosemoe/editor/widget/DefaultCompletionItemAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorAutoCompleteWindow.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorAutoCompleteWindow.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorBasePopupWindow.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorBasePopupWindow.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorColorScheme.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorColorScheme.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorCompletionAdapter.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorCompletionAdapter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorInputConnection.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorInputConnection.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorSearcher.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorSearcher.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorTextActionModeStarter.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorTextActionModeStarter.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorTextActionWindow.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorTextActionWindow.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/EditorTouchEventHandler.java b/app/src/main/java/io/github/rosemoe/editor/widget/EditorTouchEventHandler.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/KeyMetaStates.java b/app/src/main/java/io/github/rosemoe/editor/widget/KeyMetaStates.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/Layout.java b/app/src/main/java/io/github/rosemoe/editor/widget/Layout.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/LineBreakLayout.java b/app/src/main/java/io/github/rosemoe/editor/widget/LineBreakLayout.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/MaterialEdgeEffect.java b/app/src/main/java/io/github/rosemoe/editor/widget/MaterialEdgeEffect.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/Row.java b/app/src/main/java/io/github/rosemoe/editor/widget/Row.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/RowIterator.java b/app/src/main/java/io/github/rosemoe/editor/widget/RowIterator.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/SymbolChannel.java b/app/src/main/java/io/github/rosemoe/editor/widget/SymbolChannel.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/SymbolPairMatch.java b/app/src/main/java/io/github/rosemoe/editor/widget/SymbolPairMatch.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/TextActionPopupWindow.java b/app/src/main/java/io/github/rosemoe/editor/widget/TextActionPopupWindow.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/TextComposeBasePopup.java b/app/src/main/java/io/github/rosemoe/editor/widget/TextComposeBasePopup.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/WordwrapLayout.java b/app/src/main/java/io/github/rosemoe/editor/widget/WordwrapLayout.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeDarcula.java b/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeDarcula.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeEclipse.java b/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeEclipse.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeGitHub.java b/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeGitHub.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeNotepadXX.java b/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeNotepadXX.java old mode 100644 new mode 100755 diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeVS2019.java b/app/src/main/java/io/github/rosemoe/editor/widget/schemes/SchemeVS2019.java old mode 100644 new mode 100755 diff --git a/app/src/main/res/anim/popup_in.xml b/app/src/main/res/anim/popup_in.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/anim/popup_out.xml b/app/src/main/res/anim/popup_out.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/animator/dialog_in.xml b/app/src/main/res/animator/dialog_in.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/animator/dialog_out.xml b/app/src/main/res/animator/dialog_out.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/color/widget_group_background.xml b/app/src/main/res/color/widget_group_background.xml new file mode 100755 index 000000000..3b5f110ec --- /dev/null +++ b/app/src/main/res/color/widget_group_background.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/ic_launcher_background.png b/app/src/main/res/drawable-hdpi/ic_launcher_background.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_launcher_background.png b/app/src/main/res/drawable-mdpi/ic_launcher_background.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_widget_progress.xml b/app/src/main/res/drawable-mdpi/ic_widget_progress.xml new file mode 100755 index 000000000..3062e2fce --- /dev/null +++ b/app/src/main/res/drawable-mdpi/ic_widget_progress.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher_background.png b/app/src/main/res/drawable-xhdpi/ic_launcher_background.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png b/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png b/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/template_basic.png b/app/src/main/res/drawable-xxxhdpi/template_basic.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/template_empty.png b/app/src/main/res/drawable-xxxhdpi/template_empty.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/template_kotlin.png b/app/src/main/res/drawable-xxxhdpi/template_kotlin.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/template_navigation_drawer.jpg b/app/src/main/res/drawable-xxxhdpi/template_navigation_drawer.jpg old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/bg_ripple.xml b/app/src/main/res/drawable/bg_ripple.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/bg_ripple_disabled.xml b/app/src/main/res/drawable/bg_ripple_disabled.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/bg_ripple_pressed.xml b/app/src/main/res/drawable/bg_ripple_pressed.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/bg_shadow.xml b/app/src/main/res/drawable/bg_shadow.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/bg_widget_group_selected.xml b/app/src/main/res/drawable/bg_widget_group_selected.xml new file mode 100755 index 000000000..af4d526c9 --- /dev/null +++ b/app/src/main/res/drawable/bg_widget_group_selected.xml @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add.xml b/app/src/main/res/drawable/ic_add.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_android.xml b/app/src/main/res/drawable/ic_android.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_bash_commands.xml b/app/src/main/res/drawable/ic_bash_commands.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_bug.xml b/app/src/main/res/drawable/ic_bug.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_build_output.xml b/app/src/main/res/drawable/ic_build_output.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_bundle.xml b/app/src/main/res/drawable/ic_bundle.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_chevron_down.xml b/app/src/main/res/drawable/ic_chevron_down.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_chevron_left.xml b/app/src/main/res/drawable/ic_chevron_left.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_chevron_right.xml b/app/src/main/res/drawable/ic_chevron_right.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_clean.xml b/app/src/main/res/drawable/ic_clean.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_clear.xml b/app/src/main/res/drawable/ic_clear.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_close_all.xml b/app/src/main/res/drawable/ic_close_all.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_close_others.xml b/app/src/main/res/drawable/ic_close_others.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_close_this.xml b/app/src/main/res/drawable/ic_close_this.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_code.xml b/app/src/main/res/drawable/ic_code.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_comment_line.xml b/app/src/main/res/drawable/ic_comment_line.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_compilation_error.xml b/app/src/main/res/drawable/ic_compilation_error.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_diagnostics.xml b/app/src/main/res/drawable/ic_diagnostics.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_drawing.xml b/app/src/main/res/drawable/ic_drawing.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_email.xml b/app/src/main/res/drawable/ic_email.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_file_copy_path.xml b/app/src/main/res/drawable/ic_file_copy_path.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_file_delete.xml b/app/src/main/res/drawable/ic_file_delete.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_file_rename.xml b/app/src/main/res/drawable/ic_file_rename.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_file_unknown.xml b/app/src/main/res/drawable/ic_file_unknown.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_filetype_activity.xml b/app/src/main/res/drawable/ic_filetype_activity.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_filetype_enum.xml b/app/src/main/res/drawable/ic_filetype_enum.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_filetype_interface.xml b/app/src/main/res/drawable/ic_filetype_interface.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_filter.xml b/app/src/main/res/drawable/ic_filter.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_find_references.xml b/app/src/main/res/drawable/ic_find_references.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_folder.xml b/app/src/main/res/drawable/ic_folder.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_goto_definition.xml b/app/src/main/res/drawable/ic_goto_definition.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_hexadecimal.xml b/app/src/main/res/drawable/ic_hexadecimal.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_info.xml b/app/src/main/res/drawable/ic_info.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_install.xml b/app/src/main/res/drawable/ic_install.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_language_gradle.xml b/app/src/main/res/drawable/ic_language_gradle.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_language_java.xml b/app/src/main/res/drawable/ic_language_java.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_language_json.xml b/app/src/main/res/drawable/ic_language_json.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_language_kotlin.xml b/app/src/main/res/drawable/ic_language_kotlin.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_language_xml.xml b/app/src/main/res/drawable/ic_language_xml.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_lint.xml b/app/src/main/res/drawable/ic_lint.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_log.xml b/app/src/main/res/drawable/ic_log.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_min_sdk.xml b/app/src/main/res/drawable/ic_min_sdk.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_more_vert_black_20dp.xml b/app/src/main/res/drawable/ic_more_vert_black_20dp.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_new_file.xml b/app/src/main/res/drawable/ic_new_file.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_new_folder.xml b/app/src/main/res/drawable/ic_new_folder.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_open_project.xml b/app/src/main/res/drawable/ic_open_project.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_package.xml b/app/src/main/res/drawable/ic_package.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_preview_layout.xml b/app/src/main/res/drawable/ic_preview_layout.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_rebuild.xml b/app/src/main/res/drawable/ic_rebuild.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_redo.xml b/app/src/main/res/drawable/ic_redo.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_replace.xml b/app/src/main/res/drawable/ic_replace.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_run.xml b/app/src/main/res/drawable/ic_run.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_run_debug.xml b/app/src/main/res/drawable/ic_run_debug.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_run_outline.xml b/app/src/main/res/drawable/ic_run_outline.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_run_release.xml b/app/src/main/res/drawable/ic_run_release.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_save.xml b/app/src/main/res/drawable/ic_save.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search_file.xml b/app/src/main/res/drawable/ic_search_file.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search_last.xml b/app/src/main/res/drawable/ic_search_last.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search_next.xml b/app/src/main/res/drawable/ic_search_next.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search_project.xml b/app/src/main/res/drawable/ic_search_project.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_search_replace.xml b/app/src/main/res/drawable/ic_search_replace.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_stop_daemons.xml b/app/src/main/res/drawable/ic_stop_daemons.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_sync.xml b/app/src/main/res/drawable/ic_sync.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_tab.xml b/app/src/main/res/drawable/ic_tab.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_target_sdk.xml b/app/src/main/res/drawable/ic_target_sdk.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_telegram.xml b/app/src/main/res/drawable/ic_telegram.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_terminal.xml b/app/src/main/res/drawable/ic_terminal.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_text_size.xml b/app/src/main/res/drawable/ic_text_size.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_uncomment_line.xml b/app/src/main/res/drawable/ic_uncomment_line.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_undo.xml b/app/src/main/res/drawable/ic_undo.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_view.xml b/app/src/main/res/drawable/ic_view.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_website.xml b/app/src/main/res/drawable/ic_website.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_widget_button.xml b/app/src/main/res/drawable/ic_widget_button.xml new file mode 100755 index 000000000..6f92f63e4 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_button.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_checkbox.xml b/app/src/main/res/drawable/ic_widget_checkbox.xml new file mode 100755 index 000000000..298bc37e8 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_checkbox.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_checked_textview.xml b/app/src/main/res/drawable/ic_widget_checked_textview.xml new file mode 100755 index 000000000..e24b9835c --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_checked_textview.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_edittext.xml b/app/src/main/res/drawable/ic_widget_edittext.xml new file mode 100755 index 000000000..5034d67b1 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_edittext.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_widget_image.xml b/app/src/main/res/drawable/ic_widget_image.xml new file mode 100755 index 000000000..d35859dd5 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_image.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_linear.xml b/app/src/main/res/drawable/ic_widget_linear.xml new file mode 100755 index 000000000..3528e4326 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_linear.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_radio_button.xml b/app/src/main/res/drawable/ic_widget_radio_button.xml new file mode 100755 index 000000000..3937722fa --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_radio_button.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_relative.xml b/app/src/main/res/drawable/ic_widget_relative.xml new file mode 100755 index 000000000..aee41f887 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_relative.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_seekbar.xml b/app/src/main/res/drawable/ic_widget_seekbar.xml new file mode 100755 index 000000000..1b0c1cdc7 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_seekbar.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_widget_spinner.xml b/app/src/main/res/drawable/ic_widget_spinner.xml new file mode 100755 index 000000000..3dbfedba2 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_spinner.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_widget_textview.xml b/app/src/main/res/drawable/ic_widget_textview.xml new file mode 100755 index 000000000..fb98d9932 --- /dev/null +++ b/app/src/main/res/drawable/ic_widget_textview.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/round_content_copy_20.xml b/app/src/main/res/drawable/round_content_copy_20.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/round_content_cut_20.xml b/app/src/main/res/drawable/round_content_cut_20.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/round_content_paste_20.xml b/app/src/main/res/drawable/round_content_paste_20.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/round_select_all_20.xml b/app/src/main/res/drawable/round_select_all_20.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/font/josefin_sans.ttf b/app/src/main/res/font/josefin_sans.ttf old mode 100644 new mode 100755 diff --git a/app/src/main/res/font/quicksand.ttf b/app/src/main/res/font/quicksand.ttf old mode 100644 new mode 100755 diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/layout/activity_designer.xml b/app/src/main/res/layout/activity_designer.xml old mode 100644 new mode 100755 index 180925999..f4df3e218 --- a/app/src/main/res/layout/activity_designer.xml +++ b/app/src/main/res/layout/activity_designer.xml @@ -1,35 +1,99 @@ - + android:layout_height="match_parent" + android:animateLayoutChanges="true" + tools:context=".DesignerActivity" + tools:openDrawer="start"> - - - + + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimaryDark" + android:gravity="center" + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$Behavior"> - + - + + + + + + + + + + - - - - + android:layout_gravity="start" + android:fitsSystemWindows="true"> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/activity_download.xml old mode 100644 new mode 100755 diff --git a/app/src/main/res/layout/activity_editor.xml b/app/src/main/res/layout/activity_editor.xml old mode 100644 new mode 100755 index 1290844ca..6cf523862 --- a/app/src/main/res/layout/activity_editor.xml +++ b/app/src/main/res/layout/activity_editor.xml @@ -6,7 +6,8 @@ android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/editor_drawerLayout" - android:animateLayoutChanges="true"> + android:animateLayoutChanges="true" + tools:openDrawer="start"> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/layout_create_project_content.xml b/app/src/main/res/layout/layout_create_project_content.xml old mode 100644 new mode 100755 index 5feffc11e..cbde071d3 --- a/app/src/main/res/layout/layout_create_project_content.xml +++ b/app/src/main/res/layout/layout_create_project_content.xml @@ -1,223 +1,223 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -