More UI revamps + some refactors

This commit is contained in:
M M Arif
2022-08-12 20:14:40 +05:00
parent 3364b4738a
commit 91c5bdf7f5
28 changed files with 652 additions and 557 deletions

View File

@@ -16,7 +16,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.gitnex.tea4j.v2.models.InlineResponse2001;
import org.gitnex.tea4j.v2.models.User;
import org.mian.gitnex.adapters.UserSearchForTeamMemberAdapter;
import org.mian.gitnex.adapters.OrganizationAddUserToTeamMemberAdapter;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityAddNewTeamMemberBinding;
import java.util.ArrayList;
@@ -38,7 +38,7 @@ public class AddNewTeamMemberActivity extends BaseActivity {
private RecyclerView mRecyclerView;
private List<User> dataList;
private UserSearchForTeamMemberAdapter adapter;
private OrganizationAddUserToTeamMemberAdapter adapter;
private long teamId;
@@ -82,7 +82,7 @@ public class AddNewTeamMemberActivity extends BaseActivity {
if(!addNewTeamMember.getText().toString().equals("") && addNewTeamMember.getText().toString().length() > 1) {
adapter = new UserSearchForTeamMemberAdapter(dataList, ctx, Math.toIntExact(teamId), getIntent().getStringExtra("orgName"));
adapter = new OrganizationAddUserToTeamMemberAdapter(dataList, ctx, Math.toIntExact(teamId), getIntent().getStringExtra("orgName"));
loadUserSearchList(addNewTeamMember.getText().toString());
}
}

View File

@@ -7,7 +7,7 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import org.gitnex.tea4j.v2.models.Repository;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.TeamRepositoriesAdapter;
import org.mian.gitnex.adapters.OrganizationTeamRepositoriesAdapter;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.AddNewTeamRepositoryBinding;
import org.mian.gitnex.helpers.Constants;
@@ -27,7 +27,7 @@ public class AddNewTeamRepoActivity extends BaseActivity {
private AddNewTeamRepositoryBinding addNewTeamRepositoryBinding;
private View.OnClickListener onClickListener;
private List<Repository> dataList;
private TeamRepositoriesAdapter adapter;
private OrganizationTeamRepositoriesAdapter adapter;
private int resultLimit;
private long teamId;
@@ -78,7 +78,7 @@ public class AddNewTeamRepoActivity extends BaseActivity {
dataList.clear();
dataList.addAll(response.body());
adapter = new TeamRepositoriesAdapter(dataList, ctx, Math.toIntExact(teamId), getIntent().getStringExtra("orgName"), teamName);
adapter = new OrganizationTeamRepositoriesAdapter(dataList, ctx, Math.toIntExact(teamId), getIntent().getStringExtra("orgName"), teamName);
addNewTeamRepositoryBinding.recyclerViewTeamRepos.setAdapter(adapter);
addNewTeamRepositoryBinding.noData.setVisibility(View.GONE);

View File

@@ -7,7 +7,6 @@ import android.os.Looper;
import android.view.View;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import org.mian.gitnex.adapters.AdminCronTasksAdapter;
import org.mian.gitnex.databinding.ActivityAdminCronTasksBinding;
@@ -48,10 +47,6 @@ public class AdminCronTasksActivity extends BaseActivity {
activityAdminCronTasksBinding.recyclerView.setHasFixedSize(true);
activityAdminCronTasksBinding.recyclerView.setLayoutManager(new LinearLayoutManager(ctx));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(activityAdminCronTasksBinding.recyclerView.getContext(),
DividerItemDecoration.VERTICAL);
activityAdminCronTasksBinding.recyclerView.addItemDecoration(dividerItemDecoration);
activityAdminCronTasksBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
activityAdminCronTasksBinding.progressBar.setVisibility(View.VISIBLE);

View File

@@ -12,7 +12,6 @@ import android.view.inputmethod.EditorInfo;
import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.AdminGetUsersAdapter;
@@ -55,9 +54,6 @@ public class AdminGetUsersActivity extends BaseActivity implements BottomSheetLi
activityAdminGetUsersBinding.recyclerView.setHasFixedSize(true);
activityAdminGetUsersBinding.recyclerView.setLayoutManager(new LinearLayoutManager(ctx));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(activityAdminGetUsersBinding.recyclerView.getContext(),
DividerItemDecoration.VERTICAL);
activityAdminGetUsersBinding.recyclerView.addItemDecoration(dividerItemDecoration);
activityAdminGetUsersBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {

View File

@@ -55,10 +55,6 @@ public class AdminUnadoptedReposActivity extends BaseActivity {
binding.recyclerView.setHasFixedSize(true);
binding.recyclerView.setLayoutManager(new LinearLayoutManager(ctx));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(binding.recyclerView.getContext(),
DividerItemDecoration.VERTICAL);
binding.recyclerView.addItemDecoration(dividerItemDecoration);
binding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
binding.pullToRefresh.setRefreshing(false);

View File

@@ -17,7 +17,7 @@ import org.gitnex.tea4j.v2.models.Team;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateTeamByOrgBinding;
import org.mian.gitnex.fragments.TeamsByOrgFragment;
import org.mian.gitnex.fragments.OrganizationTeamsFragment;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Toasty;
@@ -305,7 +305,7 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
if(response2.code() == 201) {
TeamsByOrgFragment.resumeTeams = true;
OrganizationTeamsFragment.resumeTeams = true;
Toasty.success(ctx, getString(R.string.teamCreated));
finish();

View File

@@ -24,8 +24,8 @@ import org.mian.gitnex.fragments.BottomSheetOrganizationFragment;
import org.mian.gitnex.fragments.MembersByOrgFragment;
import org.mian.gitnex.fragments.OrganizationInfoFragment;
import org.mian.gitnex.fragments.OrganizationLabelsFragment;
import org.mian.gitnex.fragments.RepositoriesByOrgFragment;
import org.mian.gitnex.fragments.TeamsByOrgFragment;
import org.mian.gitnex.fragments.OrganizationRepositoriesFragment;
import org.mian.gitnex.fragments.OrganizationTeamsFragment;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.structs.BottomSheetListener;
import java.util.Objects;
@@ -237,14 +237,14 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
return OrganizationInfoFragment.newInstance(orgName);
case 1: // repos
return RepositoriesByOrgFragment.newInstance(orgName);
return OrganizationRepositoriesFragment.newInstance(orgName);
case 2: // labels
return OrganizationLabelsFragment.newInstance(orgName);
case 3: // teams / members
if(isMember) {
return TeamsByOrgFragment.newInstance(orgName, permissions);
return OrganizationTeamsFragment.newInstance(orgName, permissions);
} else {
return MembersByOrgFragment.newInstance(orgName);
}

View File

@@ -77,7 +77,7 @@ public class AdminCronTasksAdapter extends RecyclerView.Adapter<AdminCronTasksAd
MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(ctx)
.setTitle(StringUtils.capitalize(cronTasks.getName().replace("_", " ")))
.setView(view)
.setPositiveButton(ctx.getString(R.string.close), null);
.setNeutralButton(ctx.getString(R.string.close), null);
materialAlertDialogBuilder.create().show();
});

View File

@@ -30,14 +30,14 @@ import retrofit2.Response;
* @author M M Arif
*/
public class UserSearchForTeamMemberAdapter extends RecyclerView.Adapter<UserSearchForTeamMemberAdapter.UserSearchViewHolder> {
public class OrganizationAddUserToTeamMemberAdapter extends RecyclerView.Adapter<OrganizationAddUserToTeamMemberAdapter.UserSearchViewHolder> {
private final List<User> usersSearchList;
private final Context context;
private final int teamId;
private final String orgName;
public UserSearchForTeamMemberAdapter(List<User> dataList, Context ctx, int teamId, String orgName) {
public OrganizationAddUserToTeamMemberAdapter(List<User> dataList, Context ctx, int teamId, String orgName) {
this.context = ctx;
this.usersSearchList = dataList;
this.teamId = teamId;
@@ -87,13 +87,13 @@ public class UserSearchForTeamMemberAdapter extends RecyclerView.Adapter<UserSea
@NonNull
@Override
public UserSearchForTeamMemberAdapter.UserSearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
public OrganizationAddUserToTeamMemberAdapter.UserSearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_collaborators_search, parent, false);
return new UserSearchForTeamMemberAdapter.UserSearchViewHolder(v);
return new OrganizationAddUserToTeamMemberAdapter.UserSearchViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final UserSearchForTeamMemberAdapter.UserSearchViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final OrganizationAddUserToTeamMemberAdapter.UserSearchViewHolder holder, int position) {
User currentItem = usersSearchList.get(position);
holder.userInfo = currentItem;

View File

@@ -18,12 +18,12 @@ import java.util.List;
* @author opyale
*/
public class TeamMembersByOrgPreviewAdapter extends RecyclerView.Adapter<TeamMembersByOrgPreviewAdapter.ViewHolder> {
public class OrganizationTeamMembersPreviewAdapter extends RecyclerView.Adapter<OrganizationTeamMembersPreviewAdapter.ViewHolder> {
private final Context context;
private final List<User> userData;
public TeamMembersByOrgPreviewAdapter(Context context, List<User> userInfo) {
public OrganizationTeamMembersPreviewAdapter(Context context, List<User> userInfo) {
this.context = context;
this.userData = userInfo;
}

View File

@@ -31,7 +31,7 @@ import retrofit2.Response;
* @author M M Arif
*/
public class TeamRepositoriesAdapter extends RecyclerView.Adapter<TeamRepositoriesAdapter.TeamReposViewHolder> {
public class OrganizationTeamRepositoriesAdapter extends RecyclerView.Adapter<OrganizationTeamRepositoriesAdapter.TeamReposViewHolder> {
private final List<Repository> reposList;
private final Context context;
@@ -40,7 +40,7 @@ public class TeamRepositoriesAdapter extends RecyclerView.Adapter<TeamRepositori
private final String teamName;
private final List<Repository> reposArr;
public TeamRepositoriesAdapter(List<Repository> dataList, Context ctx, int teamId, String orgName, String teamName) {
public OrganizationTeamRepositoriesAdapter(List<Repository> dataList, Context ctx, int teamId, String orgName, String teamName) {
this.context = ctx;
this.reposList = dataList;
this.teamId = teamId;
@@ -68,7 +68,7 @@ public class TeamRepositoriesAdapter extends RecyclerView.Adapter<TeamRepositori
//addRepoButtonAdd.setVisibility(View.VISIBLE);
//addRepoButtonRemove.setVisibility(View.GONE);
new Handler(Looper.getMainLooper()).postDelayed(TeamRepositoriesAdapter.this::getTeamRepos, 200);
new Handler(Looper.getMainLooper()).postDelayed(OrganizationTeamRepositoriesAdapter.this::getTeamRepos, 200);
new Handler(Looper.getMainLooper()).postDelayed(() -> {
@@ -97,13 +97,13 @@ public class TeamRepositoriesAdapter extends RecyclerView.Adapter<TeamRepositori
@NonNull
@Override
public TeamRepositoriesAdapter.TeamReposViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
public OrganizationTeamRepositoriesAdapter.TeamReposViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_collaborators_search, parent, false);
return new TeamRepositoriesAdapter.TeamReposViewHolder(v);
return new OrganizationTeamRepositoriesAdapter.TeamReposViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final TeamRepositoriesAdapter.TeamReposViewHolder holder, int position) {
public void onBindViewHolder(@NonNull final OrganizationTeamRepositoriesAdapter.TeamReposViewHolder holder, int position) {
Repository currentItem = reposList.get(position);
holder.repoInfo = currentItem;

View File

@@ -29,7 +29,7 @@ import retrofit2.Response;
* @author M M Arif
*/
public class TeamsByOrgAdapter extends RecyclerView.Adapter<TeamsByOrgAdapter.OrgTeamsViewHolder> implements Filterable {
public class OrganizationTeamsAdapter extends RecyclerView.Adapter<OrganizationTeamsAdapter.OrgTeamsViewHolder> implements Filterable {
private final List<Team> teamList;
private final Context context;
@@ -47,7 +47,7 @@ public class TeamsByOrgAdapter extends RecyclerView.Adapter<TeamsByOrgAdapter.Or
private final LinearLayout membersPreviewFrame;
private final List<User> userInfos;
private final TeamMembersByOrgPreviewAdapter adapter;
private final OrganizationTeamMembersPreviewAdapter adapter;
private String orgName;
private OrgTeamsViewHolder(View itemView) {
@@ -60,7 +60,7 @@ public class TeamsByOrgAdapter extends RecyclerView.Adapter<TeamsByOrgAdapter.Or
RecyclerView membersPreview = itemView.findViewById(R.id.membersPreview);
userInfos = new ArrayList<>();
adapter = new TeamMembersByOrgPreviewAdapter(itemView.getContext(), userInfos);
adapter = new OrganizationTeamMembersPreviewAdapter(itemView.getContext(), userInfos);
membersPreview.setLayoutManager(new LinearLayoutManager(itemView.getContext(), RecyclerView.HORIZONTAL, false));
membersPreview.setAdapter(adapter);
@@ -77,7 +77,7 @@ public class TeamsByOrgAdapter extends RecyclerView.Adapter<TeamsByOrgAdapter.Or
}
}
public TeamsByOrgAdapter(Context ctx, List<Team> teamListMain, OrganizationPermissions permissions, String orgName) {
public OrganizationTeamsAdapter(Context ctx, List<Team> teamListMain, OrganizationPermissions permissions, String orgName) {
this.context = ctx;
this.teamList = teamListMain;
this.permissions = permissions;
@@ -87,13 +87,13 @@ public class TeamsByOrgAdapter extends RecyclerView.Adapter<TeamsByOrgAdapter.Or
@NonNull
@Override
public TeamsByOrgAdapter.OrgTeamsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_teams_by_org, parent, false);
return new TeamsByOrgAdapter.OrgTeamsViewHolder(v);
public OrganizationTeamsAdapter.OrgTeamsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_organization_teams, parent, false);
return new OrganizationTeamsAdapter.OrgTeamsViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull TeamsByOrgAdapter.OrgTeamsViewHolder holder, int position) {
public void onBindViewHolder(@NonNull OrganizationTeamsAdapter.OrgTeamsViewHolder holder, int position) {
Team currentItem = teamList.get(position);

View File

@@ -12,6 +12,7 @@ public class DraftWithRepository {
private int repoAccountId;
private String repositoryOwner;
private String repositoryName;
private int mostVisited;
private int draftRepositoryId;
private int draftAccountId;
@@ -141,4 +142,11 @@ public class DraftWithRepository {
this.issueType = issueType;
}
public int getMostVisited() {
return mostVisited;
}
public void setMostVisited(int mostVisited) {
this.mostVisited = mostVisited;
}
}

View File

@@ -11,7 +11,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@@ -70,10 +69,6 @@ public class OrganizationLabelsFragment extends Fragment {
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(),
DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(dividerItemDecoration);
mProgressBar = fragmentLabelsBinding.progressBar;
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {

View File

@@ -26,7 +26,7 @@ import org.mian.gitnex.viewmodels.RepositoriesViewModel;
* @author M M Arif
*/
public class RepositoriesByOrgFragment extends Fragment {
public class OrganizationRepositoriesFragment extends Fragment {
private RepositoriesViewModel repositoriesViewModel;
private FragmentRepositoriesBinding fragmentRepositoriesBinding;
@@ -36,10 +36,10 @@ public class RepositoriesByOrgFragment extends Fragment {
private static final String getOrgName = null;
private String orgName;
public RepositoriesByOrgFragment() { }
public OrganizationRepositoriesFragment() { }
public static RepositoriesByOrgFragment newInstance(String orgName) {
RepositoriesByOrgFragment fragment = new RepositoriesByOrgFragment();
public static OrganizationRepositoriesFragment newInstance(String orgName) {
OrganizationRepositoriesFragment fragment = new OrganizationRepositoriesFragment();
Bundle args = new Bundle();
args.putString(getOrgName, orgName);
fragment.setArguments(args);

View File

@@ -15,21 +15,20 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.TeamsByOrgAdapter;
import org.mian.gitnex.databinding.FragmentTeamsByOrgBinding;
import org.mian.gitnex.adapters.OrganizationTeamsAdapter;
import org.mian.gitnex.databinding.FragmentOrganizationTeamsBinding;
import org.mian.gitnex.viewmodels.TeamsByOrgViewModel;
/**
* @author M M Arif
*/
public class TeamsByOrgFragment extends Fragment {
public class OrganizationTeamsFragment extends Fragment {
private TeamsByOrgViewModel teamsByOrgViewModel;
public static boolean resumeTeams = false;
@@ -40,13 +39,13 @@ public class TeamsByOrgFragment extends Fragment {
private static final String orgNameF = "param2";
private String orgName;
private OrganizationPermissions permissions;
private TeamsByOrgAdapter adapter;
private OrganizationTeamsAdapter adapter;
public TeamsByOrgFragment() {
public OrganizationTeamsFragment() {
}
public static TeamsByOrgFragment newInstance(String param1, OrganizationPermissions permissions) {
TeamsByOrgFragment fragment = new TeamsByOrgFragment();
public static OrganizationTeamsFragment newInstance(String param1, OrganizationPermissions permissions) {
OrganizationTeamsFragment fragment = new OrganizationTeamsFragment();
Bundle args = new Bundle();
args.putString(orgNameF, param1);
args.putSerializable("permissions", permissions);
@@ -67,7 +66,7 @@ public class TeamsByOrgFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
FragmentTeamsByOrgBinding fragmentTeamsByOrgBinding = FragmentTeamsByOrgBinding.inflate(inflater, container, false);
FragmentOrganizationTeamsBinding fragmentTeamsByOrgBinding = FragmentOrganizationTeamsBinding.inflate(inflater, container, false);
setHasOptionsMenu(true);
teamsByOrgViewModel = new ViewModelProvider(this).get(TeamsByOrgViewModel.class);
@@ -79,10 +78,6 @@ public class TeamsByOrgFragment extends Fragment {
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(),
DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(dividerItemDecoration);
mProgressBar = fragmentTeamsByOrgBinding.progressBar;
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
@@ -109,7 +104,7 @@ public class TeamsByOrgFragment extends Fragment {
private void fetchDataAsync(String owner) {
teamsByOrgViewModel.getTeamsByOrg(owner, getContext(), noDataTeams, mProgressBar).observe(getViewLifecycleOwner(), orgTeamsListMain -> {
adapter = new TeamsByOrgAdapter(getContext(), orgTeamsListMain, permissions, orgName);
adapter = new OrganizationTeamsAdapter(getContext(), orgTeamsListMain, permissions, orgName);
if(adapter.getItemCount() > 0) {
mRecyclerView.setAdapter(adapter);
noDataTeams.setVisibility(View.GONE);

View File

@@ -19,7 +19,6 @@ import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import org.gitnex.tea4j.v2.auth.ApiKeyAuth;
import org.gitnex.tea4j.v2.models.Release;
@@ -93,9 +92,6 @@ public class ReleasesFragment extends Fragment {
fragmentReleasesBinding.recyclerView.setHasFixedSize(true);
fragmentReleasesBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(fragmentReleasesBinding.recyclerView.getContext(),
DividerItemDecoration.VERTICAL);
fragmentReleasesBinding.recyclerView.addItemDecoration(dividerItemDecoration);
fragmentReleasesBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {

View File

@@ -4,7 +4,6 @@
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?attr/primaryBackgroundColor"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -47,31 +46,36 @@
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:layout_marginTop="@dimen/dimen56dp"
android:padding="@dimen/dimen8dp">
<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" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_marginTop="@dimen/dimen56dp"
android:indeterminate="true"
android:layout_below="@+id/appbar"
style="@style/Widget.MaterialComponents.LinearProgressIndicator"
style="@style/Widget.Material3.LinearProgressIndicator"
app:indicatorColor="?attr/progressIndicatorColor" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress_bar">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<TextView
android:id="@+id/noData"
android:layout_width="match_parent"

View File

@@ -6,6 +6,27 @@
android:orientation="vertical"
android:background="?attr/primaryBackgroundColor">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:padding="@dimen/dimen8dp">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pull_to_refresh"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/dimen56dp"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
@@ -49,21 +70,6 @@
</com.google.android.material.appbar.AppBarLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pull_to_refresh"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/dimen56dp"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress_bar"
android:layout_width="match_parent"

View File

@@ -6,19 +6,25 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".activities.OrganizationDetailActivity">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:padding="@dimen/dimen8dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
android:layout_height="wrap_content">
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"

View File

@@ -6,19 +6,25 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".activities.RepoDetailActivity">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:padding="@dimen/dimen8dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
android:layout_height="wrap_content">
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress_bar"

View File

@@ -1,45 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="?attr/primaryBackgroundColor" >
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="@dimen/dimen4dp"
android:paddingBottom="@dimen/dimen4dp">
<LinearLayout
android:id="@+id/cronTasksRun"
android:layout_width="wrap_content"
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginEnd="15dp">
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp">
<ImageView
android:id="@+id/runTask"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:contentDescription="@string/adminCron"
android:src="@drawable/ic_play" />
android:foreground="?android:attr/selectableItemBackground"
android:background="?attr/materialCardBackgroundColor"
android:padding="@dimen/dimen12dp"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:id="@+id/cronTasksRun"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginEnd="@dimen/dimen16dp">
<LinearLayout
android:id="@+id/cronTasksInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/cronTasksRun"
android:orientation="vertical">
<ImageView
android:id="@+id/runTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:contentDescription="@string/adminCron"
android:src="@drawable/ic_play" />
<TextView
android:id="@+id/taskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/cronTasksInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/taskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen6dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen16sp" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>

View File

@@ -1,17 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="?android:attr/selectableItemBackground" >
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="@dimen/dimen4dp"
android:paddingBottom="@dimen/dimen4dp">
<TextView
android:id="@+id/repo_name"
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp" />
style="?attr/materialCardViewFilledStyle"
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:padding="@dimen/dimen12dp"
android:orientation="vertical">
<TextView
android:id="@+id/repo_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen6dp"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen16sp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>

View File

@@ -3,79 +3,96 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="@dimen/dimen16dp"
android:background="?android:attr/selectableItemBackground">
android:paddingTop="@dimen/dimen4dp"
android:paddingBottom="@dimen/dimen4dp">
<LinearLayout
android:id="@+id/userInfoSection"
android:layout_width="wrap_content"
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginEnd="@dimen/dimen16dp">
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/userAccountAvatar"
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
android:layout_gravity="center"
app:cardCornerRadius="@dimen/dimen12dp">
<ImageView
android:id="@+id/userAvatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/generalImgContentText"
android:src="@drawable/ic_android" />
</com.google.android.material.card.MaterialCardView>
<ImageView
android:id="@+id/userRole"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:contentDescription="@string/userRoleAdmin"
android:src="@drawable/ic_android" />
android:foreground="?android:attr/selectableItemBackground"
android:background="?attr/materialCardBackgroundColor"
android:padding="@dimen/dimen12dp"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:id="@+id/userInfoSection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginEnd="@dimen/dimen16dp">
<LinearLayout
android:id="@+id/userInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/userInfoSection"
android:orientation="vertical">
<com.google.android.material.card.MaterialCardView
android:id="@+id/userAccountAvatar"
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
android:layout_gravity="center"
app:cardCornerRadius="@dimen/dimen12dp">
<TextView
android:id="@+id/userFullName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen4dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/userAvatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/generalImgContentText"
android:src="@drawable/ic_android" />
<TextView
android:id="@+id/userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen4dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen12sp" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/userEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/userEmail"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen12sp" />
<ImageView
android:id="@+id/userRole"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:contentDescription="@string/userRoleAdmin"
android:src="@drawable/ic_android" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/userInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/userFullName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen4dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen4dp"
android:text="@string/userName"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen12sp" />
<TextView
android:id="@+id/userEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/userEmail"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen12sp" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/orgTeamsFrame"
android:orientation="vertical"
android:paddingTop="@dimen/dimen4dp"
android:paddingBottom="@dimen/dimen4dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?attr/materialCardViewFilledStyle"
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:padding="@dimen/dimen12dp"
android:orientation="vertical">
<TextView
android:id="@+id/teamTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/teamTitle"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen18sp"
android:textStyle="bold"
tools:text="PR-Managers" />
<TextView
android:id="@+id/teamDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/teamDescription"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen16sp"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp"
tools:text="Managing pull requests and related issues" />
<LinearLayout
android:id="@+id/membersPreviewFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dimen10dp"
android:gravity="bottom"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/membersPreview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/teamShowAll"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen16sp"
app:drawableEndCompat="@drawable/ic_chevron_right"
app:drawableTint="?attr/primaryTextColor" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>

View File

@@ -5,307 +5,326 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:paddingTop="@dimen/dimen4dp"
android:paddingBottom="@dimen/dimen4dp">
<LinearLayout
android:id="@+id/headerFrame"
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="wrap_content"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/releaseName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/releasesOptionsMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|end"
android:contentDescription="@string/labelMenuContentDesc"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_dotted_menu_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp">
<ImageView
android:id="@+id/authorAvatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:srcCompat="@tools:sample/avatars[7]"
android:contentDescription="@string/generalImgContentText" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/authorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp" />
</LinearLayout>
android:foreground="?android:attr/selectableItemBackground"
android:background="?attr/materialCardBackgroundColor"
android:padding="@dimen/dimen12dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/headerFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:layout_marginBottom="6dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/releaseType"
android:id="@+id/releaseName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_stable_release"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textColor="@color/colorWhite"
android:textSize="14sp" />
android:layout_weight="1"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen16sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/releasesOptionsMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_gravity="center_vertical|end"
android:contentDescription="@string/labelMenuContentDesc"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_dotted_menu_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
android:orientation="horizontal">
<ImageView
android:layout_width="18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_label"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseTag"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp" />
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp">
<ImageView
android:id="@+id/authorAvatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:srcCompat="@tools:sample/avatars[7]"
android:contentDescription="@string/generalImgContentText" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/authorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen6dp"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:layout_marginBottom="@dimen/dimen6dp"
android:orientation="horizontal">
<TextView
android:id="@+id/releaseType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_stable_release"
android:paddingStart="@dimen/dimen8dp"
android:paddingEnd="@dimen/dimen8dp"
android:textColor="@color/colorWhite"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="@dimen/dimen18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_label"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables"
android:visibility="gone">
<ImageView
android:layout_width="@dimen/dimen18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_code"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseCommitSha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="@dimen/dimen18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_calendar"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables"
android:visibility="gone">
<ImageView
android:layout_width="18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_code"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseCommitSha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end|center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="18dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_calendar"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:singleLine="true"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/bodyFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/releaseBodyContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:textColorLink="@color/lightBlue"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/downloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/downloadCopyFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/downloadDropdownIcon"
android:layout_width="15dp"
android:layout_height="wrap_content"
android:contentDescription="@string/generalImgContentText"
app:tint="?attr/primaryTextColor"
android:src="@drawable/ic_chevron_right"
app:srcCompat="@drawable/ic_chevron_right" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"
android:textColor="?attr/primaryTextColor"
android:textSize="14sp"
android:text="@string/releaseDownloadText" />
</LinearLayout>
<LinearLayout
android:id="@+id/downloads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
android:visibility="gone"
android:paddingTop="8dp">
<LinearLayout
android:id="@+id/releaseZipDownloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginStart="8dp"
android:layout_marginBottom="8dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
app:srcCompat="@drawable/ic_download"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseZipDownload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="?attr/primaryTextColor"
android:text="@string/zipArchiveDownloadReleasesTab"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/releaseTarDownloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginStart="8dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
app:srcCompat="@drawable/ic_download"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseTarDownload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="?attr/primaryTextColor"
android:text="@string/tarArchiveDownloadReleasesTab"
android:textSize="12sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/downloadList"
android:id="@+id/bodyFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
android:layout_marginTop="@dimen/dimen10dp"
android:orientation="vertical">
<TextView
android:id="@+id/releaseBodyContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:textColorLink="@color/lightBlue"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/downloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dimen10dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/downloadCopyFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/downloadDropdownIcon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="wrap_content"
android:contentDescription="@string/generalImgContentText"
app:tint="?attr/primaryTextColor"
android:src="@drawable/ic_chevron_right"
app:srcCompat="@drawable/ic_chevron_right" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen4dp"
android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/dimen14sp"
android:text="@string/releaseDownloadText" />
</LinearLayout>
<LinearLayout
android:id="@+id/downloads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
android:visibility="gone"
android:paddingTop="@dimen/dimen8dp">
<LinearLayout
android:id="@+id/releaseZipDownloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen8dp"
android:layout_marginBottom="@dimen/dimen8dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
app:srcCompat="@drawable/ic_download"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseZipDownload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen8dp"
android:textColor="?attr/primaryTextColor"
android:text="@string/zipArchiveDownloadReleasesTab"
android:textSize="@dimen/dimen12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/releaseTarDownloadFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen8dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
app:srcCompat="@drawable/ic_download"
android:contentDescription="@string/generalImgContentText" />
<TextView
android:id="@+id/releaseTarDownload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen8dp"
android:textColor="?attr/primaryTextColor"
android:text="@string/tarArchiveDownloadReleasesTab"
android:textSize="@dimen/dimen12sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/downloadList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/primaryBackgroundColor"
android:scrollbars="vertical" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>

View File

@@ -6,13 +6,13 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginStart="@dimen/dimen8dp"
android:layout_marginTop="@dimen/dimen8dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
app:srcCompat="@drawable/ic_download"
android:contentDescription="@string/generalImgContentText" />
@@ -20,9 +20,9 @@
android:id="@+id/downloadName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginStart="@dimen/dimen8dp"
android:textColor="?attr/primaryTextColor"
android:textSize="12sp"
android:textSize="@dimen/dimen12sp"
tools:text="Source code (ZIP)" />
</LinearLayout>

View File

@@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/orgTeamsFrame"
android:padding="16dp"
android:orientation="vertical"
android:background="?android:attr/selectableItemBackground"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/teamTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/teamTitle"
android:textColor="?attr/primaryTextColor"
android:textSize="18sp"
android:textStyle="bold"
tools:text="PR-Managers" />
<TextView
android:id="@+id/teamDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/teamDescription"
android:textColor="?attr/primaryTextColor"
android:textSize="15sp"
tools:text="Managing pull requests and related issues" />
<LinearLayout
android:id="@+id/membersPreviewFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:gravity="bottom"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/membersPreview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/teamShowAll"
android:textColor="?attr/primaryTextColor"
android:textSize="15sp"
app:drawableEndCompat="@drawable/ic_chevron_right"
app:drawableTint="?attr/primaryTextColor" />
</LinearLayout>
</LinearLayout>