Skip to content

Commit 33d1a04

Browse files
committed
added indicator for prompt settings
1 parent 9aa007b commit 33d1a04

File tree

4 files changed

+108
-26
lines changed

4 files changed

+108
-26
lines changed

app/src/main/java/net/devemperor/dictate/rewording/PromptsOverviewAdapter.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package net.devemperor.dictate.rewording;
22

3+
import android.content.res.ColorStateList;
34
import android.view.LayoutInflater;
45
import android.view.View;
56
import android.view.ViewGroup;
7+
import android.widget.ImageView;
68
import android.widget.TextView;
79

810
import androidx.annotation.NonNull;
911
import androidx.appcompat.app.AppCompatActivity;
12+
import androidx.core.content.ContextCompat;
1013
import androidx.recyclerview.widget.RecyclerView;
1114

1215
import com.google.android.material.button.MaterialButton;
@@ -44,6 +47,9 @@ public RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view
4447
public static class RecyclerViewHolder extends RecyclerView.ViewHolder {
4548
final TextView itemNameTv;
4649
final TextView itemPromptTv;
50+
final ImageView requiresSelectionIv;
51+
final ImageView autoApplyIv;
52+
final View nameContainer;
4753
final MaterialButton moveUpBtn;
4854
final MaterialButton moveDownBtn;
4955
final MaterialButton deleteBtn;
@@ -52,6 +58,9 @@ public RecyclerViewHolder(View itemView) {
5258
super(itemView);
5359
itemNameTv = itemView.findViewById(R.id.item_prompts_overview_name_tv);
5460
itemPromptTv = itemView.findViewById(R.id.item_prompts_overview_prompt_tv);
61+
requiresSelectionIv = itemView.findViewById(R.id.item_prompts_overview_requires_selection_iv);
62+
autoApplyIv = itemView.findViewById(R.id.item_prompts_overview_auto_apply_iv);
63+
nameContainer = itemView.findViewById(R.id.item_prompts_overview_name_container);
5564
moveUpBtn = itemView.findViewById(R.id.item_prompts_overview_move_up_btn);
5665
moveDownBtn = itemView.findViewById(R.id.item_prompts_overview_move_down_btn);
5766
deleteBtn = itemView.findViewById(R.id.item_prompts_overview_delete_btn);
@@ -68,6 +77,14 @@ public void onBindViewHolder(@NonNull RecyclerViewHolder holder, final int posit
6877
holder.itemNameTv.setOnClickListener(v -> callback.onItemClicked(currentPosition));
6978
holder.itemPromptTv.setText(model.getPrompt());
7079
holder.itemPromptTv.setOnClickListener(v -> callback.onItemClicked(currentPosition));
80+
holder.nameContainer.setOnClickListener(v -> callback.onItemClicked(currentPosition));
81+
82+
int enabledColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.dictate_blue);
83+
int disabledColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.dictate_grey);
84+
holder.requiresSelectionIv.setImageTintList(ColorStateList.valueOf(
85+
model.requiresSelection() ? enabledColor : disabledColor));
86+
holder.autoApplyIv.setImageTintList(ColorStateList.valueOf(
87+
model.isAutoApply() ? enabledColor : disabledColor));
7188

7289
holder.moveUpBtn.setVisibility(currentPosition == 0 ? View.GONE : View.VISIBLE);
7390
holder.moveDownBtn.setVisibility(currentPosition == data.size() - 1 ? View.GONE : View.VISIBLE);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="24dp"
4+
android:height="24dp"
5+
android:viewportWidth="24"
6+
android:viewportHeight="24">
7+
<path
8+
android:fillColor="@android:color/white"
9+
android:pathData="M12,6V9L16,5L12,1V4C7.58,4 4,7.58 4,12C4,13.85 4.63,15.55 5.69,16.91L7.11,15.49C6.41,14.43 6,13.25 6,12C6,8.69 8.69,6 12,6ZM18.31,7.09L16.89,8.51C17.59,9.57 18,10.75 18,12C18,15.31 15.31,18 12,18V15L8,19L12,23V20C16.42,20 20,16.42 20,12C20,10.15 19.37,8.45 18.31,7.09Z" />
10+
</vector>

app/src/main/res/layout/activity_prompt_edit.xml

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,49 +24,82 @@
2424
android:id="@+id/prompt_edit_prompt_et"
2525
android:layout_width="match_parent"
2626
android:layout_height="0dp"
27-
android:layout_marginTop="16dp"
28-
android:layout_marginBottom="16dp"
27+
android:layout_marginVertical="16dp"
2928
android:gravity="top"
3029
android:hint="@string/dictate_edit_prompt_prompt_hint"
3130
android:inputType="text|textLongMessage|textAutoCorrect|textCapSentences|textMultiLine"
3231
android:singleLine="false"
33-
app:layout_constraintBottom_toTopOf="@+id/prompt_edit_requires_selection_switch"
32+
app:layout_constraintBottom_toTopOf="@+id/prompt_edit_requires_selection_container"
3433
app:layout_constraintTop_toBottomOf="@+id/prompt_edit_name_et" />
3534

36-
<com.google.android.material.materialswitch.MaterialSwitch
37-
android:id="@+id/prompt_edit_requires_selection_switch"
35+
<LinearLayout
36+
android:id="@+id/prompt_edit_requires_selection_container"
3837
android:layout_width="0dp"
3938
android:layout_height="wrap_content"
40-
android:layout_marginTop="16dp"
4139
android:layout_marginHorizontal="8dp"
42-
android:text="@string/dictate_requires_selection"
40+
android:layout_marginBottom="8dp"
41+
android:gravity="center_vertical"
42+
android:orientation="horizontal"
43+
app:layout_constraintBottom_toTopOf="@+id/prompt_edit_auto_apply_container"
4344
app:layout_constraintEnd_toEndOf="parent"
44-
app:layout_constraintStart_toStartOf="parent"
45-
app:layout_constraintTop_toBottomOf="@+id/prompt_edit_prompt_et" />
45+
app:layout_constraintStart_toStartOf="parent">
4646

47-
<com.google.android.material.materialswitch.MaterialSwitch
48-
android:id="@+id/prompt_edit_auto_apply_switch"
47+
<ImageView
48+
android:id="@+id/prompt_edit_requires_selection_icon"
49+
android:layout_width="28dp"
50+
android:layout_height="28dp"
51+
android:layout_marginEnd="8dp"
52+
android:src="@drawable/ic_baseline_select_all_24"
53+
app:tint="@color/dictate_blue" />
54+
55+
<com.google.android.material.materialswitch.MaterialSwitch
56+
android:id="@+id/prompt_edit_requires_selection_switch"
57+
android:layout_width="0dp"
58+
android:layout_height="wrap_content"
59+
android:layout_weight="1"
60+
android:checked="true"
61+
android:text="@string/dictate_requires_selection" />
62+
</LinearLayout>
63+
64+
<LinearLayout
65+
android:id="@+id/prompt_edit_auto_apply_container"
4966
android:layout_width="0dp"
5067
android:layout_height="wrap_content"
51-
android:layout_marginTop="8dp"
5268
android:layout_marginHorizontal="8dp"
53-
android:text="@string/dictate_auto_apply"
69+
android:layout_marginTop="8dp"
70+
android:layout_marginBottom="16dp"
71+
android:gravity="center_vertical"
72+
android:orientation="horizontal"
73+
app:layout_constraintBottom_toTopOf="@+id/prompt_edit_save_btn"
5474
app:layout_constraintEnd_toEndOf="parent"
55-
app:layout_constraintStart_toStartOf="parent"
56-
app:layout_constraintTop_toBottomOf="@id/prompt_edit_requires_selection_switch" />
75+
app:layout_constraintStart_toStartOf="parent">
76+
77+
<ImageView
78+
android:id="@+id/prompt_edit_auto_apply_icon"
79+
android:layout_width="28dp"
80+
android:layout_height="28dp"
81+
android:layout_marginEnd="8dp"
82+
android:src="@drawable/ic_baseline_autorenew_24"
83+
app:tint="@color/dictate_blue" />
84+
85+
<com.google.android.material.materialswitch.MaterialSwitch
86+
android:id="@+id/prompt_edit_auto_apply_switch"
87+
android:layout_width="0dp"
88+
android:layout_height="wrap_content"
89+
android:layout_weight="1"
90+
android:text="@string/dictate_auto_apply" />
91+
</LinearLayout>
5792

5893
<com.google.android.material.button.MaterialButton
5994
android:id="@+id/prompt_edit_save_btn"
6095
android:layout_width="128dp"
6196
android:layout_height="wrap_content"
62-
android:layout_marginTop="16dp"
6397
android:layout_marginBottom="16dp"
6498
android:enabled="false"
6599
android:text="@string/dictate_save"
66100
app:icon="@drawable/ic_baseline_check_24"
67101
app:layout_constraintBottom_toBottomOf="parent"
68102
app:layout_constraintEnd_toEndOf="parent"
69-
app:layout_constraintStart_toStartOf="parent"
70-
app:layout_constraintTop_toBottomOf="@id/prompt_edit_auto_apply_switch" />
103+
app:layout_constraintStart_toStartOf="parent"/>
71104

72105
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/layout/item_prompts_overview.xml

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,38 @@
77
android:layout_marginVertical="16dp"
88
android:layout_marginHorizontal="8dp">
99

10-
<TextView
11-
android:id="@+id/item_prompts_overview_name_tv"
10+
<LinearLayout
11+
android:id="@+id/item_prompts_overview_name_container"
1212
android:layout_width="0dp"
1313
android:layout_height="wrap_content"
14-
android:textStyle="bold"
15-
android:maxLength="65000"
14+
android:orientation="horizontal"
15+
android:gravity="center_vertical"
1616
app:layout_constraintEnd_toStartOf="@+id/item_prompts_overview_move_up_btn"
1717
app:layout_constraintStart_toStartOf="parent"
18-
app:layout_constraintTop_toTopOf="parent"
19-
tools:text="Translator French" />
18+
app:layout_constraintTop_toTopOf="parent">
19+
20+
<TextView
21+
android:id="@+id/item_prompts_overview_name_tv"
22+
android:layout_width="wrap_content"
23+
android:layout_height="wrap_content"
24+
android:layout_marginEnd="6dp"
25+
android:maxLength="65000"
26+
android:textStyle="bold"
27+
tools:text="Translator French" />
28+
29+
<ImageView
30+
android:id="@+id/item_prompts_overview_requires_selection_iv"
31+
android:layout_width="16dp"
32+
android:layout_height="16dp"
33+
android:src="@drawable/ic_baseline_select_all_24" />
34+
35+
<ImageView
36+
android:id="@+id/item_prompts_overview_auto_apply_iv"
37+
android:layout_width="16dp"
38+
android:layout_height="16dp"
39+
android:layout_marginStart="4dp"
40+
android:src="@drawable/ic_baseline_autorenew_24" />
41+
</LinearLayout>
2042

2143
<TextView
2244
android:id="@+id/item_prompts_overview_prompt_tv"
@@ -29,7 +51,7 @@
2951
app:layout_constraintBottom_toBottomOf="parent"
3052
app:layout_constraintEnd_toStartOf="@+id/item_prompts_overview_move_up_btn"
3153
app:layout_constraintStart_toStartOf="parent"
32-
app:layout_constraintTop_toBottomOf="@+id/item_prompts_overview_name_tv"
54+
app:layout_constraintTop_toBottomOf="@+id/item_prompts_overview_name_container"
3355
tools:text="Translate the following text into French. Use exactly the same style and language as in the original text. Output only the translated text, without any further descriptions or characters." />
3456

3557
<com.google.android.material.button.MaterialButton
@@ -68,4 +90,4 @@
6890
app:layout_constraintEnd_toEndOf="parent"
6991
app:layout_constraintTop_toTopOf="parent" />
7092

71-
</androidx.constraintlayout.widget.ConstraintLayout>
93+
</androidx.constraintlayout.widget.ConstraintLayout>

0 commit comments

Comments
 (0)