mirror of
https://codeberg.org/gitnex/GitNex
synced 2025-02-09 16:48:50 +01:00
Fixing collaborators bug and some improvements in RepoDetailActivity (#543)
* Minor improvements. * Fixing collaborators bug and many (performance) improvements in RepoDetailActivity. Co-authored-by: opyale <opyale@noreply.gitea.io> Reviewed-by: 6543 <6543@noreply.codeberg.org>
This commit is contained in:
parent
1a95475140
commit
7de29687eb
@ -42,7 +42,6 @@ import org.mian.gitnex.helpers.Authorization;
|
|||||||
import org.mian.gitnex.helpers.Version;
|
import org.mian.gitnex.helpers.Version;
|
||||||
import org.mian.gitnex.models.UserRepositories;
|
import org.mian.gitnex.models.UserRepositories;
|
||||||
import org.mian.gitnex.models.WatchInfo;
|
import org.mian.gitnex.models.WatchInfo;
|
||||||
import org.mian.gitnex.util.AppUtil;
|
|
||||||
import org.mian.gitnex.util.TinyDB;
|
import org.mian.gitnex.util.TinyDB;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -63,59 +62,19 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
private FragmentRefreshListenerPr fragmentRefreshListenerPr;
|
private FragmentRefreshListenerPr fragmentRefreshListenerPr;
|
||||||
private FragmentRefreshListenerMilestone fragmentRefreshListenerMilestone;
|
private FragmentRefreshListenerMilestone fragmentRefreshListenerMilestone;
|
||||||
|
|
||||||
final Context ctx = this;
|
private final Context ctx = this;
|
||||||
private Context appCtx;
|
private Context appCtx;
|
||||||
|
|
||||||
// issues interface
|
private TinyDB tinyDB;
|
||||||
public FragmentRefreshListener getFragmentRefreshListener() {
|
|
||||||
|
|
||||||
return fragmentRefreshListener;
|
private String instanceUrl;
|
||||||
}
|
private String loginUid;
|
||||||
|
private String instanceToken;
|
||||||
|
|
||||||
public void setFragmentRefreshListener(FragmentRefreshListener fragmentRefreshListener) {
|
private String repositoryOwner;
|
||||||
|
private String repositoryName;
|
||||||
|
|
||||||
this.fragmentRefreshListener = fragmentRefreshListener;
|
private int tabsCount;
|
||||||
}
|
|
||||||
|
|
||||||
public interface FragmentRefreshListener {
|
|
||||||
|
|
||||||
void onRefresh(String text);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// pr interface
|
|
||||||
public FragmentRefreshListenerPr getFragmentRefreshListenerPr() {
|
|
||||||
|
|
||||||
return fragmentRefreshListenerPr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFragmentRefreshListenerPr(FragmentRefreshListenerPr fragmentRefreshListenerPr) {
|
|
||||||
|
|
||||||
this.fragmentRefreshListenerPr = fragmentRefreshListenerPr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface FragmentRefreshListenerPr {
|
|
||||||
|
|
||||||
void onRefresh(String text);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// milestones interface
|
|
||||||
public FragmentRefreshListenerMilestone getFragmentRefreshListenerMilestone() {
|
|
||||||
|
|
||||||
return fragmentRefreshListenerMilestone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFragmentRefreshListenerMilestone(FragmentRefreshListenerMilestone fragmentRefreshListenerMilestone) {
|
|
||||||
|
|
||||||
this.fragmentRefreshListenerMilestone = fragmentRefreshListenerMilestone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface FragmentRefreshListenerMilestone {
|
|
||||||
|
|
||||||
void onRefresh(String text);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutResourceId() {
|
protected int getLayoutResourceId() {
|
||||||
@ -129,40 +88,32 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
appCtx = getApplicationContext();
|
appCtx = getApplicationContext();
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
tinyDB = new TinyDB(appCtx);
|
||||||
String repoFullName = tinyDb.getString("repoFullName");
|
|
||||||
String[] parts = repoFullName.split("/");
|
|
||||||
String repoName1 = parts[1];
|
|
||||||
|
|
||||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
String[] repoNameParts = tinyDB.getString("repoFullName").split("/");
|
||||||
final String repoOwner = parts[0];
|
repositoryOwner = repoNameParts[0];
|
||||||
final String loginUid = tinyDb.getString("loginUid");
|
repositoryName = repoNameParts[1];
|
||||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
|
||||||
|
|
||||||
tinyDb.putString("repoIssuesState", "open");
|
|
||||||
tinyDb.putString("repoPrState", "open");
|
|
||||||
tinyDb.putString("milestoneState", "open");
|
|
||||||
|
|
||||||
String appLocale = tinyDb.getString("locale");
|
|
||||||
AppUtil.setAppLocale(getResources(), appLocale);
|
|
||||||
|
|
||||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||||
|
|
||||||
TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
|
TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
|
||||||
|
toolbarTitle.setText(repositoryName);
|
||||||
|
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
Objects.requireNonNull(getSupportActionBar()).setTitle(repoName1);
|
Objects.requireNonNull(getSupportActionBar()).setTitle(repositoryName);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
instanceUrl = tinyDB.getString("instanceUrl");
|
||||||
|
loginUid = tinyDB.getString("loginUid");
|
||||||
|
instanceToken = "token " + tinyDB.getString(loginUid + "-token");
|
||||||
|
|
||||||
ViewPager mViewPager = findViewById(R.id.container);
|
tinyDB.putString("repoIssuesState", "open");
|
||||||
mViewPager.setAdapter(mSectionsPagerAdapter);
|
tinyDB.putString("repoPrState", "open");
|
||||||
|
tinyDB.putString("milestoneState", "open");
|
||||||
TabLayout tabLayout = findViewById(R.id.tabs);
|
|
||||||
|
|
||||||
Typeface myTypeface;
|
Typeface myTypeface;
|
||||||
|
|
||||||
switch(tinyDb.getInt("customFontId", -1)) {
|
switch(tinyDB.getInt("customFontId", -1)) {
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
myTypeface = Typeface.createFromAsset(ctx.getAssets(), "fonts/roboto.ttf");
|
myTypeface = Typeface.createFromAsset(ctx.getAssets(), "fonts/roboto.ttf");
|
||||||
@ -179,34 +130,50 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
}
|
}
|
||||||
|
|
||||||
toolbarTitle.setTypeface(myTypeface);
|
toolbarTitle.setTypeface(myTypeface);
|
||||||
toolbarTitle.setText(repoName1);
|
|
||||||
|
|
||||||
ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
|
TabLayout tabLayout = findViewById(R.id.tabs);
|
||||||
int tabsCount = vg.getChildCount();
|
|
||||||
|
ViewGroup viewGroup = (ViewGroup) tabLayout.getChildAt(0);
|
||||||
|
tabsCount = viewGroup.getChildCount();
|
||||||
|
|
||||||
for(int j = 0; j < tabsCount; j++) {
|
for(int j = 0; j < tabsCount; j++) {
|
||||||
ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
|
|
||||||
|
ViewGroup vgTab = (ViewGroup) viewGroup.getChildAt(j);
|
||||||
int tabChildCount = vgTab.getChildCount();
|
int tabChildCount = vgTab.getChildCount();
|
||||||
|
|
||||||
for(int i = 0; i < tabChildCount; i++) {
|
for(int i = 0; i < tabChildCount; i++) {
|
||||||
|
|
||||||
View tabViewChild = vgTab.getChildAt(i);
|
View tabViewChild = vgTab.getChildAt(i);
|
||||||
|
|
||||||
if(tabViewChild instanceof TextView) {
|
if(tabViewChild instanceof TextView) {
|
||||||
((TextView) tabViewChild).setTypeface(myTypeface);
|
((TextView) tabViewChild).setTypeface(myTypeface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// only show Collaborators if you have permission to
|
// Only show collaborators tab, if you have permission to
|
||||||
final View collaboratorTab = vg.getChildAt(8);
|
View collaboratorTab = viewGroup.getChildAt(8);
|
||||||
if(tinyDb.getBoolean("isRepoAdmin") || new Version(tinyDb.getString("giteaVersion")).higherOrEqual("1.12.0")) {
|
|
||||||
|
if(tinyDB.getBoolean("isRepoAdmin") || new Version(tinyDB.getString("giteaVersion")).higherOrEqual("1.12.0")) {
|
||||||
|
|
||||||
collaboratorTab.setVisibility(View.VISIBLE);
|
collaboratorTab.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
tabsCount--;
|
||||||
collaboratorTab.setVisibility(View.GONE);
|
collaboratorTab.setVisibility(View.GONE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ViewPager mViewPager = findViewById(R.id.container);
|
||||||
|
|
||||||
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(tinyDb.getBoolean("enableCounterBadges")) {
|
SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
||||||
|
mViewPager.setAdapter(mSectionsPagerAdapter);
|
||||||
|
|
||||||
|
if(tinyDB.getBoolean("enableCounterBadges")) {
|
||||||
|
|
||||||
@SuppressLint("InflateParams") View tabHeader2 = LayoutInflater.from(this).inflate(R.layout.badge_issue, null);
|
@SuppressLint("InflateParams") View tabHeader2 = LayoutInflater.from(this).inflate(R.layout.badge_issue, null);
|
||||||
textViewBadgeIssue = tabHeader2.findViewById(R.id.counterBadgeIssue);
|
textViewBadgeIssue = tabHeader2.findViewById(R.id.counterBadgeIssue);
|
||||||
@ -221,41 +188,48 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
textViewBadgePull.setVisibility(View.GONE);
|
textViewBadgePull.setVisibility(View.GONE);
|
||||||
textViewBadgeRelease.setVisibility(View.GONE);
|
textViewBadgeRelease.setVisibility(View.GONE);
|
||||||
|
|
||||||
getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName1);
|
getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName);
|
||||||
ColorStateList textColor = tabLayout.getTabTextColors();
|
ColorStateList textColor = tabLayout.getTabTextColors();
|
||||||
|
|
||||||
// issue count
|
// Issue count
|
||||||
if(textViewBadgeIssue.getText() != "") {
|
if(textViewBadgeIssue.getText() != "") {
|
||||||
|
|
||||||
TabLayout.Tab tabOpenIssues = tabLayout.getTabAt(2);
|
TabLayout.Tab tabOpenIssues = tabLayout.getTabAt(2);
|
||||||
Objects.requireNonNull(tabLayout.getTabAt(2)).setCustomView(tabHeader2);
|
Objects.requireNonNull(tabLayout.getTabAt(2)).setCustomView(tabHeader2);
|
||||||
assert tabOpenIssues != null;
|
assert tabOpenIssues != null; // FIXME This should be cleaned up
|
||||||
TextView openIssueTabView = Objects.requireNonNull(tabOpenIssues.getCustomView()).findViewById(R.id.counterBadgeIssueText);
|
TextView openIssueTabView = Objects.requireNonNull(tabOpenIssues.getCustomView()).findViewById(R.id.counterBadgeIssueText);
|
||||||
openIssueTabView.setTextColor(textColor);
|
openIssueTabView.setTextColor(textColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// pull count
|
// Pull request count
|
||||||
if(textViewBadgePull.getText() != "") { // only show if API returned a number
|
if(textViewBadgePull.getText() != "") { // only show if API returned a number
|
||||||
|
|
||||||
Objects.requireNonNull(tabLayout.getTabAt(3)).setCustomView(tabHeader4);
|
Objects.requireNonNull(tabLayout.getTabAt(3)).setCustomView(tabHeader4);
|
||||||
TabLayout.Tab tabOpenPulls = tabLayout.getTabAt(3);
|
TabLayout.Tab tabOpenPulls = tabLayout.getTabAt(3);
|
||||||
assert tabOpenPulls != null;
|
assert tabOpenPulls != null; // FIXME This should be cleaned up
|
||||||
TextView openPullTabView = Objects.requireNonNull(tabOpenPulls.getCustomView()).findViewById(R.id.counterBadgePullText);
|
TextView openPullTabView = Objects.requireNonNull(tabOpenPulls.getCustomView()).findViewById(R.id.counterBadgePullText);
|
||||||
openPullTabView.setTextColor(textColor);
|
openPullTabView.setTextColor(textColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// release count
|
// Release count
|
||||||
if(new Version("1.11.4").less(tinyDb.getString("giteaVersion"))) {
|
if(new Version("1.11.4").less(tinyDB.getString("giteaVersion"))) {
|
||||||
|
|
||||||
if(textViewBadgeRelease.getText() != "") { // only show if API returned a number
|
if(textViewBadgeRelease.getText() != "") { // only show if API returned a number
|
||||||
|
|
||||||
Objects.requireNonNull(tabLayout.getTabAt(5)).setCustomView(tabHeader6);
|
Objects.requireNonNull(tabLayout.getTabAt(5)).setCustomView(tabHeader6);
|
||||||
TabLayout.Tab tabOpenRelease = tabLayout.getTabAt(5);
|
TabLayout.Tab tabOpenRelease = tabLayout.getTabAt(5);
|
||||||
assert tabOpenRelease != null;
|
assert tabOpenRelease != null; // FIXME This should be cleaned up
|
||||||
TextView openReleaseTabView = Objects.requireNonNull(tabOpenRelease.getCustomView()).findViewById(R.id.counterBadgeReleaseText);
|
TextView openReleaseTabView = Objects.requireNonNull(tabOpenRelease.getCustomView()).findViewById(R.id.counterBadgeReleaseText);
|
||||||
openReleaseTabView.setTextColor(textColor);
|
openReleaseTabView.setTextColor(textColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRepositoryStarStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName1);
|
checkRepositoryStarStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName);
|
||||||
checkRepositoryWatchStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName1);
|
checkRepositoryWatchStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,17 +237,10 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
|
|
||||||
super.onResume();
|
super.onResume();
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
|
||||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
|
||||||
final String loginUid = tinyDb.getString("loginUid");
|
|
||||||
String repoFullName = tinyDb.getString("repoFullName");
|
|
||||||
String[] parts = repoFullName.split("/");
|
|
||||||
final String repoOwner = parts[0];
|
|
||||||
final String repoName = parts[1];
|
|
||||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
|
||||||
|
|
||||||
if(tinyDb.getBoolean("enableCounterIssueBadge")) {
|
if(tinyDB.getBoolean("enableCounterIssueBadge")) {
|
||||||
getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName);
|
|
||||||
|
getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -293,27 +260,34 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
|
|
||||||
switch(id) {
|
switch(id) {
|
||||||
|
|
||||||
case android.R.id.home:
|
case android.R.id.home:
|
||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.repoMenu:
|
case R.id.repoMenu:
|
||||||
BottomSheetRepoFragment bottomSheet = new BottomSheetRepoFragment();
|
BottomSheetRepoFragment bottomSheet = new BottomSheetRepoFragment();
|
||||||
bottomSheet.show(getSupportFragmentManager(), "repoBottomSheet");
|
bottomSheet.show(getSupportFragmentManager(), "repoBottomSheet");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.filter:
|
case R.id.filter:
|
||||||
BottomSheetIssuesFilterFragment filterBottomSheet = new BottomSheetIssuesFilterFragment();
|
BottomSheetIssuesFilterFragment filterBottomSheet = new BottomSheetIssuesFilterFragment();
|
||||||
filterBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuBottomSheet");
|
filterBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuBottomSheet");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.filterPr:
|
case R.id.filterPr:
|
||||||
BottomSheetPullRequestFilterFragment filterPrBottomSheet = new BottomSheetPullRequestFilterFragment();
|
BottomSheetPullRequestFilterFragment filterPrBottomSheet = new BottomSheetPullRequestFilterFragment();
|
||||||
filterPrBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuPrBottomSheet");
|
filterPrBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuPrBottomSheet");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.filterMilestone:
|
case R.id.filterMilestone:
|
||||||
BottomSheetMilestonesFilterFragment filterMilestoneBottomSheet = new BottomSheetMilestonesFilterFragment();
|
BottomSheetMilestonesFilterFragment filterMilestoneBottomSheet = new BottomSheetMilestonesFilterFragment();
|
||||||
filterMilestoneBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuMilestoneBottomSheet");
|
filterMilestoneBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuMilestoneBottomSheet");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -321,68 +295,81 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
@Override
|
@Override
|
||||||
public void onButtonClicked(String text) {
|
public void onButtonClicked(String text) {
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
|
||||||
|
|
||||||
switch(text) {
|
switch(text) {
|
||||||
|
|
||||||
case "label":
|
case "label":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, CreateLabelActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, CreateLabelActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "newIssue":
|
case "newIssue":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, CreateIssueActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, CreateIssueActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "newMilestone":
|
case "newMilestone":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, CreateMilestoneActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, CreateMilestoneActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "addCollaborator":
|
case "addCollaborator":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, AddCollaboratorToRepositoryActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, AddCollaboratorToRepositoryActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "createRelease":
|
case "createRelease":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, CreateReleaseActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, CreateReleaseActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "openWebRepo":
|
case "openWebRepo":
|
||||||
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(tinyDb.getString("repoHtmlUrl")));
|
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(tinyDB.getString("repoHtmlUrl")));
|
||||||
startActivity(i);
|
startActivity(i);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "shareRepo":
|
case "shareRepo":
|
||||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
||||||
sharingIntent.setType("text/plain");
|
sharingIntent.setType("text/plain");
|
||||||
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, tinyDb.getString("repoHtmlUrl"));
|
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, tinyDB.getString("repoHtmlUrl"));
|
||||||
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, tinyDb.getString("repoHtmlUrl"));
|
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, tinyDB.getString("repoHtmlUrl"));
|
||||||
startActivity(Intent.createChooser(sharingIntent, tinyDb.getString("repoHtmlUrl")));
|
startActivity(Intent.createChooser(sharingIntent, tinyDB.getString("repoHtmlUrl")));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "newFile":
|
case "newFile":
|
||||||
startActivity(new Intent(RepoDetailActivity.this, CreateFileActivity.class));
|
startActivity(new Intent(RepoDetailActivity.this, CreateFileActivity.class));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "openIssues":
|
case "openIssues":
|
||||||
if(getFragmentRefreshListener() != null) {
|
if(getFragmentRefreshListener() != null) {
|
||||||
getFragmentRefreshListener().onRefresh("open");
|
getFragmentRefreshListener().onRefresh("open");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "closedIssues":
|
case "closedIssues":
|
||||||
if(getFragmentRefreshListener() != null) {
|
if(getFragmentRefreshListener() != null) {
|
||||||
getFragmentRefreshListener().onRefresh("closed");
|
getFragmentRefreshListener().onRefresh("closed");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "openPr":
|
case "openPr":
|
||||||
if(getFragmentRefreshListenerPr() != null) {
|
if(getFragmentRefreshListenerPr() != null) {
|
||||||
getFragmentRefreshListenerPr().onRefresh("open");
|
getFragmentRefreshListenerPr().onRefresh("open");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "closedPr":
|
case "closedPr":
|
||||||
if(getFragmentRefreshListenerPr() != null) {
|
if(getFragmentRefreshListenerPr() != null) {
|
||||||
getFragmentRefreshListenerPr().onRefresh("closed");
|
getFragmentRefreshListenerPr().onRefresh("closed");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "openMilestone":
|
case "openMilestone":
|
||||||
if(getFragmentRefreshListenerMilestone() != null) {
|
if(getFragmentRefreshListenerMilestone() != null) {
|
||||||
getFragmentRefreshListenerMilestone().onRefresh("open");
|
getFragmentRefreshListenerMilestone().onRefresh("open");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "closedMilestone":
|
case "closedMilestone":
|
||||||
if(getFragmentRefreshListenerMilestone() != null) {
|
if(getFragmentRefreshListenerMilestone() != null) {
|
||||||
getFragmentRefreshListenerMilestone().onRefresh("closed");
|
getFragmentRefreshListenerMilestone().onRefresh("closed");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -398,54 +385,58 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
|
||||||
String repoFullName = tinyDb.getString("repoFullName");
|
|
||||||
String[] parts = repoFullName.split("/");
|
|
||||||
String repoOwner = parts[0];
|
|
||||||
String repoName = parts[1];
|
|
||||||
|
|
||||||
Fragment fragment = null;
|
Fragment fragment = null;
|
||||||
|
|
||||||
switch(position) {
|
switch(position) {
|
||||||
case 0: // information
|
|
||||||
return RepoInfoFragment.newInstance(repoOwner, repoName);
|
case 0: // Repository details
|
||||||
case 1: // files
|
return RepoInfoFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
return FilesFragment.newInstance(repoOwner, repoName);
|
|
||||||
case 2: // issues
|
case 1: // Files
|
||||||
|
return FilesFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
|
|
||||||
|
case 2: // Issues
|
||||||
fragment = new IssuesFragment();
|
fragment = new IssuesFragment();
|
||||||
break;
|
break;
|
||||||
case 3: // pull requests
|
|
||||||
|
case 3: // Pull requests
|
||||||
fragment = new PullRequestsFragment();
|
fragment = new PullRequestsFragment();
|
||||||
break;
|
break;
|
||||||
case 4: // branches
|
|
||||||
return BranchesFragment.newInstance(repoOwner, repoName);
|
case 4: // Branches
|
||||||
case 5: // releases
|
return BranchesFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
return ReleasesFragment.newInstance(repoOwner, repoName);
|
|
||||||
case 6: // milestones
|
case 5: // Releases
|
||||||
|
return ReleasesFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
|
|
||||||
|
case 6: // Milestones
|
||||||
fragment = new MilestonesFragment();
|
fragment = new MilestonesFragment();
|
||||||
break;
|
break;
|
||||||
case 7: // labels
|
|
||||||
return LabelsFragment.newInstance(repoOwner, repoName);
|
case 7: // Labels
|
||||||
case 8: // collaborators
|
return LabelsFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
return CollaboratorsFragment.newInstance(repoOwner, repoName);
|
|
||||||
|
case 8: // Collaborators
|
||||||
|
return CollaboratorsFragment.newInstance(repositoryOwner, repositoryName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert fragment != null;
|
assert fragment != null;
|
||||||
return fragment;
|
return fragment;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
|
|
||||||
return 9;
|
return tabsCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getRepoInfo(String instanceUrl, String token, final String owner, String repo) {
|
private void getRepoInfo(String instanceUrl, String token, final String owner, String repo) {
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
|
||||||
|
|
||||||
Call<UserRepositories> call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserRepository(token, owner, repo);
|
Call<UserRepositories> call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserRepository(token, owner, repo);
|
||||||
|
|
||||||
call.enqueue(new Callback<UserRepositories>() {
|
call.enqueue(new Callback<UserRepositories>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -457,20 +448,23 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
|
|
||||||
if(response.code() == 200) {
|
if(response.code() == 200) {
|
||||||
|
|
||||||
if(tinyDb.getBoolean("enableCounterBadges")) {
|
if(tinyDB.getBoolean("enableCounterBadges")) {
|
||||||
assert repoInfo != null;
|
assert repoInfo != null;
|
||||||
|
|
||||||
if(repoInfo.getOpen_issues_count() != null) {
|
if(repoInfo.getOpen_issues_count() != null) {
|
||||||
|
|
||||||
textViewBadgeIssue.setVisibility(View.VISIBLE);
|
textViewBadgeIssue.setVisibility(View.VISIBLE);
|
||||||
textViewBadgeIssue.setText(repoInfo.getOpen_issues_count());
|
textViewBadgeIssue.setText(repoInfo.getOpen_issues_count());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(repoInfo.getOpen_pull_count() != null) {
|
if(repoInfo.getOpen_pull_count() != null) {
|
||||||
|
|
||||||
textViewBadgePull.setVisibility(View.VISIBLE);
|
textViewBadgePull.setVisibility(View.VISIBLE);
|
||||||
textViewBadgePull.setText(repoInfo.getOpen_pull_count());
|
textViewBadgePull.setText(repoInfo.getOpen_pull_count());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(repoInfo.getRelease_count() != null) {
|
if(repoInfo.getRelease_count() != null) {
|
||||||
|
|
||||||
textViewBadgeRelease.setVisibility(View.VISIBLE);
|
textViewBadgeRelease.setVisibility(View.VISIBLE);
|
||||||
textViewBadgeRelease.setText(repoInfo.getRelease_count());
|
textViewBadgeRelease.setText(repoInfo.getRelease_count());
|
||||||
}
|
}
|
||||||
@ -480,6 +474,7 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
Log.e("onFailure", String.valueOf(response.code()));
|
Log.e("onFailure", String.valueOf(response.code()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,17 +492,13 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
|
|
||||||
private void checkRepositoryStarStatus(String instanceUrl, String instanceToken, final String owner, String repo) {
|
private void checkRepositoryStarStatus(String instanceUrl, String instanceToken, final String owner, String repo) {
|
||||||
|
|
||||||
Call<JsonElement> call;
|
Call<JsonElement> call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoStarStatus(instanceToken, owner, repo);
|
||||||
|
|
||||||
call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoStarStatus(instanceToken, owner, repo);
|
|
||||||
|
|
||||||
call.enqueue(new Callback<JsonElement>() {
|
call.enqueue(new Callback<JsonElement>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
tinyDB.putInt("repositoryStarStatus", response.code());
|
||||||
tinyDb.putInt("repositoryStarStatus", response.code());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,22 +516,23 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
Call<WatchInfo> call;
|
Call<WatchInfo> call;
|
||||||
|
|
||||||
call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoWatchStatus(instanceToken, owner, repo);
|
call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoWatchStatus(instanceToken, owner, repo);
|
||||||
|
|
||||||
call.enqueue(new Callback<WatchInfo>() {
|
call.enqueue(new Callback<WatchInfo>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<WatchInfo> call, @NonNull retrofit2.Response<WatchInfo> response) {
|
public void onResponse(@NonNull Call<WatchInfo> call, @NonNull retrofit2.Response<WatchInfo> response) {
|
||||||
|
|
||||||
TinyDB tinyDb = new TinyDB(appCtx);
|
|
||||||
|
|
||||||
if(response.code() == 200) {
|
if(response.code() == 200) {
|
||||||
|
|
||||||
assert response.body() != null;
|
assert response.body() != null;
|
||||||
|
|
||||||
if(response.body().getSubscribed()) {
|
if(response.body().getSubscribed()) {
|
||||||
tinyDb.putBoolean("repositoryWatchStatus", true);
|
tinyDB.putBoolean("repositoryWatchStatus", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tinyDb.putBoolean("repositoryWatchStatus", false);
|
|
||||||
|
tinyDB.putBoolean("repositoryWatchStatus", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -554,4 +546,25 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issues interface
|
||||||
|
public FragmentRefreshListener getFragmentRefreshListener() { return fragmentRefreshListener; }
|
||||||
|
|
||||||
|
public void setFragmentRefreshListener(FragmentRefreshListener fragmentRefreshListener) { this.fragmentRefreshListener = fragmentRefreshListener; }
|
||||||
|
|
||||||
|
public interface FragmentRefreshListener { void onRefresh(String text); }
|
||||||
|
|
||||||
|
// Pull request interface
|
||||||
|
public FragmentRefreshListenerPr getFragmentRefreshListenerPr() { return fragmentRefreshListenerPr; }
|
||||||
|
|
||||||
|
public void setFragmentRefreshListenerPr(FragmentRefreshListenerPr fragmentRefreshListenerPr) { this.fragmentRefreshListenerPr = fragmentRefreshListenerPr; }
|
||||||
|
|
||||||
|
public interface FragmentRefreshListenerPr { void onRefresh(String text); }
|
||||||
|
|
||||||
|
// Milestones interface
|
||||||
|
public FragmentRefreshListenerMilestone getFragmentRefreshListenerMilestone() { return fragmentRefreshListenerMilestone; }
|
||||||
|
|
||||||
|
public void setFragmentRefreshListenerMilestone(FragmentRefreshListenerMilestone fragmentRefreshListenerMilestone) { this.fragmentRefreshListenerMilestone = fragmentRefreshListenerMilestone; }
|
||||||
|
|
||||||
|
public interface FragmentRefreshListenerMilestone { void onRefresh(String text); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user