Loading app/src/main/java/it/niedermann/owncloud/notes/accountswitcher/AccountSwitcherDialog.java +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import it.niedermann.owncloud.notes.databinding.DialogAccountSwitcherBinding; import it.niedermann.owncloud.notes.manageaccounts.ManageAccountsActivity; import it.niedermann.owncloud.notes.persistence.NotesRepository; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.SSOUtil; /** * Displays all available {@link Account} entries and provides basic operations for them, like adding or switching Loading Loading @@ -67,7 +68,7 @@ public class AccountSwitcherDialog extends BrandedDialogFragment { binding.accountName.setText(currentLocalAccount.getDisplayName()); binding.accountHost.setText(Uri.parse(currentLocalAccount.getUrl()).getHost()); Glide.with(requireContext()) .load(currentLocalAccount.getUrl() + "/index.php/avatar/" + Uri.encode(currentLocalAccount.getUserName()) + "/64") .load(currentLocalAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(currentLocalAccount.getUserName())) + "/64") .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) .into(binding.currentAccountItemAvatar); Loading app/src/main/java/it/niedermann/owncloud/notes/accountswitcher/AccountSwitcherViewHolder.java +2 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import it.niedermann.nextcloud.sso.glide.SingleSignOnUrl; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemAccountChooseBinding; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.SSOUtil; public class AccountSwitcherViewHolder extends RecyclerView.ViewHolder { Loading @@ -28,7 +29,7 @@ public class AccountSwitcherViewHolder extends RecyclerView.ViewHolder { binding.accountName.setText(localAccount.getDisplayName()); binding.accountHost.setText(Uri.parse(localAccount.getUrl()).getHost()); Glide.with(itemView.getContext()) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(localAccount.getUserName()) + "/64")) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(localAccount.getUserName())) + "/64")) .placeholder(R.drawable.ic_account_circle_grey_24dp) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) Loading app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ import it.niedermann.owncloud.notes.shared.model.NavigationCategory; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; import it.niedermann.owncloud.notes.shared.util.CustomAppGlideModule; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.shared.util.SSOUtil; import it.niedermann.owncloud.notes.shared.util.ShareUtil; import trikita.log.Log; Loading Loading @@ -307,7 +308,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A fabCreate.hide(); Glide .with(this) .load(nextAccount.getUrl() + "/index.php/avatar/" + Uri.encode(nextAccount.getUserName()) + "/64") .load(nextAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(nextAccount.getUserName())) + "/64") .placeholder(R.drawable.ic_account_circle_grey_24dp) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) Loading app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java +2 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemAccountChooseBinding; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.AccountSyncUtil; import it.niedermann.owncloud.notes.shared.util.SSOUtil; public class ManageAccountViewHolder extends RecyclerView.ViewHolder { Loading @@ -39,7 +40,7 @@ public class ManageAccountViewHolder extends RecyclerView.ViewHolder { binding.accountName.setText(localAccount.getUserName()); binding.accountHost.setText(Uri.parse(localAccount.getUrl()).getHost()); Glide.with(itemView.getContext()) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(localAccount.getUserName()) + "/64")) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(localAccount.getUserName())) + "/64")) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) .into(binding.accountItemAvatar); Loading app/src/main/java/it/niedermann/owncloud/notes/persistence/CapabilitiesClient.java +2 −17 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import androidx.annotation.WorkerThread; import com.nextcloud.android.sso.model.SingleSignOnAccount; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.util.SSOUtil; import trikita.log.Log; @WorkerThread Loading Loading @@ -46,7 +47,7 @@ public class CapabilitiesClient { public static String getDisplayName(@NonNull Context context, @NonNull SingleSignOnAccount ssoAccount, @NonNull ApiProvider apiProvider) { final var ocsAPI = apiProvider.getOcsAPI(context, ssoAccount); try { final var userResponse = ocsAPI.getUser(sanitizeUserId(ssoAccount.userId)).execute(); final var userResponse = ocsAPI.getUser(SSOUtil.sanitizeUserId(ssoAccount.userId)).execute(); if (userResponse.isSuccessful()) { final var ocsResponse = userResponse.body(); if (ocsResponse != null) { Loading @@ -63,20 +64,4 @@ public class CapabilitiesClient { return null; } /** * Murena account's userId is set same as it's email address (passed by accountManager app). * For old accounts (@e.email) userId = email. * For new accounts (@murena.io) userId is first part of email (ex: for email abc@murena.io, userId is abc). * For api requests, we needed to pass the actual userId. This method remove the unwanted part (@murena.io) from the userId */ @NonNull private static String sanitizeUserId(@NonNull String userId) { final String murenaMailEndPart = "@murena.io"; if (!userId.endsWith(murenaMailEndPart)) { return userId; } return userId.split(murenaMailEndPart)[0]; } } Loading
app/src/main/java/it/niedermann/owncloud/notes/accountswitcher/AccountSwitcherDialog.java +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import it.niedermann.owncloud.notes.databinding.DialogAccountSwitcherBinding; import it.niedermann.owncloud.notes.manageaccounts.ManageAccountsActivity; import it.niedermann.owncloud.notes.persistence.NotesRepository; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.SSOUtil; /** * Displays all available {@link Account} entries and provides basic operations for them, like adding or switching Loading Loading @@ -67,7 +68,7 @@ public class AccountSwitcherDialog extends BrandedDialogFragment { binding.accountName.setText(currentLocalAccount.getDisplayName()); binding.accountHost.setText(Uri.parse(currentLocalAccount.getUrl()).getHost()); Glide.with(requireContext()) .load(currentLocalAccount.getUrl() + "/index.php/avatar/" + Uri.encode(currentLocalAccount.getUserName()) + "/64") .load(currentLocalAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(currentLocalAccount.getUserName())) + "/64") .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) .into(binding.currentAccountItemAvatar); Loading
app/src/main/java/it/niedermann/owncloud/notes/accountswitcher/AccountSwitcherViewHolder.java +2 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import it.niedermann.nextcloud.sso.glide.SingleSignOnUrl; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemAccountChooseBinding; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.SSOUtil; public class AccountSwitcherViewHolder extends RecyclerView.ViewHolder { Loading @@ -28,7 +29,7 @@ public class AccountSwitcherViewHolder extends RecyclerView.ViewHolder { binding.accountName.setText(localAccount.getDisplayName()); binding.accountHost.setText(Uri.parse(localAccount.getUrl()).getHost()); Glide.with(itemView.getContext()) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(localAccount.getUserName()) + "/64")) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(localAccount.getUserName())) + "/64")) .placeholder(R.drawable.ic_account_circle_grey_24dp) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) Loading
app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ import it.niedermann.owncloud.notes.shared.model.NavigationCategory; import it.niedermann.owncloud.notes.shared.model.NoteClickListener; import it.niedermann.owncloud.notes.shared.util.CustomAppGlideModule; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.shared.util.SSOUtil; import it.niedermann.owncloud.notes.shared.util.ShareUtil; import trikita.log.Log; Loading Loading @@ -307,7 +308,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A fabCreate.hide(); Glide .with(this) .load(nextAccount.getUrl() + "/index.php/avatar/" + Uri.encode(nextAccount.getUserName()) + "/64") .load(nextAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(nextAccount.getUserName())) + "/64") .placeholder(R.drawable.ic_account_circle_grey_24dp) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) Loading
app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java +2 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.ItemAccountChooseBinding; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.shared.util.AccountSyncUtil; import it.niedermann.owncloud.notes.shared.util.SSOUtil; public class ManageAccountViewHolder extends RecyclerView.ViewHolder { Loading @@ -39,7 +40,7 @@ public class ManageAccountViewHolder extends RecyclerView.ViewHolder { binding.accountName.setText(localAccount.getUserName()); binding.accountHost.setText(Uri.parse(localAccount.getUrl()).getHost()); Glide.with(itemView.getContext()) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(localAccount.getUserName()) + "/64")) .load(new SingleSignOnUrl(localAccount.getAccountName(), localAccount.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(localAccount.getUserName())) + "/64")) .error(R.drawable.ic_account_circle_grey_24dp) .apply(RequestOptions.circleCropTransform()) .into(binding.accountItemAvatar); Loading
app/src/main/java/it/niedermann/owncloud/notes/persistence/CapabilitiesClient.java +2 −17 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import androidx.annotation.WorkerThread; import com.nextcloud.android.sso.model.SingleSignOnAccount; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.util.SSOUtil; import trikita.log.Log; @WorkerThread Loading Loading @@ -46,7 +47,7 @@ public class CapabilitiesClient { public static String getDisplayName(@NonNull Context context, @NonNull SingleSignOnAccount ssoAccount, @NonNull ApiProvider apiProvider) { final var ocsAPI = apiProvider.getOcsAPI(context, ssoAccount); try { final var userResponse = ocsAPI.getUser(sanitizeUserId(ssoAccount.userId)).execute(); final var userResponse = ocsAPI.getUser(SSOUtil.sanitizeUserId(ssoAccount.userId)).execute(); if (userResponse.isSuccessful()) { final var ocsResponse = userResponse.body(); if (ocsResponse != null) { Loading @@ -63,20 +64,4 @@ public class CapabilitiesClient { return null; } /** * Murena account's userId is set same as it's email address (passed by accountManager app). * For old accounts (@e.email) userId = email. * For new accounts (@murena.io) userId is first part of email (ex: for email abc@murena.io, userId is abc). * For api requests, we needed to pass the actual userId. This method remove the unwanted part (@murena.io) from the userId */ @NonNull private static String sanitizeUserId(@NonNull String userId) { final String murenaMailEndPart = "@murena.io"; if (!userId.endsWith(murenaMailEndPart)) { return userId; } return userId.split(murenaMailEndPart)[0]; } }