mirror of
https://codeberg.org/gitnex/GitNex
synced 2025-03-10 00:20:16 +01:00
Fix visible actions and teams tab (#1112)
Closes #1071 Co-authored-by: qwerty287 <ndev@web.de> Co-authored-by: M M Arif <mmarif@swatian.com> Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1112 Reviewed-by: M M Arif <mmarif@noreply.codeberg.org> Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org> Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>
This commit is contained in:
parent
fbe55035f2
commit
3f7706de23
@ -48,6 +48,7 @@ public class FileViewActivity extends BaseActivity implements BottomSheetListene
|
|||||||
private ContentsResponse file;
|
private ContentsResponse file;
|
||||||
private RepositoryContext repository;
|
private RepositoryContext repository;
|
||||||
private boolean renderMd = false;
|
private boolean renderMd = false;
|
||||||
|
private boolean processable = false;
|
||||||
|
|
||||||
public ActivityResultLauncher<Intent> editFileLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
|
public ActivityResultLauncher<Intent> editFileLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
|
||||||
result -> {
|
result -> {
|
||||||
@ -108,8 +109,6 @@ public class FileViewActivity extends BaseActivity implements BottomSheetListene
|
|||||||
runOnUiThread(() -> binding.progressBar.setVisibility(View.GONE));
|
runOnUiThread(() -> binding.progressBar.setVisibility(View.GONE));
|
||||||
String fileExtension = FilenameUtils.getExtension(filename);
|
String fileExtension = FilenameUtils.getExtension(filename);
|
||||||
|
|
||||||
boolean processable = false;
|
|
||||||
|
|
||||||
switch(AppUtil.getFileType(fileExtension)) {
|
switch(AppUtil.getFileType(fileExtension)) {
|
||||||
|
|
||||||
case IMAGE:
|
case IMAGE:
|
||||||
@ -246,7 +245,9 @@ public class FileViewActivity extends BaseActivity implements BottomSheetListene
|
|||||||
} else if(id == R.id.genericMenu) {
|
} else if(id == R.id.genericMenu) {
|
||||||
|
|
||||||
BottomSheetFileViewerFragment bottomSheet = new BottomSheetFileViewerFragment();
|
BottomSheetFileViewerFragment bottomSheet = new BottomSheetFileViewerFragment();
|
||||||
bottomSheet.setArguments(repository.getBundle());
|
Bundle opts = repository.getBundle();
|
||||||
|
opts.putBoolean("editable", processable);
|
||||||
|
bottomSheet.setArguments(opts);
|
||||||
bottomSheet.show(getSupportFragmentManager(), "fileViewerBottomSheet");
|
bottomSheet.show(getSupportFragmentManager(), "fileViewerBottomSheet");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ import androidx.fragment.app.FragmentPagerAdapter;
|
|||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
|
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.mian.gitnex.R;
|
import org.mian.gitnex.R;
|
||||||
import org.mian.gitnex.clients.RetrofitClient;
|
import org.mian.gitnex.clients.RetrofitClient;
|
||||||
import org.mian.gitnex.fragments.BottomSheetOrganizationFragment;
|
import org.mian.gitnex.fragments.BottomSheetOrganizationFragment;
|
||||||
@ -43,6 +44,8 @@ import retrofit2.Response;
|
|||||||
public class OrganizationDetailActivity extends BaseActivity implements BottomSheetListener {
|
public class OrganizationDetailActivity extends BaseActivity implements BottomSheetListener {
|
||||||
|
|
||||||
public OrganizationPermissions permissions;
|
public OrganizationPermissions permissions;
|
||||||
|
private String orgName;
|
||||||
|
private boolean isMember = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@ -51,21 +54,72 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
|
|||||||
|
|
||||||
setContentView(R.layout.activity_org_detail);
|
setContentView(R.layout.activity_org_detail);
|
||||||
|
|
||||||
String orgName = getIntent().getStringExtra("orgName");
|
orgName = getIntent().getStringExtra("orgName");
|
||||||
|
|
||||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||||
TextView toolbarTitle = findViewById(R.id.toolbar_title);
|
|
||||||
|
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
Objects.requireNonNull(getSupportActionBar()).setTitle(orgName);
|
Objects.requireNonNull(getSupportActionBar()).setTitle(orgName);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
|
checkIsMember();
|
||||||
|
|
||||||
|
if(getAccount().requiresVersion("1.16.0")) {
|
||||||
|
RetrofitClient.getApiInterface(this)
|
||||||
|
.orgGetUserPermissions(getAccount().getAccount().getUserName(), orgName).enqueue(new Callback<>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call<OrganizationPermissions> call, @NonNull Response<OrganizationPermissions> response) {
|
||||||
|
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
permissions = response.body();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
permissions = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call<OrganizationPermissions> call, @NonNull Throwable t) {
|
||||||
|
|
||||||
|
permissions = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
permissions = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkIsMember() {
|
||||||
|
RetrofitClient.getApiInterface(this).orgIsMember(orgName, getAccount().getAccount().getUserName()).enqueue(new Callback<>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NotNull Call<Void> call, @NotNull Response<Void> response) {
|
||||||
|
isMember = response.code() != 404;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NotNull Call<Void> call, @NotNull Throwable t) {
|
||||||
|
isMember = false;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init() {
|
||||||
OrganizationDetailActivity.SectionsPagerAdapter mSectionsPagerAdapter = new OrganizationDetailActivity.SectionsPagerAdapter(getSupportFragmentManager());
|
OrganizationDetailActivity.SectionsPagerAdapter mSectionsPagerAdapter = new OrganizationDetailActivity.SectionsPagerAdapter(getSupportFragmentManager());
|
||||||
|
|
||||||
ViewPager mViewPager = findViewById(R.id.container);
|
ViewPager mViewPager = findViewById(R.id.container);
|
||||||
|
mViewPager.setVisibility(View.VISIBLE);
|
||||||
mViewPager.setAdapter(mSectionsPagerAdapter);
|
mViewPager.setAdapter(mSectionsPagerAdapter);
|
||||||
|
|
||||||
TabLayout tabLayout = findViewById(R.id.tabs);
|
TabLayout tabLayout = findViewById(R.id.tabs);
|
||||||
|
tabLayout.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
if(!isMember) {
|
||||||
|
tabLayout.removeTabAt(3);
|
||||||
|
}
|
||||||
|
|
||||||
Typeface myTypeface;
|
Typeface myTypeface;
|
||||||
|
|
||||||
@ -85,6 +139,8 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextView toolbarTitle = findViewById(R.id.toolbar_title);
|
||||||
|
|
||||||
toolbarTitle.setTypeface(myTypeface);
|
toolbarTitle.setTypeface(myTypeface);
|
||||||
toolbarTitle.setText(orgName);
|
toolbarTitle.setText(orgName);
|
||||||
|
|
||||||
@ -109,31 +165,7 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
|
|||||||
|
|
||||||
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
||||||
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
|
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
|
||||||
|
|
||||||
if(getAccount().requiresVersion("1.16.0")) {
|
|
||||||
RetrofitClient.getApiInterface(this)
|
|
||||||
.orgGetUserPermissions(getAccount().getAccount().getUserName(), orgName).enqueue(new Callback<OrganizationPermissions>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(@NonNull Call<OrganizationPermissions> call, @NonNull Response<OrganizationPermissions> response) {
|
|
||||||
if(response.isSuccessful()) {
|
|
||||||
permissions = response.body();
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
permissions = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NonNull Call<OrganizationPermissions> call, @NonNull Throwable t) {
|
|
||||||
permissions = null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
permissions = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
@ -226,19 +258,29 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
|
|||||||
case 2: // labels
|
case 2: // labels
|
||||||
|
|
||||||
return OrganizationLabelsFragment.newInstance(orgName);
|
return OrganizationLabelsFragment.newInstance(orgName);
|
||||||
case 3: // teams
|
case 3: // teams / members
|
||||||
|
|
||||||
|
if(isMember) {
|
||||||
return TeamsByOrgFragment.newInstance(orgName, permissions);
|
return TeamsByOrgFragment.newInstance(orgName, permissions);
|
||||||
|
} else {
|
||||||
|
return MembersByOrgFragment.newInstance(orgName);
|
||||||
|
}
|
||||||
case 4: // members
|
case 4: // members
|
||||||
|
|
||||||
|
if(isMember) {
|
||||||
return MembersByOrgFragment.newInstance(orgName);
|
return MembersByOrgFragment.newInstance(orgName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
|
if(isMember) {
|
||||||
return 5;
|
return 5;
|
||||||
|
} else {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ public class BottomSheetFileViewerFragment extends BottomSheetDialogFragment {
|
|||||||
if(!repository.getPermissions().isPush()) {
|
if(!repository.getPermissions().isPush()) {
|
||||||
bottomSheetFileViewerBinding.deleteFile.setVisibility(View.GONE);
|
bottomSheetFileViewerBinding.deleteFile.setVisibility(View.GONE);
|
||||||
bottomSheetFileViewerBinding.editFile.setVisibility(View.GONE);
|
bottomSheetFileViewerBinding.editFile.setVisibility(View.GONE);
|
||||||
|
} else if(!requireArguments().getBoolean("editable")) {
|
||||||
|
bottomSheetFileViewerBinding.editFile.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bottomSheetFileViewerBinding.downloadFile.setOnClickListener(v1 -> {
|
bottomSheetFileViewerBinding.downloadFile.setOnClickListener(v1 -> {
|
||||||
|
@ -264,6 +264,10 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment {
|
|||||||
binding.commentReactionButtons.setVisibility(View.GONE);
|
binding.commentReactionButtons.setVisibility(View.GONE);
|
||||||
binding.shareDivider.setVisibility(View.GONE);
|
binding.shareDivider.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
else if(!canPush) {
|
||||||
|
binding.addRemoveAssignees.setVisibility(View.GONE);
|
||||||
|
binding.editLabels.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,8 @@
|
|||||||
android:background="?attr/primaryBackgroundColor"
|
android:background="?attr/primaryBackgroundColor"
|
||||||
app:tabIndicatorColor="?attr/pagerTabIndicatorColor"
|
app:tabIndicatorColor="?attr/pagerTabIndicatorColor"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
<com.google.android.material.tabs.TabItem
|
||||||
android:id="@+id/tabItemInfo"
|
android:id="@+id/tabItemInfo"
|
||||||
@ -83,6 +84,7 @@
|
|||||||
android:id="@+id/container"
|
android:id="@+id/container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user