Skip to content

Commit a670e2f

Browse files
committed
Add Selected count
1 parent 5b7f02a commit a670e2f

File tree

9 files changed

+113
-27
lines changed

9 files changed

+113
-27
lines changed

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ android {
99
vectorDrawables.generatedDensities = []
1010
minSdkVersion 23
1111
targetSdk 35
12-
versionName '2.5.9'
13-
versionCode 30
12+
versionName '2.6.0'
13+
versionCode 31
1414
}
1515

1616
dependenciesInfo {
@@ -50,7 +50,7 @@ android {
5050

5151
dependencies {
5252
implementation 'androidx.annotation:annotation:1.9.1'
53-
implementation 'androidx.appcompat:appcompat:1.7.0'
53+
implementation 'androidx.appcompat:appcompat:1.7.1'
5454
implementation 'androidx.core:core:1.16.0'
5555
implementation 'com.google.android.material:material:1.12.0'
5656
implementation 'com.github.sarsamurmu:AdaptiveIconBitmap:1.0.2'

app/src/main/java/de/kaiserdragon/iconrequest/AppAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.kaiserdragon.iconrequest;
22

3+
import static de.kaiserdragon.iconrequest.helper.CommonHelper.makeToast;
34
import static de.kaiserdragon.iconrequest.helper.DrawableHelper.getBitmapFromDrawable;
45

56
import android.app.Activity;

app/src/main/java/de/kaiserdragon/iconrequest/AppViewHolder.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.kaiserdragon.iconrequest;
22

3+
import static de.kaiserdragon.iconrequest.helper.CommonHelper.makeToast;
4+
35
import android.view.View;
46
import android.view.animation.Animation;
57
import android.view.animation.AnimationUtils;
@@ -29,13 +31,13 @@ public AppViewHolder(View v, List<AppInfo> appList, Boolean iPackMode, OnAppSele
2931
imageView = v.findViewById(R.id.icon_view);
3032
apkIconView = v.findViewById(R.id.Icon2_view);
3133
checkBox = v.findViewById(R.id.SwitcherChecked);
34+
listener.onAppSelected("app.packageName", "app.getLabel()",false);
3235

3336
v.setOnClickListener(v1 -> {
3437
int position = getAdapterPosition();
3538
AppInfo app = appList.get(position);
3639
app.setSelected(!app.isSelected());
37-
if (iPackMode)
38-
listener.onAppSelected(app.packageName, app.getLabel());
40+
listener.onAppSelected(app.packageName, app.getLabel(),iPackMode);
3941
Animation aniIn = AnimationUtils.loadAnimation(checkBox.getContext(), R.anim.request_flip_in_half_1);
4042
Animation aniOut = AnimationUtils.loadAnimation(checkBox.getContext(), R.anim.request_flip_in_half_2);
4143
checkBox.setInAnimation(aniIn);

app/src/main/java/de/kaiserdragon/iconrequest/ChecksActivity.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import android.view.Menu;
1111
import android.view.MenuItem;
1212
import android.view.View;
13+
import android.widget.ProgressBar;
14+
import android.widget.TextView;
1315
import android.widget.ViewSwitcher;
1416

1517
import androidx.activity.OnBackPressedCallback;
@@ -22,6 +24,7 @@
2224
import androidx.recyclerview.widget.RecyclerView;
2325

2426
import java.util.ArrayList;
27+
import java.util.Locale;
2528
import java.util.Objects;
2629
import java.util.concurrent.ExecutorService;
2730
import java.util.concurrent.Executors;
@@ -41,13 +44,20 @@ public class ChecksActivity extends AppCompatActivity implements OnAppSelectedLi
4144
//private ActivityResultLauncher<Intent> activityResultLauncher;
4245
private RecyclerView recyclerView;
4346
private AppAdapter adapter;
47+
private ProgressBar SelectedApps;
48+
private TextView ProgressText;
4449

4550
@Override
46-
public void onAppSelected(String packageName, String label) {
47-
48-
Log.i(TAG, "onAppSelected: " + packageName);
49-
switcherLoad.showNext();
50-
startChecks(packageName);
51+
public void onAppSelected(String packageName, String label, Boolean iPackMode) {
52+
if (iPackMode) {
53+
Log.i(TAG, "onAppSelected: " + packageName);
54+
switcherLoad.showNext();
55+
startChecks(packageName);
56+
} else {
57+
SelectedApps.setMax(adapter.AdapterSize());
58+
SelectedApps.setProgress(adapter.getSelectedItemCount());
59+
ProgressText.setText(String.format(Locale.ENGLISH,"%d Selected", adapter.getSelectedItemCount()));
60+
}
5161
}
5262

5363
@Override
@@ -82,6 +92,8 @@ public void handleOnBackPressed() {
8292
setSupportActionBar(toolbar);
8393
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
8494

95+
SelectedApps = findViewById(R.id.progressBarSelectedApps);
96+
ProgressText = findViewById(R.id.Apps_Selected);
8597

8698
ExecutorService executor = Executors.newCachedThreadPool();
8799
executor.execute(() -> {
@@ -125,8 +137,12 @@ private void startChecks(String packageName) {
125137
findViewById(R.id.text_iPack_chooser).setVisibility(View.GONE);
126138
if (adapter.AdapterSize() < 1) {
127139
findViewById(R.id.Nothing).setVisibility(View.VISIBLE);
140+
}else{
141+
SelectedApps.setVisibility(View.VISIBLE);
142+
ProgressText.setVisibility(View.VISIBLE);
128143
}
129144
recyclerView.setAdapter(adapter);
145+
130146
switcherLoad.showNext();
131147
});
132148
});

app/src/main/java/de/kaiserdragon/iconrequest/CompareActivity.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.view.Menu;
1111
import android.view.MenuItem;
1212
import android.view.View;
13+
import android.widget.ProgressBar;
1314
import android.widget.TextView;
1415
import android.widget.ViewSwitcher;
1516

@@ -26,6 +27,7 @@
2627

2728
import java.util.ArrayList;
2829
import java.util.List;
30+
import java.util.Locale;
2931
import java.util.Objects;
3032
import java.util.concurrent.Callable;
3133
import java.util.concurrent.ExecutionException;
@@ -54,21 +56,29 @@ public class CompareActivity extends AppCompatActivity implements OnAppSelectedL
5456
private String iconPack2PackageName;
5557
private MenuItem IconPack1;
5658
private MenuItem IconPack2;
59+
private ProgressBar SelectedApps;
60+
private TextView ProgressText;
5761

5862
@Override
59-
public void onAppSelected(String packageName, String label) {
63+
public void onAppSelected(String packageName, String label, Boolean iPackMode) {
6064
//IPackSelect(packageName);
61-
Log.i(TAG, "onAppSelected: " + packageName);
62-
switch (adapter.getSelectedItemCount()) {
63-
case 1:
64-
IconPack1.setTitle(label);
65-
iconPack1PackageName = packageName;
66-
break;
67-
case 2:
68-
IconPack2.setTitle(label);
69-
iconPack2PackageName = packageName;
70-
switcherLoad.showNext();
71-
startCompareIconPacksDifference();
65+
if (iPackMode) {
66+
Log.i(TAG, "onAppSelected: " + packageName);
67+
switch (adapter.getSelectedItemCount()) {
68+
case 1:
69+
IconPack1.setTitle(label);
70+
iconPack1PackageName = packageName;
71+
break;
72+
case 2:
73+
IconPack2.setTitle(label);
74+
iconPack2PackageName = packageName;
75+
switcherLoad.showNext();
76+
startCompareIconPacksDifference();
77+
}
78+
} else {
79+
SelectedApps.setMax(adapter.AdapterSize());
80+
SelectedApps.setProgress(adapter.getSelectedItemCount());
81+
ProgressText.setText(String.format(Locale.ENGLISH,"%d Selected", adapter.getSelectedItemCount()));
7282
}
7383
}
7484

@@ -105,6 +115,8 @@ public void handleOnBackPressed() {
105115
setSupportActionBar(toolbar);
106116
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
107117

118+
SelectedApps = findViewById(R.id.progressBarSelectedApps);
119+
ProgressText = findViewById(R.id.Apps_Selected);
108120

109121
ExecutorService executor = Executors.newCachedThreadPool();
110122
executor.execute(() -> {
@@ -146,8 +158,12 @@ private void startCompareIconPacksDifference() {
146158
}
147159
runOnUiThread(() -> {
148160
findViewById(R.id.text_iPack_chooser).setVisibility(View.GONE);
161+
149162
if (adapter.AdapterSize() < 1) {
150163
findViewById(R.id.Nothing).setVisibility(View.VISIBLE);
164+
}else{
165+
SelectedApps.setVisibility(View.VISIBLE);
166+
ProgressText.setVisibility(View.VISIBLE);
151167
}
152168
recyclerView.setAdapter(adapter);
153169
switcherLoad.showNext();

app/src/main/java/de/kaiserdragon/iconrequest/RequestActivity.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import android.view.Menu;
99
import android.view.MenuItem;
1010
import android.view.View;
11+
import android.widget.ProgressBar;
12+
import android.widget.TextView;
1113
import android.widget.ViewSwitcher;
1214

1315
import androidx.activity.OnBackPressedCallback;
@@ -22,6 +24,7 @@
2224
import androidx.recyclerview.widget.RecyclerView;
2325

2426
import java.util.ArrayList;
27+
import java.util.Locale;
2528
import java.util.Objects;
2629
import java.util.concurrent.ExecutorService;
2730
import java.util.concurrent.Executors;
@@ -48,6 +51,8 @@ public class RequestActivity extends AppCompatActivity implements OnAppSelectedL
4851
private RecyclerView recyclerView;
4952
private AppAdapter adapter;
5053
private ZipData zip;
54+
private ProgressBar SelectedApps;
55+
private TextView ProgressText;
5156

5257
@Override
5358
protected void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
@@ -56,8 +61,14 @@ protected void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
5661
}
5762

5863
@Override
59-
public void onAppSelected(String packageName, String label) {
60-
IPackSelect(packageName);
64+
public void onAppSelected(String packageName, String label, Boolean iPackMode) {
65+
if(iPackMode) {
66+
IPackSelect(packageName);
67+
} else {
68+
SelectedApps.setMax(adapter.AdapterSize());
69+
SelectedApps.setProgress(adapter.getSelectedItemCount());
70+
ProgressText.setText(String.format(Locale.ENGLISH,"%d Selected", adapter.getSelectedItemCount()));
71+
}
6172
}
6273

6374
@Override
@@ -92,6 +103,10 @@ public void handleOnBackPressed() {
92103
Toolbar toolbar = findViewById(R.id.toolbar);
93104
setSupportActionBar(toolbar);
94105
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
106+
107+
SelectedApps = findViewById(R.id.progressBarSelectedApps);
108+
ProgressText = findViewById(R.id.Apps_Selected);
109+
95110
ExecutorService executor = Executors.newCachedThreadPool();
96111
executor.execute(() -> {
97112
Looper.prepare();
@@ -106,6 +121,8 @@ public void handleOnBackPressed() {
106121
runOnUiThread(() -> {
107122
if (!OnlyNew && !SecondIcon || Shortcut) {
108123
findViewById(R.id.text_iPack_chooser).setVisibility(View.GONE);
124+
SelectedApps.setVisibility(View.VISIBLE);
125+
ProgressText.setVisibility(View.VISIBLE);
109126
}
110127
if (adapter.AdapterSize() < 1) {
111128
findViewById(R.id.Nothing).setVisibility(View.VISIBLE);
@@ -142,6 +159,9 @@ public void IPackSelect(String packageName) {
142159
invalidateOptionsMenu();
143160
if (adapter.AdapterSize() < 1) {
144161
findViewById(R.id.Nothing).setVisibility(View.VISIBLE);
162+
}else {
163+
SelectedApps.setVisibility(View.VISIBLE);
164+
ProgressText.setVisibility(View.VISIBLE);
145165
}
146166
recyclerView.setAdapter(adapter);
147167
switcherLoad.showNext();
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package de.kaiserdragon.iconrequest.interfaces;
22

33
public interface OnAppSelectedListener {
4-
void onAppSelected(String packageName, String Label);
4+
void onAppSelected(String packageName, String Label, Boolean iPackMode);
55
}

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

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
android:id="@+id/recycler_view"
7777
android:layout_width="match_parent"
7878
android:layout_height="0dp"
79-
app:layout_constraintBottom_toBottomOf="parent"
79+
app:layout_constraintBottom_toTopOf="@+id/progressBarSelectedApps"
8080
app:layout_constraintEnd_toEndOf="parent"
8181
app:layout_constraintHorizontal_bias="0.0"
8282
app:layout_constraintStart_toStartOf="parent"
@@ -96,6 +96,37 @@
9696
app:layout_constraintStart_toStartOf="parent"
9797
app:layout_constraintTop_toTopOf="parent" />
9898

99+
<ProgressBar
100+
android:id="@+id/progressBarSelectedApps"
101+
style="?android:attr/progressBarStyleHorizontal"
102+
android:layout_width="0dp"
103+
android:layout_height="30dp"
104+
android:layout_marginStart="16dp"
105+
android:layout_marginEnd="16dp"
106+
android:layout_marginBottom="16dp"
107+
android:indeterminate="false"
108+
android:max="100"
109+
android:progress="0"
110+
android:progressDrawable="@android:drawable/progress_horizontal"
111+
android:progressTint="@color/primaryVariant"
112+
android:visibility="gone"
113+
app:layout_constraintBottom_toBottomOf="parent"
114+
app:layout_constraintEnd_toEndOf="parent"
115+
app:layout_constraintStart_toStartOf="parent" />
116+
117+
<TextView
118+
android:id="@+id/Apps_Selected"
119+
android:layout_width="0dp"
120+
android:layout_height="30dp"
121+
android:layout_marginBottom="16dp"
122+
android:gravity="center"
123+
android:text="Apps Selected"
124+
android:textSize="16sp"
125+
android:visibility="gone"
126+
app:layout_constraintBottom_toBottomOf="parent"
127+
app:layout_constraintEnd_toEndOf="parent"
128+
app:layout_constraintStart_toStartOf="parent" />
129+
99130
</androidx.constraintlayout.widget.ConstraintLayout>
100131

101132

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
}
88

99
dependencies {
10-
classpath 'com.android.tools.build:gradle:8.9.1'
10+
classpath 'com.android.tools.build:gradle:8.10.1'
1111

1212
// NOTE: Do not place your application dependencies here; they belong
1313
// in the individual module build.gradle files

0 commit comments

Comments
 (0)