Skip to content

Commit a81f67f

Browse files
authored
Merge pull request #147 from mohanvamsi06/master
Added Clear All feature in favorites
2 parents 5d74e40 + b7b679b commit a81f67f

File tree

5 files changed

+45
-5
lines changed

5 files changed

+45
-5
lines changed

app/src/main/java/phone/vishnu/quotes/fragment/FavoriteFragment.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import android.view.WindowManager;
3636
import android.view.inputmethod.InputMethodManager;
3737
import android.widget.Filter;
38+
import android.widget.ImageButton;
3839
import android.widget.ImageView;
3940
import android.widget.TextView;
4041
import android.widget.Toast;
@@ -75,6 +76,8 @@ public class FavoriteFragment extends BaseBottomSheetDialogFragment {
7576
private FavoritesRVAdapter adapter;
7677
private RecyclerView recyclerView;
7778

79+
private ImageButton clearAllButton;
80+
7881
private ImageView emptyHintIV;
7982
private TextView emptyHintTV, addTV, countTV;
8083
private LinearProgressIndicator progressBar;
@@ -106,6 +109,7 @@ public View onCreateView(
106109
coordinatorLayout = inflate.findViewById(R.id.favCoordinatorLayout);
107110
textInputEditText = inflate.findViewById(R.id.favSearchTIE);
108111
textInputLayout = inflate.findViewById(R.id.favSearchTIL);
112+
clearAllButton = inflate.findViewById(R.id.clearAllButton);
109113

110114
sharedPreferenceHelper = new SharedPreferenceHelper(requireContext());
111115

@@ -178,6 +182,16 @@ public void afterTextChanged(Editable s) {}
178182
chipGroup.requestFocus();
179183
}
180184
});
185+
186+
clearAllButton.setOnClickListener(
187+
v -> {
188+
if (!favArrayList.isEmpty()) {
189+
viewModel.deleteAll();
190+
favArrayList.clear();
191+
submitList(new ArrayList<>());
192+
sharedPreferenceHelper.deleteFavPreference();
193+
}
194+
});
181195
}
182196

183197
private Filter getFilter() {

app/src/main/java/phone/vishnu/quotes/viewmodel/FavViewModel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public void delete(Quote quote) {
4646
repository.deleteFav(quote);
4747
}
4848

49+
public void deleteAll() {
50+
repository.deleteAll();
51+
}
52+
4953
public LiveData<List<Quote>> getAllFav() {
5054
return allFavList;
5155
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
2+
3+
<path android:fillColor="@android:color/white" android:pathData="M6,13h12c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1L6,11c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM4,17h12c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1L4,15c-0.55,0 -1,0.45 -1,1s0.45,1 1,1zM7,8c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1L8,7c-0.55,0 -1,0.45 -1,1z"/>
4+
5+
</vector>

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

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@
2929
android:textSize="16sp"
3030
app:layout_constraintBottom_toTopOf="@id/favGuideLineOne"
3131
app:layout_constraintEnd_toEndOf="parent"
32-
app:layout_constraintHorizontal_bias="0"
32+
app:layout_constraintHorizontal_bias="0.0"
3333
app:layout_constraintStart_toStartOf="parent"
34-
app:layout_constraintTop_toTopOf="parent" />
34+
app:layout_constraintTop_toTopOf="parent"
35+
app:layout_constraintVertical_bias="0.0" />
3536

3637
<TextView
3738
android:id="@+id/favAddTV"
@@ -47,9 +48,10 @@
4748
app:drawableEndCompat="@drawable/ic_post_add"
4849
app:layout_constraintBottom_toTopOf="@id/favGuideLineOne"
4950
app:layout_constraintEnd_toEndOf="parent"
50-
app:layout_constraintHorizontal_bias="1"
51+
app:layout_constraintHorizontal_bias="1.0"
5152
app:layout_constraintStart_toEndOf="@id/favTitleTV"
5253
app:layout_constraintTop_toTopOf="parent"
54+
app:layout_constraintVertical_bias="0.0"
5355
app:tint="@color/colorAccent" />
5456

5557
<androidx.constraintlayout.widget.Guideline
@@ -112,9 +114,22 @@
112114
android:textSize="16sp"
113115
android:textStyle="bold"
114116
app:layout_constraintBottom_toBottomOf="@id/favChipGroup"
115-
app:layout_constraintEnd_toEndOf="parent"
117+
app:layout_constraintEnd_toStartOf="@+id/clearAllButton"
116118
app:layout_constraintTop_toTopOf="@id/favChipGroup" />
117119

120+
<ImageButton
121+
android:id="@+id/clearAllButton"
122+
android:layout_width="wrap_content"
123+
android:layout_height="wrap_content"
124+
android:layout_margin="8dp"
125+
android:background="?attr/selectableItemBackgroundBorderless"
126+
android:contentDescription="@string/clear_all"
127+
android:src="@drawable/ic_round_clear_all_24"
128+
app:tint="@color/textColor"
129+
app:layout_constraintBottom_toBottomOf="@id/favCountTV"
130+
app:layout_constraintEnd_toEndOf="parent"
131+
app:layout_constraintTop_toTopOf="@id/favCountTV" />
132+
118133
<com.google.android.material.progressindicator.LinearProgressIndicator
119134
android:id="@+id/favProgressBar"
120135
android:layout_width="0dp"
@@ -172,8 +187,9 @@
172187
app:layout_constraintTop_toBottomOf="@id/favProgressBar"
173188
tools:listitem="@layout/favorite_single_item" />
174189

190+
175191
</androidx.constraintlayout.widget.ConstraintLayout>
176192

177193
</androidx.coordinatorlayout.widget.CoordinatorLayout>
178194

179-
</androidx.core.widget.NestedScrollView>
195+
</androidx.core.widget.NestedScrollView>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
<string name="all">All</string>
128128
<string name="default_string">Default</string>
129129
<string name="custom">Custom</string>
130+
<string name="clear_all">Clear All</string>
130131

131132
<string name="font_file_not_found">Font file not found</string>
132133

0 commit comments

Comments
 (0)