Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
fe22d8ab42 | |||
d16b1580dd |
@ -6,8 +6,8 @@ android {
|
|||||||
applicationId "org.mian.gitnex"
|
applicationId "org.mian.gitnex"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 91
|
versionCode 90
|
||||||
versionName "2.4.1"
|
versionName "2.4.0"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
@ -32,7 +32,6 @@ import org.mian.gitnex.util.AppUtil;
|
|||||||
import org.mian.gitnex.util.TinyDB;
|
import org.mian.gitnex.util.TinyDB;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -285,7 +284,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
|
|||||||
|
|
||||||
if(appUtil.checkIntegers(loginOTP_)) {
|
if(appUtil.checkIntegers(loginOTP_)) {
|
||||||
|
|
||||||
loginOTP = Integer.parseInt(loginOTP_);
|
loginOTP = Integer.valueOf(loginOTP_);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@ -531,7 +530,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
|
|||||||
|
|
||||||
private void letTheUserIn(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP) {
|
private void letTheUserIn(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP) {
|
||||||
|
|
||||||
final String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8);
|
final String credential = Credentials.basic(loginUid, loginPass);
|
||||||
|
|
||||||
Call<List<UserTokens>> call;
|
Call<List<UserTokens>> call;
|
||||||
if(loginOTP != 0) {
|
if(loginOTP != 0) {
|
||||||
|
@ -52,7 +52,6 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
private TextView noDataIssuesClosed;
|
private TextView noDataIssuesClosed;
|
||||||
private String issueState = "closed";
|
private String issueState = "closed";
|
||||||
private int resultLimit = 50;
|
private int resultLimit = 50;
|
||||||
private String requestType = "issues";
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
@ -88,7 +87,7 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
swipeRefresh.setRefreshing(false);
|
swipeRefresh.setRefreshing(false);
|
||||||
loadInitial(instanceToken, repoOwner, repoName, issueState, resultLimit, requestType);
|
loadInitial(instanceToken, repoOwner, repoName, issueState, resultLimit);
|
||||||
adapterClosed.notifyDataChanged();
|
adapterClosed.notifyDataChanged();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -107,7 +106,7 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
if(issuesListClosed.size() == 10 || pageSize == 10) {
|
if(issuesListClosed.size() == 10 || pageSize == 10) {
|
||||||
|
|
||||||
int page = (issuesListClosed.size() + 10) / 10;
|
int page = (issuesListClosed.size() + 10) / 10;
|
||||||
loadMore(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, page, issueState, resultLimit, requestType);
|
loadMore(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, page, issueState, resultLimit);
|
||||||
|
|
||||||
}
|
}
|
||||||
/*else {
|
/*else {
|
||||||
@ -126,7 +125,7 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
recyclerViewClosed.setAdapter(adapterClosed);
|
recyclerViewClosed.setAdapter(adapterClosed);
|
||||||
|
|
||||||
apiClosed = IssuesService.createService(ApiInterface.class, instanceUrl, getContext());
|
apiClosed = IssuesService.createService(ApiInterface.class, instanceUrl, getContext());
|
||||||
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, issueState, resultLimit, requestType);
|
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, issueState, resultLimit);
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
|
||||||
@ -146,16 +145,16 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
|
|
||||||
if(tinyDb.getBoolean("resumeClosedIssues")) {
|
if(tinyDb.getBoolean("resumeClosedIssues")) {
|
||||||
|
|
||||||
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, issueState, resultLimit, requestType);
|
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, issueState, resultLimit);
|
||||||
tinyDb.putBoolean("resumeClosedIssues", false);
|
tinyDb.putBoolean("resumeClosedIssues", false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadInitial(String token, String repoOwner, String repoName, String issueState, int resultLimit, String requestType) {
|
private void loadInitial(String token, String repoOwner, String repoName, String issueState, int resultLimit) {
|
||||||
|
|
||||||
Call<List<Issues>> call = apiClosed.getClosedIssues(token, repoOwner, repoName, 1, issueState, resultLimit, requestType);
|
Call<List<Issues>> call = apiClosed.getClosedIssues(token, repoOwner, repoName, 1, issueState, resultLimit);
|
||||||
|
|
||||||
call.enqueue(new Callback<List<Issues>>() {
|
call.enqueue(new Callback<List<Issues>>() {
|
||||||
|
|
||||||
@ -195,13 +194,13 @@ public class ClosedIssuesFragment extends Fragment {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadMore(String token, String repoOwner, String repoName, int page, String issueState, int resultLimit, String requestType){
|
private void loadMore(String token, String repoOwner, String repoName, int page, String issueState, int resultLimit){
|
||||||
|
|
||||||
//add loading progress view
|
//add loading progress view
|
||||||
issuesListClosed.add(new Issues("load"));
|
issuesListClosed.add(new Issues("load"));
|
||||||
adapterClosed.notifyItemInserted((issuesListClosed.size() - 1));
|
adapterClosed.notifyItemInserted((issuesListClosed.size() - 1));
|
||||||
|
|
||||||
Call<List<Issues>> call = apiClosed.getClosedIssues(token, repoOwner, repoName, page, issueState, resultLimit, requestType);
|
Call<List<Issues>> call = apiClosed.getClosedIssues(token, repoOwner, repoName, page, issueState, resultLimit);
|
||||||
|
|
||||||
call.enqueue(new Callback<List<Issues>>() {
|
call.enqueue(new Callback<List<Issues>>() {
|
||||||
|
|
||||||
|
@ -158,10 +158,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
|
|||||||
String filterDir = fileStructure.getText().toString();
|
String filterDir = fileStructure.getText().toString();
|
||||||
String result = filterDir.substring(0, filterDir.indexOf(item.getSelectedItem()));
|
String result = filterDir.substring(0, filterDir.indexOf(item.getSelectedItem()));
|
||||||
fileStructure.setText(result + item.getSelectedItem());
|
fileStructure.setText(result + item.getSelectedItem());
|
||||||
|
fetchDataAsyncSub(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, finalDirName_);
|
||||||
String currentIndex = (result + item.getSelectedItem()).substring(1);
|
|
||||||
|
|
||||||
fetchDataAsyncSub(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, currentIndex);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +51,6 @@ public class IssuesFragment extends Fragment {
|
|||||||
private int pageSize = 1;
|
private int pageSize = 1;
|
||||||
private TextView noDataIssues;
|
private TextView noDataIssues;
|
||||||
private int resultLimit = 50;
|
private int resultLimit = 50;
|
||||||
private String requestType = "issues";
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
@ -87,7 +86,7 @@ public class IssuesFragment extends Fragment {
|
|||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
swipeRefresh.setRefreshing(false);
|
swipeRefresh.setRefreshing(false);
|
||||||
loadInitial(instanceToken, repoOwner, repoName, resultLimit, requestType);
|
loadInitial(instanceToken, repoOwner, repoName, resultLimit);
|
||||||
adapter.notifyDataChanged();
|
adapter.notifyDataChanged();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -106,7 +105,7 @@ public class IssuesFragment extends Fragment {
|
|||||||
if(issuesList.size() == 10 || pageSize == 10) {
|
if(issuesList.size() == 10 || pageSize == 10) {
|
||||||
|
|
||||||
int page = (issuesList.size() + 10) / 10;
|
int page = (issuesList.size() + 10) / 10;
|
||||||
loadMore(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, page, resultLimit, requestType);
|
loadMore(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, page, resultLimit);
|
||||||
|
|
||||||
}
|
}
|
||||||
/*else {
|
/*else {
|
||||||
@ -125,7 +124,7 @@ public class IssuesFragment extends Fragment {
|
|||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
api = IssuesService.createService(ApiInterface.class, instanceUrl, getContext());
|
api = IssuesService.createService(ApiInterface.class, instanceUrl, getContext());
|
||||||
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, resultLimit, requestType);
|
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, resultLimit);
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
|
||||||
@ -145,16 +144,16 @@ public class IssuesFragment extends Fragment {
|
|||||||
|
|
||||||
if(tinyDb.getBoolean("resumeIssues")) {
|
if(tinyDb.getBoolean("resumeIssues")) {
|
||||||
|
|
||||||
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, resultLimit, requestType);
|
loadInitial(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, resultLimit);
|
||||||
tinyDb.putBoolean("resumeIssues", false);
|
tinyDb.putBoolean("resumeIssues", false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadInitial(String token, String repoOwner, String repoName, int resultLimit, String requestType) {
|
private void loadInitial(String token, String repoOwner, String repoName, int resultLimit) {
|
||||||
|
|
||||||
Call<List<Issues>> call = api.getIssues(token, repoOwner, repoName, 1, resultLimit, requestType);
|
Call<List<Issues>> call = api.getIssues(token, repoOwner, repoName, 1, resultLimit);
|
||||||
|
|
||||||
call.enqueue(new Callback<List<Issues>>() {
|
call.enqueue(new Callback<List<Issues>>() {
|
||||||
|
|
||||||
@ -194,13 +193,13 @@ public class IssuesFragment extends Fragment {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadMore(String token, String repoOwner, String repoName, int page, int resultLimit, String requestType){
|
private void loadMore(String token, String repoOwner, String repoName, int page, int resultLimit){
|
||||||
|
|
||||||
//add loading progress view
|
//add loading progress view
|
||||||
issuesList.add(new Issues("load"));
|
issuesList.add(new Issues("load"));
|
||||||
adapter.notifyItemInserted((issuesList.size() - 1));
|
adapter.notifyItemInserted((issuesList.size() - 1));
|
||||||
|
|
||||||
Call<List<Issues>> call = api.getIssues(token, repoOwner, repoName, page, resultLimit, requestType);
|
Call<List<Issues>> call = api.getIssues(token, repoOwner, repoName, page, resultLimit);
|
||||||
|
|
||||||
call.enqueue(new Callback<List<Issues>>() {
|
call.enqueue(new Callback<List<Issues>>() {
|
||||||
|
|
||||||
|
@ -90,10 +90,10 @@ public interface ApiInterface {
|
|||||||
Call<UserRepositories> getUserRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
Call<UserRepositories> getUserRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||||
|
|
||||||
@GET("repos/{owner}/{repo}/issues") // get issues by repo
|
@GET("repos/{owner}/{repo}/issues") // get issues by repo
|
||||||
Call<List<Issues>> getIssues(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("limit") int limit, @Query("type") String requestType);
|
Call<List<Issues>> getIssues(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("limit") int limit);
|
||||||
|
|
||||||
@GET("repos/{owner}/{repo}/issues") // get closed issues by repo
|
@GET("repos/{owner}/{repo}/issues") // get closed issues by repo
|
||||||
Call<List<Issues>> getClosedIssues(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("state") String issueState, @Query("limit") int limit, @Query("type") String requestType);
|
Call<List<Issues>> getClosedIssues(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("state") String issueState, @Query("limit") int limit);
|
||||||
|
|
||||||
@GET("repos/{owner}/{repo}/issues/{index}") // get issue by id
|
@GET("repos/{owner}/{repo}/issues/{index}") // get issue by id
|
||||||
Call<Issues> getIssueByIndex(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
|
Call<Issues> getIssueByIndex(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
2.4.1
|
|
||||||
Improvement: Show issues only in Issues Tabs
|
|
||||||
Bugfix: Files breadcrumb navigation links
|
|
||||||
Bugfix: Login with special characters
|
|
||||||
|
|
||||||
2.4.0
|
|
||||||
New: Light theme (choose from settings)
|
|
||||||
New: Download files in Fileviewer (need write permissions)
|
|
||||||
New: Custom fonts (choose from settings)
|
|
||||||
New: PDF support in Fileviewer
|
|
||||||
New: Night mode in PDF (Fileviewer)
|
|
||||||
New: Default list of repositories in Explore screen
|
|
||||||
New: Latvian language support
|
|
||||||
|
|
||||||
For more, check the release notes.
|
|
||||||
https://gitea.com/gitnex/GitNex/releases
|
|
Reference in New Issue
Block a user