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:
		| @@ -42,7 +42,6 @@ import org.mian.gitnex.helpers.Authorization; | ||||
| import org.mian.gitnex.helpers.Version; | ||||
| import org.mian.gitnex.models.UserRepositories; | ||||
| import org.mian.gitnex.models.WatchInfo; | ||||
| import org.mian.gitnex.util.AppUtil; | ||||
| import org.mian.gitnex.util.TinyDB; | ||||
| import java.util.Objects; | ||||
| import retrofit2.Call; | ||||
| @@ -63,59 +62,19 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 	private FragmentRefreshListenerPr fragmentRefreshListenerPr; | ||||
| 	private FragmentRefreshListenerMilestone fragmentRefreshListenerMilestone; | ||||
|  | ||||
| 	final Context ctx = this; | ||||
| 	private final Context ctx = this; | ||||
| 	private Context appCtx; | ||||
|  | ||||
| 	// issues interface | ||||
| 	public FragmentRefreshListener getFragmentRefreshListener() { | ||||
| 	private TinyDB tinyDB; | ||||
|  | ||||
| 		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; | ||||
| 	} | ||||
|  | ||||
| 	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); | ||||
|  | ||||
| 	} | ||||
| 	private int tabsCount; | ||||
|  | ||||
| 	@Override | ||||
| 	protected int getLayoutResourceId() { | ||||
| @@ -129,40 +88,32 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 		super.onCreate(savedInstanceState); | ||||
| 		appCtx = getApplicationContext(); | ||||
|  | ||||
| 		TinyDB tinyDb = new TinyDB(appCtx); | ||||
| 		String repoFullName = tinyDb.getString("repoFullName"); | ||||
| 		String[] parts = repoFullName.split("/"); | ||||
| 		String repoName1 = parts[1]; | ||||
| 		tinyDB = new TinyDB(appCtx); | ||||
|  | ||||
| 		final String instanceUrl = tinyDb.getString("instanceUrl"); | ||||
| 		final String repoOwner = parts[0]; | ||||
| 		final String loginUid = tinyDb.getString("loginUid"); | ||||
| 		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); | ||||
| 		String[] repoNameParts = tinyDB.getString("repoFullName").split("/"); | ||||
| 		repositoryOwner = repoNameParts[0]; | ||||
| 		repositoryName = repoNameParts[1]; | ||||
|  | ||||
| 		Toolbar toolbar = findViewById(R.id.toolbar); | ||||
|  | ||||
| 		TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title); | ||||
| 		toolbarTitle.setText(repositoryName); | ||||
|  | ||||
| 		setSupportActionBar(toolbar); | ||||
| 		Objects.requireNonNull(getSupportActionBar()).setTitle(repoName1); | ||||
| 		Objects.requireNonNull(getSupportActionBar()).setTitle(repositoryName); | ||||
| 		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); | ||||
| 		mViewPager.setAdapter(mSectionsPagerAdapter); | ||||
|  | ||||
| 		TabLayout tabLayout = findViewById(R.id.tabs); | ||||
| 		tinyDB.putString("repoIssuesState", "open"); | ||||
| 		tinyDB.putString("repoPrState", "open"); | ||||
| 		tinyDB.putString("milestoneState", "open"); | ||||
|  | ||||
| 		Typeface myTypeface; | ||||
|  | ||||
| 		switch(tinyDb.getInt("customFontId", -1)) { | ||||
| 		switch(tinyDB.getInt("customFontId", -1)) { | ||||
|  | ||||
| 			case 0: | ||||
| 				myTypeface = Typeface.createFromAsset(ctx.getAssets(), "fonts/roboto.ttf"); | ||||
| @@ -179,34 +130,50 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 		} | ||||
|  | ||||
| 		toolbarTitle.setTypeface(myTypeface); | ||||
| 		toolbarTitle.setText(repoName1); | ||||
|  | ||||
| 		ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); | ||||
| 		int tabsCount = vg.getChildCount(); | ||||
| 		TabLayout tabLayout = findViewById(R.id.tabs); | ||||
|  | ||||
| 		ViewGroup viewGroup = (ViewGroup) tabLayout.getChildAt(0); | ||||
| 		tabsCount = viewGroup.getChildCount(); | ||||
|  | ||||
| 		for(int j = 0; j < tabsCount; j++) { | ||||
| 			ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); | ||||
|  | ||||
| 			ViewGroup vgTab = (ViewGroup) viewGroup.getChildAt(j); | ||||
| 			int tabChildCount = vgTab.getChildCount(); | ||||
|  | ||||
| 			for(int i = 0; i < tabChildCount; i++) { | ||||
|  | ||||
| 				View tabViewChild = vgTab.getChildAt(i); | ||||
|  | ||||
| 				if(tabViewChild instanceof TextView) { | ||||
| 					((TextView) tabViewChild).setTypeface(myTypeface); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// only show Collaborators if you have permission to | ||||
| 		final View collaboratorTab = vg.getChildAt(8); | ||||
| 		if(tinyDb.getBoolean("isRepoAdmin") || new Version(tinyDb.getString("giteaVersion")).higherOrEqual("1.12.0")) { | ||||
| 		// Only show collaborators tab, if you have permission to | ||||
| 		View collaboratorTab = viewGroup.getChildAt(8); | ||||
|  | ||||
| 		if(tinyDB.getBoolean("isRepoAdmin") || new Version(tinyDB.getString("giteaVersion")).higherOrEqual("1.12.0")) { | ||||
|  | ||||
| 			collaboratorTab.setVisibility(View.VISIBLE); | ||||
| 		} | ||||
| 		else { | ||||
|  | ||||
| 			tabsCount--; | ||||
| 			collaboratorTab.setVisibility(View.GONE); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		ViewPager mViewPager = findViewById(R.id.container); | ||||
|  | ||||
| 		mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); | ||||
| 		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); | ||||
| 			textViewBadgeIssue = tabHeader2.findViewById(R.id.counterBadgeIssue); | ||||
| @@ -221,41 +188,48 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 			textViewBadgePull.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(); | ||||
|  | ||||
| 			// issue count | ||||
| 			// Issue count | ||||
| 			if(textViewBadgeIssue.getText() != "") { | ||||
|  | ||||
| 				TabLayout.Tab tabOpenIssues = tabLayout.getTabAt(2); | ||||
| 				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); | ||||
| 				openIssueTabView.setTextColor(textColor); | ||||
|  | ||||
| 			} | ||||
|  | ||||
| 			// pull count | ||||
| 			// Pull request count | ||||
| 			if(textViewBadgePull.getText() != "") { // only show if API returned a number | ||||
|  | ||||
| 				Objects.requireNonNull(tabLayout.getTabAt(3)).setCustomView(tabHeader4); | ||||
| 				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); | ||||
| 				openPullTabView.setTextColor(textColor); | ||||
|  | ||||
| 			} | ||||
|  | ||||
| 			// release count | ||||
| 			if(new Version("1.11.4").less(tinyDb.getString("giteaVersion"))) { | ||||
| 			// Release count | ||||
| 			if(new Version("1.11.4").less(tinyDB.getString("giteaVersion"))) { | ||||
|  | ||||
| 				if(textViewBadgeRelease.getText() != "") { // only show if API returned a number | ||||
|  | ||||
| 					Objects.requireNonNull(tabLayout.getTabAt(5)).setCustomView(tabHeader6); | ||||
| 					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); | ||||
| 					openReleaseTabView.setTextColor(textColor); | ||||
|  | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		checkRepositoryStarStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName1); | ||||
| 		checkRepositoryWatchStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName1); | ||||
| 		checkRepositoryStarStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName); | ||||
| 		checkRepositoryWatchStatus(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| @@ -263,17 +237,10 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 	public void 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")) { | ||||
| 			getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName); | ||||
| 		if(tinyDB.getBoolean("enableCounterIssueBadge")) { | ||||
|  | ||||
| 			getRepoInfo(instanceUrl, Authorization.returnAuthentication(ctx, loginUid, instanceToken), repositoryOwner, repositoryName); | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| @@ -293,27 +260,34 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 		int id = item.getItemId(); | ||||
|  | ||||
| 		switch(id) { | ||||
|  | ||||
| 			case android.R.id.home: | ||||
| 				finish(); | ||||
| 				return true; | ||||
|  | ||||
| 			case R.id.repoMenu: | ||||
| 				BottomSheetRepoFragment bottomSheet = new BottomSheetRepoFragment(); | ||||
| 				bottomSheet.show(getSupportFragmentManager(), "repoBottomSheet"); | ||||
| 				return true; | ||||
|  | ||||
| 			case R.id.filter: | ||||
| 				BottomSheetIssuesFilterFragment filterBottomSheet = new BottomSheetIssuesFilterFragment(); | ||||
| 				filterBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuBottomSheet"); | ||||
| 				return true; | ||||
|  | ||||
| 			case R.id.filterPr: | ||||
| 				BottomSheetPullRequestFilterFragment filterPrBottomSheet = new BottomSheetPullRequestFilterFragment(); | ||||
| 				filterPrBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuPrBottomSheet"); | ||||
| 				return true; | ||||
|  | ||||
| 			case R.id.filterMilestone: | ||||
| 				BottomSheetMilestonesFilterFragment filterMilestoneBottomSheet = new BottomSheetMilestonesFilterFragment(); | ||||
| 				filterMilestoneBottomSheet.show(getSupportFragmentManager(), "repoFilterMenuMilestoneBottomSheet"); | ||||
| 				return true; | ||||
|  | ||||
| 			default: | ||||
| 				return super.onOptionsItemSelected(item); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| @@ -321,68 +295,81 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 	@Override | ||||
| 	public void onButtonClicked(String text) { | ||||
|  | ||||
| 		TinyDB tinyDb = new TinyDB(appCtx); | ||||
|  | ||||
| 		switch(text) { | ||||
|  | ||||
| 			case "label": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, CreateLabelActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			case "newIssue": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, CreateIssueActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			case "newMilestone": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, CreateMilestoneActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			case "addCollaborator": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, AddCollaboratorToRepositoryActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			case "createRelease": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, CreateReleaseActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			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); | ||||
| 				break; | ||||
|  | ||||
| 			case "shareRepo": | ||||
| 				Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); | ||||
| 				sharingIntent.setType("text/plain"); | ||||
| 				sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, tinyDb.getString("repoHtmlUrl")); | ||||
| 				sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, tinyDb.getString("repoHtmlUrl")); | ||||
| 				startActivity(Intent.createChooser(sharingIntent, tinyDb.getString("repoHtmlUrl"))); | ||||
| 				sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, tinyDB.getString("repoHtmlUrl")); | ||||
| 				sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, tinyDB.getString("repoHtmlUrl")); | ||||
| 				startActivity(Intent.createChooser(sharingIntent, tinyDB.getString("repoHtmlUrl"))); | ||||
| 				break; | ||||
|  | ||||
| 			case "newFile": | ||||
| 				startActivity(new Intent(RepoDetailActivity.this, CreateFileActivity.class)); | ||||
| 				break; | ||||
|  | ||||
| 			case "openIssues": | ||||
| 				if(getFragmentRefreshListener() != null) { | ||||
| 					getFragmentRefreshListener().onRefresh("open"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 			case "closedIssues": | ||||
| 				if(getFragmentRefreshListener() != null) { | ||||
| 					getFragmentRefreshListener().onRefresh("closed"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 			case "openPr": | ||||
| 				if(getFragmentRefreshListenerPr() != null) { | ||||
| 					getFragmentRefreshListenerPr().onRefresh("open"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 			case "closedPr": | ||||
| 				if(getFragmentRefreshListenerPr() != null) { | ||||
| 					getFragmentRefreshListenerPr().onRefresh("closed"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 			case "openMilestone": | ||||
| 				if(getFragmentRefreshListenerMilestone() != null) { | ||||
| 					getFragmentRefreshListenerMilestone().onRefresh("open"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 			case "closedMilestone": | ||||
| 				if(getFragmentRefreshListenerMilestone() != null) { | ||||
| 					getFragmentRefreshListenerMilestone().onRefresh("closed"); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| @@ -398,54 +385,58 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
| 		@Override | ||||
| 		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; | ||||
|  | ||||
| 			switch(position) { | ||||
| 				case 0: // information | ||||
| 					return RepoInfoFragment.newInstance(repoOwner, repoName); | ||||
| 				case 1: // files | ||||
| 					return FilesFragment.newInstance(repoOwner, repoName); | ||||
| 				case 2: // issues | ||||
|  | ||||
| 				case 0: // Repository details | ||||
| 					return RepoInfoFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 				case 1: // Files | ||||
| 					return FilesFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 				case 2: // Issues | ||||
| 					fragment = new IssuesFragment(); | ||||
| 					break; | ||||
| 				case 3: // pull requests | ||||
|  | ||||
| 				case 3: // Pull requests | ||||
| 					fragment = new PullRequestsFragment(); | ||||
| 					break; | ||||
| 				case 4: // branches | ||||
| 					return BranchesFragment.newInstance(repoOwner, repoName); | ||||
| 				case 5: // releases | ||||
| 					return ReleasesFragment.newInstance(repoOwner, repoName); | ||||
| 				case 6: // milestones | ||||
|  | ||||
| 				case 4: // Branches | ||||
| 					return BranchesFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 				case 5: // Releases | ||||
| 					return ReleasesFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 				case 6: // Milestones | ||||
| 					fragment = new MilestonesFragment(); | ||||
| 					break; | ||||
| 				case 7: // labels | ||||
| 					return LabelsFragment.newInstance(repoOwner, repoName); | ||||
| 				case 8: // collaborators | ||||
| 					return CollaboratorsFragment.newInstance(repoOwner, repoName); | ||||
|  | ||||
| 				case 7: // Labels | ||||
| 					return LabelsFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 				case 8: // Collaborators | ||||
| 					return CollaboratorsFragment.newInstance(repositoryOwner, repositoryName); | ||||
|  | ||||
| 			} | ||||
|  | ||||
| 			assert fragment != null; | ||||
| 			return fragment; | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		@Override | ||||
| 		public int getCount() { | ||||
|  | ||||
| 			return 9; | ||||
| 			return tabsCount; | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	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.enqueue(new Callback<UserRepositories>() { | ||||
|  | ||||
| 			@Override | ||||
| @@ -457,20 +448,23 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
|  | ||||
| 					if(response.code() == 200) { | ||||
|  | ||||
| 						if(tinyDb.getBoolean("enableCounterBadges")) { | ||||
| 						if(tinyDB.getBoolean("enableCounterBadges")) { | ||||
| 							assert repoInfo != null; | ||||
|  | ||||
| 							if(repoInfo.getOpen_issues_count() != null) { | ||||
|  | ||||
| 								textViewBadgeIssue.setVisibility(View.VISIBLE); | ||||
| 								textViewBadgeIssue.setText(repoInfo.getOpen_issues_count()); | ||||
| 							} | ||||
|  | ||||
| 							if(repoInfo.getOpen_pull_count() != null) { | ||||
|  | ||||
| 								textViewBadgePull.setVisibility(View.VISIBLE); | ||||
| 								textViewBadgePull.setText(repoInfo.getOpen_pull_count()); | ||||
| 							} | ||||
|  | ||||
| 							if(repoInfo.getRelease_count() != null) { | ||||
|  | ||||
| 								textViewBadgeRelease.setVisibility(View.VISIBLE); | ||||
| 								textViewBadgeRelease.setText(repoInfo.getRelease_count()); | ||||
| 							} | ||||
| @@ -480,6 +474,7 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF | ||||
|  | ||||
| 				} | ||||
| 				else { | ||||
|  | ||||
| 					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) { | ||||
|  | ||||
| 		Call<JsonElement> call; | ||||
|  | ||||
| 		call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoStarStatus(instanceToken, owner, repo); | ||||
|  | ||||
| 		Call<JsonElement> call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoStarStatus(instanceToken, owner, repo); | ||||
| 		call.enqueue(new Callback<JsonElement>() { | ||||
|  | ||||
| 			@Override | ||||
| 			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 = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().checkRepoWatchStatus(instanceToken, owner, repo); | ||||
|  | ||||
| 		call.enqueue(new Callback<WatchInfo>() { | ||||
|  | ||||
| 			@Override | ||||
| 			public void onResponse(@NonNull Call<WatchInfo> call, @NonNull retrofit2.Response<WatchInfo> response) { | ||||
|  | ||||
| 				TinyDB tinyDb = new TinyDB(appCtx); | ||||
|  | ||||
| 				if(response.code() == 200) { | ||||
|  | ||||
| 					assert response.body() != null; | ||||
|  | ||||
| 					if(response.body().getSubscribed()) { | ||||
| 						tinyDb.putBoolean("repositoryWatchStatus", true); | ||||
| 						tinyDB.putBoolean("repositoryWatchStatus", true); | ||||
| 					} | ||||
|  | ||||
| 				} | ||||
| 				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); } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user