diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md index 23953fb2..5c64a618 100644 --- a/.gitea/pull_request_template.md +++ b/.gitea/pull_request_template.md @@ -6,6 +6,6 @@ - [ ] I carefully read the [contribution guidelines](https://codeberg.org/gitnex/GitNex/wiki/Contributing). -- [ ] I'm following the code standards as defined [here](https://codeberg.org/gitnex/GitNex/wiki/Code-Standards). +- [ ] I carefully read the AI usage [here](https://codeberg.org/gitnex/GitNex/wiki/Submissions-via-AI). - [ ] By submitting this pull request, I permit GitNex to license my work under the [GNU General Public License v3](https://codeberg.org/GitNex/GitNex/src/branch/main/LICENSE). \ No newline at end of file diff --git a/README.md b/README.md index 452bd39a..1de1980f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ Licensed under the GPLv3 License. Please refer to the LICENSE file for the full [Get it on F-Droid](https://f-droid.org/en/packages/org.mian.gitnex/) [Get it on Google Play](https://play.google.com/store/apps/details?id=org.mian.gitnex.pro) [Download builds and releases](https://cloud.swatian.com/s/WS4k3seXnmfQppo) -[Get it on OpenAPK](https://www.openapk.net/gitnex-for-forgejo-and-gitea/org.mian.gitnex/) [Get it on IzzyOnDroid](https://apt.izzysoft.de/fdroid/index/apk/org.mian.gitnex) ## Note About Forgejo and Gitea Version @@ -97,26 +96,13 @@ GitNex supports self-signed certificates. You can read more [here](https://codeb Thank you to all the open source libraries, contributors, and donors who make GitNex possible. -#### Open Source Libraries +#### Libraries -- [square/retrofit](https://github.com/square/retrofit) -- [google/gson](https://github.com/google/gson) -- [square/okhttp](https://github.com/square/okhttp) -- [bumptech/glide](https://github.com/bumptech/glide) -- [noties/Markwon](https://github.com/noties/Markwon) -- [vdurmont/emoji-java](https://github.com/vdurmont/emoji-java) -- [Baseflow/PhotoView](https://github.com/Baseflow/PhotoView) -- [apache/commons](https://github.com/apache/commons-io) -- [ge0rg/MemorizingTrustManager](https://github.com/ge0rg/MemorizingTrustManager) -- [mikaelhg/urlbuilder](https://github.com/mikaelhg/urlbuilder) -- [ACRA/acra](https://github.com/ACRA/acra) -- [chrisvest/stormpot](https://github.com/chrisvest/stormpot) -- [AmrDeveloper/CodeView](https://github.com/AmrDeveloper/CodeView) +Check out the [libraries file](https://codeberg.org/gitnex/GitNex/src/branch/main/gradle/libs.versions.toml) for a complete list of libraries used by GitNex. #### Icon Sets - [lucide-icons/lucide](https://github.com/lucide-icons/lucide) -- [primer/octicons](https://github.com/primer/octicons) - [google/material-design-icons](https://github.com/google/material-design-icons) - [tabler/tabler-icons](https://github.com/tabler/tabler-icons) @@ -126,6 +112,5 @@ Follow on social media: - [@mmarif@mastodon.social](https://mastodon.social/@mmarif) - [mmarif.bsky.social](https://bsky.app/profile/mmarif.bsky.social) -- [X profile](https://x.com/mmarif08) *All trademarks and logos are the properties of their respective owners.* \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index f0abb824..c6a137cf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,6 +47,7 @@ android { release { minifyEnabled false + //noinspection NotShrinkingResources shrinkResources = false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } @@ -98,18 +99,14 @@ dependencies { implementation libs.androidx.material implementation libs.androidx.compose.material3 implementation libs.androidx.compose.material3.window - implementation libs.androidx.viewpager2 implementation libs.androidx.constraintlayout - implementation libs.androidx.legacy.support - implementation libs.androidx.navigation.fragment - implementation libs.androidx.navigation.ui implementation libs.androidx.lifecycle.viewmodel implementation libs.androidx.room.runtime annotationProcessor libs.androidx.room.compiler implementation libs.androidx.work implementation libs.androidx.biometric implementation libs.androidx.browser - implementation libs.androidx.flexbox + implementation libs.swipe.refresh // Testing testImplementation libs.junit @@ -125,11 +122,7 @@ dependencies { implementation libs.gson // Utils - implementation libs.androidsvg - implementation libs.android.gif.drawable - implementation libs.guava implementation libs.commons.io - implementation libs.commons.lang3 implementation libs.photoview implementation libs.urlbuilder implementation libs.stormpot diff --git a/app/src/main/java/org/mian/gitnex/activities/AccountSettingsActivity.java b/app/src/main/java/org/mian/gitnex/activities/AccountSettingsActivity.java index ffcdb488..f988d39d 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AccountSettingsActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AccountSettingsActivity.java @@ -56,7 +56,6 @@ public class AccountSettingsActivity extends BaseActivity { private void setupDockListeners() { prepareNavButton(binding.btnNavEmails); prepareNavButton(binding.btnNavSshKeys); - prepareNavButton(binding.btnBack); binding.btnBack.setOnClickListener(v -> finish()); diff --git a/app/src/main/java/org/mian/gitnex/activities/AdministrationActivity.java b/app/src/main/java/org/mian/gitnex/activities/AdministrationActivity.java index 1f809a76..2d086f64 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AdministrationActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AdministrationActivity.java @@ -14,7 +14,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.ArrayList; import java.util.Locale; -import org.apache.commons.lang3.StringUtils; import org.gitnex.tea4j.v2.models.Cron; import org.mian.gitnex.R; import org.mian.gitnex.adapters.AdminCronTasksAdapter; @@ -176,8 +175,9 @@ public class AdministrationActivity extends BaseActivity { lastRunContent.setText(lastRun); execTimeContent.setText(String.valueOf(task.getExecTimes())); + String name = task.getName().replace("_", " "); new MaterialAlertDialogBuilder(this) - .setTitle(StringUtils.capitalize(task.getName().replace("_", " "))) + .setTitle(name.substring(0, 1).toUpperCase() + name.substring(1)) .setView(view) .setPositiveButton(R.string.close, null) .show(); 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 b52c7a07..23058276 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateNoteActivity.java @@ -36,7 +36,7 @@ public class CreateNoteActivity extends BaseActivity { binding = ActivityCreateNoteBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - UIHelper.applyEdgeToEdge(this, binding.dockedToolbar, null, null, null); + UIHelper.applyEdgeToEdge(this, binding.dockedToolbar, binding.scrollView, null, null); notesApi = BaseApi.getInstance(ctx, NotesApi.class); action = diff --git a/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java b/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java index 1721c532..200b70e8 100644 --- a/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java @@ -11,7 +11,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang3.StringUtils; import org.gitnex.tea4j.v2.models.ContentsResponse; import org.gitnex.tea4j.v2.models.Organization; import org.gitnex.tea4j.v2.models.PullRequest; @@ -232,7 +231,7 @@ public class DeepLinksActivity extends BaseActivity { } private void handleIssues(String owner, String repo, String last) { - if (last != null && !last.contains("issues") && StringUtils.isNumeric(last)) { + if (last != null && !last.contains("issues") && last.matches("\\d+")) { issueIntent.putExtra("issueNumber", last); issueIntent.putExtra("openedFromLink", "true"); @@ -261,7 +260,7 @@ public class DeepLinksActivity extends BaseActivity { String repo = segments.get(1); String last = segments.get(segments.size() - 1); - if (last != null && !last.contains("pulls") && StringUtils.isNumeric(last)) { + if (last != null && !last.contains("pulls") && last.matches("\\d+")) { delayedTask( () -> { String[] urlSplitted = data.toString().split("#"); diff --git a/app/src/main/java/org/mian/gitnex/activities/ExploreActivity.java b/app/src/main/java/org/mian/gitnex/activities/ExploreActivity.java index 158ea0fa..d0d5ec4e 100644 --- a/app/src/main/java/org/mian/gitnex/activities/ExploreActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/ExploreActivity.java @@ -87,7 +87,6 @@ public class ExploreActivity extends BaseActivity { prepareNavButton(binding.btnNavIssues); prepareNavButton(binding.btnNavOrganizations); prepareNavButton(binding.btnNavUsers); - prepareNavButton(binding.btnBack); binding.btnBack.setOnClickListener(v -> finish()); 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 4c1a7713..ae4494fa 100644 --- a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java @@ -80,7 +80,6 @@ import org.mian.gitnex.viewmodels.IssueActionsViewModel; import org.mian.gitnex.viewmodels.IssueDetailViewModel; import org.mian.gitnex.viewmodels.ReactionsViewModel; import org.mian.gitnex.viewmodels.TimelineViewModel; -import org.mian.gitnex.views.reactions.EmojiPickerPopup; import org.mian.gitnex.views.reactions.ReactionUsersBottomSheet; import org.mian.gitnex.views.reactions.ReactionsManager; import retrofit2.Call; @@ -188,6 +187,7 @@ public class IssueDetailActivity extends BaseActivity setupTimeline(); observeTimelineViewModel(); + observeCombinedLoading(); } private void hideAllContent() { @@ -588,7 +588,7 @@ public class IssueDetailActivity extends BaseActivity binding.commentReply.etQuickComment.setText(""); binding.commentReply.etQuickComment.setHint(R.string.commentButtonText); binding.commentReply.btnQuickSend.setIconResource(R.drawable.ic_send); - binding.commentReply.btnExpandEditor.setVisibility(View.VISIBLE); + // binding.commentReply.btnExpandEditor.setVisibility(View.VISIBLE); editingCommentId = -1; isEditing = false; } @@ -622,16 +622,13 @@ public class IssueDetailActivity extends BaseActivity } } - @Override - public void onCommentAddReactionClick( - TimelineItem comment, View anchor) { - showCommentEmojiPicker(comment, anchor); - } - @Override public void onCommentReactionLongClick( - TimelineItem comment, String content, List users) { - ReactionUsersBottomSheet.newInstance(content, users) + TimelineItem comment, + String content, + String emoji, + List users) { + ReactionUsersBottomSheet.newInstance(emoji, users) .show(getSupportFragmentManager(), "REACTION_USERS"); } @@ -769,8 +766,6 @@ public class IssueDetailActivity extends BaseActivity } }); - timelineViewModel.getIsLoading().observe(this, loading -> {}); - timelineViewModel .getIsRefreshing() .observe( @@ -833,6 +828,32 @@ public class IssueDetailActivity extends BaseActivity }); } + private void observeCombinedLoading() { + viewModel + .getIsLoading() + .observe( + this, + loading -> { + if (loading != null && loading) { + binding.expressiveLoader.setVisibility(View.VISIBLE); + } + }); + + timelineViewModel + .getIsLoading() + .observe( + this, + isTimelineLoading -> { + if (isTimelineLoading != null && !isTimelineLoading) { + Boolean isIssueLoading = viewModel.getIsLoading().getValue(); + if (isIssueLoading == null || !isIssueLoading) { + binding.expressiveLoader.setVisibility(View.GONE); + binding.pullToRefresh.setRefreshing(false); + } + } + }); + } + private void fetchTimeline() { if (owner != null && repo != null && issueNumber > 0) { timelineViewModel.fetchTimeline(this, 1, resultLimit, true); @@ -851,48 +872,6 @@ public class IssueDetailActivity extends BaseActivity binding.timelineSection.getRoot().setVisibility(hasItems ? View.VISIBLE : View.GONE); } - private void showCommentEmojiPicker(TimelineItem comment, View anchor) { - List allowed = reactionsViewModel.getAllowedReactions().getValue(); - - if (allowed != null && !allowed.isEmpty()) { - EmojiPickerPopup popup = new EmojiPickerPopup(this, allowed); - popup.setOnEmojiSelectedListener( - content -> { - timelineViewModel.addCommentReaction( - IssueDetailActivity.this, comment.getId(), content); - }); - popup.show(anchor); - } else { - reactionsViewModel.fetchReactionSettings(this); - reactionsViewModel - .getAllowedReactions() - .observe( - this, - new androidx.lifecycle.Observer<>() { - @Override - public void onChanged(List allowedList) { - if (allowedList != null && !allowedList.isEmpty()) { - reactionsViewModel - .getAllowedReactions() - .removeObserver(this); - - EmojiPickerPopup popup = - new EmojiPickerPopup( - IssueDetailActivity.this, allowedList); - popup.setOnEmojiSelectedListener( - content -> { - timelineViewModel.addCommentReaction( - IssueDetailActivity.this, - comment.getId(), - content); - }); - popup.show(anchor); - } - } - }); - } - } - private void showCommentMenu(TimelineItem comment) { this.currentCommentForMenu = comment; String currentUser = getAccount().getAccount().getUserName(); @@ -962,19 +941,6 @@ public class IssueDetailActivity extends BaseActivity } private void observeViewModel() { - viewModel - .getIsLoading() - .observe( - this, - loading -> { - if (loading) { - binding.expressiveLoader.setVisibility(View.VISIBLE); - } else { - binding.expressiveLoader.setVisibility(View.GONE); - binding.pullToRefresh.setRefreshing(false); - } - }); - viewModel .getIssueData() .observe( 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 b71d4824..27ed1392 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -12,6 +12,7 @@ import androidx.annotation.NonNull; import androidx.core.text.HtmlCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.google.android.material.badge.BadgeDrawable; @@ -62,12 +63,12 @@ public class MainActivity extends BaseActivity private TinyDB tinyDB; public static boolean reloadRepos; public static boolean closeActivity; - private final Fragment homeFrag = new HomeDashboardFragment(); - private final Fragment repoFrag = new RepositoriesFragment(); - private final Fragment notifyFrag = new NotificationsFragment(); - private Fragment activeFragment = homeFrag; + private Fragment homeFrag; + private Fragment repoFrag; + private Fragment notifyFrag; + private Fragment activeFragment; private String currentActiveTab = TAB_HOME; - private final FragmentManager fm = getSupportFragmentManager(); + private FragmentManager fm; private View detachedDivider; private View detachedAddBtn; private View detachedSearchBtn; @@ -108,6 +109,8 @@ public class MainActivity extends BaseActivity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + fm = getSupportFragmentManager(); + binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); tinyDB = TinyDB.getInstance(this); @@ -119,6 +122,10 @@ public class MainActivity extends BaseActivity detachedSearchBtn = binding.btnDockSearch; detachedSortBtn = binding.btnDockSort; + homeFrag = fm.findFragmentByTag(TAB_HOME); + repoFrag = fm.findFragmentByTag(TAB_REPOS); + notifyFrag = fm.findFragmentByTag(TAB_NOTIFICATIONS); + if (savedInstanceState != null) { currentActiveTab = savedInstanceState.getString(STATE_ACTIVE_TAB, TAB_HOME); } @@ -153,14 +160,28 @@ public class MainActivity extends BaseActivity } private void setupFragments() { - fm.beginTransaction() - .add(R.id.nav_host_fragment, notifyFrag, TAB_NOTIFICATIONS) - .hide(notifyFrag) - .add(R.id.nav_host_fragment, repoFrag, TAB_REPOS) - .hide(repoFrag) - .add(R.id.nav_host_fragment, homeFrag, TAB_HOME) - .hide(homeFrag) - .commitNow(); + FragmentTransaction ft = fm.beginTransaction(); + + if (homeFrag == null) { + homeFrag = new HomeDashboardFragment(); + ft.add(R.id.nav_host_fragment, homeFrag, TAB_HOME); + } + if (repoFrag == null) { + repoFrag = new RepositoriesFragment(); + ft.add(R.id.nav_host_fragment, repoFrag, TAB_REPOS); + ft.hide(repoFrag); + } + if (notifyFrag == null) { + notifyFrag = new NotificationsFragment(); + ft.add(R.id.nav_host_fragment, notifyFrag, TAB_NOTIFICATIONS); + ft.hide(notifyFrag); + } + + ft.commitNow(); + + if (activeFragment == null) { + activeFragment = homeFrag; + } } @Override diff --git a/app/src/main/java/org/mian/gitnex/activities/PullRequestDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/PullRequestDetailActivity.java index 34833b51..4bb22ffe 100644 --- a/app/src/main/java/org/mian/gitnex/activities/PullRequestDetailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/PullRequestDetailActivity.java @@ -85,7 +85,6 @@ import org.mian.gitnex.viewmodels.IssueActionsViewModel; import org.mian.gitnex.viewmodels.PullRequestDetailViewModel; import org.mian.gitnex.viewmodels.ReactionsViewModel; import org.mian.gitnex.viewmodels.TimelineViewModel; -import org.mian.gitnex.views.reactions.EmojiPickerPopup; import org.mian.gitnex.views.reactions.ReactionUsersBottomSheet; import org.mian.gitnex.views.reactions.ReactionsManager; import retrofit2.Call; @@ -193,6 +192,7 @@ public class PullRequestDetailActivity extends BaseActivity setupTimeline(); observeTimelineViewModel(); + observeCombinedLoading(); } private boolean isDraftOrWip(PullRequest pr) { @@ -529,7 +529,7 @@ public class PullRequestDetailActivity extends BaseActivity binding.commentReply.etQuickComment.setText(""); binding.commentReply.etQuickComment.setHint(R.string.commentButtonText); binding.commentReply.btnQuickSend.setIconResource(R.drawable.ic_send); - binding.commentReply.btnExpandEditor.setVisibility(View.VISIBLE); + // binding.commentReply.btnExpandEditor.setVisibility(View.VISIBLE); editingCommentId = -1; isEditing = false; } @@ -567,16 +567,13 @@ public class PullRequestDetailActivity extends BaseActivity } } - @Override - public void onCommentAddReactionClick( - TimelineItem comment, View anchor) { - showCommentEmojiPicker(comment, anchor); - } - @Override public void onCommentReactionLongClick( - TimelineItem comment, String content, List users) { - ReactionUsersBottomSheet.newInstance(content, users) + TimelineItem comment, + String content, + String emoji, + List users) { + ReactionUsersBottomSheet.newInstance(emoji, users) .show(getSupportFragmentManager(), "REACTION_USERS"); } @@ -716,8 +713,6 @@ public class PullRequestDetailActivity extends BaseActivity } }); - timelineViewModel.getIsLoading().observe(this, loading -> {}); - timelineViewModel .getIsRefreshing() .observe( @@ -780,6 +775,32 @@ public class PullRequestDetailActivity extends BaseActivity }); } + private void observeCombinedLoading() { + viewModel + .getIsLoading() + .observe( + this, + loading -> { + if (loading != null && loading) { + binding.expressiveLoader.setVisibility(View.VISIBLE); + } + }); + + timelineViewModel + .getIsLoading() + .observe( + this, + isTimelineLoading -> { + if (isTimelineLoading != null && !isTimelineLoading) { + Boolean isIssueLoading = viewModel.getIsLoading().getValue(); + if (isIssueLoading == null || !isIssueLoading) { + binding.expressiveLoader.setVisibility(View.GONE); + binding.pullToRefresh.setRefreshing(false); + } + } + }); + } + private void fetchTimeline() { if (owner != null && repo != null && prNumber > 0) { timelineViewModel.fetchTimeline(this, 1, resultLimit, true); @@ -798,49 +819,6 @@ public class PullRequestDetailActivity extends BaseActivity binding.timelineSection.getRoot().setVisibility(hasItems ? View.VISIBLE : View.GONE); } - private void showCommentEmojiPicker(TimelineItem comment, View anchor) { - List allowed = reactionsViewModel.getAllowedReactions().getValue(); - - if (allowed != null && !allowed.isEmpty()) { - EmojiPickerPopup popup = new EmojiPickerPopup(this, allowed); - popup.setOnEmojiSelectedListener( - content -> { - timelineViewModel.addCommentReaction( - PullRequestDetailActivity.this, comment.getId(), content); - }); - popup.show(anchor); - } else { - reactionsViewModel.fetchReactionSettings(this); - reactionsViewModel - .getAllowedReactions() - .observe( - this, - new androidx.lifecycle.Observer<>() { - @Override - public void onChanged(List allowedList) { - if (allowedList != null && !allowedList.isEmpty()) { - reactionsViewModel - .getAllowedReactions() - .removeObserver(this); - - EmojiPickerPopup popup = - new EmojiPickerPopup( - PullRequestDetailActivity.this, - allowedList); - popup.setOnEmojiSelectedListener( - content -> { - timelineViewModel.addCommentReaction( - PullRequestDetailActivity.this, - comment.getId(), - content); - }); - popup.show(anchor); - } - } - }); - } - } - private void observeIssueActions() { issueActionsViewModel .getActionMessage() @@ -1034,19 +1012,6 @@ public class PullRequestDetailActivity extends BaseActivity } private void observeViewModel() { - viewModel - .getIsLoading() - .observe( - this, - loading -> { - if (loading) { - binding.expressiveLoader.setVisibility(View.VISIBLE); - } else { - binding.expressiveLoader.setVisibility(View.GONE); - binding.pullToRefresh.setRefreshing(false); - } - }); - viewModel .getPrData() .observe( diff --git a/app/src/main/java/org/mian/gitnex/activities/RepositoryActionsActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepositoryActionsActivity.java index 35cf1f1a..58a85fbe 100644 --- a/app/src/main/java/org/mian/gitnex/activities/RepositoryActionsActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/RepositoryActionsActivity.java @@ -136,7 +136,6 @@ public class RepositoryActionsActivity extends BaseActivity { prepareNavButton(binding.btnNavRunners); prepareNavButton(binding.btnNavWorkflows); prepareNavButton(binding.btnNavVariables); - prepareNavButton(binding.btnBack); binding.btnBack.setOnClickListener(v -> finish()); diff --git a/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java index d700cd36..66e74ce8 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java @@ -6,7 +6,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; -import org.apache.commons.lang3.StringUtils; import org.gitnex.tea4j.v2.models.Cron; import org.mian.gitnex.databinding.ListAdminCronTasksBinding; @@ -44,12 +43,14 @@ public class AdminCronTasksAdapter extends RecyclerView.Adapter listener.onRunTask(task.getName())); holder.binding.getRoot().setOnClickListener(v -> listener.onShowDetails(task)); diff --git a/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java index 78fee034..23e76e10 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java @@ -2,11 +2,17 @@ package org.mian.gitnex.adapters; import android.annotation.SuppressLint; import android.content.Context; +import android.graphics.Color; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Filter; import android.widget.Filterable; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; import androidx.recyclerview.widget.RecyclerView; @@ -25,18 +31,20 @@ import org.mian.gitnex.helpers.Toasty; /** * @author mmarif */ -public class FilesAdapter extends RecyclerView.Adapter +public class FilesAdapter extends RecyclerView.Adapter implements Filterable { + private static final int TYPE_BREADCRUMB = 0; + private static final int TYPE_FILE = 1; + private final List originalFiles = new ArrayList<>(); private final List alteredFiles = new ArrayList<>(); private final Context context; private final FilesAdapterListener filesListener; - public FilesAdapter(Context ctx, FilesAdapterListener filesListener) { - this.context = ctx; - this.filesListener = filesListener; - } + private String repoName; + private String[] pathSegments = new String[0]; + private PathNavigationListener pathNavigationListener; public interface FilesAdapterListener { void onClickFile(RepoGetContentsList file); @@ -46,6 +54,29 @@ public class FilesAdapter extends RecyclerView.Adapter 0 && repoName != null; + } + @SuppressLint("NotifyDataSetChanged") public void setFiles(List newList) { this.originalFiles.clear(); @@ -55,22 +86,43 @@ public class FilesAdapter extends RecyclerView.Adapter 0) sb.append("/"); + sb.append(pathSegments[i]); + } + return sb.toString(); + } + } + + public class FilesViewHolder extends RecyclerView.ViewHolder { private final ListFilesBinding binding; private FilesViewHolder(ListFilesBinding binding) { @@ -166,7 +284,6 @@ public class FilesAdapter extends RecyclerView.Adapter Toasty.show( diff --git a/app/src/main/java/org/mian/gitnex/adapters/NotesAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/NotesAdapter.java index bc7c266f..f34ac2b6 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/NotesAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/NotesAdapter.java @@ -15,7 +15,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; -import org.apache.commons.lang3.StringUtils; import org.mian.gitnex.R; import org.mian.gitnex.activities.CreateNoteActivity; import org.mian.gitnex.database.api.BaseApi; @@ -96,11 +95,14 @@ public class NotesAdapter extends RecyclerView.Adapter 140 + ? content.substring(0, 140) + : content)), binding.noteContent); long timestamp = (note.getModified() != null) ? note.getModified() : note.getDatetime(); diff --git a/app/src/main/java/org/mian/gitnex/adapters/TimelineAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/TimelineAdapter.java index f1b3003d..3f97e7ce 100644 --- a/app/src/main/java/org/mian/gitnex/adapters/TimelineAdapter.java +++ b/app/src/main/java/org/mian/gitnex/adapters/TimelineAdapter.java @@ -50,8 +50,6 @@ public class TimelineAdapter extends RecyclerView.Adapter items = new ArrayList<>(); @@ -67,9 +65,8 @@ public class TimelineAdapter extends RecyclerView.Adapter users); + void onCommentReactionLongClick( + TimelineItem comment, String content, String displayEmoji, List users); void onAttachmentClick(Attachment attachment); @@ -85,8 +82,6 @@ public class TimelineAdapter extends RecyclerView.Adapter users) { if (clickListener != null) { clickListener.onCommentReactionLongClick( - comment, content, users); + comment, + content, + reactionsManager.getDisplayEmoji(content), + users); } } diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateActionVariable.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateActionVariable.java index e9a05a2b..cd576945 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateActionVariable.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateActionVariable.java @@ -3,6 +3,7 @@ package org.mian.gitnex.fragments; import android.app.Dialog; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; @@ -61,6 +62,30 @@ public class BottomSheetCreateActionVariable extends BottomSheetDialogFragment { viewModel.clearVariableCreated(); viewModel.clearCreateVariableError(); + binding.variableValue.setOnTouchListener( + (v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + v.getParent().requestDisallowInterceptTouchEvent(true); + } else if (event.getAction() == MotionEvent.ACTION_UP + || event.getAction() == MotionEvent.ACTION_CANCEL) { + v.getParent().requestDisallowInterceptTouchEvent(false); + v.performClick(); + } + return false; + }); + + binding.variableDescription.setOnTouchListener( + (v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + v.getParent().requestDisallowInterceptTouchEvent(true); + } else if (event.getAction() == MotionEvent.ACTION_UP + || event.getAction() == MotionEvent.ACTION_CANCEL) { + v.getParent().requestDisallowInterceptTouchEvent(false); + v.performClick(); + } + return false; + }); + setupListeners(); observeViewModel(); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateRepo.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateRepo.java index 173d3b88..da8f055f 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateRepo.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetCreateRepo.java @@ -3,6 +3,7 @@ package org.mian.gitnex.fragments; import android.app.Dialog; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; @@ -74,6 +75,19 @@ public class BottomSheetCreateRepo extends BottomSheetDialogFragment { private void setupListeners() { binding.btnClose.setOnClickListener(v -> dismiss()); + + binding.newRepoDescription.setOnTouchListener( + (v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + v.getParent().requestDisallowInterceptTouchEvent(true); + } else if (event.getAction() == MotionEvent.ACTION_UP + || event.getAction() == MotionEvent.ACTION_CANCEL) { + v.getParent().requestDisallowInterceptTouchEvent(false); + v.performClick(); + } + return false; + }); + binding.btnCreate.setOnClickListener( v -> { String name = diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAboutFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAboutFragment.java index cfd5a3c6..6b9067d0 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAboutFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAboutFragment.java @@ -22,12 +22,6 @@ public class BottomSheetSettingsAboutFragment extends BottomSheetDialogFragment private BottomsheetSettingsAboutBinding binding; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAppearanceFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAppearanceFragment.java index 3e2fd8b3..c9f31fb4 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAppearanceFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsAppearanceFragment.java @@ -35,12 +35,6 @@ public class BottomSheetSettingsAppearanceFragment extends BottomSheetDialogFrag private static int langSelectedChoice; private LinkedHashMap lang; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsBackupRestoreFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsBackupRestoreFragment.java index 6ba590ba..865e9c0f 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsBackupRestoreFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsBackupRestoreFragment.java @@ -42,12 +42,6 @@ public class BottomSheetSettingsBackupRestoreFragment extends BottomSheetDialogF private final String DATABASE_NAME = "gitnex"; private String BACKUP_DATABASE_NAME; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsCodeEditorFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsCodeEditorFragment.java index d3cdf776..825dcb55 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsCodeEditorFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsCodeEditorFragment.java @@ -27,12 +27,6 @@ public class BottomSheetSettingsCodeEditorFragment extends BottomSheetDialogFrag private static int indentationTabsSelectedChoice; private static String[] indentationList; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsGeneralFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsGeneralFragment.java index de03e855..58d44002 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsGeneralFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsGeneralFragment.java @@ -25,12 +25,6 @@ public class BottomSheetSettingsGeneralFragment extends BottomSheetDialogFragmen private static int homeScreenSelectedChoice; private static int defaultLinkHandlerScreenSelectedChoice; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsNotificationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsNotificationsFragment.java index 3b6ab3e6..a1e7421b 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsNotificationsFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsNotificationsFragment.java @@ -25,12 +25,6 @@ public class BottomSheetSettingsNotificationsFragment extends BottomSheetDialogF private BottomsheetSettingsNotificationsBinding binding; private static int pollingDelayListSelectedChoice; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsSecurityFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsSecurityFragment.java index 4905e5f9..98215a5e 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsSecurityFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSettingsSecurityFragment.java @@ -37,12 +37,6 @@ public class BottomSheetSettingsSecurityFragment extends BottomSheetDialogFragme private static int cacheSizeImagesSelectedChoice; private static int[] requestTimeoutDataList; - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.Custom_BottomSheet); - } - @Nullable @Override public View onCreateView( @NonNull LayoutInflater inflater, 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 c96c4181..7c39ec13 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java @@ -288,6 +288,25 @@ public class FilesFragment extends Fragment getViewLifecycleOwner(), list -> { binding.pullToRefresh.setRefreshing(false); + filesAdapter.setPathData( + repository.getName(), + path.segments(), + new FilesAdapter.PathNavigationListener() { + @Override + public void onNavigateToPath(String clickedPath) { + path.clear(); + for (String s : clickedPath.split("/")) { + path.addWithoutEncoding(s); + } + refresh(); + } + + @Override + public void onNavigateToRoot() { + path.clear(); + refresh(); + } + }); filesAdapter.setFiles(list); boolean isEmpty = list.isEmpty(); diff --git a/app/src/main/java/org/mian/gitnex/fragments/LabelsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/LabelsFragment.java index 50927cf5..317c1eaf 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/LabelsFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/LabelsFragment.java @@ -98,7 +98,7 @@ public class LabelsFragment extends Fragment implements RepoDetailActivity.RepoH items.add( new RepositoryMenuItemModel( "LABEL_ADD_NEW", - R.string.addButton, + R.string.pageTitleCreateLabel, R.drawable.ic_add, R.attr.colorPrimaryContainer, R.attr.colorOnPrimaryContainer)); diff --git a/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java index 871cd032..716d1493 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java @@ -104,7 +104,7 @@ public class MilestonesFragment extends Fragment implements RepoDetailActivity.R items.add( new RepositoryMenuItemModel( "MILESTONE_ADD_NEW", - R.string.addButton, + R.string.pageTitleCreateMilestone, R.drawable.ic_add, R.attr.colorPrimaryContainer, R.attr.colorOnPrimaryContainer)); diff --git a/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java index 950f78d1..15ac0db6 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java @@ -21,6 +21,7 @@ import java.util.List; import org.gitnex.tea4j.v2.models.NotificationThread; import org.mian.gitnex.R; import org.mian.gitnex.activities.IssueDetailActivity; +import org.mian.gitnex.activities.PullRequestDetailActivity; import org.mian.gitnex.activities.RepoDetailActivity; import org.mian.gitnex.adapters.NotificationsAdapter; import org.mian.gitnex.databinding.FragmentNotificationsBinding; @@ -28,7 +29,6 @@ import org.mian.gitnex.helpers.Constants; import org.mian.gitnex.helpers.EndlessRecyclerViewScrollListener; import org.mian.gitnex.helpers.Toasty; import org.mian.gitnex.helpers.UIHelper; -import org.mian.gitnex.helpers.contexts.IssueContext; import org.mian.gitnex.helpers.contexts.RepositoryContext; import org.mian.gitnex.viewmodels.NotificationsViewModel; @@ -281,11 +281,25 @@ public class NotificationsFragment extends Fragment thread.getRepository().getName(), context); repo.saveToDB(context); + String url = thread.getSubject().getUrl(); int id = Integer.parseInt(url.substring(url.lastIndexOf("/") + 1)); - Intent intent = - new IssueContext(repo, id, thread.getSubject().getType()) - .getIntent(context, IssueDetailActivity.class); + + String issueType = thread.getSubject().getType(); + + Intent intent; + if ("Pull".equalsIgnoreCase(issueType)) { + intent = new Intent(context, PullRequestDetailActivity.class); + intent.putExtra("owner", thread.getRepository().getOwner().getLogin()); + intent.putExtra("repo", thread.getRepository().getName()); + intent.putExtra("prNumber", id); + } else { + intent = new Intent(context, IssueDetailActivity.class); + intent.putExtra("owner", thread.getRepository().getOwner().getLogin()); + intent.putExtra("repo", thread.getRepository().getName()); + intent.putExtra("issueNumber", id); + intent.putExtra("fetchIssueObject", true); + } intent.putExtra("openedFromLink", "true"); startActivity(intent); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/OrganizationTeamsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/OrganizationTeamsFragment.java index 616bbc51..82563a1c 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/OrganizationTeamsFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/OrganizationTeamsFragment.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; @@ -235,6 +236,18 @@ public class OrganizationTeamsFragment extends Fragment AppUtil.applySheetStyle(bottomSheetDialog, false); + sheetBinding.teamDesc.setOnTouchListener( + (v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + v.getParent().requestDisallowInterceptTouchEvent(true); + } else if (event.getAction() == MotionEvent.ACTION_UP + || event.getAction() == MotionEvent.ACTION_CANCEL) { + v.getParent().requestDisallowInterceptTouchEvent(false); + v.performClick(); + } + return false; + }); + sheetBinding.btnCreate.setOnClickListener( v -> { if (validateInput(sheetBinding)) { diff --git a/app/src/main/java/org/mian/gitnex/fragments/WikiFragment.java b/app/src/main/java/org/mian/gitnex/fragments/WikiFragment.java index 915a303d..ae66186b 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/WikiFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/WikiFragment.java @@ -92,7 +92,7 @@ public class WikiFragment extends Fragment implements RepoDetailActivity.RepoHub items.add( new RepositoryMenuItemModel( "WIKI_ADD_NEW", - R.string.addButton, + R.string.createWikiPage, R.drawable.ic_add, R.attr.colorPrimaryContainer, R.attr.colorOnPrimaryContainer)); diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/TimelineViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/TimelineViewModel.java index 5dfd493f..a8c979c4 100644 --- a/app/src/main/java/org/mian/gitnex/viewmodels/TimelineViewModel.java +++ b/app/src/main/java/org/mian/gitnex/viewmodels/TimelineViewModel.java @@ -186,8 +186,6 @@ public class TimelineViewModel extends ViewModel { public void onResponse( @NonNull Call> call, @NonNull Response> response) { - isLoading.setValue(false); - isRefreshing.setValue(false); if (response.isSuccessful() && response.body() != null) { String totalHeader = response.headers().get("x-total-count"); @@ -205,6 +203,8 @@ public class TimelineViewModel extends ViewModel { timeline.setValue(new ArrayList<>()); } isLastPage = true; + isLoading.setValue(false); + isRefreshing.setValue(false); } } @@ -276,6 +276,8 @@ public class TimelineViewModel extends ViewModel { timeline.setValue(currentList); isLastPage = items.size() < 20 || (totalCount != -1 && currentList.size() >= totalCount); + isLoading.setValue(false); + isRefreshing.setValue(false); return; } diff --git a/app/src/main/res/layout/activity_account_settings.xml b/app/src/main/res/layout/activity_account_settings.xml index 44f6e762..11d44769 100644 --- a/app/src/main/res/layout/activity_account_settings.xml +++ b/app/src/main/res/layout/activity_account_settings.xml @@ -21,7 +21,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> diff --git a/app/src/main/res/layout/activity_activities.xml b/app/src/main/res/layout/activity_activities.xml index c43b5f36..3dfcf67a 100644 --- a/app/src/main/res/layout/activity_activities.xml +++ b/app/src/main/res/layout/activity_activities.xml @@ -51,7 +51,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> 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 f4bb69e9..2fddd654 100644 --- a/app/src/main/res/layout/activity_admin_get_users.xml +++ b/app/src/main/res/layout/activity_admin_get_users.xml @@ -51,7 +51,7 @@ android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="@dimen/dimen28dp" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> @@ -118,7 +95,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> diff --git a/app/src/main/res/layout/activity_app_settings.xml b/app/src/main/res/layout/activity_app_settings.xml index a2742f05..9864c98b 100644 --- a/app/src/main/res/layout/activity_app_settings.xml +++ b/app/src/main/res/layout/activity_app_settings.xml @@ -49,7 +49,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> diff --git a/app/src/main/res/layout/activity_commits.xml b/app/src/main/res/layout/activity_commits.xml index 09db9061..0b030263 100644 --- a/app/src/main/res/layout/activity_commits.xml +++ b/app/src/main/res/layout/activity_commits.xml @@ -2,7 +2,6 @@ @@ -50,7 +49,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> @@ -121,7 +105,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:layout_behavior="@string/appbar_scrolling_view_behavior"> + app:icon="@drawable/ic_markdown" /> diff --git a/app/src/main/res/layout/activity_deeplinks.xml b/app/src/main/res/layout/activity_deeplinks.xml index 98301b5a..62e7ac2e 100644 --- a/app/src/main/res/layout/activity_deeplinks.xml +++ b/app/src/main/res/layout/activity_deeplinks.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:paddingTop="@dimen/dimen56dp" android:paddingBottom="@dimen/dimen16dp" - android:background="?attr/materialCardBackgroundColor"> + android:background="?attr/primaryBackgroundColor"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> diff --git a/app/src/main/res/layout/activity_explore.xml b/app/src/main/res/layout/activity_explore.xml index ba95a0c0..c5ed50fc 100644 --- a/app/src/main/res/layout/activity_explore.xml +++ b/app/src/main/res/layout/activity_explore.xml @@ -21,7 +21,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> diff --git a/app/src/main/res/layout/activity_issue_detail.xml b/app/src/main/res/layout/activity_issue_detail.xml index f2553f8d..c2c64aa0 100644 --- a/app/src/main/res/layout/activity_issue_detail.xml +++ b/app/src/main/res/layout/activity_issue_detail.xml @@ -14,7 +14,6 @@ android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/primaryBackgroundColor" android:clipToPadding="false"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_comment" /> + app:icon="@drawable/ic_dotted_menu" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 92689e7b..e3f18589 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -9,11 +9,8 @@ + android:layout_height="match_parent" /> + android:orientation="horizontal"> + android:minWidth="0dp" + android:layout_marginStart="@dimen/dimen4dp" /> diff --git a/app/src/main/res/layout/activity_most_visited_repos.xml b/app/src/main/res/layout/activity_most_visited_repos.xml index 6bf53f8e..c39be1ab 100644 --- a/app/src/main/res/layout/activity_most_visited_repos.xml +++ b/app/src/main/res/layout/activity_most_visited_repos.xml @@ -49,7 +49,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> @@ -114,7 +93,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> @@ -115,7 +94,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> @@ -129,7 +101,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + android:backgroundTint="?attr/colorSurfaceContainerHighest"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_repo" /> @@ -111,38 +101,26 @@ + android:visibility="gone" /> + android:visibility="gone" /> + style="@style/Widget.Material3.Button.IconButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:icon="@drawable/ic_dotted_menu" /> diff --git a/app/src/main/res/layout/activity_org_team_details.xml b/app/src/main/res/layout/activity_org_team_details.xml index 0bd60195..8de4d87d 100644 --- a/app/src/main/res/layout/activity_org_team_details.xml +++ b/app/src/main/res/layout/activity_org_team_details.xml @@ -22,7 +22,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> + android:orientation="horizontal"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_repo" /> + app:icon="@drawable/ic_person" /> + app:icon="@drawable/ic_lock" /> diff --git a/app/src/main/res/layout/activity_organizations.xml b/app/src/main/res/layout/activity_organizations.xml index 25163caf..2b514e38 100644 --- a/app/src/main/res/layout/activity_organizations.xml +++ b/app/src/main/res/layout/activity_organizations.xml @@ -49,7 +49,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> @@ -114,7 +93,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + android:backgroundTint="?attr/colorSurfaceContainerHighest"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_repo" /> @@ -119,14 +108,10 @@ + style="@style/Widget.Material3.Button.IconButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:icon="@drawable/ic_search" /> diff --git a/app/src/main/res/layout/activity_pull_request_details.xml b/app/src/main/res/layout/activity_pull_request_details.xml index c5bf98fb..c7f21f15 100644 --- a/app/src/main/res/layout/activity_pull_request_details.xml +++ b/app/src/main/res/layout/activity_pull_request_details.xml @@ -5,6 +5,15 @@ android:layout_height="match_parent" android:background="?attr/primaryBackgroundColor"> + + - - + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_comment" /> + app:icon="@drawable/ic_dotted_menu" /> diff --git a/app/src/main/res/layout/activity_pull_request_diff.xml b/app/src/main/res/layout/activity_pull_request_diff.xml index a47f5182..4b1d7ffb 100644 --- a/app/src/main/res/layout/activity_pull_request_diff.xml +++ b/app/src/main/res/layout/activity_pull_request_diff.xml @@ -21,7 +21,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> @@ -75,10 +65,8 @@ android:layout_height="wrap_content" android:text="@string/commits" android:textColor="?attr/primaryTextColor" - app:iconTint="?attr/primaryTextColor" app:icon="@drawable/ic_commit" app:backgroundTint="@null" - android:minWidth="0dp" android:layout_marginHorizontal="@dimen/dimen8dp" android:paddingHorizontal="@dimen/dimen12dp" /> @@ -92,18 +80,10 @@ @@ -116,7 +96,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + android:backgroundTint="?attr/colorSurfaceContainerHighest"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_document" /> @@ -143,14 +129,10 @@ + style="@style/Widget.Material3.Button.IconButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:icon="@drawable/ic_dotted_menu" /> diff --git a/app/src/main/res/layout/activity_repo_forks.xml b/app/src/main/res/layout/activity_repo_forks.xml index e7fe2a86..0228948e 100644 --- a/app/src/main/res/layout/activity_repo_forks.xml +++ b/app/src/main/res/layout/activity_repo_forks.xml @@ -48,7 +48,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> @@ -100,7 +84,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> @@ -93,7 +77,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> @@ -129,7 +101,7 @@ android:layout_height="match_parent" android:hint="@string/search" app:navigationIcon="@drawable/ic_arrow_back" - app:backgroundTint="?attr/primaryBackgroundColor"> + app:backgroundTint="?attr/colorSurface"> + app:icon="@drawable/ic_arrow_back" /> + app:icon="@drawable/ic_actions_runner" /> + app:icon="@drawable/ic_actions_workflow" /> + app:icon="@drawable/ic_actions_variable" /> + app:icon="@drawable/ic_add" /> diff --git a/app/src/main/res/layout/activity_repository_settings.xml b/app/src/main/res/layout/activity_repository_settings.xml index 3e7cf410..f198ad8b 100644 --- a/app/src/main/res/layout/activity_repository_settings.xml +++ b/app/src/main/res/layout/activity_repository_settings.xml @@ -61,7 +61,7 @@ app:paddingTopSystemWindowInsets="false" android:layout_gravity="bottom|center_horizontal" app:shapeAppearanceOverlay="@style/ShapeAppearance.RoundedDock" - android:backgroundTint="?attr/colorSurfaceContainerHigh" + android:backgroundTint="?attr/colorSurfaceContainerHighest" app:layout_behavior="com.google.android.material.behavior.HideViewOnScrollBehavior"> + android:layout_marginStart="@dimen/dimen12dp" + android:layout_marginEnd="@dimen/dimen12dp" /> diff --git a/app/src/main/res/layout/activity_unlock.xml b/app/src/main/res/layout/activity_unlock.xml index df6d49ed..b0445384 100644 --- a/app/src/main/res/layout/activity_unlock.xml +++ b/app/src/main/res/layout/activity_unlock.xml @@ -2,6 +2,7 @@ diff --git a/app/src/main/res/layout/bottomsheet_create_file.xml b/app/src/main/res/layout/bottomsheet_create_file.xml index a54cbe02..8261f3df 100644 --- a/app/src/main/res/layout/bottomsheet_create_file.xml +++ b/app/src/main/res/layout/bottomsheet_create_file.xml @@ -133,7 +133,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/dimen224dp" android:gravity="top" - android:scrollbars="vertical" android:paddingTop="@dimen/dimen40dp" android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_create_issue.xml b/app/src/main/res/layout/bottomsheet_create_issue.xml index b3dd8643..2e08794c 100644 --- a/app/src/main/res/layout/bottomsheet_create_issue.xml +++ b/app/src/main/res/layout/bottomsheet_create_issue.xml @@ -120,7 +120,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/dimen224dp" android:gravity="top" - android:scrollbars="vertical" android:paddingTop="@dimen/dimen40dp" android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_create_label.xml b/app/src/main/res/layout/bottomsheet_create_label.xml index 9bb73ea7..366c6c0e 100644 --- a/app/src/main/res/layout/bottomsheet_create_label.xml +++ b/app/src/main/res/layout/bottomsheet_create_label.xml @@ -84,6 +84,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen24dp" android:hint="@string/labelName" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> - + android:layout_height="@dimen/dimen120dp" + android:gravity="top|start" + android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_create_milestone.xml b/app/src/main/res/layout/bottomsheet_create_milestone.xml index bbd5a42a..762e3755 100644 --- a/app/src/main/res/layout/bottomsheet_create_milestone.xml +++ b/app/src/main/res/layout/bottomsheet_create_milestone.xml @@ -66,6 +66,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen8dp" android:hint="@string/title" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> diff --git a/app/src/main/res/layout/bottomsheet_create_organization.xml b/app/src/main/res/layout/bottomsheet_create_organization.xml index a4cf987d..f603b4fa 100644 --- a/app/src/main/res/layout/bottomsheet_create_organization.xml +++ b/app/src/main/res/layout/bottomsheet_create_organization.xml @@ -65,6 +65,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen8dp" android:hint="@string/userUserName" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> + android:layout_height="@dimen/dimen120dp" + android:gravity="top|start" + android:inputType="textMultiLine" /> @@ -147,6 +155,8 @@ android:layout_marginEnd="@dimen/dimen4dp" android:layout_weight="1" android:hint="@string/locationText" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> diff --git a/app/src/main/res/layout/bottomsheet_create_release.xml b/app/src/main/res/layout/bottomsheet_create_release.xml index aca86c49..210bcdd9 100644 --- a/app/src/main/res/layout/bottomsheet_create_release.xml +++ b/app/src/main/res/layout/bottomsheet_create_release.xml @@ -165,7 +165,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/dimen224dp" android:gravity="top" - android:scrollbars="vertical" android:paddingTop="@dimen/dimen40dp" android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_create_repo.xml b/app/src/main/res/layout/bottomsheet_create_repo.xml index e0420da3..a9d11c48 100644 --- a/app/src/main/res/layout/bottomsheet_create_repo.xml +++ b/app/src/main/res/layout/bottomsheet_create_repo.xml @@ -87,6 +87,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen12dp" android:hint="@string/newRepoTintCopy" + app:endIconTint="?attr/iconsColor" app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> @@ -105,6 +106,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen12dp" android:hint="@string/default_branch" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> - + android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_create_repo_action_variable.xml b/app/src/main/res/layout/bottomsheet_create_repo_action_variable.xml index c2def4e3..cee47d8b 100644 --- a/app/src/main/res/layout/bottomsheet_create_repo_action_variable.xml +++ b/app/src/main/res/layout/bottomsheet_create_repo_action_variable.xml @@ -77,6 +77,7 @@ android:layout_marginTop="@dimen/dimen8dp" android:hint="@string/name" app:boxStrokeErrorColor="@color/darkRed" + app:endIconTint="?attr/iconsColor" app:endIconMode="clear_text" app:helperText="@string/variable_name_helper" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> @@ -99,18 +100,17 @@ android:layout_marginTop="@dimen/dimen16dp" android:hint="@string/value" app:boxStrokeErrorColor="@color/darkRed" + app:endIconTint="?attr/iconsColor" app:endIconMode="clear_text" app:helperText="@string/variable_value_helper" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> - + android:inputType="textMultiLine" /> @@ -122,18 +122,17 @@ android:layout_marginTop="@dimen/dimen16dp" android:hint="@string/description" app:boxStrokeErrorColor="@color/darkRed" + app:endIconTint="?attr/iconsColor" app:endIconMode="clear_text" app:helperText="@string/optional" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> - + android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_org_create_team.xml b/app/src/main/res/layout/bottomsheet_org_create_team.xml index 8e990b9b..e0f84233 100644 --- a/app/src/main/res/layout/bottomsheet_org_create_team.xml +++ b/app/src/main/res/layout/bottomsheet_org_create_team.xml @@ -65,6 +65,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen8dp" android:hint="@string/newTeamTitle" + app:endIconTint="?attr/iconsColor" + app:endIconMode="clear_text" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"> - + android:layout_height="@dimen/dimen120dp" + android:gravity="top|start" + android:inputType="textMultiLine" /> diff --git a/app/src/main/res/layout/bottomsheet_proxy_auth.xml b/app/src/main/res/layout/bottomsheet_proxy_auth.xml index b147435f..46f6d06d 100644 --- a/app/src/main/res/layout/bottomsheet_proxy_auth.xml +++ b/app/src/main/res/layout/bottomsheet_proxy_auth.xml @@ -73,8 +73,11 @@ android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dimen16dp" android:hint="@string/proxy_username_hint" + app:endIconMode="clear_text" + app:endIconTint="?attr/iconsColor" app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium" - app:startIconDrawable="@drawable/ic_person"> + app:startIconDrawable="@drawable/ic_person" + app:startIconTint="?attr/iconsColor"> + app:startIconDrawable="@drawable/ic_lock" + app:startIconTint="?attr/iconsColor"> - @@ -56,4 +55,4 @@ - + diff --git a/app/src/main/res/layout/fragment_home_dashboard.xml b/app/src/main/res/layout/fragment_home_dashboard.xml index d0f88717..acd776d9 100644 --- a/app/src/main/res/layout/fragment_home_dashboard.xml +++ b/app/src/main/res/layout/fragment_home_dashboard.xml @@ -4,8 +4,7 @@ android:id="@+id/nestedScrollView" android:layout_width="match_parent" android:layout_height="match_parent" - android:clipToPadding="false" - android:background="?attr/primaryBackgroundColor"> + android:clipToPadding="false"> + android:textStyle="bold" /> diff --git a/app/src/main/res/layout/item_files_breadcrumb.xml b/app/src/main/res/layout/item_files_breadcrumb.xml new file mode 100644 index 00000000..632eb285 --- /dev/null +++ b/app/src/main/res/layout/item_files_breadcrumb.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/layout_repo_readme.xml b/app/src/main/res/layout/layout_repo_readme.xml index e3dd572f..525e8a75 100644 --- a/app/src/main/res/layout/layout_repo_readme.xml +++ b/app/src/main/res/layout/layout_repo_readme.xml @@ -24,7 +24,7 @@ android:gravity="center_vertical" android:paddingHorizontal="@dimen/dimen16dp" android:paddingVertical="@dimen/dimen16dp" - android:background="?attr/colorSurfaceVariant"> + android:background="?attr/colorSurfaceContainerHigh"> diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml deleted file mode 100644 index d6c8c9b3..00000000 --- a/app/src/main/res/navigation/nav_graph.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 97c2bf44..e17c263a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -10,7 +10,7 @@ #41818181 #009486 #ffffff - #1d1d1d + #121212 #3A3A3A #1d1d1d #f2711c @@ -29,7 +29,7 @@ #efd34a #dbb109 #2A322E - #1e2221 + #1C2120 #334CAF50 #FCEDED @@ -42,7 +42,7 @@ #212121 #dbdbdb #D9E1DF - #ffffff + #FFFDFC #fad6d6 #d0f7d9 @@ -55,7 +55,7 @@ #dbdbdb #6200EE #03DAC6 - #ffffff + #FFFDFC #a333c8 #db2828 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3892a0de..5f3e3045 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,6 +38,7 @@ Discover More Apps e.g., main, develop, or a commit SHA e.g., 1.26.1 (Gitea) or 15.0.0 (Forgejo) + Ln %d, Col %d My Repositories Starred Repositories @@ -680,7 +681,6 @@ Please select a branch Create pull request with this branch Tap to select a file - Ln %d, Col %d Could not load image Invalid user Browse and manage all your pull requests with search and filters diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 61d58a4d..109f5e87 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -236,7 +236,7 @@