() {
- @Override
- public SavedState createFromParcel(Parcel in) {
- return new SavedState(in);
- }
-
- @Override
- public SavedState[] newArray(int size) {
- return new SavedState[size];
- }
- };
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/viewpagerindicator/PageIndicator.java b/app/src/main/java/com/smartpack/scriptmanager/viewpagerindicator/PageIndicator.java
deleted file mode 100644
index 7c98c63..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/viewpagerindicator/PageIndicator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2011 Patrik Akerfeldt
- * Copyright (C) 2011 Jake Wharton
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.smartpack.scriptmanager.viewpagerindicator;
-
-import androidx.viewpager.widget.ViewPager;
-
-/**
- * A PageIndicator is responsible to show an visual indicator on the total views
- * number and the current visible view.
- */
-public interface PageIndicator extends ViewPager.OnPageChangeListener {
- /**
- * Bind the indicator to a ViewPager.
- *
- * @param view
- */
- void setViewPager(ViewPager view);
-
- /**
- * Bind the indicator to a ViewPager.
- *
- * @param view
- * @param initialPosition
- */
- void setViewPager(ViewPager view, int initialPosition);
-
- /**
- * Set the current page of both the ViewPager and indicator.
- *
- * This must be used if you need to set the page before
- * the views are drawn on screen (e.g., default start page).
- *
- * @param item
- */
- void setCurrentItem(int item);
-
- /**
- * Set a page change listener which will receive forwarded events.
- *
- * @param listener
- */
- void setOnPageChangeListener(ViewPager.OnPageChangeListener listener);
-
- /**
- * Notify the indicator that the fragment list has changed.
- */
- void notifyDataSetChanged();
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/BorderCircleView.java b/app/src/main/java/com/smartpack/scriptmanager/views/BorderCircleView.java
deleted file mode 100644
index 6ce298f..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/BorderCircleView.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package com.smartpack.scriptmanager.views;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.util.SparseArray;
-import android.widget.FrameLayout;
-
-import androidx.core.content.ContextCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
-
-import com.smartpack.scriptmanager.R;
-import com.smartpack.scriptmanager.utils.ViewUtils;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public class BorderCircleView extends FrameLayout {
-
- private final Drawable mCheck;
- private final Paint mPaint;
- private final Paint mPaintBorder;
-
- public BorderCircleView(Context context) {
- this(context, null);
- }
-
- public BorderCircleView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public BorderCircleView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
-
- if (isClickable()) {
- setForeground(ViewUtils.getSelectableBackground(context));
- }
- mCheck = ContextCompat.getDrawable(context, R.drawable.ic_done);
- DrawableCompat.setTint(mCheck, Color.WHITE);
-
- mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- mPaint.setColor(ViewUtils.getThemeAccentColor(context));
-
- mPaintBorder = new Paint(Paint.ANTI_ALIAS_FLAG);
- mPaintBorder.setColor(ViewUtils.getColorPrimaryColor(context));
- mPaintBorder.setStrokeWidth((int) getResources().getDimension(R.dimen.circleview_border));
- mPaintBorder.setStyle(Paint.Style.STROKE);
-
- setWillNotDraw(false);
- }
-
- @Override
- public void setBackgroundColor(int color) {
- mPaint.setColor(color);
- invalidate();
- }
-
- @Override
- public void draw(Canvas canvas) {
- super.draw(canvas);
-
- int width = getMeasuredWidth();
- int height = getMeasuredHeight();
-
- float radius = Math.min(width, height) / 2f - 4f;
-
- canvas.drawCircle(width / 2, height / 2, radius, mPaint);
- canvas.drawCircle(width / 2, height / 2, radius, mPaintBorder);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
- float desiredWidth = getResources().getDimension(R.dimen.circleview_width);
- float desiredHeight = getResources().getDimension(R.dimen.circleview_height);
-
- int widthMode = MeasureSpec.getMode(widthMeasureSpec);
- int widthSize = MeasureSpec.getSize(widthMeasureSpec);
- int heightMode = MeasureSpec.getMode(heightMeasureSpec);
- int heightSize = MeasureSpec.getSize(heightMeasureSpec);
-
- float width;
- float height;
-
- if (widthMode == MeasureSpec.EXACTLY) width = widthSize;
- else if (widthMode == MeasureSpec.AT_MOST) width = Math.min(desiredWidth, widthSize);
- else width = desiredWidth;
-
- if (heightMode == MeasureSpec.EXACTLY) height = heightSize;
- else if (heightMode == MeasureSpec.AT_MOST) height = Math.min(desiredHeight, heightSize);
- else height = desiredHeight;
-
- setMeasuredDimension((int) width, (int) height);
- }
-}
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/dialog/Dialog.java b/app/src/main/java/com/smartpack/scriptmanager/views/dialog/Dialog.java
deleted file mode 100644
index 77fdb62..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/dialog/Dialog.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.smartpack.scriptmanager.views.dialog;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.database.Cursor;
-import android.content.DialogInterface;
-import android.view.View;
-import android.view.WindowManager;
-
-import androidx.annotation.NonNull;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public class Dialog extends AlertDialog.Builder {
-
- private DialogInterface.OnDismissListener mOnDismissListener;
-
- public Dialog(@NonNull Context context) {
- super(context);
- }
-
- @Override
- public Dialog setTitle(CharSequence title) {
- return (Dialog) super.setTitle(title);
- }
-
- @Override
- public Dialog setTitle(int titleId) {
- return (Dialog) super.setTitle(titleId);
- }
-
- @Override
- public Dialog setMessage(CharSequence message) {
- return (Dialog) super.setMessage(message);
- }
-
- @Override
- public Dialog setMessage(int messageId) {
- return (Dialog) super.setMessage(messageId);
- }
-
- @Override
- public Dialog setView(int layoutResId) {
- return (Dialog) super.setView(layoutResId);
- }
-
- @Override
- public Dialog setView(View view) {
- return (Dialog) super.setView(view);
- }
-
- @Override
- public Dialog setItems(CharSequence[] items, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setItems(items, listener);
- }
-
- @Override
- public Dialog setItems(int itemsId, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setItems(itemsId, listener);
- }
-
- @Override
- public Dialog setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setPositiveButton(text, listener);
- }
-
- @Override
- public Dialog setPositiveButton(int textId, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setPositiveButton(textId, listener);
- }
-
- @Override
- public Dialog setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setNegativeButton(text, listener);
- }
-
- @Override
- public Dialog setNegativeButton(int textId, DialogInterface.OnClickListener listener) {
- return (Dialog) super.setNegativeButton(textId, listener);
- }
-
- @Override
- public Dialog setMultiChoiceItems(int itemsId, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener){
- return (Dialog) super.setMultiChoiceItems(itemsId, checkedItems, listener);
- }
-
- @Override
- public Dialog setMultiChoiceItems(Cursor cursor, String isCheckedColumn, String labelColumn, DialogInterface.OnMultiChoiceClickListener listener){
- return (Dialog) super.setMultiChoiceItems(cursor, isCheckedColumn, labelColumn, listener);
- }
-
- @Override
- public Dialog
- setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener){
- return (Dialog) super.setMultiChoiceItems(items, checkedItems, listener);
- }
-
- public Dialog setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
- mOnDismissListener = onDismissListener;
- setOnCancelListener(dialogInterface -> {
- if (mOnDismissListener != null) {
- mOnDismissListener.onDismiss(dialogInterface);
- }
- });
- return this;
- }
-
- @Override
- public AlertDialog show() {
- try {
- AlertDialog dialog = create();
- dialog.setOnDismissListener(mOnDismissListener);
- dialog.show();
- return dialog;
- } catch (WindowManager.BadTokenException ignored) {
- return create();
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/dialog/ViewPagerDialog.java b/app/src/main/java/com/smartpack/scriptmanager/views/dialog/ViewPagerDialog.java
deleted file mode 100644
index 2737e17..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/dialog/ViewPagerDialog.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.smartpack.scriptmanager.views.dialog;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.Fragment;
-import androidx.viewpager.widget.ViewPager;
-
-import com.smartpack.scriptmanager.R;
-import com.smartpack.scriptmanager.fragments.RecyclerViewFragment;
-import com.smartpack.scriptmanager.viewpagerindicator.CirclePageIndicator;
-
-import java.util.List;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public class ViewPagerDialog extends DialogFragment {
-
- public static ViewPagerDialog newInstance(int height, List fragments) {
- ViewPagerDialog fragment = new ViewPagerDialog();
- fragment.mHeight = height;
- fragment.mFragments = fragments;
- return fragment;
- }
-
- private int mHeight;
- private List mFragments;
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setStyle(DialogFragment.STYLE_NO_TITLE, 0);
- }
-
- @Nullable
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.viewpager_view, container, false);
-
- ViewPager viewPager = rootView.findViewById(R.id.viewpager);
- CirclePageIndicator indicator = rootView.findViewById(R.id.indicator);
- viewPager.setAdapter(new RecyclerViewFragment.ViewPagerAdapter(getChildFragmentManager(), mFragments));
- indicator.setViewPager(viewPager);
-
- return rootView;
- }
-
- @Override
- public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver
- .OnGlobalLayoutListener() {
- public void onGlobalLayout() {
- view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
- ViewGroup.LayoutParams params = view.getLayoutParams();
- params.height = mHeight;
- view.requestLayout();
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/DescriptionView.java b/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/DescriptionView.java
deleted file mode 100644
index 4f25a74..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/DescriptionView.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.smartpack.scriptmanager.views.recyclerview;
-
-import android.graphics.drawable.Drawable;
-import android.view.View;
-
-import androidx.appcompat.widget.AppCompatImageButton;
-import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.AppCompatTextView;
-import androidx.appcompat.widget.PopupMenu;
-
-import com.smartpack.scriptmanager.R;
-import com.smartpack.scriptmanager.utils.Utils;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public class DescriptionView extends RecyclerViewItem {
-
- public interface OnMenuListener {
- void onMenuReady(DescriptionView cardView, PopupMenu popupMenu);
- }
-
- private View mRootView;
- private AppCompatImageButton mMenuIconView;
- private AppCompatImageView mImageView;
- private AppCompatTextView mTitleView;
- private AppCompatTextView mSummaryView;
-
- private Drawable mImage;
- private Drawable mMenuIcon;
- private CharSequence mTitle;
- private CharSequence mSummary;
- private PopupMenu mPopupMenu;
- private OnMenuListener mOnMenuListener;
-
- @Override
- public int getLayoutRes() {
- return R.layout.rv_description_view;
- }
-
- @Override
- public void onCreateView(View view) {
- mRootView = view;
- mImageView = view.findViewById(R.id.image);
- mTitleView = view.findViewById(R.id.title);
- mSummaryView = view.findViewById(R.id.summary);
-
- if (mTitleView != null) {
- mTitleView.setOnFocusChangeListener((v, hasFocus) -> {
- if (hasFocus) {
- mRootView.requestFocus();
- }
- });
- }
- if (mSummaryView != null) {
- mSummaryView.setOnFocusChangeListener((v, hasFocus) -> {
- if (hasFocus) {
- mRootView.requestFocus();
- }
- });
- }
-
- mMenuIconView = view.findViewById(R.id.menu_icon);
- mMenuIconView.setOnClickListener(v -> {
- if (Utils.mForegroundActive) return;
- if (mPopupMenu != null) {
- mPopupMenu.show();
- }
- });
-
- super.onCreateView(view);
- }
-
- public void setDrawable(Drawable drawable) {
- mImage = drawable;
- refresh();
- }
-
- public void setTitle(CharSequence title) {
- mTitle = title;
- refresh();
- }
-
- public void setSummary(CharSequence summary) {
- mSummary = summary;
- refresh();
- }
-
- public void setMenuIcon(Drawable menuIcon) {
- mMenuIcon = menuIcon;
- refresh();
- }
-
- public void setOnMenuListener(OnMenuListener onMenuListener) {
- mOnMenuListener = onMenuListener;
- refresh();
- }
-
- @Override
- protected void refresh() {
- super.refresh();
- if (mImageView != null && mImage != null) {
- mImageView.setImageDrawable(mImage);
- mImageView.setVisibility(View.VISIBLE);
- }
- if (mTitleView != null) {
- if (mTitle != null) {
- mTitleView.setText(mTitle);
- } else {
- mTitleView.setVisibility(View.GONE);
- }
- }
- if (mSummaryView != null) {
- if (mSummary != null) {
- mSummaryView.setText(mSummary);
- } else {
- mSummaryView.setVisibility(View.GONE);
- }
- }
- if (mMenuIconView != null && mMenuIcon != null && mOnMenuListener != null) {
- mMenuIconView.setImageDrawable(mMenuIcon);
- mMenuIconView.setVisibility(View.VISIBLE);
- mPopupMenu = new PopupMenu(mMenuIconView.getContext(), mMenuIconView);
- mOnMenuListener.onMenuReady(this, mPopupMenu);
- }
- if (mRootView != null && getOnItemClickListener() != null && mTitleView != null
- && mSummaryView != null) {
- mTitleView.setTextIsSelectable(false);
- mSummaryView.setTextIsSelectable(false);
- mRootView.setOnClickListener(v -> {
- if (getOnItemClickListener() != null) {
- getOnItemClickListener().onClick(DescriptionView.this);
- }
- });
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewAdapter.java b/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewAdapter.java
deleted file mode 100644
index ace84bc..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.smartpack.scriptmanager.views.recyclerview;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.smartpack.scriptmanager.R;
-import com.smartpack.scriptmanager.utils.Prefs;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public class RecyclerViewAdapter extends RecyclerView.Adapter {
-
- public interface OnViewChangedListener {
- void viewChanged();
- }
-
- private final List mItems;
- private final Map mViews = new HashMap<>();
- private OnViewChangedListener mOnViewChangedListener;
- private View mFirstItem;
-
- public RecyclerViewAdapter(List items, OnViewChangedListener onViewChangedListener) {
- mItems = items;
- mOnViewChangedListener = onViewChangedListener;
- }
-
- @Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
- RecyclerViewItem item = mItems.get(position);
- item.onCreateView(holder.itemView);
- }
-
- @Override
- public int getItemCount() {
- return mItems.size();
- }
-
- @Override
- @NonNull
- public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-
- RecyclerViewItem item = mItems.get(viewType);
- View view;
- if (item.cacheable()) {
- if (mViews.containsKey(item)) {
- view = mViews.get(item);
- } else {
- mViews.put(item, view = LayoutInflater.from(parent.getContext())
- .inflate(item.getLayoutRes(), parent, false));
- }
- } else {
- view = LayoutInflater.from(parent.getContext())
- .inflate(item.getLayoutRes(), parent, false);
- }
- assert view != null;
- ViewGroup viewGroup = (ViewGroup) view.getParent();
- if (viewGroup != null) {
- viewGroup.removeView(view);
- }
- if (item.cardCompatible()
- && Prefs.getBoolean("forcecards", false, view.getContext())) {
- androidx.cardview.widget.CardView cardView = new androidx.cardview.widget.CardView(view.getContext());
- cardView.setRadius(view.getResources().getDimension(R.dimen.cardview_radius));
- cardView.setCardElevation(view.getResources().getDimension(R.dimen.cardview_elevation));
- cardView.setUseCompatPadding(true);
- cardView.setFocusable(false);
- cardView.addView(view);
- view = cardView;
- }
- if (viewType == item.getLayoutRes()) {
- mFirstItem = view;
- }
- item.setOnViewChangeListener(mOnViewChangedListener);
- item.onCreateHolder();
-
- return new RecyclerView.ViewHolder(view) {
- };
- }
-
- @Override
- public int getItemViewType(int position) {
- return position;
- }
-
- public View getFirstItem() {
- return mFirstItem;
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewItem.java b/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewItem.java
deleted file mode 100644
index 25233bd..0000000
--- a/app/src/main/java/com/smartpack/scriptmanager/views/recyclerview/RecyclerViewItem.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.smartpack.scriptmanager.views.recyclerview;
-
-import android.app.Activity;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.LayoutRes;
-import androidx.recyclerview.widget.StaggeredGridLayoutManager;
-
-/**
- * Adapted from https://github.com/Grarak/KernelAdiutor by Willi Ye.
- */
-
-public abstract class RecyclerViewItem {
-
- private boolean mFullspan;
- private View mView;
-
- public interface OnItemClickListener {
- void onClick(RecyclerViewItem item);
- }
-
- private OnItemClickListener mOnItemClickListener;
-
- public void onCreateView(View view) {
- mView = view;
- fullSpan(mFullspan);
- refresh();
- }
-
- @LayoutRes
- public abstract int getLayoutRes();
-
- public void onRecyclerViewCreate(Activity activity) {
- }
-
- void onCreateHolder() {
- }
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- mOnItemClickListener = onItemClickListener;
- }
-
- OnItemClickListener getOnItemClickListener() {
- return mOnItemClickListener;
- }
-
- void setOnViewChangeListener(RecyclerViewAdapter.OnViewChangedListener onViewChangeListener) {
- }
-
- public void setFullSpan(boolean fullspan) {
- mFullspan = fullspan;
- fullSpan(fullspan);
- }
-
- private void fullSpan(boolean fullspan) {
- if (mView != null) {
- StaggeredGridLayoutManager.LayoutParams layoutParams =
- new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- layoutParams.setFullSpan(fullspan);
- mView.setLayoutParams(layoutParams);
- }
- }
-
- protected void refresh() {
- }
-
- public void onResume() {
- }
-
- public void onPause() {
- }
-
- public void onDestroy() {
- }
-
- boolean cardCompatible() {
- return true;
- }
-
- boolean cacheable() {
- return false;
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/res/anim/slide_in_bottom.xml b/app/src/main/res/anim/slide_in_bottom.xml
deleted file mode 100644
index b0a79f1..0000000
--- a/app/src/main/res/anim/slide_in_bottom.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml
index 827cde0..aabf889 100644
--- a/app/src/main/res/drawable/ic_back.xml
+++ b/app/src/main/res/drawable/ic_back.xml
@@ -1,9 +1,9 @@
-
-
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24" >
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_coffee.xml b/app/src/main/res/drawable/ic_coffee.xml
new file mode 100644
index 0000000..aec45b0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_coffee.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_developer.png b/app/src/main/res/drawable/ic_developer.png
new file mode 100644
index 0000000..02d4232
Binary files /dev/null and b/app/src/main/res/drawable/ic_developer.png differ
diff --git a/app/src/main/res/drawable/ic_dinner.xml b/app/src/main/res/drawable/ic_dinner.xml
new file mode 100644
index 0000000..8946439
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dinner.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_donate.xml b/app/src/main/res/drawable/ic_donate.xml
new file mode 100644
index 0000000..ae6123d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_donate.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_donation_app.png b/app/src/main/res/drawable/ic_donation_app.png
new file mode 100644
index 0000000..8b6490d
Binary files /dev/null and b/app/src/main/res/drawable/ic_donation_app.png differ
diff --git a/app/src/main/res/drawable/ic_done.xml b/app/src/main/res/drawable/ic_done.xml
deleted file mode 100644
index 1da8ef5..0000000
--- a/app/src/main/res/drawable/ic_done.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_dots.xml b/app/src/main/res/drawable/ic_dots.xml
deleted file mode 100644
index 5176d8a..0000000
--- a/app/src/main/res/drawable/ic_dots.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_shell.xml b/app/src/main/res/drawable/ic_file.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_shell.xml
rename to app/src/main/res/drawable/ic_file.xml
diff --git a/app/src/main/res/drawable/ic_flash.xml b/app/src/main/res/drawable/ic_flash.xml
new file mode 100644
index 0000000..7f67045
--- /dev/null
+++ b/app/src/main/res/drawable/ic_flash.xml
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_folder.xml b/app/src/main/res/drawable/ic_folder.xml
new file mode 100644
index 0000000..dc6b080
--- /dev/null
+++ b/app/src/main/res/drawable/ic_folder.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_github.xml b/app/src/main/res/drawable/ic_github.xml
new file mode 100644
index 0000000..0b8e16b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_github.xml
@@ -0,0 +1,6 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_heart.xml b/app/src/main/res/drawable/ic_heart.xml
new file mode 100644
index 0000000..e8a8c6a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_heart.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml
deleted file mode 100644
index 2bdcfa3..0000000
--- a/app/src/main/res/drawable/ic_help.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_info.xml b/app/src/main/res/drawable/ic_info.xml
index f52a15f..9ff8977 100644
--- a/app/src/main/res/drawable/ic_info.xml
+++ b/app/src/main/res/drawable/ic_info.xml
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/app/src/main/res/drawable/ic_issue.xml b/app/src/main/res/drawable/ic_issue.xml
new file mode 100644
index 0000000..7853f61
--- /dev/null
+++ b/app/src/main/res/drawable/ic_issue.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_language.xml b/app/src/main/res/drawable/ic_language.xml
new file mode 100644
index 0000000..2662398
--- /dev/null
+++ b/app/src/main/res/drawable/ic_language.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_preview.png b/app/src/main/res/drawable/ic_launcher_preview.png
deleted file mode 100644
index 50e55db..0000000
Binary files a/app/src/main/res/drawable/ic_launcher_preview.png and /dev/null differ
diff --git a/app/src/main/res/drawable/ic_licence.xml b/app/src/main/res/drawable/ic_licence.xml
new file mode 100644
index 0000000..19fb425
--- /dev/null
+++ b/app/src/main/res/drawable/ic_licence.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_meal.xml b/app/src/main/res/drawable/ic_meal.xml
new file mode 100644
index 0000000..abbd39e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_meal.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_path.xml b/app/src/main/res/drawable/ic_path.xml
new file mode 100644
index 0000000..454bd7d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_path.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_playstore.xml b/app/src/main/res/drawable/ic_playstore.xml
new file mode 100644
index 0000000..1b54559
--- /dev/null
+++ b/app/src/main/res/drawable/ic_playstore.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_rate.xml b/app/src/main/res/drawable/ic_rate.xml
new file mode 100644
index 0000000..2f05b2c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_rate.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_script.xml b/app/src/main/res/drawable/ic_script.xml
new file mode 100644
index 0000000..c5874de
--- /dev/null
+++ b/app/src/main/res/drawable/ic_script.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml
index 90be793..62584ed 100644
--- a/app/src/main/res/drawable/ic_settings.xml
+++ b/app/src/main/res/drawable/ic_settings.xml
@@ -1,5 +1,5 @@
-
-
+
diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml
new file mode 100644
index 0000000..4f902a1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_share.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_support.xml b/app/src/main/res/drawable/ic_support.xml
new file mode 100644
index 0000000..370121b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_support.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_theme.xml b/app/src/main/res/drawable/ic_theme.xml
new file mode 100644
index 0000000..10e1ae1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_theme.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_translate.xml b/app/src/main/res/drawable/ic_translate.xml
new file mode 100644
index 0000000..191f59f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_translate.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
new file mode 100644
index 0000000..44b15af
--- /dev/null
+++ b/app/src/main/res/layout/activity_about.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_applyscript.xml b/app/src/main/res/layout/activity_applyscript.xml
new file mode 100644
index 0000000..a773eb6
--- /dev/null
+++ b/app/src/main/res/layout/activity_applyscript.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_billing.xml b/app/src/main/res/layout/activity_billing.xml
new file mode 100644
index 0000000..870d34f
--- /dev/null
+++ b/app/src/main/res/layout/activity_billing.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_createscript.xml b/app/src/main/res/layout/activity_createscript.xml
new file mode 100644
index 0000000..7b9cf3e
--- /dev/null
+++ b/app/src/main/res/layout/activity_createscript.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_editor.xml b/app/src/main/res/layout/activity_editor.xml
deleted file mode 100644
index f8e9310..0000000
--- a/app/src/main/res/layout/activity_editor.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_filepicker.xml b/app/src/main/res/layout/activity_filepicker.xml
new file mode 100644
index 0000000..a4bef63
--- /dev/null
+++ b/app/src/main/res/layout/activity_filepicker.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index eb4f982..dd47364 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,115 +1,91 @@
-
+ android:layout_height="match_parent">
-
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
-
+ android:layout_height="wrap_content"
+ android:background="@color/black" >
-
+ android:gravity="center_horizontal"
+ android:orientation="vertical"
+ android:padding="10dp">
-
+ android:layout_height="wrap_content" >
-
+ android:textColor="?attr/colorAccent"
+ android:textStyle="bold"
+ android:textSize="22sp" />
-
-
-
-
-
-
-
-
+ android:layout_gravity="end"
+ android:background="@null"
+ android:tint="@color/white"
+ android:src="@drawable/ic_settings" />
+
-
+
+
-
+
+
-
-
-
-
+ android:layout_height="match_parent" />
+
-
+ android:layout_marginEnd="20dp"
+ android:orientation="vertical" >
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
new file mode 100644
index 0000000..d3e4a33
--- /dev/null
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
deleted file mode 100644
index e27b32f..0000000
--- a/app/src/main/res/layout/app_bar_main.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_recyclerview.xml b/app/src/main/res/layout/fragment_recyclerview.xml
deleted file mode 100644
index e070da8..0000000
--- a/app/src/main/res/layout/fragment_recyclerview.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/recycle_view.xml b/app/src/main/res/layout/recycle_view.xml
new file mode 100644
index 0000000..404a27e
--- /dev/null
+++ b/app/src/main/res/layout/recycle_view.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycle_view_donate.xml b/app/src/main/res/layout/recycle_view_donate.xml
new file mode 100644
index 0000000..497b368
--- /dev/null
+++ b/app/src/main/res/layout/recycle_view_donate.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycle_view_filepicker.xml b/app/src/main/res/layout/recycle_view_filepicker.xml
new file mode 100644
index 0000000..344b85e
--- /dev/null
+++ b/app/src/main/res/layout/recycle_view_filepicker.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycle_view_settings.xml b/app/src/main/res/layout/recycle_view_settings.xml
new file mode 100644
index 0000000..7e9b432
--- /dev/null
+++ b/app/src/main/res/layout/recycle_view_settings.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/rv_checkbox.xml b/app/src/main/res/layout/rv_checkbox.xml
deleted file mode 100644
index 9cee331..0000000
--- a/app/src/main/res/layout/rv_checkbox.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/rv_description_view.xml b/app/src/main/res/layout/rv_description_view.xml
deleted file mode 100644
index 2bf2306..0000000
--- a/app/src/main/res/layout/rv_description_view.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/rv_foreground_view.xml b/app/src/main/res/layout/rv_foreground_view.xml
deleted file mode 100644
index 87ea516..0000000
--- a/app/src/main/res/layout/rv_foreground_view.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/viewpager_view.xml b/app/src/main/res/layout/viewpager_view.xml
deleted file mode 100644
index 975b3fa..0000000
--- a/app/src/main/res/layout/viewpager_view.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values-am/strings.xml b/app/src/main/res/values-am/strings.xml
index 6dcc7ff..4aef19a 100644
--- a/app/src/main/res/values-am/strings.xml
+++ b/app/src/main/res/values-am/strings.xml
@@ -1,9 +1,6 @@
- ስለ እኛ
- ማስታወቂያዎች እንዲታዩ ፍቀድ
- ሁልጊዜ አሳይ
የሼል ስክሪፕትን በቀላሉ ለመፍጠር፣ለማስገባት፣ለማስተካከል፣ለማጋራት እና ለማስነሳት የሚያገለግል መተግበሪያ።
ተግብር
ስልክዎ ጠፍቶ ሲበራ
@@ -11,42 +8,24 @@
በመተግበር ላይ %s!
ሰርዝ
ፍጠር
- ምስጋና
- Grarak: KernelAdiutor (መነሻ ኮድ)\ntopjohnwu: Magisk (ዳግም ሲበራ አገልግሎት)\nSmgKhOaRn: ኮርያኛ ትርጉም\nOktapra Amtono: ኢንዶኔዥያኛ ትርጉም\nMikesew1320: አማርኛ ትርጉም\nToxinpiper: የመተግበሪያ ምስል
ጠቆር ያለ ገፅታ
ሰርዝ
- ዝርዝር መረጃ
አስተካክል
- ይሁን አስተካክል
- ሼል ስክራፕት ለመፍጠር ወይም ቀድሞ የተዘጋጀ ስክሪፕት ከስልክዎ ለማስገባት ሲፈልጉ እዚህ ጋር ወይም ከታች ያለውን የመደመር ምልክት ይጫኑ።
- ምሳሌዎች
- አግኝቸዋለሁ
- ገብቶኛል
አስገባ
- ቋንቋ (%s)
- አማርኛ
+ ቋንቋ
ነባር
- እንግሊዘኛ
- ኢንዶኔዥያኛ
- ኮርያኛ
ወደ ኋላ የመጀመር አሰራር
%s ወደ ኋላ በመጀመር አገልግሎት ጊዜ ይነሳል!
- ተጨማሪ
ከአምራቹ ተጨማሪ መተግበሪያዎች
ስክሪፕቱ ግዴታ ስም ሊኖረው ይገባል! በማቋረጥ ላይ
እባክዎን የኢንተርኔት አገልግሎት መኖሩን ያረጋግጡ!
- ሩት የለም
- ይህ መተግበሪያ ያለ ሩት ባልተደረገ ስልክ ላይ አይሰራም! በማቋረጥ ላይ
እሺ
%s ከ ዳግም ማስጀመሪያ አገልግሎት ተገሏል!
- ወደ ኋላ የመጀመር መቼት ቀድሞዉኑ ለ %s በርቷል. በዚህ ስክሪፕት ላይ የሚደረግ ማንኛዉም ለዉጥ እርስዎ ቁልፋን እንደገና እስካላበሩት ድረስ በዳግም ማስጀመር ጊዜ በፍፁም አይተገበርም!
- አማራጮች
ማከማቻ ላይ የመፃፍ ፍቃድ አልተሰጠም!
ፖስት ኤፍኤስ ሞድ
%s በ ፖስት ኤፍኤስ ዳታ ጊዜ ይተገበራል!
ለመዉጣት ከፈለጉ ወደ ኋላ መመለሻ ቁልፉን ደግመዉ ይጫኑ!
ችግር ካለ ለማሳወቅ
- አስቀምጥ
%s የሚባል ስክሪፕት ቀድሞ አለ! በማቋረጥ ላይ
ምረጥ %s?
አጋራ
@@ -55,10 +34,7 @@
በዚህ አጋራ
የቴሌግራም ቤተሰብ
ሰርዝ %s?
- ስክሪፕት አስተዳዳሪ %s ተገኝቷል!
- %s\n\n**ማስታወሻ: እባክዎን መተግበሪያዉን በማውረድ በራስዎ ያሳድጉ!**
እባክዎን %s የሆነ ቅጥያ ያለው ፋይል ይምረጡ!
- እንኳን በደህና ወደ ስክሪፕት አስተዳዳሪ የአንድሮይድ መተግበሪያ መጡ! የሼል ስክሪፕትን በቀላሉ ለመፍጠር,ለማስገባት,ለማስተካከል,ለማጋራት እና ለማስነሳት የሚያገለግል መተግበሪያ።\n\n*** ማሳሰቢያ ***\nይህ መተግበሪያ በጣም ሀይለኛ ነው። በአግባቡ ካልተጠቀሙበት ስልክዎን ከጥቅም ውጭ ሊያደርገዉ ይችላል! በስልክዎ ላይ የሆነ ነገር ቢፈጠር የዚህ መተግበሪያ አበልፃጊ ሀላፊነቱን አይወስድም!
%s ይህ ትክክለኛ ስክሪፕት አይደለም! በማቋረጥ ላይ
አዎ
\ No newline at end of file
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 3b8c378..1a99f77 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -1,9 +1,6 @@
- Σχετικά με
- Επιτρέψτε τις διαφημίσεις
- Εμφάνιση πάντα
Μια εφαρμογή για να δημιουργήσετε, εισάγετε, τροποποιήσετε, κοινοποίησετε και εύκολα εκτελέσετε σενάρια shell
Εφαρμογή
Κατά την εκκίνηση
@@ -12,41 +9,24 @@
Ακύρωση
Λίστα αλλαγών
Δημιουργία
- Ευχαριστίες
- Grarak: KernelAdiutor (βάση κώδικα)\ntopjohnwu: Magisk (υπηρεσία κατά την εκκίνηση)\nSmgKhOaRn: Κορεατική μετάφραση\ntsiflimagas: Ελληνική μετάφραση\nToxinpiper: Εικονίδιο εφαρμογής
Σκούρο Θέμα
Διαγραφή
- Λεπτομέρειες
Τροποποίηση
- Τροποποίηση ούτως ή άλλως
- Πατήστε εδώ, ή το κουμπί προσθήκης στο κάτω μέρος, για να δημιουργήσετε ή να εισάγετε ένα σενάριο shell.
- Παραδείγματα
- Λήψη
- Το κατάλαβα
Εισαγωγή
- Γλώσσα (%s)
- Ελληνικά
- Αγγλικά
+ Γλώσσα
Προεπιλογή
- Κορεάτικα
λειτουργία Late Start
%s θα εκτελεστεί στην υπηρεσία late_start!
- Περισσότερα
Περισσότερα από τον προγραμματιστή
Το όνομα του σεναρίου δεν πρέπει να είναι κενό! Διακοπή.
Παρακαλώ ελέγξτε τη σύνδεση δικτύου σας!
- Απουσία Root
- Αυτή η εφαρμογή δε θα λειτουργήσει χωρίς πρόσβαση root! Διακοπή.
OK
%s έχει εξαιρεθεί από τη διαδικασία εκκίνησης!
- Οι ρυθμίσεις κατά την εκκίνηση είναι ήδη ενεργοποιημένες για %s. Επιπλέον αλλαγές σε αυτό το σενάριο δε θα εφαρμοστούν κατά την εκκίνηση, εκτός εάν επανενεργοποιήσετε αυτόν τον διακόπτη!
- Επιλογές
Απορρίφθηκε η άδεια εγγραφής στον αποθηκευτικό χώρο!
λειτουργία Post FS
%s θα εκτελεστεί σε λειτουργία post-fs-data!
Πατήστε πίσω ξανά για να βγείτε
Αναφέρετε κάποιο πρόβλημα
- Αποθήκευση
Ένα σενάριο με όνομα %s υπάρχει ήδη! Διακοπή.
Επιλογή %s?
Κοινοποίηση
@@ -56,10 +36,7 @@
Πηγαίος Κώδικας
Ομάδα Υποστήριξης
Διαγραφή %s?
- Script Manager %s διαθέσιμο!
- %s\n\n**Σημαντικό: Παρακαλώ κατεβάστε και εγκαταστήστε την εφαρμογή χειροκίνητα!**
Παρακαλώ επιλέξτε ένα αρχείο με %s προέκταση.
- Καλώς ήρθατε στο Script Manager: Μια εφαρμογή για να δημιουργήσετε, εισάγετε, τροποποιήσετε, κοινοποίησετε και εύκολα εκτελέσετε σενάρια shell.\n\n*** ΠΡΟΕΙΔΟΠΟΊΗΣΗ> ***\nΑυτή η εφαρμογή είναι αρκετά ισχυρή ώστε να προκαλέσει προβλήματα στη συσκευή σας. Ο προγραμματιστής αυτής της εφαρμογής δε θα αναλάβει καμία ευθύνη, εάν κατι λάθος συμβεί στη συσκευή σας.
%s δεν είναι κατάλληλο αρχείο σεναρίου! Διακοπή.
Ναι
\ No newline at end of file
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index 5e0018a..c5b0bc9 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -1,8 +1,6 @@
- Tentang
- Selalu Tampilkan
Aplikasi untuk membuat, mengimpor, mengedit, berbagi, dan dengan mudah menjalankan skrip shell
Terapkan
Terapkan saat boot
@@ -10,35 +8,21 @@
Menerapkan %s!
Batal
Buat Baru
- Kontributor
- Grarak: KernelAdiutor (Basis Kode)\ntopjohnwu: Magisk (Layanan boot)\nSmgKhOaRn: Terjemahan Korea\nOktapra Amtono: Terjemahan Indonesia\nToxinpiper: Ikon Aplikasi
Hapus
- Detail
Edit
- Abaikan dan perbaiki
- Untuk membuat atau memuat skrip shell, klik di sini, atau klik tombol add yang terletak di bawah.
- Contoh
- Dapatkan
- Mengerti
Impor
Mode Lambat
%s akan dieksekusi di layanan late_start!
- Lainnya
Lainnya Dari Pengembang
Nama skrip tidak boleh kosong! Batalkan
Periksa koneksi internet Anda!
- Tidak Ada Akses Root
- Aplikasi ini tidak akan berfungsi tanpa Akses Root! Batalkan
OK
%s dikecualikan saat boot!
- Pengaturan saat boot sudah diaktifkan untuk %s. Perubahan lebih lanjut pada skrip ini tidak akan diterapkan Saat boot, kecuali Anda mengaktifkan kembali!
- Pilihan
Izin menulis ke penyimpanan ditolak!
Post FS Mode
%s akan dieksekusi di post-fs-data!
Tekan kembali untuk keluar
Laporkan Masalah
- Simpan
Skrip dengan nama %s sudah ada! Batalkan
Pilih %s?
Bagikan
@@ -47,10 +31,7 @@
Bagikan Dengan
Dukungan Grup
Hapus %s?
- Script Manager %s tersedia!
- %s\n\n**Penting: Silakan unduh dan perbarui aplikasi secara manual!**
Pilih berkas dengan format %s.
- Selamat Datang di Script Manager: Aplikasi untuk membuat, mengimpor, mengedit, berbagi, dan dengan mudah menjalankan skrip shell.\n\n*** PERINGATAN ***\nAplikasi ini cukup kuat untuk menghancurkan perangkat Anda. Pengembang aplikasi ini tidak bertanggung jawab atas masalah apa pun dengan perangkat Anda.
%s bukan berkas skrip yang tepat! Batalkan.
Ya
\ No newline at end of file
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 6dad949..1dd39c3 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -1,9 +1,6 @@
- 정보
- 광고 활성화
- 항상 보이기
쉘 스크립트들을 추가하고, 불러오고, 수정하고, 공유하고, 쉽게 내보내는 어플리케이션
적용
부팅시 적용
@@ -12,42 +9,24 @@
취소
변경사항
새로 만들기
- 도움을 주신 분들
- Grarak: KernelAdiutor (코드 기반)\ntopjohnwu: Magisk (부팅 서비스)\nSmgKhOaRn: 한국어 번역\nOktapra Amtono: 인도네시아어 번역\nMikesew1320: 에티오피아어 번역\nToxinpiper: 앱 아이콘
다크 테마
제거
- 정보
수정
- 무시하고 수정
- 쉘 스크립트를 만들거나 불러오기 위해서, 여기를 누르거나, 아래에 위치한 추가 버튼을 누르세요.
- 예시들
- 알겠습니다
- 이미 알아요
불러오기
- 언어 (%s)
- 영어
+ 언어
시스템 언어
- 한국어
- 에티오피아어
- 인도네시아어
늦은 시작 모드
%s은(는) 늦은 시작 서비스에서 제거될 것입나다!
- 더보기
개발자의 다른 앱들 보기
스크립트 이름이 비어있으면 안됩니다! 취소.
인터넷 연결을 확인해주세요!
- 루트 권한 없음
- 이 앱은 루트 권한 없이 작동하지 않습니다! 취소.
확인
%s은(는) 부팅 서비스에서 제거될 것입나다!
- %s은(는) 이미 부팅시에 적용됩니다. 이 스크립트에 대한 수정사항들은 스위치를 다시 활성화하지 않는 이상 부팅시에 적용되지 않을 것입니다!
- 설정
저장공간 쓰기 권한이 거부되었습니다!
Post FS 모드
%s(은)는 post-fs-data에 추출될 것입니다!
나가려면 뒤로가기 버튼을 다시 누르세요
문제 제출하기
- 저장
%s(이)라는 이름의 스크립트는 이미 존재합니다! 취소
%s을(를) 선택하실건가요?
공유
@@ -57,10 +36,7 @@
소스 코드
지원 받기
%s을(를) 삭제하시겠어요?
- 업데이트 가능!
- %s\n\n**주의: 앱을 다운로드하고 수동으로 업데이트하세요!**
%s 확장자를 가진 파일을 선택해주세요.
- Script Manager에 오신 것을 환영합니다: 쉘 스크립트들을 추가하고, 불러오고, 수정하고, 공유하고, 쉽게 내보내는 어플리케이션.\n\n*** 주의 ***\n이 앱은 여러분의 기기를 망가뜨릴 수 있을 정도로 강력합니다. 이 앱의 개발자는 여러분의 기기에 문제가 생기더라도 책임지지 않습니다.
%s은(는) 적절한 스크립트가 아닙니다! 취소.
예
\ No newline at end of file
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000..d8f32f5
--- /dev/null
+++ b/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,68 @@
+
+
+ "Aplikacja umożliwiająca tworzenie, importowanie, edycje oraz udostępnianie skryptów shell"
+ "Zatwierdź"
+ "Zatwierdź podczas rozruchu"
+ "Zatwierdzić %s?"
+ "Zatwierdzanie %s!"
+ "Błąd podczas łączenia z Google Play!"
+ "Anuluj"
+ "dziennik zmian"
+ "Stwórz"
+ "Ciemny motyw"
+ "Auto"
+ "Wyłącz"
+ "Włącz"
+ "Usuń"
+ "Stworzone przez"
+ "Anuluj"
+ "Edytuj"
+ "Importuj"
+ "Język"
+ "Domyślny"
+ "Opóźniony start"
+ "Więcej od twórcy"
+ "Skrypt musi posiadać nazwę! Anulowanie."
+ "Sprawdź połączenie sieciowe!"
+ "OK"
+ "Karta pamięci"
+ "Brak uprawnień do zapisu w pamieci!"
+ "Wciśnij cofnij jeszcze raz aby zakończyć"
+ "Oceń aplikacje"
+ "Oceń Script Manager w Sklepie Play"
+ "Zgłoś problem"
+ "Zgłoś błąd na GitHub"
+ "%s zatwierdzony pomyślnie!"
+ "Skrypt o nazwie %s już istnieje! Anulowanie."
+ "%s jest w trakcie zatwierdzenia! Proszę czekać."
+ "Wybrać %s?"
+ "Ustawienia"
+ "Udostępnij"
+ "Poleć aplikacje"
+ "Zaproś znajomych do korzystania ze Script Manager"
+ "Podziel sie z"
+ "Kod źródłowy"
+ "Darowizna"
+ "Wsparcie techniczne"
+ "Kup mi obiad"
+ "Grupa wsparcia"
+ "Dołącz do grupy na Telegram"
+ "Kup mi mięso"
+ "Kup mi kawę"
+ "Dzięki za twoje wsparcie. Pomagasz nam w dalszym rozwoju projektu! \nW nagrodę otrzymasz odznaczenie, które będzie widnieć na twojej głównej stronie."
+ "Spróbuj kupić ponownie!"
+ "Dziekujemy bardzo za twoje wsparcie!"
+ "Czy usunąć %s?"
+ "Test"
+ "Testowanie skryptu… Proszę czekać!"
+ "Testowanie skryptu zakończone powodzeniem!"
+ "Tłumaczenie"
+ "Pomóż w tłumaczeniu aplikacji! Kliknij tutaj aby pobrać oryginalny plik jezykowy"
+ "Eksplorator plików"
+ "Zewnętrzny"
+ "Wbudowany"
+ "Proszę wybrać plik z rozszerzeniem %s."
+ "%s nie jest skryptem! Anulowanie."
+ "Tak"
+ "Licencja"
+
\ No newline at end of file
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 97f5c78..5859dbc 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1,9 +1,6 @@
Script Manager
- Sobre
- Permitir anúncios
- Sempre mostrar
Um aplicativo para criar, importar, editar, compartilhar e executar facilmente scripts shell
Aplicar
Na inicialização
@@ -11,46 +8,25 @@
Aplciando %s!
Cancelar
Mudanças
- O texto padrão de direitos autorais, %s, será aplicado na próxima abertura do aplicativo!
- O novo texto de direitos autorais, %s, será aplicado na próxima abertura do aplicativo!
Criar
- Créditos
- Grarak: KernelAdiutor (base de código)\ntopjohnwu: libsu e Magisk (serviço de inicialização)\nSmgKhOaRn: traduções Coreanas\nOktapra Amtono: traduções Indinésias\nMikesew1320: traduções Amáricas\ntsiflimagas: traduções Gregas\nLennoard Silva: traduções Portuguesas(br)\nToxinpiper: Ìcone do aplicativo
Tema escuro
Deletar
- Detalhes
Editar
- Editar mesmo assim
- Clique aqui, ou no botão adicionar na parte inferior, para criar ou importar um shell script.
- Exemplos
- Obter
- Entendi
Importar
- Idioma (%s)
- Amárico
+ Idioma
Padrão
- Grego
- Inglês
- Indonésio
- Coreano
Modo de inicialização tardia
%s será executado no serviço late_start!
- Mais
Mais do desenvolvedor
O nome do script não deve estar vazio! Abortando.
Por favor, verifique sua conexão à internet!
- Sem root
- Este aplicativo não funcionará sem acesso root! Abortando.
OK
%s foi excluído do serviço de inicialização!
- As configurações de inicialização já estão ativadas para %s. Quaisquer outras alterações neste script não serão aplicadas na inicialização, a menos que você reative essa opção!
- Opções
Permissão para modificar o armazenamento negada!
Modo pós FS
%s será executado no post-fs-data!
Pressione voltar novamente para sair
Comunicar um problema
- Salvar
Um script chamado %s já existe! Abortando.
Selecionar %s?
Compartilhar
@@ -59,13 +35,9 @@
Compartilhar com
Grupo de suporte
Deletar %s?
- Script MAnager %s disponível!
- %s\n\n** Importante: faça o download e atualize manualmente o aplicativo! **
Por favor, selecione um arquivo com a extensão %s.
%s não é um arquivo de script apropriado! Abortando.
Sim
Código fonte
- %s aplicado!
Testar
- Bem-vindo ao Script Manager: um aplicativo para criar, importar, editar, compartilhar e executar facilmente shell scripts.\n\n***AVISO***\nEste aplicativo é muito poderoso e pode bagunçar o seu dispositivo. O desenvolvedor deste aplicativo não assumirá nenhuma responsabilidade se algo errado acontecer com o seu dispositivo.
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000..4e5fe35
--- /dev/null
+++ b/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,46 @@
+
+
+
+ Приложение для создания, импорта, редактирования, обмена и простого выполнения сценариев оболочки
+ Применять
+ On-ботинок
+ Применить%s?
+ Применяем%s!
+ Отмена
+ Изменить бревна
+ Создайте
+ Темная тема
+ удалять
+ редактировать
+ Импортировать
+ Язык
+ По умолчанию
+ Режим позднего запуска
+ %s будет выполняться в сервисе late_start!
+ Больше от разработчика
+ Имя скрипта не должно быть пустым! Aborting.
+ Пожалуйста, проверьте ваше интернет-соединение!
+ Хорошо
+ %s исключен из службы загрузки!
+ В разрешении на запись в хранилище отказано!
+ Режим Post FS
+ %s будет выполняться в post-fs-data!
+ Нажмите еще раз, чтобы выйти
+ Сообщить о проблеме
+ %s выполнено успешно!
+ Сценарий с именем%s уже существует! Aborting.
+ Выберите%s?
+ Поделиться
+ %s/разделен диспетчером скриптов
+ Чтобы применить этот сценарий, просто загрузите файл и импортируйте его в диспетчер скриптов.\nScript Manager%s можно получить в\nPlayStore: https://play.google.com/store/apps/details?id=com.smartpack.scriptmanager\nGitHub:\nhttps: //github.com/SmartPack/ScriptManager/raw/master/release/com.smartpack.scriptmanager.apk
+ Поделиться с
+ Исходный код
+ Группа поддержки
+ Удалить%s?
+ Тестовое задание
+ "Сценарий тестирования… Пожалуйста, будьте терпеливы!"
+ "Сценарий тестирования успешно завершен!"
+ Пожалуйста, выберите файл с расширением%s.
+ %s не является правильным файлом скрипта! Aborting.
+ да
+
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000..1685b92
--- /dev/null
+++ b/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,62 @@
+
+
+ "Додаток, який дозволяє створювати, імпортувати, редагувати, ділитися та з легкістю виконувати shell-скрипти"
+ "Виконати"
+ "Виконати %s?"
+ "Виконання %s!"
+ "Скасувати"
+ "Журнал змін"
+ "Створити"
+ "Темна тема"
+ "Автоматично"
+ "Вимкнути"
+ "Увімкнути"
+ "Видалити"
+ "Розробник"
+ "Редагувати"
+ "Імпортувати"
+ "Мова"
+ "За замовчуванням"
+ "Інші додатки від розробника"
+ "Перегляньте інші додатки, створені розробником, у Google Play"
+ "Ім'я скрипта має бути заповненим! Зупинка."
+ "Перевірте, будь ласка, ваше "
+ "Ок"
+ "Не надано дозволу на редагування сховища!"
+ "Натисніть назад ще раз щоб вийти"
+ "Оцініть додаток"
+ "Оцініть або/та залиште відгук про цей додаток в Google Play"
+ "Повідомити про проблему"
+ "Відкрити проблему на GitHub"
+ "На жаль, Root Access для цього додатка або недоступний, або відхилений! Деякі функції цього додатка не працюватимуть на вашому пристрої."
+ "%s успішно виконано!"
+ "Скрипт з назвою %s вже існує! Зупинка."
+ "%s зараз виконується! Будь ласка, почекайте."
+ "Обрати %s?"
+ "Параметри"
+ "Поділитися"
+ "Поділитися додатком"
+ "Запросіть своїх друзів використовувати Script Manager"
+ "Script Manager %s можна завантажити з PlayStore: https://play.google.com/store/apps/details?id=com.smartpack.scriptmanager"
+ "Поділитися за допомогою"
+ "Вихідний код"
+ "Підтримати розробку"
+ "Група для підтримки"
+ "Для підтримки приєднайтеся до групи в Telegram"
+ "Купіть мені їжу"
+ "Купіть мені каву"
+ "Дуже дякую за вашу підтримку!"
+ "Видалити %s?"
+ "Тестувати"
+ "Скрипт тестується… Будь ласка, зачекайте!"
+ "Тестування успішно завершено!"
+ "Переклад"
+ "Допоможіть мені перекласти цей додаток! Клацніть тут, щоб отримати оригінальні мовні рядки англійською мовою"
+ "Засіб вибору файлів"
+ "Зовнішній"
+ "Вбудований"
+ "Виникли проблеми? Вимкніть вбудований засіб вибору файлів у 'Параметрах'!"
+ "Виберіть файл з розширенням %s."
+ "Так"
+ "Ліцензія"
+
\ No newline at end of file
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..583f76e
--- /dev/null
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,82 @@
+
+
+ "一款用于建立、导入、编辑、执行shell 、脚本的App"
+ "应用"
+ "在启动时应用"
+ "确定应用 %s ?"
+ "正在应用 %s!"
+ "无法连接到谷歌计费客户端"
+ "取消"
+ "更新日志"
+ "新建"
+ "暗黑模式"
+ "自动切换"
+ "日间模式"
+ "夜间模式"
+ "删除"
+ "开发者"
+ "关闭"
+ "编辑"
+ "导入"
+ "语言"
+ "默认"
+ "延时启动模式"
+ "%s 将在late_start模式中启动!"
+ "关于开发者"
+ "看看开发者还开发出了哪些应用吧"
+ "脚本名不能为空!正在中止."
+ "请检查您的网络连接"
+ "好的"
+ "%s已从启动服务中排除"
+ "SD储存卡"
+ "未启用存储写入权限!"
+ "Post FS 模式"
+ "%s将从Post FS数据中运行!"
+ "再次点击返回键退出"
+ "评价支持本软件"
+ "前往谷歌Play点评Script Manager"
+ "报告问题"
+ "前往GitHub报告问题"
+ "Root 权限不可用或未授予,App的某些功能将无法使用."
+ "%s已成功运行!"
+ "%s 已存在!正在中止."
+ "%s正在运行!请稍后."
+ "选择%s?"
+ "设置"
+ "分享"
+ "分享此App"
+ "邀请小伙伴使用 Script Manager吧"
+ "%s/由Script Manager分享"
+ "要使用此脚本,只需下载文件并导入Script Manager即可"
+ "从谷歌Play上下载Script Manager %s 吧: https://play.google.com/store/apps/details?id=com.smartpack.scriptmanager"
+ "使用以下App分享"
+ "源码"
+ "Script Manager是一款开源且接受社区贡献的软件.点击此处获取源码!"
+ "确认捐赠 \u2665"
+ "购买捐赠版App"
+ "支持一下开发者"
+ "如果你感谢开发者开发完全免费工具的付出,点击下方提供的选项支持一下开发者吧!选购以下一项产品即可获取支持者徽章!"
+ "支持一份晚餐"
+ "技术支持群"
+ "加入电报群"
+ "投喂我"
+ "请问喝杯咖啡"
+ "之前您已经支持过这项这个项目的开发了!"
+ "感谢您的支持 \u2665\n这将给予我更多动力来更好的维持我的项目!另外,您将获得支持者徽章."
+ "请重新尝试购买!"
+ "感谢您的支持!"
+ "确定删除%s?"
+ "测试"
+ "正在测试脚本…请耐心等待!"
+ "成功完成脚本测试!"
+ "翻译"
+ "帮我翻译此App吧!点击此处获取英文原版字符串"
+ "文件选择"
+ "外部选择器"
+ "内置选择器"
+ "出问题了?请在'设置'菜单中关闭'使用内置选择器'!"
+ "请使用%s扩展选择一个文件."
+ "%s不是一个合适的脚本文件!正在中止."
+ "是"
+ "许可证"
+
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 532ef4b..7242940 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -1,7 +1,28 @@
-
- - @string/create
- - @string/import_item
+
+
+ - @string/dark_theme_auto
+ - @string/dark_theme_enable
+ - @string/dark_theme_disable
-
\ No newline at end of file
+
+
+ - @string/language_default
+ - @string/language_en
+ - @string/language_ko
+ - @string/language_am
+ - @string/language_el
+ - @string/language_in
+ - @string/language_pt
+ - @string/language_ru
+ - @string/language_pl
+ - @string/language_zh
+ - @string/language_uk
+
+
+
+ - @string/file_picker_inbuilt
+ - @string/file_picker_external
+
+
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
deleted file mode 100644
index b4662b4..0000000
--- a/app/src/main/res/values/attrs.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 2d9c627..18955ec 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,6 +1,6 @@
- #111111
#000000
+ #4285F4
#FFFFFF
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
deleted file mode 100644
index c89828d..0000000
--- a/app/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- 8dp
- -48dp
- 48dp
-
- 10dp
-
- 3dp
- 3dp
-
- 140dp
- 280dp
-
- 50dp
- 50dp
- 1dp
-
- 30dp
-
-
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
deleted file mode 100644
index 3ea04e7..0000000
--- a/app/src/main/res/values/ids.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/app/src/main/res/values/pageindicator.xml b/app/src/main/res/values/pageindicator.xml
deleted file mode 100644
index d1cf62f..0000000
--- a/app/src/main/res/values/pageindicator.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
- #FFFFFFFF
- #00000000
- 0
- 3dp
- false
- #FFDDDDDD
- 1dp
- 0dp
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4ec1273..d72432e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,76 +1,93 @@
Script Manager
- About
- Allow Ads
- Always Show
An app to create, import, edit, share and easily execute shell scripts
Apply
On-boot
Apply %s?
Applying %s!
+ Failed to connect with Google Play Billing client!
Cancel
Change-logs
- ©SmartPack Projects
- Default copyright text, %s, will be applied on next app launch!
- New copyright text, %s, will be applied on next app launch!
Create
- Credits
- Grarak: KernelAdiutor (code base)\ntopjohnwu: libsu & Magisk (on-boot service)\nLennoard Silva: Code contributions/pt-Br Translations\nSmgKhOaRn: Korean translations\nOktapra Amtono: Indonesian translations\nMikesew1320: Amharic translations\ntsiflimagas: Greek translations\nToxinpiper: App Icon
Dark Theme
+ Auto
+ Disable
+ Enable
Delete
- Details
+ Developed By
+ Dismiss
Edit
- Edit Anyway
- Click here, or the add button at the bottom, to create or import a shell script.
- Examples
- Get it
- Got it
Import
- Language (%s)
- Amharic
+ Language
+ አማርኛ
Default
- Greek
- English
- Indonesian
- Korean
- Portuguese
+ Ελληνικά
+ English
+ bahasa Indonesia
+ 한국어
+ Polski
+ Português
+ русский
+ Українська
+ 中文(简体)
Late Start Mode
%s will be executed in late_start service!
- More
+ Licence
More from Developer
+ Checkout more applications provided by the developer in Google Play
Script name shouldn\'t be empty! Aborting.
Please check your internet connection!
- No Root
- This app won\'t work without Root Access! Aborting.
OK
%s is excluded from the on boot service!
- On-boot settings are already enabled for %s. Any further changes on this script won\'t be applied On-boot, unless you re-enable that switch!
- Options
+ SDCard
Permission denied for writing to storage!
Post FS Mode
%s will be executed in post-fs-data!
Press back again to exit
+ Rate App
+ Rate or/and Review Script Manager in Google Play
Report an Issue
- Save
- %s Applied!
+ Raise an issue at GitHub
+ Unfortunately, Root Access is either unavailable or declined for this app! Some features of this app is, therefore, won\'t work on your device.
%s executed successfully!
A script named %s is already exists! Aborting.
+ %s is currently executing! Please wait.
Select %s?
+ Settings
Share
+ Share App
+ Invite your friends to use Script Manager
%s/shared by Script Manager
- To apply this script, simply download the file and import into Script Manager.\nScript Manager %s can be obtained from\nPlayStore: https://play.google.com/store/apps/details?id=com.smartpack.scriptmanager\nGitHub: \nhttps://github.com/SmartPack/ScriptManager/raw/master/release/com.smartpack.scriptmanager.apk
+ To apply this script, simply download the file and import into Script Manager
+ Script Manager %s can be obtained from PlayStore: https://play.google.com/store/apps/details?id=com.smartpack.scriptmanager
Share with
Source Code
+ Script Manager is an open-source application which is ready to accept contributions from the development community. Click here to check out the source code!
+ Donation Acknowledged \u2665
+ Buy Donation App
+ Support Development
+ If you like to appreciate the efforts of the developer to provide this tool entirely free, please consider sending a small donation by clicking one among the below-provided options! Buying any of this product will award you a supporter badge here!
+ Buy me a Dinner
Support Group
+ Join Telegram support group
+ Buy me a Meal
+ Buy me a Coffee
+ You\'re already supported the development with this item before!
+ Thank you very much for your support \u2665\nIt will motivate me a lot to continue my projects more active! Moreover, you\'ll receive a supporter badge on the top of this page.
+ Please try purchasing again!
+ Thank you very much for your support!
Delete %s?
Test
"Testing script… Please be patient!"
"Testing script completed successfully!"
- Script Manager %s available!
- %s\n\n**Important: Please download and manually update the app!**
+ Translations
+ Help me to translate this app! Click here to get the original language strings in english
+ File Picker
+ External
+ In-built
+ Got some issues? Please disable \'Use In-built File Picker\' in \'Settings\' Menu!
Please select a file with %s extension.
- Welcome to Script Manager: An app to create, import, edit, share and easily execute shell scripts.\n\n*** WARNING> ***\nThis app is too powerful to messed up your device. The developer of this app won\'t take any responsibility, if something wrong happened to your device.
%s is not a proper script file! Aborting.
Yes
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ad2454f..41e0719 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,10 @@
-
-
\ No newline at end of file
diff --git a/app/src/play/AndroidManifest.xml b/app/src/play/AndroidManifest.xml
new file mode 100644
index 0000000..b0498b5
--- /dev/null
+++ b/app/src/play/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/play/java/com/smartpack/scriptmanager/activities/BillingActivity.java b/app/src/play/java/com/smartpack/scriptmanager/activities/BillingActivity.java
new file mode 100644
index 0000000..42a8c21
--- /dev/null
+++ b/app/src/play/java/com/smartpack/scriptmanager/activities/BillingActivity.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (C) 2021-2022 sunilpaulmathew
+ *
+ * This file is part of Script Manager, an app to create, import, edit
+ * and easily execute any properly formatted shell scripts.
+ *
+ */
+
+package com.smartpack.scriptmanager.activities;
+
+import android.annotation.SuppressLint;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.AppCompatImageButton;
+import androidx.appcompat.widget.AppCompatImageView;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.billingclient.api.BillingClient;
+import com.android.billingclient.api.BillingClientStateListener;
+import com.android.billingclient.api.BillingFlowParams;
+import com.android.billingclient.api.BillingResult;
+import com.android.billingclient.api.ConsumeParams;
+import com.android.billingclient.api.ConsumeResponseListener;
+import com.android.billingclient.api.Purchase;
+import com.android.billingclient.api.SkuDetails;
+import com.android.billingclient.api.SkuDetailsParams;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.textview.MaterialTextView;
+import com.smartpack.scriptmanager.R;
+import com.smartpack.scriptmanager.utils.Utils;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ * Created by sunilpaulmathew on November 12, 2020
+ */
+public class BillingActivity extends AppCompatActivity {
+
+ private final ArrayList mData = new ArrayList<>();
+ private BillingClient mBillingClient;
+ private boolean mClientInitialized = false;
+ private final List mSkuList = new ArrayList<>();
+
+ @SuppressLint("UseCompatLoadingForDrawables")
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_billing);
+
+ AppCompatImageButton mBack = findViewById(R.id.back_button);
+ AppCompatImageButton mSupporterIcon = findViewById(R.id.supporter_button);
+ MaterialTextView mSupporterMessage = findViewById(R.id.supporter_message);
+ MaterialTextView mCancel = findViewById(R.id.cancel_button);
+
+ if (Utils.isProUser(this)) {
+ mSupporterIcon.setVisibility(View.VISIBLE);
+ mSupporterMessage.setText(getString(R.string.support_status_message));
+ }
+
+ mData.add(new RecycleViewItem(getString(R.string.support_app), getResources().getDrawable(R.drawable.ic_donation_app)));
+ mData.add(new RecycleViewItem(getString(R.string.support_coffee), getResources().getDrawable(R.drawable.ic_coffee)));
+ mData.add(new RecycleViewItem(getString(R.string.support_meal), getResources().getDrawable(R.drawable.ic_meal)));
+ mData.add(new RecycleViewItem(getString(R.string.support_dinner), getResources().getDrawable(R.drawable.ic_dinner)));
+
+ RecyclerView mRecyclerView = findViewById(R.id.recycler_view);
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ RecycleViewAdapter mRecycleViewAdapter = new RecycleViewAdapter(mData);
+ mRecyclerView.setAdapter(mRecycleViewAdapter);
+ mRecyclerView.setVisibility(View.VISIBLE);
+
+ mRecycleViewAdapter.setOnItemClickListener((position, v) -> {
+ if (position == 0) {
+ buyDonationApp();
+ } else if (position == 1) {
+ buyMeACoffee();
+ } else if (position == 2) {
+ buyMeAMeal();
+ } else if (position == 3) {
+ buyMeADinner();
+ }
+ });
+
+ mBack.setOnClickListener(v -> super.onBackPressed());
+ mCancel.setOnClickListener(v -> super.onBackPressed());
+
+ mBillingClient = BillingClient.newBuilder(BillingActivity.this).enablePendingPurchases().setListener((billingResult, list) -> {
+ if (list != null && billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
+ for (Purchase purchase : list) {
+ handlePurchases(purchase);
+ }
+ } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.support_retry_message));
+ } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.support_already_received_message));
+ }
+ }).build();
+
+ mBillingClient.startConnection(new BillingClientStateListener() {
+ @Override
+ public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
+ if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
+ mClientInitialized = true;
+ }
+ }
+
+ @Override
+ public void onBillingServiceDisconnected() {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.billing_client_disconnected));
+ }
+ });
+ }
+
+ private void buyDonationApp() {
+ if (!Utils.isNotDonated(this)) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.support_already_received_message));
+ return;
+ }
+ Utils.launchUrl("https://play.google.com/store/apps/details?id=com.smartpack.donate", this);
+ }
+
+ private void buyMeACoffee() {
+ if (!mClientInitialized) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.billing_client_disconnected));
+ return;
+ }
+ mSkuList.clear();
+ mSkuList.add("donation_coffee");
+ final SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
+ params.setSkusList(mSkuList).setType(BillingClient.SkuType.INAPP);
+
+ mBillingClient.querySkuDetailsAsync(params.build(), (billingResult, list) -> {
+ if (list != null && billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
+ for (final SkuDetails skuDetails : list) {
+
+ BillingFlowParams flowParams = BillingFlowParams.newBuilder()
+ .setSkuDetails(skuDetails)
+ .build();
+
+ mBillingClient.launchBillingFlow(BillingActivity.this, flowParams);
+
+ }
+ }
+ });
+ }
+
+ private void buyMeADinner() {
+ if (!mClientInitialized) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.billing_client_disconnected));
+ return;
+ }
+ mSkuList.clear();
+ mSkuList.add("donation_dinner");
+ final SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
+ params.setSkusList(mSkuList).setType(BillingClient.SkuType.INAPP);
+
+ mBillingClient.querySkuDetailsAsync(params.build(), (billingResult, list) -> {
+ if (list != null && billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
+ for (final SkuDetails skuDetails : list) {
+
+ BillingFlowParams flowParams = BillingFlowParams.newBuilder()
+ .setSkuDetails(skuDetails)
+ .build();
+
+ mBillingClient.launchBillingFlow(BillingActivity.this, flowParams);
+
+ }
+ }
+ });
+ }
+
+ private void buyMeAMeal() {
+ if (!mClientInitialized) {
+ Utils.snackbar(findViewById(android.R.id.content), getString(R.string.billing_client_disconnected));
+ return;
+ }
+ mSkuList.clear();
+ mSkuList.add("donation_meal");
+ final SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
+ params.setSkusList(mSkuList).setType(BillingClient.SkuType.INAPP);
+
+ mBillingClient.querySkuDetailsAsync(params.build(), (billingResult, list) -> {
+ if (list != null && billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
+ for (final SkuDetails skuDetails : list) {
+
+ BillingFlowParams flowParams = BillingFlowParams.newBuilder()
+ .setSkuDetails(skuDetails)
+ .build();
+
+ mBillingClient.launchBillingFlow(BillingActivity.this, flowParams);
+
+ }
+ }
+ });
+ }
+
+ private void handlePurchases(Purchase purchase) {
+ try {
+ if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
+ if (purchase.getSkus().contains("donation_coffee") || purchase.getSkus().contains("donation_meal") || purchase.getSkus().contains("donation_dinner")) {
+ ConsumeParams consumeParams = ConsumeParams.newBuilder()
+ .setPurchaseToken(purchase.getPurchaseToken())
+ .build();
+
+ ConsumeResponseListener mConsumeResponseListener = (billingResult, s) -> Utils.snackbar(findViewById(android.R.id.content), getString(R.string.support_acknowledged));
+
+ mBillingClient.consumeAsync(consumeParams, mConsumeResponseListener);
+ new MaterialAlertDialogBuilder(this)
+ .setMessage(getString(R.string.support_received_message))
+ .setPositiveButton(getString(R.string.cancel), (dialogInterface, i) -> {
+ }).show();
+
+ Utils.saveBoolean("support_received", true, this);
+ }
+ }
+ } catch (Exception ignored) {}
+ }
+
+ private static class RecycleViewAdapter extends RecyclerView.Adapter {
+
+ private final ArrayList data;
+
+ private static ClickListener clickListener;
+
+ public RecycleViewAdapter(ArrayList data) {
+ this.data = data;
+ }
+
+ @NonNull
+ @Override
+ public RecycleViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View rowItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_view_donate, parent, false);
+ return new ViewHolder(rowItem);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecycleViewAdapter.ViewHolder holder, int position) {
+ try {
+ holder.mTitle.setText(this.data.get(position).getTitle());
+ holder.mIcon.setImageDrawable(this.data.get(position).getIcon());
+ } catch (NullPointerException ignored) {}
+ }
+
+ @Override
+ public int getItemCount() {
+ return this.data.size();
+ }
+
+ public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ private final AppCompatImageView mIcon;
+ private final MaterialTextView mTitle;
+
+ public ViewHolder(View view) {
+ super(view);
+ view.setOnClickListener(this);
+ this.mIcon = view.findViewById(R.id.icon);
+ this.mTitle = view.findViewById(R.id.title);
+ }
+
+ @Override
+ public void onClick(View view) {
+ clickListener.onItemClick(getAdapterPosition(), view);
+ }
+ }
+
+ public void setOnItemClickListener(ClickListener clickListener) {
+ RecycleViewAdapter.clickListener = clickListener;
+ }
+
+ public interface ClickListener {
+ void onItemClick(int position, View v);
+ }
+
+ }
+
+ private static class RecycleViewItem implements Serializable {
+ private final String mTitle;
+ private final Drawable mIcon;
+
+ public RecycleViewItem(String title, Drawable icon) {
+ this.mTitle = title;
+ this.mIcon = icon;
+ }
+
+ public String getTitle() {
+ return mTitle;
+ }
+
+ public Drawable getIcon() {
+ return mIcon;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/play/java/com/smartpack/scriptmanager/utils/Billing.java b/app/src/play/java/com/smartpack/scriptmanager/utils/Billing.java
new file mode 100644
index 0000000..6d08825
--- /dev/null
+++ b/app/src/play/java/com/smartpack/scriptmanager/utils/Billing.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2021-2022 sunilpaulmathew
+ *
+ * This file is part of Script Manager, an app to create, import, edit
+ * and easily execute any properly formatted shell scripts.
+ *
+ */
+
+package com.smartpack.scriptmanager.utils;
+
+import android.app.Activity;
+import android.content.Intent;
+
+import com.smartpack.scriptmanager.activities.BillingActivity;
+
+/*
+ * Created by sunilpaulmathew on January 17, 2021
+ */
+public class Billing {
+
+ public static void showDonateOption(Activity activity) {
+ Intent donations = new Intent(activity, BillingActivity.class);
+ activity.startActivity(donations);
+ }
+
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index a88f843..dbfe549 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,22 +2,21 @@
buildscript {
repositories {
- jcenter()
+ mavenCentral()
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.3'
- classpath 'com.google.gms:google-services:4.3.3'
+ classpath 'com.android.tools.build:gradle:4.2.2'
}
}
allprojects {
repositories {
- jcenter()
+ mavenCentral()
maven { url 'https://maven.google.com' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
-}
+}
\ No newline at end of file
diff --git a/change-logs.md b/change-logs.md
index 234f66d..db777b8 100644
--- a/change-logs.md
+++ b/change-logs.md
@@ -1,5 +1,73 @@
# Change-logs
+## 41. July 21, 2021
+*Release-tag: 5.0*
+Final update + depreciation notice. Updated build tools. Miscellaneous changes.
+
+## 40. June 06, 2021
+*Release-tag: 4.9*
+More updates for latest Android versions. Improved permission handling. Improved language switch. Miscellaneous changes.
+
+## 39. May 31, 2021
+*Release-tag: 4.8*
+Overall improved app UI. Updated app to target latest Android versions. Added Chinese (simplified), Ukrainian and Polish translations. Updated build tools. Miscellaneous changes.
+
+## 38. March 14, 2021
+*Release-tag: 4.7*
+Improved built-in file picker. Improved language switch. Updated build tools. Miscellaneous changes.
+
+## 37. February 13, 2021
+*Release-tag: 4.6*
+Improved internal file picker to avoid some crashes. Moved popup menu items into a new settings page. Miscellaneous changes.
+
+## 36. January 31, 2021
+*Release-tag: 4.5*
+Fixed possible crashes on some devices. Temporarily fixed issues on Android 11. Overall improved coding style. Miscellaneous changes.
+
+## 35. January 16, 2021
+*Release-tag: 4.4*
+Updated build tools and SDK. Added a licence page. Slightly updated app UI. App will now show a supporter badge for those who supported development. Miscellaneous changes.
+
+## 34. December 06, 2020
+*Release-tag: 4.3*
+Updated app to work with the non-rooted environment (with limited capabilities). App will now show live outputs on applying/testing scripts. Overall improve app UI (now using more material elements). App will now use its own file picker for selecting scripts by default (configurable). Added a new option to view script content before importing. Miscellaneous changes.
+
+## 33. November 16, 2020
+*Release-tag: 4.2*
+Fixed app crashing when trying to import scripts from some locations. Miscellaneous changes.
+
+## 32. November 12, 2020
+*Release-tag: 4.1*
+Completely removed Ads from the app. Switched to use Material Alert Dialogs. Added donation option. Miscellaneous changes.
+
+## 31. October 6, 2020
+*Release-tag: 4.0*
+Re-built from (nearly) scratch. App should be now much more fast. Cleaned a whole lot of unused code. Miscellaneous changes.
+
+## 30. September 16, 2020
+*Release-tag: 3.7*
+Introduced new page to explain no root status. Miscellaneous changes.
+
+## 29. September 08, 2020
+*Release-tag: 3.6*
+Improved Ad Layout. Removed unnecessary copyright text. Miscellaneous changes.
+
+## 28. September 02, 2020
+*Release-tag: 3.5*
+Fixed some issues on Create script. Miscellaneous changes.
+
+## 27. August 29, 2020
+*Release-tag: 3.4*
+Fixed various issues on Edit, create and apply script. Miscellaneous changes.
+
+## 26. August 23, 2020
+*Release-tag: 3.3*
+Update script Edit and Details views. Updated libsu to v3.0.2. Update gradle build tools. Miscellaneous changes.
+
+## 25. June 14, 2020
+*Release-tag: 3.2*
+Update description view (Each and every task on scripts are now more straight forward). Added Russian translation (Credits: Mikesew1320). Add an Auto-Mode to App Theme. Improved About and Change-logs view. Update gradle build tools. Miscellaneous changes.
+
## 24. May 09, 2020
*Release-tag: 3.1*
Apply and Test script: Show success message if the output is empty. Fixed crashing in no root available situations. Barnd new About & Change-log views. Miscellaneous changes.
@@ -78,4 +146,4 @@ Scripts: On-boot: Add choice to select post-fs or late_service. Script: Edit Scr
## 1. January 13, 2020
*Release-tag: alpha1*
-The very first public release of Script Manager, an app to create, import, edit and easily execute any properly formatted shell scripts.
+The very first public release of Script Manager, an app to create, import, edit and easily execute any properly formatted shell scripts.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/41.txt b/fastlane/metadata/android/en-US/changelogs/41.txt
new file mode 100644
index 0000000..ac62eb6
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/41.txt
@@ -0,0 +1,3 @@
+* Final update + depreciation notice.
+* Updated build tools.
+* Miscellaneous changes.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 0000000..3a42e8a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1,16 @@
+Script Manager is a simple application to create, import, edit and easily execute any properly formatted shell scripts.
+
+Please Note
+
+Script Manager doesn't need ROOT Access for normal use. However, due to the restricted permissions of android eco-system, executing root commands from app won't work without ROOT Access enabled.
+
+Features
+
+Script Manager is a simple and very basic app, with a beautifully designed dark/light user interface, which offers the following things
+* Create, edit, share, and easily execute shell scripts.
+* Import shell scripts from sdcard.
+* Apply scripts on boot, either on post-fs or late_service as per user choice (only if rooted with Magisk).
+
+Translations
+
+Please help me to translate this application via POEditor. You may also translate after downloading the original language string available GitHub.
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 0000000..91957ad
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
new file mode 100644
index 0000000..dd6579a
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
new file mode 100644
index 0000000..a7f10f7
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
new file mode 100644
index 0000000..c82e442
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
new file mode 100644
index 0000000..e016658
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png differ
diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 0000000..24c5443
--- /dev/null
+++ b/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1 @@
+An application to manage shell scripts!
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 628670e..c52ac9b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,19 @@
# Project-wide Gradle settings.
-
-#AndroidX
-android.enableJetifier=true
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 88ec5d7..9b6e700 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Feb 28 17:34:20 CET 2020
+#Sun Oct 04 12:48:11 CEST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
diff --git a/local.properties b/local.properties
index 895cb48..b9a974a 100644
--- a/local.properties
+++ b/local.properties
@@ -1,8 +1,10 @@
-## This file must *NOT* be checked into Version Control Systems,
+## This file is automatically generated by Android Studio.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
-#Tue Jan 14 09:40:42 CET 2020
-sdk.dir=C\:\\Users\\HP\\AppData\\Local\\Android\\Sdk
+sdk.dir=C\:\\Users\\HP\\AppData\\Local\\Android\\Sdk
\ No newline at end of file
diff --git a/release/com.smartpack.scriptmanager.apk b/release/com.smartpack.scriptmanager.apk
deleted file mode 100644
index af0a722..0000000
Binary files a/release/com.smartpack.scriptmanager.apk and /dev/null differ
diff --git a/settings.gradle b/settings.gradle
index e7b4def..4b45572 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,2 @@
include ':app'
+rootProject.name = "Script Manager"
\ No newline at end of file