diff --git a/app/src/main/java/org/pixeldroid/app/LoginActivity.kt b/app/src/main/java/org/pixeldroid/app/LoginActivity.kt index 31afccf4..70da2bb4 100644 --- a/app/src/main/java/org/pixeldroid/app/LoginActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/LoginActivity.kt @@ -15,17 +15,19 @@ import kotlinx.coroutines.async import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import org.pixeldroid.app.databinding.ActivityLoginBinding -import org.pixeldroid.app.utils.* +import org.pixeldroid.app.utils.BaseThemedWithoutBarActivity import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Application import org.pixeldroid.app.utils.api.objects.Instance import org.pixeldroid.app.utils.api.objects.NodeInfo import org.pixeldroid.app.utils.db.addUser import org.pixeldroid.app.utils.db.storeInstance +import org.pixeldroid.app.utils.hasInternet +import org.pixeldroid.app.utils.normalizeDomain import org.pixeldroid.app.utils.notificationsWorker.makeChannelGroupId import org.pixeldroid.app.utils.notificationsWorker.makeNotificationChannels -import retrofit2.HttpException -import java.io.IOException +import org.pixeldroid.app.utils.openUrl +import org.pixeldroid.app.utils.validDomain /** Overview of the flow of the login process: (boxes are requests done in parallel, @@ -139,9 +141,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { pixelfedAPI.registerApplication( appName, "$oauthScheme://$PACKAGE_ID", SCOPE, "https://pixeldroid.org" ) - } catch (exception: IOException) { - return@async null - } catch (exception: HttpException) { + } catch (exception: Exception) { return@async null } } @@ -163,9 +163,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { }?.href ?: return@launch failedRegistration(getString(R.string.instance_error)) nodeInfoSchema(normalizedDomain, clientId, nodeInfoSchemaUrl) - } catch (exception: IOException) { - return@launch failedRegistration() - } catch (exception: HttpException) { + } catch (exception: Exception) { return@launch failedRegistration() } } @@ -179,12 +177,9 @@ class LoginActivity : BaseThemedWithoutBarActivity() { val nodeInfo: NodeInfo = try { pixelfedAPI.nodeInfoSchema(nodeInfoSchemaUrl) - } catch (exception: IOException) { - return@coroutineScope failedRegistration(getString(R.string.instance_error)) - } catch (exception: HttpException) { + } catch (exception: Exception) { return@coroutineScope failedRegistration(getString(R.string.instance_error)) } - val domain: String = try { if (nodeInfo.hasInstanceEndpointInfo()) { preferences.edit().putString("nodeInfo", Gson().toJson(nodeInfo)).remove("instance").apply() @@ -192,9 +187,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { } else { val instance: Instance = try { pixelfedAPI.instance() - } catch (exception: IOException) { - return@coroutineScope failedRegistration(getString(R.string.instance_error)) - } catch (exception: HttpException) { + } catch (exception: Exception) { return@coroutineScope failedRegistration(getString(R.string.instance_error)) } preferences.edit().putString("instance", Gson().toJson(instance)).remove("nodeInfo").apply() @@ -279,10 +272,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { domain ) wipeSharedSettings() - } catch (exception: IOException) { - return@launch failedRegistration(getString(R.string.token_error)) - - } catch (exception: HttpException) { + } catch (exception: Exception) { return@launch failedRegistration(getString(R.string.token_error)) } } @@ -324,9 +314,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { clientSecret = clientSecret ) apiHolder.setToCurrentUser() - } catch (exception: IOException) { - return failedRegistration(getString(R.string.verify_credentials)) - } catch (exception: HttpException) { + } catch (exception: Exception) { return failedRegistration(getString(R.string.verify_credentials)) } @@ -345,11 +333,7 @@ class LoginActivity : BaseThemedWithoutBarActivity() { notifications.forEach{it.user_id = user.user_id; it.instance_uri = user.instance_uri} db.notificationDao().insertAll(notifications) - } catch (exception: IOException) { - return failedRegistration(getString(R.string.login_notifications)) - } catch (exception: HttpException) { - return failedRegistration(getString(R.string.login_notifications)) - } catch (exception: NullPointerException) { + } catch (exception: Exception) { return failedRegistration(getString(R.string.login_notifications)) } diff --git a/app/src/main/java/org/pixeldroid/app/MainActivity.kt b/app/src/main/java/org/pixeldroid/app/MainActivity.kt index 4c0e1f74..46e24a35 100644 --- a/app/src/main/java/org/pixeldroid/app/MainActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/MainActivity.kt @@ -13,7 +13,6 @@ import android.view.MenuItem import android.view.View import android.widget.ImageView import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat @@ -63,8 +62,6 @@ import org.pixeldroid.app.utils.notificationsWorker.NotificationsWorker.Companio import org.pixeldroid.app.utils.notificationsWorker.NotificationsWorker.Companion.USER_NOTIFICATION_TAG import org.pixeldroid.app.utils.notificationsWorker.enablePullNotifications import org.pixeldroid.app.utils.notificationsWorker.removeNotificationChannelsFromAccount -import retrofit2.HttpException -import java.io.IOException import java.time.Instant @@ -278,9 +275,7 @@ class MainActivity : BaseThemedWithoutBarActivity() { val account = api.verifyCredentials() addUser(db, account, domain, accessToken = accessToken, refreshToken = refreshToken, clientId = clientId, clientSecret = clientSecret) fillDrawerAccountInfo(account.id!!) - } catch (exception: IOException) { - Log.e("ACCOUNT UPDATE:", exception.toString()) - } catch (exception: HttpException) { + } catch (exception: Exception) { Log.e("ACCOUNT UPDATE:", exception.toString()) } } @@ -446,14 +441,9 @@ class MainActivity : BaseThemedWithoutBarActivity() { } val numberOfNewNotifications = if((filtered?.size ?: 20) >= 20) null else filtered?.size if(filtered?.isNotEmpty() == true ) setNotificationBadge(true, numberOfNewNotifications) - } catch (exception: IOException) { - return@repeatOnLifecycle - } catch (exception: HttpException) { + } catch (exception: Exception) { return@repeatOnLifecycle } - - - } } } diff --git a/app/src/main/java/org/pixeldroid/app/postCreation/PostSubmissionViewModel.kt b/app/src/main/java/org/pixeldroid/app/postCreation/PostSubmissionViewModel.kt index aab0f2f2..01458907 100644 --- a/app/src/main/java/org/pixeldroid/app/postCreation/PostSubmissionViewModel.kt +++ b/app/src/main/java/org/pixeldroid/app/postCreation/PostSubmissionViewModel.kt @@ -260,15 +260,6 @@ class PostSubmissionViewModel(application: Application, photodata: ArrayList().startActivity(intent) - } catch (exception: IOException) { - Toast.makeText(getApplication(), getApplication().getString(R.string.upload_post_error), - Toast.LENGTH_SHORT).show() - Log.e(TAG, exception.toString()) - _uiState.update { currentUiState -> - currentUiState.copy( - postCreationSendButtonEnabled = true - ) - } } catch (exception: HttpException) { Toast.makeText(getApplication(), getApplication().getString(R.string.upload_post_failed), Toast.LENGTH_SHORT).show() @@ -278,7 +269,16 @@ class PostSubmissionViewModel(application: Application, photodata: ArrayList().getString(R.string.upload_post_error), + Toast.LENGTH_SHORT).show() + Log.e(TAG, exception.toString()) + _uiState.update { currentUiState -> + currentUiState.copy( + postCreationSendButtonEnabled = true + ) + } + }finally { apiHolder.api = null } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/PostActivity.kt b/app/src/main/java/org/pixeldroid/app/posts/PostActivity.kt index 085ca97b..13b5adaf 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/PostActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/PostActivity.kt @@ -18,8 +18,6 @@ import org.pixeldroid.app.utils.api.objects.Status.Companion.POST_COMMENT_TAG import org.pixeldroid.app.utils.api.objects.Status.Companion.POST_TAG import org.pixeldroid.app.utils.api.objects.Status.Companion.VIEW_COMMENTS_TAG import org.pixeldroid.app.utils.displayDimensionsInPx -import retrofit2.HttpException -import java.io.IOException class PostActivity : BaseThemedWithBarActivity() { private lateinit var binding: ActivityPostBinding @@ -100,7 +98,7 @@ class PostActivity : BaseThemedWithBarActivity() { val nonNullText = textIn.toString() status.id.let { try { - val response = api.postStatus(nonNullText, it) + api.postStatus(nonNullText, it) binding.commentIn.visibility = View.GONE //Reload to add the comment to the comment section @@ -111,18 +109,12 @@ class PostActivity : BaseThemedWithBarActivity() { binding.root.context.getString(R.string.comment_posted).format(textIn), Toast.LENGTH_SHORT ).show() - } catch (exception: IOException) { + } catch (exception: Exception) { Log.e("COMMENT ERROR", exception.toString()) Toast.makeText( binding.root.context, binding.root.context.getString(R.string.comment_error), Toast.LENGTH_SHORT ).show() - } catch (exception: HttpException) { - Toast.makeText( - binding.root.context, binding.root.context.getString(R.string.comment_error), - Toast.LENGTH_SHORT - ).show() - Log.e("ERROR_CODE", exception.code().toString()) } } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/ReportActivity.kt b/app/src/main/java/org/pixeldroid/app/posts/ReportActivity.kt index 433f9201..3b83a31b 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/ReportActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/ReportActivity.kt @@ -7,8 +7,6 @@ import org.pixeldroid.app.R import org.pixeldroid.app.databinding.ActivityReportBinding import org.pixeldroid.app.utils.BaseThemedWithBarActivity import org.pixeldroid.app.utils.api.objects.Status -import retrofit2.HttpException -import java.io.IOException class ReportActivity : BaseThemedWithBarActivity() { @@ -44,9 +42,7 @@ class ReportActivity : BaseThemedWithBarActivity() { ) reportStatus(true) - } catch (exception: IOException) { - reportStatus(false) - } catch (exception: HttpException) { + } catch (exception: Exception) { reportStatus(false) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/StatusViewHolder.kt b/app/src/main/java/org/pixeldroid/app/posts/StatusViewHolder.kt index 1476b124..cd77cd61 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/StatusViewHolder.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/StatusViewHolder.kt @@ -297,10 +297,7 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold //Update shown share count binding.nshares.text = resp.getNShares(binding.root.context) binding.reblogger.isChecked = resp.reblogged!! - } catch (exception: HttpException) { - Log.e("RESPONSE_CODE", exception.code().toString()) - binding.reblogger.isChecked = false - } catch (exception: IOException) { + } catch (exception: Exception) { Log.e("REBLOG ERROR", exception.toString()) binding.reblogger.isChecked = false } @@ -319,7 +316,7 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold } catch (exception: HttpException) { Log.e("RESPONSE_CODE", exception.code().toString()) binding.reblogger.isChecked = true - } catch (exception: IOException) { + } catch (exception: Exception) { Log.e("REBLOG ERROR", exception.toString()) binding.reblogger.isChecked = true } @@ -732,12 +729,12 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold //Update shown like count and internal like toggle binding.nlikes.text = resp.getNLikes(binding.root.context) binding.liker.isChecked = resp.favourited ?: false - } catch (exception: IOException) { - Log.e("LIKE ERROR", exception.toString()) - binding.liker.isChecked = false } catch (exception: HttpException) { Log.e("RESPONSE_CODE", exception.code().toString()) binding.liker.isChecked = false + } catch (exception: Exception) { + Log.e("LIKE ERROR", exception.toString()) + binding.liker.isChecked = false } } } @@ -752,12 +749,12 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold //Update shown like count and internal like toggle binding.nlikes.text = resp.getNLikes(binding.root.context) binding.liker.isChecked = resp.favourited ?: false - } catch (exception: IOException) { - Log.e("UNLIKE ERROR", exception.toString()) - binding.liker.isChecked = true } catch (exception: HttpException) { Log.e("RESPONSE_CODE", exception.code().toString()) binding.liker.isChecked = true + } catch (exception: Exception) { + Log.e("UNLIKE ERROR", exception.toString()) + binding.liker.isChecked = true } } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt index cb0471ef..3be612ed 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt @@ -21,8 +21,6 @@ import androidx.room.withTransaction import org.pixeldroid.app.utils.db.AppDatabase import org.pixeldroid.app.utils.di.PixelfedAPIHolder import org.pixeldroid.app.utils.api.objects.Notification -import retrofit2.HttpException -import java.io.IOException import java.lang.Exception import java.lang.NullPointerException import javax.inject.Inject @@ -74,11 +72,7 @@ class NotificationsRemoteMediator @Inject constructor( db.notificationDao().insertAll(apiResponse) } return MediatorResult.Success(endOfPaginationReached = endOfPaginationReached) - } catch (exception: IOException) { - return MediatorResult.Error(exception) - } catch (exception: HttpException) { - return MediatorResult.Error(exception) - } catch (exception: Exception){ + } catch (exception: Exception){ return MediatorResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt index 6f715f68..41e2f29f 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt @@ -5,8 +5,6 @@ import androidx.room.withTransaction import org.pixeldroid.app.utils.db.AppDatabase import org.pixeldroid.app.utils.di.PixelfedAPIHolder import org.pixeldroid.app.utils.db.entities.HomeStatusDatabaseEntity -import retrofit2.HttpException -import java.io.IOException import java.lang.NullPointerException import javax.inject.Inject @@ -59,9 +57,7 @@ class HomeFeedRemoteMediator @Inject constructor( db.homePostDao().insertAll(dbObjects) } return MediatorResult.Success(endOfPaginationReached = endOfPaginationReached) - } catch (exception: IOException) { - return MediatorResult.Error(exception) - } catch (exception: HttpException) { + } catch (exception: Exception) { return MediatorResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt index ed3eb745..fd5f19e9 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt @@ -21,8 +21,6 @@ import androidx.room.withTransaction import org.pixeldroid.app.utils.db.AppDatabase import org.pixeldroid.app.utils.db.entities.PublicFeedStatusDatabaseEntity import org.pixeldroid.app.utils.di.PixelfedAPIHolder -import retrofit2.HttpException -import java.io.IOException import java.lang.NullPointerException import javax.inject.Inject @@ -74,9 +72,7 @@ class PublicFeedRemoteMediator @Inject constructor( db.publicPostDao().insertAll(dbObjects) } return MediatorResult.Success(endOfPaginationReached = endOfPaginationReached) - } catch (exception: IOException) { - return MediatorResult.Error(exception) - } catch (exception: HttpException) { + } catch (exception: Exception) { return MediatorResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt index 38af9ef4..2d4fb5d7 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt @@ -5,7 +5,6 @@ import androidx.paging.PagingState import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Account import retrofit2.HttpException -import java.io.IOException class FollowersPagingSource( private val api: PixelfedAPI, @@ -58,9 +57,7 @@ class FollowersPagingSource( prevKey = null, nextKey = if (accounts.isEmpty() || nextPosition.isEmpty() || nextPosition == position) null else nextPosition ) - } catch (exception: IOException) { - LoadResult.Error(exception) - } catch (exception: HttpException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/comments/CommentPagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/comments/CommentPagingSource.kt index afa725c5..44d4cb97 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/comments/CommentPagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/comments/CommentPagingSource.kt @@ -4,8 +4,6 @@ import androidx.paging.PagingSource import androidx.paging.PagingState import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Status -import retrofit2.HttpException -import java.io.IOException class CommentPagingSource( private val api: PixelfedAPI, @@ -23,9 +21,7 @@ class CommentPagingSource( prevKey = null, nextKey = null ) - } catch (exception: HttpException) { - LoadResult.Error(exception) - } catch (exception: IOException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/hashtags/HashTagPagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/hashtags/HashTagPagingSource.kt index 295da5ac..733566c7 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/hashtags/HashTagPagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/hashtags/HashTagPagingSource.kt @@ -30,9 +30,7 @@ class HashTagPagingSource( prevKey = null, nextKey = if(nextKey == position) null else nextKey ) - } catch (exception: HttpException) { - LoadResult.Error(exception) - } catch (exception: IOException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/CollectionsPagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/CollectionsPagingSource.kt index 37248bf9..56e35bc6 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/CollectionsPagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/CollectionsPagingSource.kt @@ -4,8 +4,6 @@ import androidx.paging.PagingSource import androidx.paging.PagingState import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Collection -import retrofit2.HttpException -import java.io.IOException class CollectionsPagingSource( private val api: PixelfedAPI, @@ -21,9 +19,7 @@ class CollectionsPagingSource( //TODO pagination. For now, don't paginate nextKey = null ) - } catch (exception: HttpException) { - LoadResult.Error(exception) - } catch (exception: IOException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/ProfilePagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/ProfilePagingSource.kt index 2fe0fa5a..36731bdf 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/ProfilePagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/profile/ProfilePagingSource.kt @@ -4,8 +4,6 @@ import androidx.paging.PagingSource import androidx.paging.PagingState import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Status -import retrofit2.HttpException -import java.io.IOException class ProfilePagingSource( private val api: PixelfedAPI, @@ -45,9 +43,7 @@ class ProfilePagingSource( if(posts.isEmpty()) null else (params.key?.toIntOrNull()?.plus(1))?.toString() } else if(nextKey == position) null else nextKey ) - } catch (exception: HttpException) { - LoadResult.Error(exception) - } catch (exception: IOException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt index 7c4de7ef..609435bc 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt @@ -5,8 +5,6 @@ import androidx.paging.PagingState import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.FeedContent import org.pixeldroid.app.utils.api.objects.Results -import retrofit2.HttpException -import java.io.IOException /** * Provides the PagingSource for search feeds. Is used in [SearchContentRepository] @@ -41,9 +39,7 @@ class SearchPagingSource( prevKey = null, nextKey = if(nextKey == position) null else nextKey ) - } catch (exception: HttpException) { - LoadResult.Error(exception) - } catch (exception: IOException) { + } catch (exception: Exception) { LoadResult.Error(exception) } } diff --git a/app/src/main/java/org/pixeldroid/app/profile/CollectionActivity.kt b/app/src/main/java/org/pixeldroid/app/profile/CollectionActivity.kt index b42e1918..24bffe56 100644 --- a/app/src/main/java/org/pixeldroid/app/profile/CollectionActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/profile/CollectionActivity.kt @@ -16,8 +16,7 @@ import org.pixeldroid.app.profile.ProfileFeedFragment.Companion.COLLECTION_ID import org.pixeldroid.app.utils.BaseThemedWithBarActivity import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Collection -import retrofit2.HttpException -import java.io.IOException +import java.lang.Exception class CollectionActivity : BaseThemedWithBarActivity() { private lateinit var binding: ActivityCollectionBinding @@ -43,7 +42,6 @@ class CollectionActivity : BaseThemedWithBarActivity() { collection = intent.getSerializableExtra(COLLECTION_TAG) as Collection - addCollection = intent.getBooleanExtra(ADD_COLLECTION_TAG, false) deleteFromCollection = intent.getBooleanExtra(DELETE_FROM_COLLECTION_TAG, false) @@ -90,9 +88,9 @@ class CollectionActivity : BaseThemedWithBarActivity() { override fun onNewIntent(intent: Intent?) { // Relaunch same activity, to avoid duplicates in history - super.onNewIntent(intent); - finish(); - startActivity(intent); + super.onNewIntent(intent) + finish() + startActivity(intent) } override fun onOptionsItemSelected(item: MenuItem): Boolean { @@ -108,10 +106,11 @@ class CollectionActivity : BaseThemedWithBarActivity() { api.deleteCollection(collection.id) // Deleted, exit activity finish() - } catch (exception: IOException) { - TODO("Error") - } catch (exception: HttpException) { - TODO("Error") + } catch (exception: Exception) { + Snackbar.make( + binding.root, getString(R.string.something_went_wrong), + Snackbar.LENGTH_LONG + ).show() } } } diff --git a/app/src/main/java/org/pixeldroid/app/profile/EditProfileViewModel.kt b/app/src/main/java/org/pixeldroid/app/profile/EditProfileViewModel.kt index f0613ec5..33fe8388 100644 --- a/app/src/main/java/org/pixeldroid/app/profile/EditProfileViewModel.kt +++ b/app/src/main/java/org/pixeldroid/app/profile/EditProfileViewModel.kt @@ -5,7 +5,6 @@ import android.net.Uri import android.provider.OpenableColumns import android.text.Editable import android.util.Log -import android.widget.Toast import androidx.core.net.toFile import androidx.core.net.toUri import androidx.lifecycle.AndroidViewModel @@ -19,21 +18,12 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import okhttp3.MediaType -import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MultipartBody -import okhttp3.RequestBody -import org.pixeldroid.app.R import org.pixeldroid.app.postCreation.ProgressRequestBody +import org.pixeldroid.app.posts.fromHtml import org.pixeldroid.app.utils.PixelDroidApplication import org.pixeldroid.app.utils.api.objects.Account -import org.pixeldroid.app.utils.api.objects.Attachment import org.pixeldroid.app.utils.di.PixelfedAPIHolder -import retrofit2.HttpException -import java.io.File -import java.io.IOException -import java.lang.Exception -import java.net.URI import javax.inject.Inject class EditProfileViewModel(application: Application) : AndroidViewModel(application) { @@ -69,17 +59,7 @@ class EditProfileViewModel(application: Application) : AndroidViewModel(applicat error = false ) } - } catch (exception: IOException) { - _uiState.update { currentUiState -> - currentUiState.copy( - sendingProfile = false, - profileSent = false, - loadingProfile = false, - profileLoaded = false, - error = true - ) - } - } catch (exception: HttpException) { + } catch (exception: Exception) { _uiState.update { currentUiState -> currentUiState.copy( sendingProfile = false, @@ -120,7 +100,7 @@ class EditProfileViewModel(application: Application) : AndroidViewModel(applicat oldProfile = account _uiState.update { currentUiState -> currentUiState.copy( - bio = account.note, + bio = account.source?.note ?: account.note?.let {fromHtml(it).toString()}, name = account.display_name, profilePictureUri = account.anyAvatar()?.toUri(), privateAccount = account.locked, @@ -131,42 +111,22 @@ class EditProfileViewModel(application: Application) : AndroidViewModel(applicat error = false ) } - } catch (exception: IOException) { - Log.e("TAG", exception.toString()) - _uiState.update { currentUiState -> - currentUiState.copy( - sendingProfile = false, - profileSent = false, - loadingProfile = false, - profileLoaded = false, - error = true - ) - } - } catch (exception: HttpException) { - Log.e("TAG", exception.toString()) - _uiState.update { currentUiState -> - currentUiState.copy( - sendingProfile = false, - profileSent = false, - loadingProfile = false, - profileLoaded = false, - error = true - ) - } } catch (exception: Exception) { Log.e("TAG", exception.toString()) - + _uiState.update { currentUiState -> + currentUiState.copy( + sendingProfile = false, + profileSent = false, + loadingProfile = false, + profileLoaded = false, + error = true + ) + } } } } } - fun errorShown() { - _uiState.update { currentUiState -> - currentUiState.copy(error = false) - } - } - fun updateBio(bio: Editable?) { _uiState.update { currentUiState -> currentUiState.copy(bio = bio.toString()) @@ -193,8 +153,12 @@ class EditProfileViewModel(application: Application) : AndroidViewModel(applicat fun madeChanges(): Boolean = with(uiState.value) { - oldProfile?.locked != privateAccount - || oldProfile?.display_name != name || oldProfile?.note != bio + val bioUnchanged: Boolean = oldProfile?.source?.note?.let { it != bio } + // If source note is null, check note + ?: oldProfile?.note?.let { fromHtml(it).toString() != bio } + ?: true + oldProfile?.locked != privateAccount || oldProfile?.display_name != name + || bioUnchanged } fun clickedCard() { diff --git a/app/src/main/java/org/pixeldroid/app/profile/ProfileActivity.kt b/app/src/main/java/org/pixeldroid/app/profile/ProfileActivity.kt index fe0f3308..5eaa8dd7 100644 --- a/app/src/main/java/org/pixeldroid/app/profile/ProfileActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/profile/ProfileActivity.kt @@ -4,34 +4,24 @@ import android.content.Intent import android.os.Bundle import android.text.method.LinkMovementMethod import android.util.Log -import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup -import android.widget.ImageView import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope -import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.adapter.FragmentStateAdapter -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import kotlinx.coroutines.launch import org.pixeldroid.app.R import org.pixeldroid.app.databinding.ActivityProfileBinding -import org.pixeldroid.app.databinding.FragmentProfilePostsBinding -import org.pixeldroid.app.posts.PostActivity import org.pixeldroid.app.posts.parseHTMLText -import org.pixeldroid.app.utils.* +import org.pixeldroid.app.utils.BaseThemedWithBarActivity import org.pixeldroid.app.utils.api.PixelfedAPI import org.pixeldroid.app.utils.api.objects.Account -import org.pixeldroid.app.utils.api.objects.Attachment -import org.pixeldroid.app.utils.api.objects.Status import org.pixeldroid.app.utils.db.entities.UserDatabaseEntity +import org.pixeldroid.app.utils.setProfileImageFromURL import retrofit2.HttpException import java.io.IOException @@ -151,19 +141,13 @@ class ProfileActivity : BaseThemedWithBarActivity() { val api: PixelfedAPI = apiHolder.api ?: apiHolder.setToCurrentUser() val myAccount: Account = try { api.verifyCredentials() - } catch (exception: IOException) { + } catch (exception: Exception) { Log.e("ProfileActivity:", exception.toString()) Toast.makeText( applicationContext, "Could not get your profile", Toast.LENGTH_SHORT ).show() return@launchWhenResumed - } catch (exception: HttpException) { - Toast.makeText( - applicationContext, "Could not get your profile", - Toast.LENGTH_SHORT - ).show() - return@launchWhenResumed } setViews(myAccount) } @@ -304,17 +288,12 @@ class ProfileActivity : BaseThemedWithBarActivity() { val rel = api.follow(account.id.orEmpty()) if(rel.following == true) setOnClickUnfollow(account, rel.requested == true) else setOnClickFollow(account) - } catch (exception: IOException) { + } catch (exception: Exception) { Log.e("FOLLOW ERROR", exception.toString()) Toast.makeText( applicationContext, getString(R.string.follow_error), Toast.LENGTH_SHORT ).show() - } catch (exception: HttpException) { - Toast.makeText( - applicationContext, getString(R.string.follow_error), - Toast.LENGTH_SHORT - ).show() } } } diff --git a/app/src/main/java/org/pixeldroid/app/profile/ProfileFeedFragment.kt b/app/src/main/java/org/pixeldroid/app/profile/ProfileFeedFragment.kt index a4ee39d3..5e473f24 100644 --- a/app/src/main/java/org/pixeldroid/app/profile/ProfileFeedFragment.kt +++ b/app/src/main/java/org/pixeldroid/app/profile/ProfileFeedFragment.kt @@ -41,8 +41,6 @@ import org.pixeldroid.app.utils.db.entities.UserDatabaseEntity import org.pixeldroid.app.utils.displayDimensionsInPx import org.pixeldroid.app.utils.openUrl import org.pixeldroid.app.utils.setSquareImageFromURL -import retrofit2.HttpException -import java.io.IOException /** * Fragment to show a list of [Account]s, as a result of a search. @@ -84,6 +82,7 @@ class ProfileFeedFragment : UncachedFeedFragment() { collections = false bookmarks = false } + adapter = ProfilePostsAdapter() //get the currently active user @@ -302,10 +301,7 @@ class ProfilePostsViewHolder(binding: FragmentProfilePostsBinding) : RecyclerVie putExtra(CollectionActivity.COLLECTION_TAG, collection) } postPreview.context.startActivity(intent) - } catch (exception: IOException) { - Snackbar.make(postPreview, postPreview.context.getString(R.string.error_add_post_to_collection), - Snackbar.LENGTH_LONG).show() - } catch (exception: HttpException) { + } catch (exception: Exception) { Snackbar.make(postPreview, postPreview.context.getString(R.string.error_add_post_to_collection), Snackbar.LENGTH_LONG).show() } @@ -322,10 +318,7 @@ class ProfilePostsViewHolder(binding: FragmentProfilePostsBinding) : RecyclerVie putExtra(CollectionActivity.COLLECTION_TAG, collection) } postPreview.context.startActivity(intent) - } catch (exception: IOException) { - Snackbar.make(postPreview, postPreview.context.getString(R.string.error_remove_post_from_collection), - Snackbar.LENGTH_LONG).show() - } catch (exception: HttpException) { + } catch (exception: Exception) { Snackbar.make(postPreview, postPreview.context.getString(R.string.error_remove_post_from_collection), Snackbar.LENGTH_LONG).show() } diff --git a/app/src/main/java/org/pixeldroid/app/searchDiscover/TrendingActivity.kt b/app/src/main/java/org/pixeldroid/app/searchDiscover/TrendingActivity.kt index 44f474ff..cd064974 100644 --- a/app/src/main/java/org/pixeldroid/app/searchDiscover/TrendingActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/searchDiscover/TrendingActivity.kt @@ -23,8 +23,6 @@ import org.pixeldroid.app.utils.api.objects.FeedContent import org.pixeldroid.app.utils.api.objects.Status import org.pixeldroid.app.utils.api.objects.Tag import org.pixeldroid.app.utils.setSquareImageFromURL -import retrofit2.HttpException -import java.io.IOException class TrendingActivity : BaseThemedWithBarActivity() { @@ -95,9 +93,7 @@ class TrendingActivity : BaseThemedWithBarActivity() { } trendingAdapter.addPosts(content) showError(show = false) - } catch (exception: IOException) { - showError() - } catch (exception: HttpException) { + } catch (exception: Exception) { showError() } } diff --git a/app/src/main/java/org/pixeldroid/app/utils/notificationsWorker/NotificationsWorker.kt b/app/src/main/java/org/pixeldroid/app/utils/notificationsWorker/NotificationsWorker.kt index 0637f796..ad49936e 100644 --- a/app/src/main/java/org/pixeldroid/app/utils/notificationsWorker/NotificationsWorker.kt +++ b/app/src/main/java/org/pixeldroid/app/utils/notificationsWorker/NotificationsWorker.kt @@ -108,9 +108,7 @@ class NotificationsWorker( since_id = previouslyLatestNotification?.id ) } - } catch (exception: IOException) { - return Result.failure() - } catch (exception: HttpException) { + } catch (exception: Exception) { return Result.failure() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2eabfd8c..964b263f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -319,7 +319,7 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Your bio Your Name You did not save your changes. Exit? - Fetching your profile... + Fetching your profileā€¦ Saving your profile Changes saved! Something went wrong. Tap to retry