mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-02 15:53:55 +01:00
issue 5847 make the icon always visible and adjust the count accordingly and add some logs
This commit is contained in:
parent
0a7fe662d4
commit
959d63a203
1 changed files with 88 additions and 8 deletions
|
|
@ -18,6 +18,8 @@ import android.hardware.Sensor;
|
||||||
import android.hardware.SensorEvent;
|
import android.hardware.SensorEvent;
|
||||||
import android.hardware.SensorEventListener;
|
import android.hardware.SensorEventListener;
|
||||||
import android.hardware.SensorManager;
|
import android.hardware.SensorManager;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
|
@ -306,33 +308,84 @@ public class ContributionsFragment
|
||||||
throwable -> Timber.e(throwable, "Error occurred while loading notifications")));
|
throwable -> Timber.e(throwable, "Error occurred while loading notifications")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean checkNetworkConnectivity() {
|
||||||
|
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
if (cm == null) {
|
||||||
|
Timber.e("Cannot get Connectivity Manager");
|
||||||
|
return false; // Indicating that connectivity check could not be performed
|
||||||
|
}
|
||||||
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||||
|
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
|
||||||
|
Timber.d("Network connectivity status: " + isConnected);
|
||||||
|
return isConnected; // Returning the status of the network connection
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void handleNoNetworkConnection() {
|
||||||
|
Toast.makeText(getContext(), "Check your network connection", Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the visibility of the upload icon based on the number of failed and pending
|
* Sets the visibility of the upload icon based on the number of failed and pending
|
||||||
* contributions.
|
* contributions.
|
||||||
*/
|
*/
|
||||||
public void setUploadIconVisibility() {
|
public void setUploadIconVisibility() {
|
||||||
|
if (!checkNetworkConnectivity()) {
|
||||||
|
Timber.e("setUploadIconVisibility: No network connection available.");
|
||||||
|
handleNoNetworkConnection();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Timber.d("setUploadIconVisibility: Starting to get failed and pending contributions");
|
||||||
contributionController.getFailedAndPendingContributions();
|
contributionController.getFailedAndPendingContributions();
|
||||||
contributionController.failedAndPendingContributionList.observe(getViewLifecycleOwner(),
|
contributionController.failedAndPendingContributionList.observe(getViewLifecycleOwner(), list -> {
|
||||||
list -> {
|
if (list != null) {
|
||||||
|
Timber.d("setUploadIconVisibility: Received contribution list update with size " + list.size());
|
||||||
updateUploadIcon(list.size());
|
updateUploadIcon(list.size());
|
||||||
});
|
} else {
|
||||||
|
Timber.e("setUploadIconVisibility: Failed to retrieve contributions");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the count for the upload icon based on the number of pending and failed contributions.
|
* Sets the count for the upload icon based on the number of pending and failed contributions.
|
||||||
*/
|
*/
|
||||||
public void setUploadIconCount() {
|
public void setUploadIconCount() {
|
||||||
|
if (!checkNetworkConnectivity()) {
|
||||||
|
Timber.e("setUploadIconCount: No network connection available.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Timber.d("setUploadIconCount: Getting pending contributions");
|
||||||
contributionController.getPendingContributions();
|
contributionController.getPendingContributions();
|
||||||
contributionController.pendingContributionList.observe(getViewLifecycleOwner(),
|
contributionController.pendingContributionList.observe(getViewLifecycleOwner(), list -> {
|
||||||
list -> {
|
if (list != null) {
|
||||||
|
Timber.d("setUploadIconCount: Updated pending icon count to " + list.size());
|
||||||
updatePendingIcon(list.size());
|
updatePendingIcon(list.size());
|
||||||
});
|
} else {
|
||||||
|
Timber.e("setUploadIconCount: Failed to retrieve pending contributions");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Timber.d("setUploadIconCount: Getting failed contributions");
|
||||||
contributionController.getFailedContributions();
|
contributionController.getFailedContributions();
|
||||||
contributionController.failedContributionList.observe(getViewLifecycleOwner(), list -> {
|
contributionController.failedContributionList.observe(getViewLifecycleOwner(), list -> {
|
||||||
updateErrorIcon(list.size());
|
if (list != null) {
|
||||||
|
Timber.d("setUploadIconCount: Updated error icon count to " + list.size());
|
||||||
|
updateErrorIcon(list.size());
|
||||||
|
} else {
|
||||||
|
Timber.e("setUploadIconCount: Failed to retrieve failed contributions");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void scrollToTop() {
|
public void scrollToTop() {
|
||||||
if (contributionsListFragment != null) {
|
if (contributionsListFragment != null) {
|
||||||
contributionsListFragment.scrollToTop();
|
contributionsListFragment.scrollToTop();
|
||||||
|
|
@ -750,31 +803,58 @@ public class ContributionsFragment
|
||||||
* @param errorCount The number of error uploads.
|
* @param errorCount The number of error uploads.
|
||||||
*/
|
*/
|
||||||
public void updateErrorIcon(int errorCount) {
|
public void updateErrorIcon(int errorCount) {
|
||||||
|
Timber.d("updateErrorIcon: Method Start");
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
if (uploadsErrorTextView != null) {
|
if (uploadsErrorTextView != null) {
|
||||||
|
Timber.d("Current error count: " + errorCount);
|
||||||
|
|
||||||
if (errorCount != 0) {
|
if (errorCount != 0) {
|
||||||
uploadsErrorTextView.setVisibility(View.VISIBLE);
|
uploadsErrorTextView.setVisibility(View.VISIBLE);
|
||||||
uploadsErrorTextView.setText(String.valueOf(errorCount));
|
uploadsErrorTextView.setText(String.valueOf(errorCount));
|
||||||
|
Timber.d("Error visibility changed to: VISIBLE with count: " + errorCount);
|
||||||
} else {
|
} else {
|
||||||
uploadsErrorTextView.setVisibility(View.GONE);
|
uploadsErrorTextView.setVisibility(View.GONE);
|
||||||
|
Timber.d("Error visibility changed to: GONE");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Timber.e("updateErrorIcon: uploadsErrorTextView is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long endTime = System.currentTimeMillis();
|
||||||
|
Timber.d("updateErrorIcon took " + (endTime - startTime) + " ms.");
|
||||||
|
Timber.d("updateErrorIcon: Method End");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the visibility of the pending uploads ImageView based on the given count.
|
* Updates the visibility of the pending uploads ImageView based on the given count.
|
||||||
*
|
*
|
||||||
* @param count The number of pending uploads.
|
* @param count The number of pending uploads.
|
||||||
*/
|
*/
|
||||||
public void updateUploadIcon(int count) {
|
public void updateUploadIcon(int count) {
|
||||||
|
Timber.d("updateUploadIcon: Method Start");
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
if (pendingUploadsImageView != null) {
|
if (pendingUploadsImageView != null) {
|
||||||
|
Timber.d("Current upload count: " + count);
|
||||||
|
|
||||||
if (count != 0) {
|
if (count != 0) {
|
||||||
pendingUploadsImageView.setVisibility(View.VISIBLE);
|
pendingUploadsImageView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
pendingUploadsImageView.setVisibility(View.GONE);
|
pendingUploadsImageView.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Timber.e("updateUploadIcon: pendingUploadsImageView is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long endTime = System.currentTimeMillis();
|
||||||
|
Timber.d("updateUploadIcon took " + (endTime - startTime) + " ms.");
|
||||||
|
Timber.d("updateUploadIcon: Method End");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace whatever is in the current contributionsFragmentContainer view with
|
* Replace whatever is in the current contributionsFragmentContainer view with
|
||||||
* mediaDetailPagerFragment, and preserve previous state in back stack. Called when user selects
|
* mediaDetailPagerFragment, and preserve previous state in back stack. Called when user selects
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue