From cad36de367ec6e8da31ae8c64d7ae3e90bd2a33d Mon Sep 17 00:00:00 2001 From: M M Arif <mmarif@swatian.com> Date: Sun, 19 Jan 2025 16:38:07 +0000 Subject: [PATCH] Enhancements and improvements (#1403) closes #1388 Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1403 Co-authored-by: M M Arif <mmarif@swatian.com> Co-committed-by: M M Arif <mmarif@swatian.com> --- .woodpecker/build.yml | 15 +- .woodpecker/finish.yml | 1 - .woodpecker/locale.yml | 7 +- app/build.gradle | 6 +- .../AddCollaboratorToRepositoryActivity.java | 4 +- .../activities/AddNewTeamMemberActivity.java | 4 +- .../gitnex/activities/CreateNoteActivity.java | 1 + .../gitnex/activities/EditIssueActivity.java | 472 +++++++++++++++++- .../activities/IssueDetailActivity.java | 4 +- .../mian/gitnex/activities/MainActivity.java | 2 + .../gitnex/activities/RepoDetailActivity.java | 4 +- .../adapters/CollaboratorSearchAdapter.java | 9 +- .../gitnex/adapters/ReposListAdapter.java | 9 + .../mian/gitnex/fragments/FilesFragment.java | 85 +++- .../gitnex/fragments/RepoInfoFragment.java | 22 - ...ctivity_add_collaborator_to_repository.xml | 108 ++-- .../res/layout/activity_add_new_account.xml | 4 +- .../layout/activity_add_new_team_member.xml | 74 +-- .../res/layout/activity_admin_cron_tasks.xml | 9 +- .../res/layout/activity_admin_get_users.xml | 1 + .../main/res/layout/activity_code_editor.xml | 1 + .../res/layout/activity_commit_details.xml | 10 +- app/src/main/res/layout/activity_commits.xml | 9 +- .../main/res/layout/activity_create_file.xml | 6 +- .../main/res/layout/activity_create_issue.xml | 6 +- .../main/res/layout/activity_create_label.xml | 6 +- .../res/layout/activity_create_milestone.xml | 6 +- .../res/layout/activity_create_new_user.xml | 6 +- .../main/res/layout/activity_create_note.xml | 16 +- .../layout/activity_create_organization.xml | 6 +- .../main/res/layout/activity_create_pr.xml | 8 +- .../res/layout/activity_create_release.xml | 6 +- .../main/res/layout/activity_create_repo.xml | 6 +- .../layout/activity_create_team_by_org.xml | 6 +- .../main/res/layout/activity_deeplinks.xml | 19 +- app/src/main/res/layout/activity_diff.xml | 7 +- .../main/res/layout/activity_edit_issue.xml | 24 +- .../main/res/layout/activity_file_view.xml | 14 +- .../main/res/layout/activity_issue_detail.xml | 1 + app/src/main/res/layout/activity_main.xml | 3 +- .../layout/activity_merge_pull_request.xml | 6 +- .../res/layout/activity_org_team_info.xml | 9 +- .../main/res/layout/activity_repo_forks.xml | 11 +- .../res/layout/activity_repo_stargazers.xml | 77 +-- .../res/layout/activity_repo_watchers.xml | 59 ++- .../layout/activity_repository_settings.xml | 27 +- .../layout/activity_settings_appearance.xml | 6 +- .../activity_settings_backup_restore.xml | 6 +- .../layout/activity_settings_code_editor.xml | 6 +- .../res/layout/activity_settings_general.xml | 6 +- .../activity_settings_notifications.xml | 6 +- .../res/layout/activity_settings_security.xml | 6 +- app/src/main/res/layout/activity_wiki.xml | 16 +- .../res/layout/add_new_team_repository.xml | 10 +- app/src/main/res/layout/fragment_files.xml | 104 +++- .../res/layout/fragment_organization_info.xml | 244 ++++----- .../main/res/layout/fragment_repo_info.xml | 7 +- .../res/layout/list_collaborators_search.xml | 6 +- app/src/main/res/layout/list_files.xml | 78 ++- app/src/main/res/layout/list_repositories.xml | 27 +- app/src/main/res/layout/nav_header.xml | 1 + .../res/menu/files_switch_branches_menu.xml | 7 - app/src/main/res/values-v23/themes.xml | 6 +- app/src/main/res/values-v31/themes.xml | 4 +- app/src/main/res/values/strings.xml | 5 +- app/src/main/res/values/themes.xml | 10 +- build.gradle | 2 +- 67 files changed, 1232 insertions(+), 527 deletions(-) diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index 9fc936ba..497f0171 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -13,9 +13,16 @@ steps: OUTPUT: "signed.apk" INSTANCE: "https://codeberg.org" KS_FILE: "gitnex_ci_keystore.jks" + BOT_TOKEN: + from_secret: BOT_TOKEN + KS_PASS: + from_secret: KS_PASS + KEY_PASS: + from_secret: KEY_PASS + KS_REPO: + from_secret: KS_REPO commands: - ./scripts/sign-build.sh - secrets: [ BOT_TOKEN, KS_PASS, KEY_PASS, KS_REPO ] when: event: [ push, tag ] branch: main @@ -27,9 +34,10 @@ steps: WEBDAV_USERNAME: "GitNexBot" PLUGIN_FILE: "signed.apk" PLUGIN_DESTINATION: "https://cloud.swatian.com/remote.php/dav/files/GitNexBot/gitnex/builds/latest.apk" + WEBDAV_PASSWORD: + from_secret: WEBDAV_PASSWORD commands: - curl -T "$PLUGIN_FILE" -u "$WEBDAV_USERNAME":"$WEBDAV_PASSWORD" "$PLUGIN_DESTINATION" - secrets: [ WEBDAV_PASSWORD ] when: event: [ push, tag ] branch: main @@ -40,9 +48,10 @@ steps: environment: WEBDAV_USERNAME: "GitNexBot" PLUGIN_FILE: "signed.apk" + WEBDAV_PASSWORD: + from_secret: WEBDAV_PASSWORD commands: - "[[ $CI_COMMIT_TAG == *'-rc'* ]] && echo 'Upload blocked. Build seems to be a release candidate.' && exit 0" - curl -T "$PLUGIN_FILE" -u "$WEBDAV_USERNAME":"$WEBDAV_PASSWORD" 'https://cloud.swatian.com/remote.php/dav/files/GitNexBot/gitnex/releases/'"$CI_COMMIT_TAG"'.apk' - secrets: [ WEBDAV_PASSWORD ] when: event: [ tag ] diff --git a/.woodpecker/finish.yml b/.woodpecker/finish.yml index 035661c5..5d6f20af 100644 --- a/.woodpecker/finish.yml +++ b/.woodpecker/finish.yml @@ -3,7 +3,6 @@ depends_on: - locale - check -run_on: [ success, failure ] skip_clone: true steps: diff --git a/.woodpecker/locale.yml b/.woodpecker/locale.yml index e5f4656d..4e4b31b7 100644 --- a/.woodpecker/locale.yml +++ b/.woodpecker/locale.yml @@ -4,7 +4,9 @@ steps: commands: - cp crowdin.example.yml crowdin.yml - sed -i 's/-removed-/'"$CROWDIN_TOKEN"'/' crowdin.yml - secrets: [ CROWDIN_TOKEN ] + environment: + CROWDIN_TOKEN: + from_secret: CROWDIN_TOKEN when: event: [ push, tag, cron ] branch: main @@ -40,7 +42,8 @@ steps: - GITEA_BRANCH=main # Token that should be used to authenticate against the gitea instance # - BOT_TOKEN=secret - secrets: [ BOT_TOKEN ] + BOT_TOKEN: + from_secret: BOT_TOKEN commands: # Setup git credentials and checkout target branch - git config user.name "$${GIT_AUTHOR_NAME}" diff --git a/app/build.gradle b/app/build.gradle index 40a08b36..db7de360 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,12 +7,12 @@ android { defaultConfig { applicationId "org.mian.gitnex" minSdkVersion 23 - targetSdkVersion 34 + targetSdkVersion 35 versionCode 695 versionName "7.0.0-dev" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - compileSdk 34 + compileSdk 35 } flavorDimensions = ["default"] productFlavors { @@ -106,7 +106,7 @@ dependencies { implementation 'ch.acra:acra-notification:5.11.3' implementation 'androidx.room:room-runtime:2.6.1' annotationProcessor 'androidx.room:room-compiler:2.6.1' - implementation "androidx.work:work-runtime:2.9.1" + implementation "androidx.work:work-runtime:2.10.0" implementation "io.mikael:urlbuilder:2.0.9" implementation "org.codeberg.gitnex-garage:emoji-java:v5.1.2" //noinspection GradleDependency diff --git a/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java b/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java index b2590c63..5bcd8bff 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java @@ -61,7 +61,7 @@ public class AddCollaboratorToRepositoryActivity extends BaseActivity { activityAddCollaboratorToRepositoryBinding .addCollaboratorSearch.getText()) .toString() - .equals("")) { + .isEmpty()) { activityAddCollaboratorToRepositoryBinding.progressBar.setVisibility( View.VISIBLE); @@ -128,7 +128,9 @@ public class AddCollaboratorToRepositoryActivity extends BaseActivity { activityAddCollaboratorToRepositoryBinding.noData.setVisibility(View.GONE); } else { + activityAddCollaboratorToRepositoryBinding.recyclerViewUserSearch.setAdapter(null); activityAddCollaboratorToRepositoryBinding.noData.setVisibility(View.VISIBLE); + adapter.clearAdapter(); } activityAddCollaboratorToRepositoryBinding.progressBar.setVisibility(View.GONE); diff --git a/app/src/main/java/org/mian/gitnex/activities/AddNewTeamMemberActivity.java b/app/src/main/java/org/mian/gitnex/activities/AddNewTeamMemberActivity.java index ec13050a..ce2fc6f7 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AddNewTeamMemberActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AddNewTeamMemberActivity.java @@ -118,7 +118,7 @@ public class AddNewTeamMemberActivity extends BaseActivity { if (response.isSuccessful()) { assert response.body() != null; - if (response.body().getData().size() > 0) { + if (!response.body().getData().isEmpty()) { dataList.clear(); dataList.addAll(response.body().getData()); @@ -126,7 +126,9 @@ public class AddNewTeamMemberActivity extends BaseActivity { noData.setVisibility(View.GONE); } else { + dataList.clear(); noData.setVisibility(View.VISIBLE); + mRecyclerView.setAdapter(null); } mProgressBar.setVisibility(View.GONE); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java index a8aae6f7..15c496c6 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java @@ -61,6 +61,7 @@ public class CreateNoteActivity extends BaseActivity { binding.close.setOnClickListener(close -> finish()); binding.toolbarTitle.setMovementMethod(new ScrollingMovementMethod()); + assert action != null; if (action.equalsIgnoreCase("edit")) { noteId = getIntent().getIntExtra("noteId", 0); diff --git a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java index 7c451823..143f2308 100644 --- a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java @@ -1,22 +1,47 @@ package org.mian.gitnex.activities; import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.NotificationManager; +import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.util.Log; +import android.view.LayoutInflater; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; +import androidx.core.app.NotificationCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.request.target.CustomTarget; +import com.bumptech.glide.request.transition.Transition; +import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.google.android.material.card.MaterialCardView; import com.google.android.material.datepicker.MaterialDatePicker; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.vdurmont.emoji.EmojiParser; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.LinkedHashMap; @@ -24,27 +49,41 @@ import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.TimeZone; +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import org.apache.commons.io.FilenameUtils; +import org.gitnex.tea4j.v2.models.Attachment; import org.gitnex.tea4j.v2.models.EditIssueOption; import org.gitnex.tea4j.v2.models.Issue; import org.gitnex.tea4j.v2.models.Milestone; import org.mian.gitnex.R; +import org.mian.gitnex.adapters.AttachmentsAdapter; import org.mian.gitnex.clients.RetrofitClient; import org.mian.gitnex.databinding.ActivityEditIssueBinding; +import org.mian.gitnex.databinding.BottomSheetAttachmentsBinding; +import org.mian.gitnex.databinding.CustomImageViewDialogBinding; import org.mian.gitnex.fragments.IssuesFragment; import org.mian.gitnex.fragments.PullRequestsFragment; import org.mian.gitnex.helpers.AlertDialogs; import org.mian.gitnex.helpers.AppDatabaseSettings; +import org.mian.gitnex.helpers.AppUtil; import org.mian.gitnex.helpers.Constants; import org.mian.gitnex.helpers.Markdown; import org.mian.gitnex.helpers.SnackBar; +import org.mian.gitnex.helpers.attachments.AttachmentUtils; +import org.mian.gitnex.helpers.attachments.AttachmentsModel; import org.mian.gitnex.helpers.contexts.IssueContext; +import org.mian.gitnex.notifications.Notifications; import retrofit2.Call; import retrofit2.Callback; +import retrofit2.Response; /** * @author M M Arif */ -public class EditIssueActivity extends BaseActivity { +public class EditIssueActivity extends BaseActivity + implements AttachmentsAdapter.AttachmentsReceiverListener { private ActivityEditIssueBinding binding; private final String msState = "open"; @@ -52,6 +91,147 @@ public class EditIssueActivity extends BaseActivity { private int milestoneId = 0; private IssueContext issue; private boolean renderMd = false; + private MaterialAlertDialogBuilder materialAlertDialogBuilder; + private String token; + private String filename; + private Long filesize; + private String filehash; + private String instanceUrlOnly; + private AttachmentsAdapter attachmentsAdapter; + private static List<AttachmentsModel> attachmentsList; + private static final List<Uri> contentUri = new ArrayList<>(); + private MenuItem create; + + public ActivityResultLauncher<Intent> downloadAttachmentLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + + assert result.getData() != null; + + try { + + OutputStream outputStream = + getContentResolver() + .openOutputStream( + Objects.requireNonNull( + result.getData().getData())); + + NotificationCompat.Builder builder = + new NotificationCompat.Builder(ctx, ctx.getPackageName()) + .setContentTitle( + getString( + R.string + .fileViewerNotificationTitleStarted)) + .setContentText( + getString( + R.string + .fileViewerNotificationDescriptionStarted, + filename)) + .setSmallIcon(R.drawable.gitnex_transparent) + .setPriority(NotificationCompat.PRIORITY_LOW) + .setChannelId( + Constants.downloadNotificationChannelId) + .setProgress(100, 0, false) + .setOngoing(true); + + int notificationId = Notifications.uniqueNotificationId(ctx); + + NotificationManager notificationManager = + (NotificationManager) + getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.notify(notificationId, builder.build()); + + Thread thread = + new Thread( + () -> { + try { + + Call<ResponseBody> call = + RetrofitClient.getWebInterface( + ctx, + instanceUrlOnly) + .getAttachment(filehash); + + Response<ResponseBody> response = + call.execute(); + + assert response.body() != null; + + builder.setOngoing(false) + .setContentTitle( + getString( + R.string + .fileViewerNotificationTitleFinished)) + .setContentText( + getString( + R.string + .fileViewerNotificationDescriptionFinished, + filename)); + + AppUtil.copyProgress( + response.body().byteStream(), + outputStream, + filesize, + progress -> { + builder.setProgress( + 100, progress, false); + notificationManager.notify( + notificationId, + builder.build()); + }); + + } catch (IOException ignored) { + + builder.setOngoing(false) + .setContentTitle( + getString( + R.string + .fileViewerNotificationTitleFailed)) + .setContentText( + getString( + R.string + .fileViewerNotificationDescriptionFailed, + filename)); + + } finally { + + builder.setProgress(0, 0, false) + .setOngoing(false); + + notificationManager.notify( + notificationId, builder.build()); + } + }); + + thread.start(); + + } catch (IOException ignored) { + } + } + }); + + ActivityResultLauncher<Intent> startActivityForResult = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + Intent data = result.getData(); + assert data != null; + contentUri.add(data.getData()); + attachmentsList.add( + new AttachmentsModel( + AttachmentUtils.queryName(ctx, data.getData()), + data.getData())); + attachmentsAdapter.updateList(attachmentsList); + } + }); + + public void onDestroy() { + AttachmentsAdapter.setAttachmentsReceiveListener(null); + super.onDestroy(); + } @SuppressLint("ClickableViewAccessibility") @Override @@ -65,12 +245,27 @@ public class EditIssueActivity extends BaseActivity { int resultLimit = Constants.getCurrentResultLimit(ctx); issue = IssueContext.fromIntent(getIntent()); - binding.topAppBar.setNavigationOnClickListener(v -> finish()); + binding.topAppBar.setNavigationOnClickListener( + v -> { + finish(); + contentUri.clear(); + }); - MenuItem attachment = binding.topAppBar.getMenu().getItem(0); - MenuItem create = binding.topAppBar.getMenu().getItem(2); - attachment.setVisible(false); - create.setTitle(getString(R.string.menuEditText)); + materialAlertDialogBuilder = + new MaterialAlertDialogBuilder(ctx, R.style.ThemeOverlay_Material3_Dialog_Alert); + + token = ((BaseActivity) ctx).getAccount().getAccount().getToken(); + + String instanceUrl = ((BaseActivity) ctx).getAccount().getAccount().getInstanceUrl(); + instanceUrlOnly = instanceUrl.substring(0, instanceUrl.lastIndexOf("api/v1/")); + + attachmentsList = new ArrayList<>(); + attachmentsAdapter = new AttachmentsAdapter(attachmentsList, ctx); + + AttachmentsAdapter.setAttachmentsReceiveListener(this); + + create = binding.topAppBar.getMenu().getItem(2); + create.setTitle(getString(R.string.saveButton)); binding.editIssueDescription.setOnTouchListener( (touchView, motionEvent) -> { @@ -122,7 +317,15 @@ public class EditIssueActivity extends BaseActivity { return true; } else if (id == R.id.create) { + create.setVisible(false); processEditIssue(); + if (!contentUri.isEmpty()) { + processAttachments(); + contentUri.clear(); + } + return true; + } else if (id == R.id.attachment) { + checkForAttachments(); return true; } else { return super.onOptionsItemSelected(menuItem); @@ -135,12 +338,116 @@ public class EditIssueActivity extends BaseActivity { issue.getIssueIndex(), resultLimit); + getAttachments(); + if (!issue.getRepository().getPermissions().isPush()) { findViewById(R.id.editIssueMilestoneSpinnerLayout).setVisibility(View.GONE); findViewById(R.id.editIssueDueDateLayout).setVisibility(View.GONE); } } + @Override + public void setAttachmentsData(Uri filename) { + contentUri.remove(filename); + } + + private void checkForAttachments() { + + if (!contentUri.isEmpty()) { + + BottomSheetAttachmentsBinding bottomSheetAttachmentsBinding = + BottomSheetAttachmentsBinding.inflate(getLayoutInflater()); + + BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(ctx); + + bottomSheetAttachmentsBinding.addAttachment.setOnClickListener( + v1 -> openFileAttachmentActivity()); + + bottomSheetAttachmentsBinding.recyclerViewAttachments.setHasFixedSize(true); + bottomSheetAttachmentsBinding.recyclerViewAttachments.setLayoutManager( + new LinearLayoutManager(ctx)); + bottomSheetAttachmentsBinding.recyclerViewAttachments.setAdapter(attachmentsAdapter); + + bottomSheetDialog.setContentView(bottomSheetAttachmentsBinding.getRoot()); + bottomSheetDialog.show(); + } else { + attachmentsAdapter.clearAdapter(); + openFileAttachmentActivity(); + } + } + + private void openFileAttachmentActivity() { + + Intent data = new Intent(Intent.ACTION_GET_CONTENT); + data.addCategory(Intent.CATEGORY_OPENABLE); + data.setType("*/*"); + Intent intent = Intent.createChooser(data, "Choose a file"); + startActivityForResult.launch(intent); + } + + private void processAttachments() { + + for (int i = 0; i < contentUri.size(); i++) { + + File file = AttachmentUtils.getFile(ctx, contentUri.get(i)); + + RequestBody requestFile = + RequestBody.create( + file, + MediaType.parse( + Objects.requireNonNull( + getContentResolver().getType(contentUri.get(i))))); + + uploadAttachments(requestFile, file.getName()); + } + } + + private void uploadAttachments(RequestBody requestFile, String filename1) { + + Call<Attachment> call3 = + RetrofitClient.getApiInterface(ctx) + .issueCreateIssueAttachment( + requestFile, + issue.getRepository().getOwner(), + issue.getRepository().getName(), + (long) issue.getIssueIndex(), + filename1); + + call3.enqueue( + new Callback<>() { + + @Override + public void onResponse( + @NonNull Call<Attachment> call, + @NonNull retrofit2.Response<Attachment> response2) { + + if (response2.code() == 201) { + new Handler().postDelayed(() -> finish(), 3000); + } else if (response2.code() == 401) { + + AlertDialogs.authorizationTokenRevokedDialog(ctx); + } else { + + create.setVisible(true); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.attachmentsSaveError)); + } + } + + @Override + public void onFailure(@NonNull Call<Attachment> call, @NonNull Throwable t) { + + create.setVisible(true); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.genericServerResponseError)); + } + }); + } + private void processEditIssue() { String editIssueTitleForm = @@ -149,7 +456,7 @@ public class EditIssueActivity extends BaseActivity { Objects.requireNonNull(binding.editIssueDescription.getText()).toString(); String dueDate = Objects.requireNonNull(binding.editIssueDueDate.getText()).toString(); - if (editIssueTitleForm.equals("")) { + if (editIssueTitleForm.isEmpty()) { SnackBar.error( ctx, findViewById(android.R.id.content), getString(R.string.issueTitleEmpty)); @@ -229,6 +536,7 @@ public class EditIssueActivity extends BaseActivity { AlertDialogs.authorizationTokenRevokedDialog(ctx); } else { + create.setVisible(true); SnackBar.error( ctx, findViewById(android.R.id.content), @@ -237,7 +545,9 @@ public class EditIssueActivity extends BaseActivity { } @Override - public void onFailure(@NonNull Call<Issue> call, @NonNull Throwable t) {} + public void onFailure(@NonNull Call<Issue> call, @NonNull Throwable t) { + create.setVisible(true); + } }); } @@ -326,7 +636,7 @@ public class EditIssueActivity extends BaseActivity { .issueCreatedNoMilestone)); milestonesList.put(ms.getTitle(), ms); - if (milestonesList_.size() > 0) { + if (!milestonesList_.isEmpty()) { for (Milestone milestone : milestonesList_) { @@ -448,6 +758,150 @@ public class EditIssueActivity extends BaseActivity { }); } + private void getAttachments() { + + Call<List<Attachment>> call = + RetrofitClient.getApiInterface(ctx) + .issueListIssueAttachments( + issue.getRepository().getOwner(), + issue.getRepository().getName(), + (long) issue.getIssueIndex()); + + call.enqueue( + new Callback<>() { + + @Override + public void onResponse( + @NonNull Call<List<Attachment>> call, + @NonNull retrofit2.Response<List<Attachment>> response) { + + List<Attachment> attachment = response.body(); + + if (response.code() == 200) { + assert attachment != null; + + if (!attachment.isEmpty()) { + + binding.attachmentFrame.setVisibility(View.VISIBLE); + LinearLayout.LayoutParams paramsAttachment = + new LinearLayout.LayoutParams(96, 96); + paramsAttachment.setMargins(0, 0, 48, 0); + + for (int i = 0; i < attachment.size(); i++) { + + ImageView attachmentView = new ImageView(ctx); + MaterialCardView materialCardView = new MaterialCardView(ctx); + materialCardView.setLayoutParams(paramsAttachment); + materialCardView.setStrokeWidth(0); + materialCardView.setRadius(28); + materialCardView.setCardBackgroundColor(Color.TRANSPARENT); + + if (Arrays.asList( + "bmp", "gif", "jpg", "jpeg", "png", "webp", + "heic", "heif") + .contains( + FilenameUtils.getExtension( + attachment.get(i).getName()) + .toLowerCase())) { + + Glide.with(ctx) + .load( + attachment.get(i).getBrowserDownloadUrl() + + "?token=" + + token) + .diskCacheStrategy(DiskCacheStrategy.ALL) + .placeholder(R.drawable.loader_animated) + .centerCrop() + .error(R.drawable.ic_close) + .into(attachmentView); + + binding.attachmentsView.addView(materialCardView); + attachmentView.setLayoutParams(paramsAttachment); + materialCardView.addView(attachmentView); + + int finalI1 = i; + materialCardView.setOnClickListener( + v1 -> + imageViewDialog( + attachment + .get(finalI1) + .getBrowserDownloadUrl())); + + } else { + + attachmentView.setImageResource( + R.drawable.ic_file_download); + attachmentView.setPadding(4, 4, 4, 4); + binding.attachmentsView.addView(materialCardView); + attachmentView.setLayoutParams(paramsAttachment); + materialCardView.addView(attachmentView); + + int finalI = i; + materialCardView.setOnClickListener( + v1 -> { + filesize = attachment.get(finalI).getSize(); + filename = attachment.get(finalI).getName(); + filehash = attachment.get(finalI).getUuid(); + requestFileDownload(); + }); + } + } + } else { + binding.attachmentFrame.setVisibility(View.GONE); + } + } + } + + @Override + public void onFailure( + @NonNull Call<List<Attachment>> call, @NonNull Throwable t) {} + }); + } + + private void requestFileDownload() { + + Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); + + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.putExtra(Intent.EXTRA_TITLE, filename); + intent.setType("*/*"); + + downloadAttachmentLauncher.launch(intent); + } + + private void imageViewDialog(String url) { + + CustomImageViewDialogBinding imageViewDialogBinding = + CustomImageViewDialogBinding.inflate(LayoutInflater.from(ctx)); + View view = imageViewDialogBinding.getRoot(); + materialAlertDialogBuilder.setView(view); + + materialAlertDialogBuilder.setNeutralButton(getString(R.string.close), null); + + Glide.with(ctx) + .asBitmap() + .load(url + "?token=" + token) + .diskCacheStrategy(DiskCacheStrategy.ALL) + .placeholder(R.drawable.loader_animated) + .centerCrop() + .error(R.drawable.ic_close) + .into( + new CustomTarget<Bitmap>() { + @Override + public void onResourceReady( + @NonNull Bitmap resource, + Transition<? super Bitmap> transition) { + imageViewDialogBinding.imageView.setImageBitmap(resource); + imageViewDialogBinding.imageView.buildDrawingCache(); + } + + @Override + public void onLoadCleared(Drawable placeholder) {} + }); + + materialAlertDialogBuilder.create().show(); + } + @Override public void onResume() { super.onResume(); diff --git a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java index b78aa6ca..573bdcf8 100644 --- a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java @@ -535,7 +535,7 @@ public class IssueDetailActivity extends BaseActivity viewBinding.commentReply.setText(null); viewBinding.commentReply.clearFocus(); imm.toggleSoftInput( - InputMethodManager.HIDE_IMPLICIT_ONLY, 0); + InputMethodManager.SHOW_IMPLICIT, 0); } else { Toasty.error(ctx, getString(R.string.genericError)); @@ -1785,7 +1785,7 @@ public class IssueDetailActivity extends BaseActivity viewBinding.send.setEnabled(false); viewBinding.commentReply.setText(null); viewBinding.commentReply.clearFocus(); - imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); + imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0); } else if (response.code() == 401) { diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java index a492a9a1..e65fcd7a 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -10,6 +10,7 @@ import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import androidx.activity.EdgeToEdge; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBarDrawerToggle; @@ -93,6 +94,7 @@ public class MainActivity extends BaseActivity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(activityMainBinding.getRoot()); diff --git a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java index 501b9aa4..adb5e78f 100644 --- a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java @@ -222,11 +222,11 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetListe filterMilestoneBottomSheet.show( getSupportFragmentManager(), "repoFilterMenuMilestoneBottomSheet"); return true; - } else if (id == R.id.switchBranches) { + } /*else if (id == R.id.switchBranches) { chooseBranch(); return true; - } else if (id == R.id.branchCommits) { + }*/ else if (id == R.id.branchCommits) { Intent intent = repository.getIntent(ctx, CommitsActivity.class); diff --git a/app/src/main/java/org/mian/gitnex/adapters/CollaboratorSearchAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/CollaboratorSearchAdapter.java index bdbdb848..7430adda 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/CollaboratorSearchAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/CollaboratorSearchAdapter.java @@ -1,5 +1,6 @@ package org.mian.gitnex.adapters; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Handler; @@ -99,7 +100,7 @@ public class CollaboratorSearchAdapter currentItem.getLogin()); call.enqueue( - new Callback<Void>() { + new Callback<>() { @Override public void onResponse( @@ -138,6 +139,12 @@ public class CollaboratorSearchAdapter return usersSearchList.size(); } + @SuppressLint("NotifyDataSetChanged") + public void clearAdapter() { + usersSearchList.clear(); + notifyDataSetChanged(); + } + public class CollaboratorSearchViewHolder extends RecyclerView.ViewHolder { private final ImageView userAvatar; diff --git a/app/src/main/java/org/mian/gitnex/adapters/ReposListAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/ReposListAdapter.java index e410ead8..a26f024d 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/ReposListAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/ReposListAdapter.java @@ -18,6 +18,7 @@ import com.amulyakhare.textdrawable.TextDrawable; import com.amulyakhare.textdrawable.util.ColorGenerator; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.google.android.material.card.MaterialCardView; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -164,6 +165,7 @@ public class ReposListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold private final View spacerView; private org.gitnex.tea4j.v2.models.Repository userRepositories; private CheckBox isRepoAdmin; + private MaterialCardView isRepoArchivedFrame; ReposHolder(View itemView) { @@ -176,6 +178,7 @@ public class ReposListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold repoStars = itemView.findViewById(R.id.repoStars); repoLastUpdated = itemView.findViewById(R.id.repoLastUpdated); spacerView = itemView.findViewById(R.id.spacerView); + isRepoArchivedFrame = itemView.findViewById(R.id.repo_is_archived_frame); itemView.setOnClickListener( v -> { @@ -254,6 +257,12 @@ public class ReposListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold isRepoAdmin = new CheckBox(context); } isRepoAdmin.setChecked(repositories.getPermissions().isAdmin()); + + if (repositories.isArchived()) { + isRepoArchivedFrame.setVisibility(View.VISIBLE); + } else { + isRepoArchivedFrame.setVisibility(View.GONE); + } } } } diff --git a/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java index 32ee2328..cbf7e16d 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java @@ -1,6 +1,7 @@ package org.mian.gitnex.fragments; import android.annotation.SuppressLint; +import android.app.Dialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -17,17 +18,21 @@ import androidx.appcompat.widget.SearchView; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; import moe.feng.common.view.breadcrumbs.DefaultBreadcrumbsCallback; import moe.feng.common.view.breadcrumbs.model.BreadcrumbItem; +import org.gitnex.tea4j.v2.models.Branch; import org.gitnex.tea4j.v2.models.ContentsResponse; import org.mian.gitnex.R; import org.mian.gitnex.activities.CreateFileActivity; import org.mian.gitnex.activities.FileViewActivity; import org.mian.gitnex.activities.RepoDetailActivity; import org.mian.gitnex.adapters.FilesAdapter; +import org.mian.gitnex.clients.RetrofitClient; import org.mian.gitnex.database.api.BaseApi; import org.mian.gitnex.database.api.UserAccountsApi; import org.mian.gitnex.database.models.UserAccount; @@ -36,6 +41,9 @@ import org.mian.gitnex.helpers.AppUtil; import org.mian.gitnex.helpers.Path; import org.mian.gitnex.helpers.contexts.RepositoryContext; import org.mian.gitnex.viewmodels.FilesViewModel; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; /** * @author M M Arif @@ -79,6 +87,8 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter binding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); binding.recyclerView.setAdapter(filesAdapter); + binding.branchTitle.setText(repository.getBranchRef()); + binding.breadcrumbsView.setItems( new ArrayList<>( Collections.singletonList( @@ -172,6 +182,8 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter binding.newFile.setOnClickListener( v17 -> startActivity(repository.getIntent(getContext(), CreateFileActivity.class))); + binding.switchBranch.setOnClickListener(switchBranch -> chooseBranch()); + return binding.getRoot(); } @@ -220,10 +232,10 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter for (UserAccount userAccount : userAccounts) { Uri instanceUri = Uri.parse(userAccount.getInstanceUrl()); - if (instanceUri.getHost().toLowerCase().equals(host)) { + if (Objects.requireNonNull(instanceUri.getHost()).toLowerCase().equals(host)) { account = userAccount; // if scheme is wrong fix it - if (!url.getScheme().equals(instanceUri.getScheme())) { + if (!Objects.equals(url.getScheme(), instanceUri.getScheme())) { url = AppUtil.changeScheme(url, instanceUri.getScheme()); } break; @@ -281,7 +293,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter filesAdapter.getOriginalFiles().addAll(filesListMain); filesAdapter.notifyOriginalDataSetChanged(); - if (filesListMain.size() > 0) { + if (!filesListMain.isEmpty()) { AppUtil.setMultiVisibility( View.VISIBLE, binding.recyclerView, binding.filesFrame); @@ -322,7 +334,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter filesAdapter.getOriginalFiles().addAll(filesListMain2); filesAdapter.notifyOriginalDataSetChanged(); - if (filesListMain2.size() > 0) { + if (!filesListMain2.isEmpty()) { AppUtil.setMultiVisibility( View.VISIBLE, binding.recyclerView, binding.filesFrame); @@ -340,6 +352,70 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter }); } + private void chooseBranch() { + + Dialog progressDialog = new Dialog(requireContext()); + progressDialog.setCancelable(false); + progressDialog.setContentView(R.layout.custom_progress_loader); + progressDialog.show(); + + MaterialAlertDialogBuilder materialAlertDialogBuilder = + new MaterialAlertDialogBuilder( + requireContext(), R.style.ThemeOverlay_Material3_Dialog_Alert); + + Call<List<Branch>> call = + RetrofitClient.getApiInterface(requireContext()) + .repoListBranches(repository.getOwner(), repository.getName(), null, null); + + call.enqueue( + new Callback<>() { + + @Override + public void onResponse( + @NonNull Call<List<Branch>> call, + @NonNull Response<List<Branch>> response) { + + progressDialog.hide(); + if (response.code() == 200) { + + List<String> branchesList = new ArrayList<>(); + int selectedBranch = 0; + assert response.body() != null; + + for (int i = 0; i < response.body().size(); i++) { + + Branch branches = response.body().get(i); + branchesList.add(branches.getName()); + + if (repository.getBranchRef().equals(branches.getName())) { + selectedBranch = i; + } + } + + materialAlertDialogBuilder + .setTitle(R.string.pageTitleChooseBranch) + .setSingleChoiceItems( + branchesList.toArray(new String[0]), + selectedBranch, + (dialogInterface, i) -> { + repository.setBranchRef(branchesList.get(i)); + binding.branchTitle.setText(branchesList.get(i)); + + refresh(); + dialogInterface.dismiss(); + }) + .setNeutralButton(R.string.cancelButton, null); + materialAlertDialogBuilder.create().show(); + } + } + + @Override + public void onFailure(@NonNull Call<List<Branch>> call, @NonNull Throwable t) { + progressDialog.hide(); + } + }); + } + @Override public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { @@ -353,6 +429,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchItem.getActionView(); + assert searchView != null; searchView.setImeOptions(EditorInfo.IME_ACTION_DONE); searchView.setOnQueryTextListener( new SearchView.OnQueryTextListener() { diff --git a/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java b/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java index 08aaffce..ec230d3a 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java @@ -286,19 +286,9 @@ public class RepoInfoFragment extends Fragment { AlertDialogs.authorizationTokenRevokedDialog(ctx); break; - case 403: - Toasty.error(ctx, ctx.getString(R.string.authorizeError)); - binding.languagesStatistic.setVisibility(View.GONE); - break; - case 404: binding.languagesStatistic.setVisibility(View.GONE); break; - - default: - Toasty.error(getContext(), getString(R.string.genericError)); - binding.languagesStatistic.setVisibility(View.GONE); - break; } } } @@ -529,22 +519,10 @@ public class RepoInfoFragment extends Fragment { AlertDialogs.authorizationTokenRevokedDialog(ctx); break; - case 403: - Toasty.error(ctx, ctx.getString(R.string.authorizeError)); - binding.fileContentsFrameHeader.setVisibility(View.GONE); - binding.fileContentsFrame.setVisibility(View.GONE); - break; - case 404: binding.fileContentsFrameHeader.setVisibility(View.GONE); binding.fileContentsFrame.setVisibility(View.GONE); break; - - default: - Toasty.error(getContext(), getString(R.string.genericError)); - binding.fileContentsFrameHeader.setVisibility(View.GONE); - binding.fileContentsFrame.setVisibility(View.GONE); - break; } } } diff --git a/app/src/main/res/layout/activity_add_collaborator_to_repository.xml b/app/src/main/res/layout/activity_add_collaborator_to_repository.xml index 6e1aabb9..4ca360a8 100644 --- a/app/src/main/res/layout/activity_add_collaborator_to_repository.xml +++ b/app/src/main/res/layout/activity_add_collaborator_to_repository.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout android:layout_width="match_parent" +<androidx.coordinatorlayout.widget.CoordinatorLayout + android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:orientation="vertical" + android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - android:background="?attr/primaryBackgroundColor"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -55,66 +56,69 @@ android:visibility="gone" app:indicatorColor="?attr/progressIndicatorColor"/> - <LinearLayout + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dimen10dp" - android:layout_marginEnd="@dimen/dimen10dp" - android:layout_marginTop="@dimen/dimen10dp" - android:layout_marginBottom="@dimen/dimen10dp"> + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/addCollaboratorSearchLayout" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColorHint="?attr/hintColor" - app:hintTextColor="?attr/hintColor" - app:boxStrokeErrorColor="@color/darkRed" - android:layout_marginTop="@dimen/dimen8dp" - android:layout_marginBottom="@dimen/dimen8dp" - app:startIconDrawable="@drawable/ic_search" - app:startIconTint="?attr/iconsColor" - app:endIconMode="clear_text" - app:endIconTint="?attr/iconsColor" - android:hint="@string/addCollaboratorSearchHint"> + android:orientation="vertical" + android:padding="@dimen/dimen16dp"> - <com.google.android.material.textfield.TextInputEditText - android:id="@+id/addCollaboratorSearch" + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/addCollaboratorSearchLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="?attr/inputTextColor" android:textColorHint="?attr/hintColor" - android:singleLine="true" - android:imeOptions="actionSend" - android:inputType="text" - android:textSize="@dimen/dimen16sp"/> + app:hintTextColor="?attr/hintColor" + app:boxStrokeErrorColor="@color/darkRed" + android:layout_marginBottom="@dimen/dimen8dp" + app:startIconDrawable="@drawable/ic_search" + app:startIconTint="?attr/iconsColor" + app:endIconMode="clear_text" + app:endIconTint="?attr/iconsColor" + android:hint="@string/addCollaboratorSearchHint"> - </com.google.android.material.textfield.TextInputLayout> + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/addCollaboratorSearch" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="?attr/inputTextColor" + android:textColorHint="?attr/hintColor" + android:singleLine="true" + android:imeOptions="actionSend" + android:inputType="text" + android:textSize="@dimen/dimen16sp"/> - </LinearLayout> + </com.google.android.material.textfield.TextInputLayout> - <TextView - android:id="@+id/noData" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_margin="@dimen/dimen16dp" - android:gravity="center" - android:text="@string/noDataFound" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen20sp" - android:visibility="gone"/> + <TextView + android:id="@+id/noData" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="@dimen/dimen16dp" + android:gravity="center" + android:text="@string/noDataFound" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen20sp" + android:visibility="gone"/> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/primaryBackgroundColor" - android:padding="@dimen/dimen8dp"> + <FrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="?attr/primaryBackgroundColor"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/recyclerViewUserSearch" - android:layout_width="match_parent" - android:layout_height="match_parent"/> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerViewUserSearch" + android:layout_width="match_parent" + android:layout_height="match_parent"/> - </FrameLayout> + </FrameLayout> -</LinearLayout> + </LinearLayout> + + </androidx.core.widget.NestedScrollView> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_add_new_account.xml b/app/src/main/res/layout/activity_add_new_account.xml index a3df6471..6082c0a4 100644 --- a/app/src/main/res/layout/activity_add_new_account.xml +++ b/app/src/main/res/layout/activity_add_new_account.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" + android:fitsSystemWindows="true" xmlns:app="http://schemas.android.com/apk/res-auto"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_add_new_team_member.xml b/app/src/main/res/layout/activity_add_new_team_member.xml index b459c9a7..9a1250e8 100644 --- a/app/src/main/res/layout/activity_add_new_team_member.xml +++ b/app/src/main/res/layout/activity_add_new_team_member.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout android:layout_width="match_parent" +<androidx.coordinatorlayout.widget.CoordinatorLayout + android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:orientation="vertical" + android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - android:background="?attr/primaryBackgroundColor"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -55,15 +56,18 @@ style="@style/Widget.MaterialComponents.LinearProgressIndicator" app:indicatorColor="?attr/progressIndicatorColor"/> - <LinearLayout + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dimen10dp" - android:layout_marginEnd="@dimen/dimen10dp" - android:layout_marginTop="@dimen/dimen10dp" - android:layout_marginBottom="@dimen/dimen10dp"> + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - <com.google.android.material.textfield.TextInputLayout + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="@dimen/dimen16dp"> + + <com.google.android.material.textfield.TextInputLayout android:id="@+id/addNewTeamMemberLayout" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -71,7 +75,6 @@ android:textColorHint="?attr/hintColor" app:hintTextColor="?attr/hintColor" app:boxStrokeErrorColor="@color/darkRed" - android:layout_marginTop="@dimen/dimen8dp" android:layout_marginBottom="@dimen/dimen8dp" app:startIconDrawable="@drawable/ic_search" app:startIconTint="?attr/iconsColor" @@ -89,32 +92,33 @@ android:inputType="text" android:textSize="@dimen/dimen16sp"/> - </com.google.android.material.textfield.TextInputLayout> + </com.google.android.material.textfield.TextInputLayout> - </LinearLayout> + <TextView + android:id="@+id/noData" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="@dimen/dimen16dp" + android:gravity="center" + android:text="@string/noDataFound" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen20sp" + android:visibility="gone"/> - <TextView - android:id="@+id/noData" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_margin="@dimen/dimen16dp" - android:gravity="center" - android:text="@string/noDataFound" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen20sp" - android:visibility="gone"/> + <FrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="?attr/primaryBackgroundColor"> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/primaryBackgroundColor" - android:padding="@dimen/dimen8dp"> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerViewUserSearch" + android:layout_width="match_parent" + android:layout_height="match_parent"/> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/recyclerViewUserSearch" - android:layout_width="match_parent" - android:layout_height="match_parent"/> + </FrameLayout> - </FrameLayout> + </LinearLayout> -</LinearLayout> + </androidx.core.widget.NestedScrollView> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_admin_cron_tasks.xml b/app/src/main/res/layout/activity_admin_cron_tasks.xml index eaa2221b..ef4e99ba 100644 --- a/app/src/main/res/layout/activity_admin_cron_tasks.xml +++ b/app/src/main/res/layout/activity_admin_cron_tasks.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -87,4 +88,4 @@ android:textSize="@dimen/dimen20sp" android:visibility="gone" /> -</RelativeLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_admin_get_users.xml b/app/src/main/res/layout/activity_admin_get_users.xml index 0c1fb597..e12c8ab8 100644 --- a/app/src/main/res/layout/activity_admin_get_users.xml +++ b/app/src/main/res/layout/activity_admin_get_users.xml @@ -5,6 +5,7 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" + android:fitsSystemWindows="true" android:background="?attr/primaryBackgroundColor"> <FrameLayout diff --git a/app/src/main/res/layout/activity_code_editor.xml b/app/src/main/res/layout/activity_code_editor.xml index e21e61a5..d22bad86 100644 --- a/app/src/main/res/layout/activity_code_editor.xml +++ b/app/src/main/res/layout/activity_code_editor.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:orientation="vertical"> <com.google.android.material.appbar.AppBarLayout diff --git a/app/src/main/res/layout/activity_commit_details.xml b/app/src/main/res/layout/activity_commit_details.xml index 7c7c2593..a0d6fcad 100644 --- a/app/src/main/res/layout/activity_commit_details.xml +++ b/app/src/main/res/layout/activity_commit_details.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="?attr/primaryBackgroundColor" + xmlns:android="http://schemas.android.com/apk/res/android" + android:fitsSystemWindows="true"> <FrameLayout android:id="@+id/fragment_container" @@ -10,4 +12,4 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor"/> -</androidx.constraintlayout.widget.ConstraintLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_commits.xml b/app/src/main/res/layout/activity_commits.xml index 3c66e77d..80bfb937 100644 --- a/app/src/main/res/layout/activity_commits.xml +++ b/app/src/main/res/layout/activity_commits.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -90,4 +91,4 @@ android:textSize="@dimen/dimen20sp" android:visibility="gone"/> -</RelativeLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_create_file.xml b/app/src/main/res/layout/activity_create_file.xml index 0d2cd649..d1db9082 100644 --- a/app/src/main/res/layout/activity_create_file.xml +++ b/app/src/main/res/layout/activity_create_file.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_issue.xml b/app/src/main/res/layout/activity_create_issue.xml index cefefb4f..07a792d9 100644 --- a/app/src/main/res/layout/activity_create_issue.xml +++ b/app/src/main/res/layout/activity_create_issue.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_label.xml b/app/src/main/res/layout/activity_create_label.xml index 88bfe65f..fdf3f98a 100644 --- a/app/src/main/res/layout/activity_create_label.xml +++ b/app/src/main/res/layout/activity_create_label.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_milestone.xml b/app/src/main/res/layout/activity_create_milestone.xml index 0cba7814..1e623486 100644 --- a/app/src/main/res/layout/activity_create_milestone.xml +++ b/app/src/main/res/layout/activity_create_milestone.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_new_user.xml b/app/src/main/res/layout/activity_create_new_user.xml index 5508e9eb..59ee6595 100644 --- a/app/src/main/res/layout/activity_create_new_user.xml +++ b/app/src/main/res/layout/activity_create_new_user.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_note.xml b/app/src/main/res/layout/activity_create_note.xml index 54a6914a..ed08f985 100644 --- a/app/src/main/res/layout/activity_create_note.xml +++ b/app/src/main/res/layout/activity_create_note.xml @@ -1,16 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:theme="@style/Widget.AppCompat.SearchView" + android:background="?attr/primaryBackgroundColor" app:elevation="@dimen/dimen0dp"> <com.google.android.material.appbar.MaterialToolbar @@ -46,9 +47,10 @@ </com.google.android.material.appbar.AppBarLayout> - <ScrollView + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" android:background="?attr/primaryBackgroundColor"> <LinearLayout @@ -81,6 +83,6 @@ </LinearLayout> - </ScrollView> + </androidx.core.widget.NestedScrollView> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_create_organization.xml b/app/src/main/res/layout/activity_create_organization.xml index 070b1cbc..86ea53ca 100644 --- a/app/src/main/res/layout/activity_create_organization.xml +++ b/app/src/main/res/layout/activity_create_organization.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_pr.xml b/app/src/main/res/layout/activity_create_pr.xml index 71eab957..38231805 100644 --- a/app/src/main/res/layout/activity_create_pr.xml +++ b/app/src/main/res/layout/activity_create_pr.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" @@ -94,7 +94,7 @@ android:text="@string/insertNote" android:textColor="?attr/primaryTextColor" android:textSize="@dimen/dimen14sp"/> - + <com.google.android.material.textfield.TextInputLayout android:id="@+id/prBodyLayout" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/activity_create_release.xml b/app/src/main/res/layout/activity_create_release.xml index e54c72a0..c3841dab 100644 --- a/app/src/main/res/layout/activity_create_release.xml +++ b/app/src/main/res/layout/activity_create_release.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_repo.xml b/app/src/main/res/layout/activity_create_repo.xml index 2cc08e5b..fe7da67e 100644 --- a/app/src/main/res/layout/activity_create_repo.xml +++ b/app/src/main/res/layout/activity_create_repo.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_create_team_by_org.xml b/app/src/main/res/layout/activity_create_team_by_org.xml index 4b175440..d888fa50 100644 --- a/app/src/main/res/layout/activity_create_team_by_org.xml +++ b/app/src/main/res/layout/activity_create_team_by_org.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_deeplinks.xml b/app/src/main/res/layout/activity_deeplinks.xml index 056287b9..e6539862 100644 --- a/app/src/main/res/layout/activity_deeplinks.xml +++ b/app/src/main/res/layout/activity_deeplinks.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.progressindicator.LinearProgressIndicator android:id="@+id/progressBar" @@ -14,10 +15,10 @@ android:indeterminate="true" app:indicatorColor="?attr/progressIndicatorColor" /> - <ScrollView + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" @@ -158,6 +159,6 @@ </LinearLayout> - </ScrollView> + </androidx.core.widget.NestedScrollView> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_diff.xml b/app/src/main/res/layout/activity_diff.xml index e81ff803..d4b9069d 100644 --- a/app/src/main/res/layout/activity_diff.xml +++ b/app/src/main/res/layout/activity_diff.xml @@ -1,13 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + android:fitsSystemWindows="true"> <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent"/> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_edit_issue.xml b/app/src/main/res/layout/activity_edit_issue.xml index d3b5314a..7b89a1b4 100644 --- a/app/src/main/res/layout/activity_edit_issue.xml +++ b/app/src/main/res/layout/activity_edit_issue.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" @@ -158,6 +158,24 @@ </com.google.android.material.textfield.TextInputLayout> + <LinearLayout + android:id="@+id/attachmentFrame" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + android:orientation="vertical"> + + <LinearLayout + android:id="@+id/attachmentsView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dimen12dp" + android:orientation="horizontal"> + + </LinearLayout> + + </LinearLayout> + </LinearLayout> </androidx.core.widget.NestedScrollView> diff --git a/app/src/main/res/layout/activity_file_view.xml b/app/src/main/res/layout/activity_file_view.xml index 1227b354..83f10578 100644 --- a/app/src/main/res/layout/activity_file_view.xml +++ b/app/src/main/res/layout/activity_file_view.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -61,6 +61,7 @@ <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" + app:layout_behavior="@string/appbar_scrolling_view_behavior" android:background="?attr/primaryBackgroundColor"> <LinearLayout @@ -100,8 +101,7 @@ android:id="@+id/contents" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" - tools:visibility="visible"/> + android:visibility="gone" /> <com.github.chrisbanes.photoview.PhotoView android:id="@+id/photo_view" @@ -114,4 +114,4 @@ </androidx.core.widget.NestedScrollView> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_issue_detail.xml b/app/src/main/res/layout/activity_issue_detail.xml index 7bd980f3..a3ccd1b4 100644 --- a/app/src/main/res/layout/activity_issue_detail.xml +++ b/app/src/main/res/layout/activity_issue_detail.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" + android:fitsSystemWindows="true" android:orientation="vertical"> <com.google.android.material.appbar.AppBarLayout diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8ff16694..818675cf 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,6 +12,8 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" + android:background="?attr/primaryBackgroundColor" android:orientation="vertical"> <com.google.android.material.appbar.MaterialToolbar @@ -20,7 +22,6 @@ android:background="?attr/primaryBackgroundColor" android:id="@+id/toolbar" app:titleTextColor="?attr/primaryTextColor" - android:theme="@style/Widget.AppCompat.SearchView" android:elevation="@dimen/dimen0dp"> <TextView diff --git a/app/src/main/res/layout/activity_merge_pull_request.xml b/app/src/main/res/layout/activity_merge_pull_request.xml index ceea1190..cd9bf5f3 100644 --- a/app/src/main/res/layout/activity_merge_pull_request.xml +++ b/app/src/main/res/layout/activity_merge_pull_request.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_org_team_info.xml b/app/src/main/res/layout/activity_org_team_info.xml index e5def625..621ed049 100644 --- a/app/src/main/res/layout/activity_org_team_info.xml +++ b/app/src/main/res/layout/activity_org_team_info.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -63,4 +64,4 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_repo_forks.xml b/app/src/main/res/layout/activity_repo_forks.xml index 7deee354..59cd6558 100644 --- a/app/src/main/res/layout/activity_repo_forks.xml +++ b/app/src/main/res/layout/activity_repo_forks.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/primaryBackgroundColor"> + android:background="?attr/primaryBackgroundColor" + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -100,4 +101,4 @@ android:textSize="@dimen/dimen20sp" android:visibility="gone"/> -</RelativeLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_repo_stargazers.xml b/app/src/main/res/layout/activity_repo_stargazers.xml index dfd7ede0..9bef10b8 100644 --- a/app/src/main/res/layout/activity_repo_stargazers.xml +++ b/app/src/main/res/layout/activity_repo_stargazers.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" - app:elevation="@dimen/dimen0dp" - android:theme="@style/Widget.AppCompat.SearchView"> + android:theme="@style/Widget.AppCompat.SearchView" + app:elevation="@dimen/dimen0dp"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" @@ -46,32 +46,47 @@ </com.google.android.material.appbar.AppBarLayout> - <GridView - android:id="@+id/gridView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:scrollbars="none" - android:numColumns="2" - android:gravity="center" - android:background="?attr/primaryBackgroundColor" - android:padding="@dimen/dimen4dp"/> - - <com.google.android.material.progressindicator.LinearProgressIndicator - android:id="@+id/progress_bar" + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" - android:indeterminate="true" - style="@style/Widget.MaterialComponents.LinearProgressIndicator" - app:indicatorColor="?attr/progressIndicatorColor"/> + app:layout_behavior="@string/appbar_scrolling_view_behavior" + android:background="?attr/primaryBackgroundColor"> - <TextView - android:id="@+id/noDataStargazers" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:gravity="center" - android:text="@string/noDataFound" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen20sp" - android:visibility="gone"/> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> -</LinearLayout> + <GridView + android:id="@+id/gridView" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:scrollbars="none" + android:numColumns="2" + android:gravity="center" + android:background="?attr/primaryBackgroundColor" + android:padding="@dimen/dimen4dp"/> + + <com.google.android.material.progressindicator.LinearProgressIndicator + android:id="@+id/progress_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:indeterminate="true" + style="@style/Widget.MaterialComponents.LinearProgressIndicator" + app:indicatorColor="?attr/progressIndicatorColor"/> + + </LinearLayout> + + </androidx.core.widget.NestedScrollView> + + <TextView + android:id="@+id/noDataStargazers" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:text="@string/noDataFound" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen20sp" + android:visibility="gone"/> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_repo_watchers.xml b/app/src/main/res/layout/activity_repo_watchers.xml index 4845bcdb..09f76629 100644 --- a/app/src/main/res/layout/activity_repo_watchers.xml +++ b/app/src/main/res/layout/activity_repo_watchers.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" - app:elevation="@dimen/dimen0dp" - android:theme="@style/Widget.AppCompat.SearchView"> + android:theme="@style/Widget.AppCompat.SearchView" + app:elevation="@dimen/dimen0dp"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" @@ -46,23 +46,38 @@ </com.google.android.material.appbar.AppBarLayout> - <GridView - android:id="@+id/gridView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:padding="@dimen/dimen4dp" - android:scrollbars="none" - android:numColumns="2" - android:gravity="center"/> - - <com.google.android.material.progressindicator.LinearProgressIndicator - android:id="@+id/progress_bar" + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" - android:indeterminate="true" - style="@style/Widget.MaterialComponents.LinearProgressIndicator" - app:indicatorColor="?attr/progressIndicatorColor"/> + app:layout_behavior="@string/appbar_scrolling_view_behavior" + android:background="?attr/primaryBackgroundColor"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <com.google.android.material.progressindicator.LinearProgressIndicator + android:id="@+id/progress_bar" + style="@style/Widget.MaterialComponents.LinearProgressIndicator" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:indeterminate="true" + app:indicatorColor="?attr/progressIndicatorColor"/> + + <GridView + android:id="@+id/gridView" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="?attr/primaryBackgroundColor" + android:padding="@dimen/dimen4dp" + android:scrollbars="none" + android:numColumns="2" + android:gravity="center"/> + + </LinearLayout> + + </androidx.core.widget.NestedScrollView> <TextView android:id="@+id/noDataWatchers" @@ -74,4 +89,4 @@ android:textSize="@dimen/dimen20sp" android:visibility="gone"/> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_repository_settings.xml b/app/src/main/res/layout/activity_repository_settings.xml index 6d6b5ea9..b5986a49 100644 --- a/app/src/main/res/layout/activity_repository_settings.xml +++ b/app/src/main/res/layout/activity_repository_settings.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -48,8 +48,10 @@ </com.google.android.material.appbar.AppBarLayout> - <ScrollView android:layout_width="match_parent" + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" android:background="?attr/primaryBackgroundColor"> <LinearLayout @@ -75,6 +77,10 @@ <View android:layout_width="match_parent" android:layout_height="@dimen/dimen1dp" + android:layout_marginTop="@dimen/dimen4dp" + android:layout_marginBottom="@dimen/dimen4dp" + android:layout_marginStart="@dimen/dimen16dp" + android:layout_marginEnd="@dimen/dimen16dp" android:background="?attr/dividerColor"/> <LinearLayout @@ -84,8 +90,7 @@ android:background="?android:attr/selectableItemBackground" android:clickable="true" android:focusable="true" - android:orientation="vertical" - tools:visibility="visible"> + android:orientation="vertical"> <TextView android:id="@+id/transferRepositoryOwnership" @@ -116,6 +121,10 @@ <View android:layout_width="match_parent" android:layout_height="@dimen/dimen1dp" + android:layout_marginTop="@dimen/dimen4dp" + android:layout_marginBottom="@dimen/dimen4dp" + android:layout_marginStart="@dimen/dimen16dp" + android:layout_marginEnd="@dimen/dimen16dp" android:background="?attr/dividerColor"/> </LinearLayout> @@ -159,7 +168,7 @@ </LinearLayout> - </ScrollView> + </androidx.core.widget.NestedScrollView> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_settings_appearance.xml b/app/src/main/res/layout/activity_settings_appearance.xml index 6980bf8e..260b471a 100644 --- a/app/src/main/res/layout/activity_settings_appearance.xml +++ b/app/src/main/res/layout/activity_settings_appearance.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_settings_backup_restore.xml b/app/src/main/res/layout/activity_settings_backup_restore.xml index 78020034..f13f5fea 100644 --- a/app/src/main/res/layout/activity_settings_backup_restore.xml +++ b/app/src/main/res/layout/activity_settings_backup_restore.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_settings_code_editor.xml b/app/src/main/res/layout/activity_settings_code_editor.xml index 3bedac6b..cc39a461 100644 --- a/app/src/main/res/layout/activity_settings_code_editor.xml +++ b/app/src/main/res/layout/activity_settings_code_editor.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_settings_general.xml b/app/src/main/res/layout/activity_settings_general.xml index 823e0187..fe3578dc 100644 --- a/app/src/main/res/layout/activity_settings_general.xml +++ b/app/src/main/res/layout/activity_settings_general.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_settings_notifications.xml b/app/src/main/res/layout/activity_settings_notifications.xml index af0e4b32..80b53621 100644 --- a/app/src/main/res/layout/activity_settings_notifications.xml +++ b/app/src/main/res/layout/activity_settings_notifications.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_settings_security.xml b/app/src/main/res/layout/activity_settings_security.xml index fa58d60b..387674e7 100644 --- a/app/src/main/res/layout/activity_settings_security.xml +++ b/app/src/main/res/layout/activity_settings_security.xml @@ -4,14 +4,14 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor" - android:fitsSystemWindows="true"> + android:background="?attr/primaryBackgroundColor"> <com.google.android.material.appbar.CollapsingToolbarLayout style="?attr/collapsingToolbarLayoutLargeStyle" diff --git a/app/src/main/res/layout/activity_wiki.xml b/app/src/main/res/layout/activity_wiki.xml index 61783586..6f9f529a 100644 --- a/app/src/main/res/layout/activity_wiki.xml +++ b/app/src/main/res/layout/activity_wiki.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" +<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor" - android:orientation="vertical"> + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -61,7 +61,8 @@ <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/primaryBackgroundColor"> + android:background="?attr/primaryBackgroundColor" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" @@ -101,8 +102,7 @@ android:id="@+id/contents" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" - tools:visibility="visible"/> + android:visibility="gone" /> </LinearLayout> @@ -181,4 +181,4 @@ </androidx.core.widget.NestedScrollView> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/add_new_team_repository.xml b/app/src/main/res/layout/add_new_team_repository.xml index cdeea21e..dd34fcc2 100644 --- a/app/src/main/res/layout/add_new_team_repository.xml +++ b/app/src/main/res/layout/add_new_team_repository.xml @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout android:layout_width="match_parent" +<androidx.coordinatorlayout.widget.CoordinatorLayout + android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?attr/primaryBackgroundColor" + xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - android:orientation="vertical" - xmlns:android="http://schemas.android.com/apk/res/android"> + android:fitsSystemWindows="true"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" @@ -84,4 +86,4 @@ </FrameLayout> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/fragment_files.xml b/app/src/main/res/layout/fragment_files.xml index 3810bdd0..bb131c87 100644 --- a/app/src/main/res/layout/fragment_files.xml +++ b/app/src/main/res/layout/fragment_files.xml @@ -19,7 +19,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" style="?attr/materialCardViewElevatedStyle" - android:layout_margin="@dimen/dimen8dp" + android:layout_marginStart="@dimen/dimen8dp" + android:layout_marginEnd="@dimen/dimen8dp" + android:layout_marginTop="@dimen/dimen8dp" + android:visibility="gone" app:cardElevation="@dimen/dimen0dp"> <LinearLayout @@ -43,27 +46,98 @@ </com.google.android.material.card.MaterialCardView> - <FrameLayout + <!-- branch section --> + <com.google.android.material.card.MaterialCardView + android:id="@+id/branch_section" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/primaryBackgroundColor" - android:padding="@dimen/dimen8dp"> + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dimen8dp" + android:layout_marginBottom="@dimen/dimen0dp" + android:layout_marginStart="@dimen/dimen8dp" + android:layout_marginEnd="@dimen/dimen8dp" + style="?attr/materialCardViewElevatedStyle" + app:strokeWidth="@dimen/dimen0dp" + app:cardElevation="@dimen/dimen0dp"> - <androidx.swiperefreshlayout.widget.SwipeRefreshLayout - android:id="@+id/pullToRefresh" + <LinearLayout + android:id="@+id/files_branches_main_frame" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="horizontal" + android:background="?attr/materialCardBackgroundColor" + android:padding="@dimen/dimen12dp"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/recyclerView" + <ImageView + android:layout_width="@dimen/dimen24dp" + android:layout_height="@dimen/dimen24dp" + android:contentDescription="@string/branch" + android:layout_marginEnd="@dimen/dimen16dp" + app:tint="?attr/iconsColor" + app:srcCompat="@drawable/ic_branch" /> + + <LinearLayout + android:id="@+id/files_branches_frame" android:layout_width="match_parent" - android:layout_height="match_parent" - android:clipToPadding="false" - android:paddingBottom="@dimen/dimen72dp" /> + android:layout_height="wrap_content" + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> - </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> + <TextView + android:id="@+id/branch_title" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_marginEnd="@dimen/dimen16dp" + android:text="@string/branch" + android:textSize="@dimen/dimen16sp" /> - </FrameLayout> + <TextView + android:id="@+id/switch_branch" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/switch_branch" + android:textAllCaps="true" + android:textSize="@dimen/dimen14sp" /> + + </LinearLayout> + + </LinearLayout> + + </com.google.android.material.card.MaterialCardView> + <!-- branch section --> + + <com.google.android.material.card.MaterialCardView + android:layout_width="match_parent" + android:layout_height="wrap_content" + style="?attr/materialCardViewElevatedStyle" + android:layout_margin="@dimen/dimen8dp" + app:cardElevation="@dimen/dimen0dp"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:foreground="?android:attr/selectableItemBackground" + android:background="?attr/materialCardBackgroundColor" + android:orientation="horizontal"> + + <androidx.swiperefreshlayout.widget.SwipeRefreshLayout + android:id="@+id/pullToRefresh" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:clipToPadding="false" + android:paddingBottom="@dimen/dimen72dp" /> + + </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> + + </LinearLayout> + + </com.google.android.material.card.MaterialCardView> </LinearLayout> diff --git a/app/src/main/res/layout/fragment_organization_info.xml b/app/src/main/res/layout/fragment_organization_info.xml index dd2286af..70c8a78f 100644 --- a/app/src/main/res/layout/fragment_organization_info.xml +++ b/app/src/main/res/layout/fragment_organization_info.xml @@ -4,172 +4,178 @@ xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="match_parent" - android:padding="@dimen/dimen8dp"> + android:layout_height="match_parent"> - <ScrollView - android:orientation="vertical" - android:background="?attr/primaryBackgroundColor" + <FrameLayout android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="?attr/primaryBackgroundColor" + android:padding="@dimen/dimen8dp"> - <com.google.android.material.card.MaterialCardView + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" - android:layout_height="wrap_content" - style="?attr/materialCardViewElevatedStyle" - app:cardElevation="@dimen/dimen0dp"> + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - <LinearLayout + <com.google.android.material.card.MaterialCardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical" - android:foreground="?android:attr/selectableItemBackground" - android:background="?attr/materialCardBackgroundColor"> + style="?attr/materialCardViewElevatedStyle" + app:cardElevation="@dimen/dimen0dp"> <LinearLayout - android:id="@+id/orgInfoLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="@dimen/dimen16dp" - android:visibility="gone" - tools:visibility="visible"> - - <com.google.android.material.card.MaterialCardView - android:layout_width="@dimen/dimen96dp" - android:layout_height="@dimen/dimen96dp" - style="?attr/materialCardViewFilledStyle" - android:layout_gravity="center_horizontal" - app:cardElevation="@dimen/dimen0dp" - android:layout_marginTop="@dimen/dimen12dp" - android:layout_marginBottom="@dimen/dimen12dp" - app:cardCornerRadius="@dimen/dimen16dp"> - - <ImageView - android:id="@+id/orgAvatar" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:contentDescription="@string/orgContentAvatar"/> - - </com.google.android.material.card.MaterialCardView> - - <TextView - android:id="@+id/orgNameInfo" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textColor="?attr/primaryTextColor" - android:layout_marginBottom="@dimen/dimen4dp" - android:textSize="@dimen/dimen22sp" - android:textStyle="bold"/> - - <TextView - android:id="@+id/orgDescInfo" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:autoLink="web" - android:ellipsize="end" - android:maxLines="3" - android:textColor="?attr/primaryTextColor" - android:textColorLink="@color/lightBlue" - android:textSize="@dimen/dimen16sp"/> - - <com.google.android.material.divider.MaterialDivider - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/dimen24dp" - android:layout_marginBottom="@dimen/dimen24dp" /> + android:foreground="?android:attr/selectableItemBackground" + android:background="?attr/materialCardBackgroundColor"> <LinearLayout + android:id="@+id/orgInfoLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="@dimen/dimen20dp" - android:orientation="horizontal" - android:paddingLeft="@dimen/dimen12dp" - android:paddingRight="@dimen/dimen12dp"> + android:orientation="vertical" + android:padding="@dimen/dimen16dp" + android:visibility="gone" + tools:visibility="visible"> - <ImageView - android:layout_gravity="center" - android:layout_width="wrap_content" + <com.google.android.material.card.MaterialCardView + android:layout_width="@dimen/dimen96dp" + android:layout_height="@dimen/dimen96dp" + style="?attr/materialCardViewFilledStyle" + android:layout_gravity="center_horizontal" + app:cardElevation="@dimen/dimen0dp" + android:layout_marginTop="@dimen/dimen12dp" + android:layout_marginBottom="@dimen/dimen12dp" + app:cardCornerRadius="@dimen/dimen16dp"> + + <ImageView + android:id="@+id/orgAvatar" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:contentDescription="@string/orgContentAvatar"/> + + </com.google.android.material.card.MaterialCardView> + + <TextView + android:id="@+id/orgNameInfo" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:contentDescription="@string/websiteText" - app:srcCompat="@drawable/ic_link"/> + android:textColor="?attr/primaryTextColor" + android:layout_marginBottom="@dimen/dimen4dp" + android:textSize="@dimen/dimen22sp" + android:textStyle="bold"/> + + <TextView + android:id="@+id/orgDescInfo" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:autoLink="web" + android:ellipsize="end" + android:maxLines="3" + android:textColor="?attr/primaryTextColor" + android:textColorLink="@color/lightBlue" + android:textSize="@dimen/dimen16sp"/> + + <com.google.android.material.divider.MaterialDivider + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dimen24dp" + android:layout_marginBottom="@dimen/dimen24dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dimen16dp" - android:gravity="center_vertical" - android:orientation="vertical"> + android:layout_marginBottom="@dimen/dimen20dp" + android:orientation="horizontal" + android:paddingLeft="@dimen/dimen12dp" + android:paddingRight="@dimen/dimen12dp"> - <TextView + <ImageView + android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/websiteText" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen16sp"/> + android:contentDescription="@string/websiteText" + app:srcCompat="@drawable/ic_link"/> - <TextView - android:id="@+id/orgWebsiteInfo" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:alpha="0.9" - android:autoLink="web" - android:textColor="?attr/primaryTextColor" - android:textColorLink="@color/lightBlue" - android:textSize="@dimen/dimen14sp" - tools:text="29"/> + android:layout_marginStart="@dimen/dimen16dp" + android:gravity="center_vertical" + android:orientation="vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/websiteText" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen16sp"/> + + <TextView + android:id="@+id/orgWebsiteInfo" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:alpha="0.9" + android:autoLink="web" + android:textColor="?attr/primaryTextColor" + android:textColorLink="@color/lightBlue" + android:textSize="@dimen/dimen14sp" + tools:text="29"/> + </LinearLayout> + </LinearLayout> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="20dp" - android:orientation="horizontal" - android:paddingLeft="@dimen/dimen12dp" - android:paddingRight="@dimen/dimen12dp"> - - <ImageView - android:layout_gravity="center" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:contentDescription="@string/locationText" - app:srcCompat="@drawable/ic_location"/> - <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dimen16dp" - android:gravity="center_vertical" - android:orientation="vertical"> + android:layout_marginBottom="20dp" + android:orientation="horizontal" + android:paddingLeft="@dimen/dimen12dp" + android:paddingRight="@dimen/dimen12dp"> - <TextView + <ImageView + android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/locationText" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen16sp"/> + android:contentDescription="@string/locationText" + app:srcCompat="@drawable/ic_location"/> - <TextView - android:id="@+id/orgLocationInfo" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:alpha="0.9" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen14sp" - tools:text="29"/> + android:layout_marginStart="@dimen/dimen16dp" + android:gravity="center_vertical" + android:orientation="vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/locationText" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen16sp"/> + + <TextView + android:id="@+id/orgLocationInfo" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:alpha="0.9" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen14sp" + tools:text="29"/> + </LinearLayout> + </LinearLayout> </LinearLayout> </LinearLayout> - </LinearLayout> + </com.google.android.material.card.MaterialCardView> - </com.google.android.material.card.MaterialCardView> + </androidx.core.widget.NestedScrollView> - </ScrollView> + </FrameLayout> <com.google.android.material.progressindicator.LinearProgressIndicator android:id="@+id/progress_bar" diff --git a/app/src/main/res/layout/fragment_repo_info.xml b/app/src/main/res/layout/fragment_repo_info.xml index 8783b989..74ba9b28 100644 --- a/app/src/main/res/layout/fragment_repo_info.xml +++ b/app/src/main/res/layout/fragment_repo_info.xml @@ -27,10 +27,9 @@ android:text="@string/archivedRepositoryMessage" android:background="@drawable/shape_archived" android:padding="@dimen/dimen10dp" - android:layout_marginBottom="@dimen/dimen10dp" - android:textStyle="bold" - android:textSize="@dimen/dimen14sp" - android:textColor="?attr/fabColor" /> + android:layout_marginBottom="@dimen/dimen8dp" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen14sp" /> <com.google.android.material.card.MaterialCardView android:layout_width="match_parent" diff --git a/app/src/main/res/layout/list_collaborators_search.xml b/app/src/main/res/layout/list_collaborators_search.xml index 4a4c9f6a..d8d57df6 100644 --- a/app/src/main/res/layout/list_collaborators_search.xml +++ b/app/src/main/res/layout/list_collaborators_search.xml @@ -86,7 +86,8 @@ android:background="@drawable/shape_circle" android:src="@drawable/ic_add" android:padding="@dimen/dimen8dp" - android:visibility="gone"/> + android:visibility="gone" + app:tint="@color/colorWhite" /> <ImageView android:id="@+id/addCollaboratorButtonRemove" @@ -97,7 +98,8 @@ android:background="@drawable/shape_circle_red" android:src="@drawable/ic_remove" android:padding="@dimen/dimen8dp" - android:visibility="gone"/> + app:tint="@color/colorWhite" + android:visibility="gone" /> </LinearLayout> diff --git a/app/src/main/res/layout/list_files.xml b/app/src/main/res/layout/list_files.xml index 982f1d50..32ad3f2e 100644 --- a/app/src/main/res/layout/list_files.xml +++ b/app/src/main/res/layout/list_files.xml @@ -1,73 +1,53 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" - xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/fileFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="@dimen/dimen4dp" - android:paddingBottom="@dimen/dimen4dp" + android:padding="@dimen/dimen12dp" android:gravity="center_vertical" android:orientation="horizontal"> - <com.google.android.material.card.MaterialCardView + <ImageView + android:id="@+id/fileTypeIs" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dimen16dp" + android:contentDescription="@string/generalImgContentText" + android:src="@drawable/ic_file"/> + + <LinearLayout + android:id="@+id/infoSection" android:layout_width="match_parent" android:layout_height="wrap_content" - style="?attr/materialCardViewElevatedStyle" - app:cardElevation="@dimen/dimen0dp"> + android:orientation="vertical"> + + <TextView + android:id="@+id/fileName" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/defaultFilename" + android:textColor="?attr/primaryTextColor" + android:textSize="@dimen/dimen16sp"/> <LinearLayout + android:id="@+id/infoRow" android:layout_width="match_parent" android:layout_height="wrap_content" - android:foreground="?android:attr/selectableItemBackground" - android:background="?attr/materialCardBackgroundColor" - android:padding="@dimen/dimen12dp" android:orientation="horizontal"> - <ImageView - android:id="@+id/fileTypeIs" + <TextView + android:id="@+id/fileInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/dimen16dp" - android:contentDescription="@string/generalImgContentText" - android:src="@drawable/ic_file"/> - - <LinearLayout - android:id="@+id/infoSection" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <TextView - android:id="@+id/fileName" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/defaultFilename" - android:textColor="?attr/primaryTextColor" - android:textSize="@dimen/dimen16sp"/> - - <LinearLayout - android:id="@+id/infoRow" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> - - <TextView - android:id="@+id/fileInfo" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/sizeCopy" - android:textColor="?attr/hintColor" - android:textSize="@dimen/dimen12sp" - android:visibility="gone" - tools:visibility="visible"/> - - </LinearLayout> - - </LinearLayout> + android:text="@string/sizeCopy" + android:textColor="?attr/hintColor" + android:textSize="@dimen/dimen12sp" + android:visibility="gone" + tools:visibility="visible"/> </LinearLayout> - </com.google.android.material.card.MaterialCardView> + </LinearLayout> </LinearLayout> diff --git a/app/src/main/res/layout/list_repositories.xml b/app/src/main/res/layout/list_repositories.xml index 85078cc0..f6ef78f1 100644 --- a/app/src/main/res/layout/list_repositories.xml +++ b/app/src/main/res/layout/list_repositories.xml @@ -59,12 +59,37 @@ <TextView android:id="@+id/orgName" - android:layout_width="match_parent" + android:layout_width="0dp" android:layout_height="wrap_content" android:textColor="?attr/primaryTextColor" android:textSize="@dimen/dimen14sp" + android:layout_weight="1" tools:text="@string/orgName"/> + <com.google.android.material.card.MaterialCardView + android:id="@+id/repo_is_archived_frame" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:backgroundTint="@android:color/transparent" + android:layout_weight="0" + app:strokeWidth="@dimen/dimen1dp" + app:cardElevation="@dimen/dimen0dp" + app:cardCornerRadius="@dimen/dimen6dp" + android:visibility="gone"> + + <TextView + android:id="@+id/repo_is_archived" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/dimen12sp" + android:paddingStart="@dimen/dimen4dp" + android:paddingEnd="@dimen/dimen4dp" + android:paddingTop="@dimen/dimen2dp" + android:paddingBottom="@dimen/dimen2dp" + android:text="@string/archivedRepository" /> + + </com.google.android.material.card.MaterialCardView> + </LinearLayout> <TextView diff --git a/app/src/main/res/layout/nav_header.xml b/app/src/main/res/layout/nav_header.xml index f8306215..73d099b9 100644 --- a/app/src/main/res/layout/nav_header.xml +++ b/app/src/main/res/layout/nav_header.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/navHeaderFrame" android:layout_width="match_parent" + android:layout_marginTop="@dimen/dimen24dp" android:layout_height="@dimen/dimen180dp"> <ImageView diff --git a/app/src/main/res/menu/files_switch_branches_menu.xml b/app/src/main/res/menu/files_switch_branches_menu.xml index eca8693f..5452a743 100644 --- a/app/src/main/res/menu/files_switch_branches_menu.xml +++ b/app/src/main/res/menu/files_switch_branches_menu.xml @@ -2,13 +2,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/switchBranches" - android:icon="@drawable/ic_branch" - android:orderInCategory="1" - android:title="@string/strSwitchBranches" - app:showAsAction="ifRoom" /> - <item android:id="@+id/branchCommits" android:icon="@drawable/ic_commit" diff --git a/app/src/main/res/values-v23/themes.xml b/app/src/main/res/values-v23/themes.xml index 7ae108e8..a2670ff6 100644 --- a/app/src/main/res/values-v23/themes.xml +++ b/app/src/main/res/values-v23/themes.xml @@ -3,7 +3,7 @@ <!-- Light theme --> <style name="AppThemeLight" parent="Theme.Material3.Light.NoActionBar"> - <item name="android:statusBarColor">@color/lightThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowLightStatusBar">true</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> @@ -48,7 +48,7 @@ <!-- Retro theme --> <style name="AppThemeRetro" parent="Theme.Material3.Light.NoActionBar"> - <item name="android:statusBarColor">@color/retroThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowLightStatusBar">true</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> @@ -93,7 +93,7 @@ <!-- Codeberg dark theme --> <style name="AppThemeCodebergDark" parent="Theme.Material3.Dark.NoActionBar"> - <item name="android:statusBarColor">@color/codebergDarkThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/codebergDarkThemeTextColor</item> diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml index 36b90d5e..1304449e 100644 --- a/app/src/main/res/values-v31/themes.xml +++ b/app/src/main/res/values-v31/themes.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppThemeDarkDynamicColors" parent="Theme.Material3.Dark.NoActionBar"> - <item name="android:statusBarColor">@android:color/system_neutral1_900</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@android:color/system_neutral1_800</item> <item name="android:textColorSecondary">@android:color/system_accent1_0</item> @@ -45,7 +45,7 @@ </style> <style name="AppThemeLightDynamicColors" parent="Theme.Material3.Light.NoActionBar"> - <item name="android:statusBarColor">@android:color/system_neutral1_10</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowLightStatusBar">true</item> <item name="android:typeface">monospace</item> <item name="materialCardBackgroundColor">@android:color/system_accent2_50</item> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 902264b3..b998900a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -135,7 +135,6 @@ <string name="tabTextFiles">Files</string> <string name="tabTextMl">Milestones</string> <string name="tabTextReleases">Releases</string> - <string name="tabTextBranches">Branches</string> <string name="tabTextCollaborators">Collaborators</string> <string name="tabPullRequests">Pull Requests</string> <string name="pullRequest">Pull Request</string> @@ -480,7 +479,6 @@ <string name="newFileRequiredFieldNewBranchName">New branch name cannot be empty if current branch is not selected</string> <string name="strFilter">Filter</string> - <string name="strSwitchBranches">Branches</string> <string name="strMarkdown">Markdown</string> <string name="copyIssueUrl">Copy Issue URL</string> @@ -558,6 +556,8 @@ <string name="bioText">Bio</string> <string name="pin">Pin</string> <string name="unpin">Unpin</string> + <string name="branch">Branch</string> + <string name="branches">Branches</string> <!-- generic copy --> <string name="exploreUsers">Explore users</string> @@ -606,6 +606,7 @@ <string name="selectMergeStrategy">Select merge strategy</string> <string name="mergeNotAllowed">Not allowed to merge [Reason: Does not have enough approvals]</string> <string name="deleteBranch">Delete Branch</string> + <string name="switch_branch">Switch Branch</string> <string name="waitLoadingDownloadFile">Please wait for the file to load to memory</string> <string name="downloadFileSaved">File saved successfully</string> diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c0cf3ca4..38e4dcda 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -3,7 +3,7 @@ <!-- Dark theme - default --> <style name="AppTheme" parent="Theme.Material3.Dark.NoActionBar"> - <item name="android:statusBarColor">@color/colorPrimary</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/colorWhite</item> @@ -49,7 +49,7 @@ <!-- Light theme --> <style name="AppThemeLight" parent="Theme.Material3.Light.NoActionBar"> - <item name="android:statusBarColor">@color/lightThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/lightThemeTextColor</item> @@ -94,7 +94,7 @@ <!-- Retro theme --> <style name="AppThemeRetro" parent="Theme.Material3.Light.NoActionBar"> - <item name="android:statusBarColor">@color/retroThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/retroThemeTextColor</item> @@ -138,7 +138,7 @@ <!-- Pitch black theme --> <style name="AppThemePitchBlack" parent="Theme.Material3.Dark.NoActionBar"> - <item name="android:statusBarColor">@color/pitchBlackThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/pitchBlackThemeTextColor</item> @@ -184,7 +184,7 @@ <!-- Codeberg dark theme --> <style name="AppThemeCodebergDark" parent="Theme.Material3.Dark.NoActionBar"> - <item name="android:statusBarColor">@color/codebergDarkThemeBackground</item> + <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:typeface">monospace</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:textColorSecondary">@color/codebergDarkThemeTextColor</item> diff --git a/build.gradle b/build.gradle index 0174c32a..eb73cf37 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.7.2' + classpath 'com.android.tools.build:gradle:8.7.3' } }