diff --git a/app/build.gradle b/app/build.gradle index 1c74e383..2c1a9163 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,7 @@ android { versionName "0.19" //resConfigs "en", "de" buildConfigField "boolean", "enableColorSniffer", "false" + testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' } buildTypes { debug { diff --git a/app/src/main/java/io/github/subhamtyagi/lastlauncher/dialogs/PaddingDialog.java b/app/src/main/java/io/github/subhamtyagi/lastlauncher/dialogs/PaddingDialog.java index 0aeaf6fa..b54b3b9f 100644 --- a/app/src/main/java/io/github/subhamtyagi/lastlauncher/dialogs/PaddingDialog.java +++ b/app/src/main/java/io/github/subhamtyagi/lastlauncher/dialogs/PaddingDialog.java @@ -32,6 +32,7 @@ import io.github.subhamtyagi.lastlauncher.utils.DbUtils; import static io.github.subhamtyagi.lastlauncher.utils.Constants.MAX_PADDING_BOTTOM; +import static io.github.subhamtyagi.lastlauncher.utils.Constants.MAX_PADDING_INTERVAL; import static io.github.subhamtyagi.lastlauncher.utils.Constants.MAX_PADDING_LEFT; import static io.github.subhamtyagi.lastlauncher.utils.Constants.MAX_PADDING_RIGHT; import static io.github.subhamtyagi.lastlauncher.utils.Constants.MAX_PADDING_TOP; @@ -49,8 +50,10 @@ public class PaddingDialog extends Dialog implements View.OnLongClickListener, V private TextView right; private TextView top; private TextView bottom; + private TextView interval; - private int topInt, leftInt, rightInt, bottomInt; + + private int topInt, leftInt, rightInt, bottomInt, intervalInt; private Runnable runnable; @@ -58,7 +61,6 @@ public PaddingDialog(Context context, FlowLayout mHomeLayout) { super(context); homeLayout = mHomeLayout; } - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -80,6 +82,11 @@ protected void onCreate(Bundle savedInstanceState) { TextView btnBottomMinus = findViewById(R.id.btn_bottom_minus); btnBottomMinus.setOnLongClickListener(this); btnBottomMinus.setOnClickListener(this); + + TextView btnIntervalMinus = findViewById(R.id.btn_interval_minus); + btnIntervalMinus.setOnLongClickListener(this); + btnIntervalMinus.setOnClickListener(this); + TextView btnLeftPlus = findViewById(R.id.btn_left_plus); btnLeftPlus.setOnLongClickListener(this); btnLeftPlus.setOnClickListener(this); @@ -95,20 +102,27 @@ protected void onCreate(Bundle savedInstanceState) { btnBottomPlus.setOnLongClickListener(this); btnBottomPlus.setOnClickListener(this); + TextView btnIntervalPlus = findViewById(R.id.btn_interval_plus); + btnIntervalPlus.setOnLongClickListener(this); + btnIntervalPlus.setOnClickListener(this); + left = findViewById(R.id.tv_left_padding); right = findViewById(R.id.tv_right_padding); top = findViewById(R.id.tv_top_padding); bottom = findViewById(R.id.tv_bottom_padding); + interval = findViewById(R.id.tv_interval_padding); leftInt = DbUtils.getPaddingLeft(); rightInt = DbUtils.getPaddingRight(); topInt = DbUtils.getPaddingTop(); bottomInt = DbUtils.getPaddingBottom(); + intervalInt = DbUtils.getPaddingInterval(); left.setText(String.valueOf(leftInt)); right.setText(String.valueOf(rightInt)); top.setText(String.valueOf(topInt)); bottom.setText(String.valueOf(bottomInt)); + interval.setText(String.valueOf(intervalInt)); } @@ -123,6 +137,8 @@ protected void onStop() { DbUtils.setPaddingRight(rightInt); DbUtils.setPaddingTop(topInt); DbUtils.setPaddingBottom(bottomInt); + DbUtils.setPaddingInterval(intervalInt); + } @Override @@ -152,6 +168,16 @@ public boolean onLongClick(View button) { case R.id.btn_bottom_plus: runner((TextView) button, bottom, 2, Padding.BOTTOM); break; + case R.id.btn_interval_minus: + runner((TextView) button, interval, -2, Padding.INTERVAL); + break; + case R.id.btn_interval_plus: + runner((TextView) button, interval, 2, Padding.INTERVAL); + break; + default: + runner((TextView) button, interval, 2, Padding.INTERVAL); + break; + } return true; @@ -220,8 +246,29 @@ public void onClick(View view) { } bottom.setText(String.valueOf(bottomInt)); break; + case R.id.btn_interval_minus: + intervalInt--; + if(intervalInt < MIN_PADDING){ + intervalInt = MIN_PADDING; + } + interval.setText(String.valueOf(intervalInt)); + break; + case R.id.btn_interval_plus: + intervalInt ++; + if(intervalInt > MAX_PADDING_INTERVAL){ + intervalInt = MAX_PADDING_INTERVAL; + } + interval.setText(String.valueOf(intervalInt)); + default: + intervalInt ++; + if(intervalInt > MAX_PADDING_INTERVAL){ + intervalInt = MAX_PADDING_INTERVAL; + } + interval.setText(String.valueOf(intervalInt)); + break; } // apply all padding to home layout + homeLayout.changeMargin(20 + intervalInt, 20 +intervalInt, 20, 20); homeLayout.setPadding(leftInt, topInt, rightInt, bottomInt); } @@ -298,10 +345,24 @@ private void runner(final TextView button, final TextView view, final int step, } view.setText(String.valueOf(bottomInt)); break; + case INTERVAL: + intervalInt += step; + if(step > 0){ + if(intervalInt > MAX_PADDING_INTERVAL){ + intervalInt = MAX_PADDING_INTERVAL; + } + }else{ + if(intervalInt < MIN_PADDING){ + intervalInt = MIN_PADDING; + } + } + view.setText(String.valueOf(intervalInt)); + break; } // set the padding to home layout homeLayout.setPadding(leftInt, topInt, rightInt, bottomInt); + homeLayout.changeMargin(20 + intervalInt, 20 +intervalInt, 20, 20); // currently button is still pressed so again call this runnable handler.postDelayed(runnable, DELAY); @@ -314,7 +375,7 @@ private void runner(final TextView button, final TextView view, final int step, //enums for better understanding private enum Padding { - LEFT, RIGHT, TOP, BOTTOM + LEFT, RIGHT, TOP, BOTTOM, INTERVAL } } diff --git a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Constants.java b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Constants.java index 23a4a47f..b4ee022d 100644 --- a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Constants.java +++ b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Constants.java @@ -41,7 +41,8 @@ public class Constants { public static final int MAX_PADDING_LEFT = 99; public static final int MAX_PADDING_RIGHT = 99; public static final int MAX_PADDING_TOP = 999; - public static final int MAX_PADDING_BOTTOM = 999; + public static final int MAX_PADDING_BOTTOM = 99; + public static final int MAX_PADDING_INTERVAL = 90; public static final int MIN_PADDING = 0; //TODO: Dynamic height public static int dynamicHeight = 20; diff --git a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/DbUtils.java b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/DbUtils.java index 4a921af6..a3f92cdf 100644 --- a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/DbUtils.java +++ b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/DbUtils.java @@ -57,6 +57,7 @@ public class DbUtils { private static final String PADDING_LEFT = "padding_left"; private static final String PADDING_RIGHT = "padding_right"; private static final String PADDING_BOTTOM = "padding_bottom"; + private static final String PADDING_INTERVAL = "padding interval"; private static final String GLOBAL_SIZE_ADDITION_EXTRA = "global_size_addition_extra"; private static final String APPS_COLORS_DEFAULT = "apps_color_default"; @@ -325,6 +326,14 @@ public static void setPaddingBottom(int padding) { SpUtils.getInstance().putInt(PADDING_BOTTOM, padding); } + public static int getPaddingInterval() { + return SpUtils.getInstance().getInt(PADDING_INTERVAL, 0); + } + + public static void setPaddingInterval(int padding) { + SpUtils.getInstance().putInt(PADDING_INTERVAL, padding); + } + public static void setGroupPrefix(String activityName, String prefix) { activityName = activityName.replaceAll("\\.", "_") + "_group_prefix"; diff --git a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Utils.java b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Utils.java index 0ab2fcdd..7f0028f2 100644 --- a/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Utils.java +++ b/app/src/main/java/io/github/subhamtyagi/lastlauncher/utils/Utils.java @@ -217,8 +217,6 @@ public static boolean simpleFuzzySearch(CharSequence query, String strings) { } - - public static int getColor() { Random random = new Random(); int c = random.nextInt(4); diff --git a/app/src/main/res/layout/dialog_padding.xml b/app/src/main/res/layout/dialog_padding.xml index c2c184e7..245584c2 100644 --- a/app/src/main/res/layout/dialog_padding.xml +++ b/app/src/main/res/layout/dialog_padding.xml @@ -256,4 +256,66 @@ android:textSize="42sp" /> + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml index d531311b..6bd190d8 100644 --- a/app/src/main/res/layout/list_item.xml +++ b/app/src/main/res/layout/list_item.xml @@ -17,6 +17,7 @@ --> lines = new ArrayList<>(); List views = new ArrayList<>(); - public FlowLayout(Context context) { super(context); this.config = new ConfigDefinition(); @@ -66,6 +65,21 @@ private void readStyleParameters(Context context, AttributeSet attributeSet) { a.recycle(); } } + // add in https://github.com/SubhamTyagi/Last-Launcher/issues/172 + /** + * This method is used to change the margin between each APP's label. + * + * @param leftMargin the left margin of an APP's label. + * @param rightMargin the right margin of an APP's label. + * @param topMargin the top margin of an APP's label. + * @param bottomMargin the bottom margin of an APP's label. + */ + + public void changeMargin(final int leftMargin, final int rightMargin, final int topMargin, final int bottomMargin) { + for (ViewDefinition view : views) { + view.setMargins(leftMargin + 15, topMargin + 5, rightMargin + 15, bottomMargin + 5); + } + } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { @@ -91,7 +105,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { view.setNewLine(lp.isNewLine()); view.setGravity(lp.getGravity()); view.setWeight(lp.getWeight()); - view.setMargins(lp.leftMargin, lp.topMargin, lp.rightMargin, lp.bottomMargin); + view.setMargins(lp.leftMargin + 15, lp.topMargin + 5, lp.rightMargin + 15, lp.bottomMargin + 5); // margin setting views.add(view); } @@ -100,10 +114,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { this.config.setWidthMode(MeasureSpec.getMode(widthMeasureSpec)); this.config.setHeightMode(MeasureSpec.getMode(heightMeasureSpec)); this.config.setCheckCanFit(this.config.getLengthMode() != View.MeasureSpec.UNSPECIFIED); - CommonLogic.fillLines(views, lines, config); CommonLogic.calculateLinesAndChildPosition(lines); - int contentLength = 0; final int linesCount = lines.size(); for (int i = 0; i < linesCount; i++) { @@ -136,7 +148,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { this.setMeasuredDimension(resolveSize(totalControlWidth, widthMeasureSpec), resolveSize(totalControlHeight, heightMeasureSpec)); } - private void applyPositionsToViews(LineDefinition line) { + public void applyPositionsToViews(LineDefinition line) { final List childViews = line.getViews(); final int childCount = childViews.size(); for (int i = 0; i < childCount; i++) { @@ -196,7 +208,6 @@ public LayoutParams generateLayoutParams(AttributeSet attributeSet) { protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { return new LayoutParams(p); } - private void drawDebugInfo(Canvas canvas, View child) { if (!isDebugDraw()) { return; @@ -206,7 +217,6 @@ private void drawDebugInfo(Canvas canvas, View child) { Paint newLinePaint = this.createPaint(0xffff0000); LayoutParams lp = (LayoutParams) child.getLayoutParams(); - if (lp.rightMargin > 0) { float x = child.getRight(); float y = child.getTop() + child.getHeight() / 2.0f; @@ -238,7 +248,6 @@ private void drawDebugInfo(Canvas canvas, View child) { canvas.drawLine(x - 4.0f, y - lp.topMargin + 4.0f, x, y - lp.topMargin, childPaint); canvas.drawLine(x + 4.0f, y - lp.topMargin + 4.0f, x, y - lp.topMargin, childPaint); } - if (lp.isNewLine()) { if (this.config.getOrientation() == CommonLogic.HORIZONTAL) { float x = child.getLeft(); @@ -360,7 +369,6 @@ public static class LayoutParams extends MarginLayoutParams { @ViewDebug.IntToString(from = Gravity.CENTER, to = "CENTER"), @ViewDebug.IntToString(from = Gravity.FILL, to = "FILL") }) - private boolean newLine = false; private int gravity = Gravity.NO_GRAVITY; private float weight = -1.0f; diff --git a/flowlayout/layouts/src/main/java/org/apmem/tools/layouts/logic/ViewDefinition.java b/flowlayout/layouts/src/main/java/org/apmem/tools/layouts/logic/ViewDefinition.java index 3506e4cd..eec757d8 100644 --- a/flowlayout/layouts/src/main/java/org/apmem/tools/layouts/logic/ViewDefinition.java +++ b/flowlayout/layouts/src/main/java/org/apmem/tools/layouts/logic/ViewDefinition.java @@ -130,7 +130,6 @@ public void setMargins(int leftMargin, int topMargin, int rightMargin, int botto this.rightMargin = rightMargin; this.bottomMargin = bottomMargin; } - public int getInlineX() { return this.config.getOrientation() == CommonLogic.HORIZONTAL ? this.inlineStartLength : this.inlineStartThickness; } diff --git "a/\346\241\214\351\235\242 - \345\277\253\346\215\267\346\226\271\345\274\217.lnk" "b/\346\241\214\351\235\242 - \345\277\253\346\215\267\346\226\271\345\274\217.lnk" new file mode 100644 index 00000000..10372ab2 Binary files /dev/null and "b/\346\241\214\351\235\242 - \345\277\253\346\215\267\346\226\271\345\274\217.lnk" differ