Compare commits

...

14 Commits
4.0.0 ... 2.5.1

Author SHA1 Message Date
b31e2973c2 Merge pull request 'Release 2.5.1' (#479) from prepare-release-2.5.1 into release-2.5
Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/479
2020-04-30 09:36:00 +00:00
63f03db21b Release 2.5.1 2020-04-30 14:30:18 +05:00
7c90a32de7 Disable Code Highliging in File View to avoid crashes on Android 5 and 6 (#476)
Quick fix for crashes on Android 5 and 6 in file viewer using highlightjs

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/476
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-28 22:56:31 +00:00
0bc4b6fd10 Merge pull request 'Fix the context bug (#470)' (#471) from backport_470-ctx-fix into release-2.5
Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/471
Reviewed-by: M M Arif <mmarif@swatian.com>
2020-04-28 10:52:15 +00:00
e8ab396e43 Fix the context bug (#470)
Fix the context bug. done in activities

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/470
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-28 12:37:24 +02:00
83911da86f Temporary fix for data scrambling in diff. (#465)
Temporary fix for data scrambling in diff.

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/465
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-27 20:32:51 +00:00
78f8a3d1c7 Fix share repo url (#456)
Fix share repo url

Co-authored-by: 6543 <6543@noreply.gitea.io>
Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/456
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-26 11:07:37 +00:00
e27e29b7ae [Backport] Notification icons (#459)
backport notification icons

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/459
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-26 10:58:06 +00:00
e8c25fca2a [Bug] Crash in issues fragment (#444)
Fixed #443

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/444
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-23 15:08:53 +00:00
3ddf978bf0 Merge pull request 'prepare release 2.5' (#434) from prepare-release-2.5 into release-2.5
Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/434
2020-04-21 16:02:15 +00:00
bb8cc3ff6e prepare release 2.5 2020-04-21 19:19:16 +05:00
e9eef8fcbf [Backport] Crowdin [2020-04-21] (#432)
Merge branch 'release-2.5' into backport_431

Update from Crowdin

Co-authored-by: 6543 <6543@obermui.de>
Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/432
Reviewed-by: M M Arif <mmarif@swatian.com>
2020-04-21 13:54:07 +00:00
eba170f7e9 Shuffle tabs, add images (#430)
update images
workaround for #414 (shuffle tabs)

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/430
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-21 08:50:51 +00:00
c2b316446c #427 Dismiss bottom sheet on subscribe/unsubscribe to issue & Fix (#429)
Dismiss bottom sheet on subscribe/unsubscribe to issue: Does not really fix the issue as there is way to handle this without a proper call.
And dismiss does not work properly either.

But added few improvements and fixed close/reopen issue along the way.

Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/429
Reviewed-by: 6543 <6543@noreply.gitea.io>
2020-04-18 14:21:48 +00:00
51 changed files with 442 additions and 210 deletions

View File

@ -6,8 +6,8 @@ android {
applicationId "org.mian.gitnex"
minSdkVersion 21
targetSdkVersion 29
versionCode 104
versionName "2.5.0-rc4"
versionCode 251
versionName "2.5.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {

View File

@ -120,11 +120,18 @@ public class IssueActions {
tinyDb.putBoolean("resumeIssues", true);
tinyDb.putBoolean("resumeClosedIssues", true);
if(issueState.equals("closed")) {
Toasty.info(ctx, ctx.getString(R.string.issueStateClosed));
tinyDb.putString("issueState", "closed");
}
else if(issueState.equals("open")) {
Toasty.info(ctx, ctx.getString(R.string.issueStateReopened));
tinyDb.putString("issueState", "open");
}
}
@ -191,9 +198,14 @@ public class IssueActions {
if(response.isSuccessful()) {
Toasty.info(ctx, ctx.getString(R.string.issueSubscribtion));
subscribeIssue.setVisibility(View.GONE);
unsubscribeIssue.setVisibility(View.VISIBLE);
if(response.code() == 201) {
unsubscribeIssue.setVisibility(View.VISIBLE);
subscribeIssue.setVisibility(View.GONE);
Toasty.info(ctx, ctx.getString(R.string.issueSubscribtion));
tinyDB.putString("issueSubscriptionState", "unsubscribeToIssue");
}
}
else if(response.code() == 401) {
@ -248,9 +260,14 @@ public class IssueActions {
if(response.isSuccessful()) {
Toasty.info(ctx, ctx.getString(R.string.issueUnsubscribtion));
unsubscribeIssue.setVisibility(View.GONE);
subscribeIssue.setVisibility(View.VISIBLE);
if(response.code() == 201) {
unsubscribeIssue.setVisibility(View.GONE);
subscribeIssue.setVisibility(View.VISIBLE);
Toasty.info(ctx, ctx.getString(R.string.issueUnsubscribtion));
tinyDB.putString("issueSubscriptionState", "subscribeToIssue");
}
}
else if(response.code() == 401) {

View File

@ -19,7 +19,7 @@ import org.mian.gitnex.util.TinyDB;
* Author M M Arif
*/
@AcraNotification(resIcon = R.mipmap.app_logo,
@AcraNotification(resIcon = R.drawable.gitnex_transparent,
resTitle = R.string.crashTitle,
resChannelName = R.string.setCrashReports,
resText = R.string.crashMessage)

View File

@ -293,7 +293,7 @@ public class CreateFileActivity extends BaseActivity {
}
}
ArrayAdapter<Branches> adapter = new ArrayAdapter<>(getApplicationContext(),
ArrayAdapter<Branches> adapter = new ArrayAdapter<>(CreateFileActivity.this,
R.layout.spinner_item, branchesList);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -367,7 +367,7 @@ public class CreateIssueActivity extends BaseActivity implements View.OnClickLis
}
}
ArrayAdapter<Milestones> adapter = new ArrayAdapter<>(getApplicationContext(),
ArrayAdapter<Milestones> adapter = new ArrayAdapter<>(CreateIssueActivity.this,
R.layout.spinner_item, milestonesList);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -260,7 +260,7 @@ public class CreateReleaseActivity extends BaseActivity {
}
}
ArrayAdapter<Branches> adapter = new ArrayAdapter<>(getApplicationContext(),
ArrayAdapter<Branches> adapter = new ArrayAdapter<>(CreateReleaseActivity.this,
R.layout.spinner_item, branchesList);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -283,7 +283,7 @@ public class CreateRepoActivity extends BaseActivity {
}
}
ArrayAdapter<OrgOwner> adapter = new ArrayAdapter<>(getApplicationContext(),
ArrayAdapter<OrgOwner> adapter = new ArrayAdapter<>(CreateRepoActivity.this,
R.layout.spinner_item, organizationsList);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -388,7 +388,7 @@ public class EditIssueActivity extends BaseActivity implements View.OnClickListe
}
}
ArrayAdapter<Milestones> adapter_ = new ArrayAdapter<>(getApplicationContext(),
ArrayAdapter<Milestones> adapter_ = new ArrayAdapter<>(EditIssueActivity.this,
R.layout.spinner_item, milestonesList);
adapter_.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -1,5 +1,6 @@
package org.mian.gitnex.activities;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.BitmapFactory;
@ -13,6 +14,7 @@ import android.text.method.ScrollingMovementMethod;
import android.util.Base64;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@ -57,7 +59,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
private View.OnClickListener onClickListener;
private TextView singleFileContents;
private LinearLayout singleFileContentsFrame;
private HighlightJsView singleCodeContents;
private LinearLayout highlightJs;
//private HighlightJsView singleCodeContents;
private PhotoView imageView;
final Context ctx = this;
private ProgressBar mProgressBar;
@ -92,7 +95,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
ImageView closeActivity = findViewById(R.id.close);
singleFileContents = findViewById(R.id.singleFileContents);
singleCodeContents = findViewById(R.id.singleCodeContents);
highlightJs = findViewById(R.id.highlightJs);
//singleCodeContents = findViewById(R.id.singleCodeContents);
imageView = findViewById(R.id.imageView);
mProgressBar = findViewById(R.id.progress_bar);
pdfView = findViewById(R.id.pdfView);
@ -157,7 +161,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
if(appUtil.imageExtension(fileExtension)) { // file is image
singleFileContentsFrame.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.GONE);
highlightJs.setVisibility(View.GONE);
//singleCodeContents.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
@ -168,40 +173,59 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
}
else if(appUtil.sourceCodeExtension(fileExtension)) { // file is sourcecode
imageView.setVisibility(View.GONE);
singleFileContentsFrame.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.VISIBLE);
imageView.setVisibility(View.GONE);
if(Build.VERSION.SDK_INT > 23) {
highlightJs.setVisibility(View.VISIBLE);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
assert inflater != null;
@SuppressLint("InflateParams") View mView = inflater.inflate(R.layout.custom_highlightjs, null);
HighlightJsView singleCodeContents = mView.findViewById(R.id.singleCodeContents);
highlightJs.addView(mView);
singleFileContentsFrame.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.VISIBLE);
switch(tinyDb.getInt("fileviewerSourceCodeThemeId")) {
case 1:
singleCodeContents.setTheme(Theme.ARDUINO_LIGHT);
break;
case 2:
singleCodeContents.setTheme(Theme.GITHUB);
break;
case 3:
singleCodeContents.setTheme(Theme.FAR);
break;
case 4:
singleCodeContents.setTheme(Theme.IR_BLACK);
break;
case 5:
singleCodeContents.setTheme(Theme.ANDROID_STUDIO);
break;
default:
singleCodeContents.setTheme(Theme.MONOKAI_SUBLIME);
}
singleCodeContents.setShowLineNumbers(true);
singleCodeContents.setSource(appUtil.decodeBase64(response.body().getContent()));
switch(tinyDb.getInt("fileviewerSourceCodeThemeId")) {
case 1:
singleCodeContents.setTheme(Theme.ARDUINO_LIGHT);
break;
case 2:
singleCodeContents.setTheme(Theme.GITHUB);
break;
case 3:
singleCodeContents.setTheme(Theme.FAR);
break;
case 4:
singleCodeContents.setTheme(Theme.IR_BLACK);
break;
case 5:
singleCodeContents.setTheme(Theme.ANDROID_STUDIO);
break;
default:
singleCodeContents.setTheme(Theme.MONOKAI_SUBLIME);
}
else {
singleCodeContents.setShowLineNumbers(true);
singleCodeContents.setSource(appUtil.decodeBase64(response.body().getContent()));
singleFileContents.setVisibility(View.VISIBLE);
singleFileContents.setText(appUtil.decodeBase64(response.body().getContent()));
}
}
else if(appUtil.pdfExtension(fileExtension)) { // file is pdf
imageView.setVisibility(View.GONE);
singleFileContentsFrame.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.GONE);
highlightJs.setVisibility(View.GONE);
//singleCodeContents.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.VISIBLE);
pdfNightMode = tinyDb.getBoolean("enablePdfMode");
@ -213,7 +237,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
else if(appUtil.excludeFilesInFileViewerExtension(fileExtension)) { // files need to be excluded
imageView.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.GONE);
highlightJs.setVisibility(View.GONE);
//singleCodeContents.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.GONE);
singleFileContentsFrame.setVisibility(View.VISIBLE);
@ -225,7 +250,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
else { // file type not known - plain text view
imageView.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.GONE);
highlightJs.setVisibility(View.GONE);
//singleCodeContents.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.GONE);
singleFileContentsFrame.setVisibility(View.VISIBLE);

View File

@ -87,7 +87,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Resources res = getResources();
String[] allProtocols = res.getStringArray(R.array.protocolValues);
final ArrayAdapter<String> adapterProtocols = new ArrayAdapter<String>(Objects.requireNonNull(getApplicationContext()),
final ArrayAdapter<String> adapterProtocols = new ArrayAdapter<String>(LoginActivity.this,
R.layout.spinner_item, allProtocols);
adapterProtocols.setDropDownViewResource(R.layout.spinner_dropdown_item);

View File

@ -143,7 +143,7 @@ public class MergePullRequestActivity extends BaseActivity {
mergeList.add(new MergePullRequestSpinner("squash", getResources().getString(R.string.mergeOptionSquash)));
}
ArrayAdapter<MergePullRequestSpinner> adapter = new ArrayAdapter<>(ctx, R.layout.spinner_item, mergeList);
ArrayAdapter<MergePullRequestSpinner> adapter = new ArrayAdapter<>(MergePullRequestActivity.this, R.layout.spinner_item, mergeList);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
mergeModeSpinner.setAdapter(adapter);

View File

@ -165,8 +165,8 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
// pull count
if (textViewBadgePull.getText() != "") { // only show if API returned a number
Objects.requireNonNull(tabLayout.getTabAt(3)).setCustomView(tabHeader4);
TabLayout.Tab tabOpenPulls = tabLayout.getTabAt(3);
Objects.requireNonNull(tabLayout.getTabAt(4)).setCustomView(tabHeader4);
TabLayout.Tab tabOpenPulls = tabLayout.getTabAt(4);
assert tabOpenPulls != null;
TextView openPullTabView = Objects.requireNonNull(tabOpenPulls.getCustomView()).findViewById(R.id.counterBadgePullText);
openPullTabView.setTextColor(textColor);
@ -240,12 +240,6 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
public void onButtonClicked(String text) {
TinyDB tinyDb = new TinyDB(getApplicationContext());
String repoFullName = tinyDb.getString("repoFullName");
String instanceUrlWithProtocol = "https://" + tinyDb.getString("instanceUrlRaw");
if(!tinyDb.getString("instanceUrlWithProtocol").isEmpty()) {
instanceUrlWithProtocol = tinyDb.getString("instanceUrlWithProtocol");
}
Uri url = Uri.parse(instanceUrlWithProtocol + "/" + repoFullName);
switch (text) {
case "label":
@ -264,15 +258,15 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
startActivity(new Intent(RepoDetailActivity.this, CreateReleaseActivity.class));
break;
case "openWebRepo":
Intent i = new Intent(Intent.ACTION_VIEW, url);
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, url);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, url);
startActivity(Intent.createChooser(sharingIntent, url.toString()));
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")));
break;
case "newFile":
startActivity(new Intent(RepoDetailActivity.this, CreateFileActivity.class));
@ -299,18 +293,18 @@ public class RepoDetailActivity extends BaseActivity implements BottomSheetRepoF
Fragment fragment = null;
switch (position) {
case 0: // information
return RepoInfoFragment.newInstance(repoOwner, repoName);
case 1: // files
case 0: // files
return FilesFragment.newInstance(repoOwner, repoName);
case 1: // information
return RepoInfoFragment.newInstance(repoOwner, repoName);
case 2: // issues
fragment = new IssuesMainFragment();
break;
case 3: // pull requests
case 3: // branches
return BranchesFragment.newInstance(repoOwner, repoName);
case 4: // 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

View File

@ -60,6 +60,7 @@ public class FilesDiffAdapter extends RecyclerView.Adapter<FilesDiffAdapter.File
@Override
public void onBindViewHolder(@NonNull FilesDiffViewHolder holder, int position) {
holder.setIsRecyclable(false);
FileDiffView data = dataList.get(position);
if(data.isFileType()) {

View File

@ -15,9 +15,6 @@ import org.mian.gitnex.activities.AddRemoveLabelsActivity;
import org.mian.gitnex.activities.EditIssueActivity;
import org.mian.gitnex.activities.FileDiffActivity;
import org.mian.gitnex.activities.MergePullRequestActivity;
import org.mian.gitnex.activities.ReplyToIssueActivity;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.util.TinyDB;
import androidx.annotation.NonNull;
@ -25,8 +22,6 @@ import androidx.annotation.Nullable;
import android.content.ClipboardManager;
import android.content.ClipData;
import java.util.Objects;
import retrofit2.Call;
import retrofit2.Callback;
/**
* Author M M Arif
@ -187,30 +182,26 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment {
if (tinyDB.getString("issueState").equals("open")) { // close issue
reOpenIssue.setVisibility(View.GONE);
closeIssue.setVisibility(View.VISIBLE);
closeIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeIssue.setOnClickListener(closeSingleIssue -> {
IssueActions.closeReopenIssue(ctx, Integer.parseInt(tinyDB.getString("issueNumber")), "closed");
dismiss();
IssueActions.closeReopenIssue(ctx, Integer.parseInt(tinyDB.getString("issueNumber")), "closed");
dismiss();
}
});
}
else if (tinyDB.getString("issueState").equals("closed")) {
closeIssue.setVisibility(View.GONE);
reOpenIssue.setVisibility(View.VISIBLE);
reOpenIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
reOpenIssue.setOnClickListener(reOpenSingleIssue -> {
IssueActions.closeReopenIssue(ctx, Integer.parseInt(tinyDB.getString("issueNumber")), "open");
dismiss();
IssueActions.closeReopenIssue(ctx, Integer.parseInt(tinyDB.getString("issueNumber")), "open");
dismiss();
}
});
}
@ -223,22 +214,18 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment {
}
subscribeIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
subscribeIssue.setOnClickListener(subscribeToIssue -> {
IssueActions.subscribe(ctx, subscribeIssue, unsubscribeIssue);
IssueActions.subscribe(ctx, subscribeIssue, unsubscribeIssue);
//dismiss();
}
});
unsubscribeIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
unsubscribeIssue.setOnClickListener(unsubscribeToIssue -> {
IssueActions.unsubscribe(ctx, subscribeIssue, unsubscribeIssue);
IssueActions.unsubscribe(ctx, subscribeIssue, unsubscribeIssue);
//dismiss();
}
});
//if RepoWatch True Provide Unsubscribe first

View File

@ -2,7 +2,6 @@ package org.mian.gitnex.fragments;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@ -207,57 +206,52 @@ public class IssuesClosedFragment extends Fragment implements ItemFilterListener
footerAdapter.clear();
//noinspection unchecked
footerAdapter.add(new ProgressItem().withEnabled(false));
Handler handler = new Handler();
handler.postDelayed(() -> {
Call<List<Issues>> call = RetrofitClient.getInstance(instanceUrl, getContext()).getApiInterface().getClosedIssues(token, repoOwner, repoName, currentPage + 1, issueState, resultLimit, requestType);
Call<List<Issues>> call = RetrofitClient.getInstance(instanceUrl, getContext()).getApiInterface().getClosedIssues(token, repoOwner, repoName, currentPage + 1, issueState, resultLimit, requestType);
call.enqueue(new Callback<List<Issues>>() {
call.enqueue(new Callback<List<Issues>>() {
@Override
public void onResponse(@NonNull Call<List<Issues>> call, @NonNull Response<List<Issues>> response) {
@Override
public void onResponse(@NonNull Call<List<Issues>> call, @NonNull Response<List<Issues>> response) {
if(response.isSuccessful()) {
if(response.isSuccessful()) {
assert response.body() != null;
assert response.body() != null;
if(response.body().size() > 0) {
if(response.body().size() > 0) {
loadNextFlag = response.body().size() == resultLimit;
loadNextFlag = response.body().size() == resultLimit;
for(int i = 0; i < response.body().size(); i++) {
for(int i = 0; i < response.body().size(); i++) {
fastItemAdapter.add(fastItemAdapter.getAdapterItemCount(), new IssuesAdapter(getContext()).withNewItems(response.body().get(i).getTitle(), response.body().get(i).getNumber(), response.body().get(i).getUser().getAvatar_url(), response.body().get(i).getCreated_at(), response.body().get(i).getComments(), response.body().get(i).getUser().getFull_name(), response.body().get(i).getUser().getLogin()));
}
footerAdapter.clear();
mProgressBarClosed.setVisibility(View.GONE);
fastItemAdapter.add(fastItemAdapter.getAdapterItemCount(), new IssuesAdapter(getContext()).withNewItems(response.body().get(i).getTitle(), response.body().get(i).getNumber(), response.body().get(i).getUser().getAvatar_url(), response.body().get(i).getCreated_at(), response.body().get(i).getComments(), response.body().get(i).getUser().getFull_name(), response.body().get(i).getUser().getLogin()));
}
else {
footerAdapter.clear();
}
footerAdapter.clear();
mProgressBarClosed.setVisibility(View.GONE);
}
else {
Log.i(TAG, String.valueOf(response.code()));
footerAdapter.clear();
}
mProgressBarClosed.setVisibility(View.GONE);
}
else {
Log.i(TAG, String.valueOf(response.code()));
}
@Override
public void onFailure(@NonNull Call<List<Issues>> call, @NonNull Throwable t) {
}
Log.i(TAG, t.toString());
}
@Override
public void onFailure(@NonNull Call<List<Issues>> call, @NonNull Throwable t) {
});
Log.i(TAG, t.toString());
}
}, 1000);
});
if(!loadNextFlag) {
footerAdapter.clear();

View File

@ -11,7 +11,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@ -204,57 +203,52 @@ public class IssuesOpenFragment extends Fragment implements ItemFilterListener<I
footerAdapter.clear();
//noinspection unchecked
footerAdapter.add(new ProgressItem().withEnabled(false));
Handler handler = new Handler();
handler.postDelayed(() -> {
Call<List<Issues>> call = RetrofitClient.getInstance(instanceUrl, getContext()).getApiInterface().getIssues(token, repoOwner, repoName, currentPage + 1, resultLimit, requestType);
Call<List<Issues>> call = RetrofitClient.getInstance(instanceUrl, getContext()).getApiInterface().getIssues(token, repoOwner, repoName, currentPage + 1, resultLimit, requestType);
call.enqueue(new Callback<List<Issues>>() {
call.enqueue(new Callback<List<Issues>>() {
@Override
public void onResponse(@NonNull Call<List<Issues>> call, @NonNull Response<List<Issues>> response) {
@Override
public void onResponse(@NonNull Call<List<Issues>> call, @NonNull Response<List<Issues>> response) {
if(response.isSuccessful()) {
if(response.isSuccessful()) {
assert response.body() != null;
assert response.body() != null;
if(response.body().size() > 0) {
if(response.body().size() > 0) {
loadNextFlag = response.body().size() == resultLimit;
loadNextFlag = response.body().size() == resultLimit;
for(int i = 0; i < response.body().size(); i++) {
for(int i = 0; i < response.body().size(); i++) {
fastItemAdapter.add(fastItemAdapter.getAdapterItemCount(), new IssuesAdapter(getContext()).withNewItems(response.body().get(i).getTitle(), response.body().get(i).getNumber(), response.body().get(i).getUser().getAvatar_url(), response.body().get(i).getCreated_at(), response.body().get(i).getComments(), response.body().get(i).getUser().getFull_name(), response.body().get(i).getUser().getLogin()));
}
footerAdapter.clear();
noDataIssues.setVisibility(View.GONE);
fastItemAdapter.add(fastItemAdapter.getAdapterItemCount(), new IssuesAdapter(getContext()).withNewItems(response.body().get(i).getTitle(), response.body().get(i).getNumber(), response.body().get(i).getUser().getAvatar_url(), response.body().get(i).getCreated_at(), response.body().get(i).getComments(), response.body().get(i).getUser().getFull_name(), response.body().get(i).getUser().getLogin()));
}
else {
footerAdapter.clear();
}
mProgressBar.setVisibility(View.GONE);
footerAdapter.clear();
noDataIssues.setVisibility(View.GONE);
}
else {
Log.i(TAG, String.valueOf(response.code()));
footerAdapter.clear();
}
mProgressBar.setVisibility(View.GONE);
}
else {
Log.i(TAG, String.valueOf(response.code()));
}
@Override
public void onFailure(@NonNull Call<List<Issues>> call, @NonNull Throwable t) {
}
Log.i(TAG, t.toString());
}
@Override
public void onFailure(@NonNull Call<List<Issues>> call, @NonNull Throwable t) {
});
Log.i(TAG, t.toString());
}
}, 1000);
});
if(!loadNextFlag) {
footerAdapter.clear();

View File

@ -317,6 +317,8 @@ public class RepoInfoFragment extends Fragment {
tinyDb.putBoolean("hasIssues", true);
}
tinyDb.putString("repoHtmlUrl", repoInfo.getHtml_url());
mProgressBar.setVisibility(View.GONE);
pageContent.setVisibility(View.VISIBLE);

View File

@ -0,0 +1,45 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="120.59775"
android:viewportHeight="120.59775"
android:tint="#FFFFFF">
<group android:translateX="-7.436125"
android:translateY="-7.436125">
<path
android:pathData="M67.733,67.74m-67.733,0a67.733,67.733 0,1 1,135.466 0a67.733,67.733 0,1 1,-135.466 0"
android:fillColor="#39404a"
android:fillAlpha="0.0"/>
<path
android:pathData="M31.738,44.619a9.139,9.151 63.874,1 0,12.769 -13.108a9.139,9.151 63.874,1 0,-12.769 13.108z"
android:fillColor="#39404a"/>
<path
android:pathData="M31.875,114.541a9.139,9.151 63.874,1 0,12.769 -13.108a9.139,9.151 63.874,1 0,-12.769 13.108z"
android:fillColor="#39404a"/>
<path
android:pathData="M61.361,79.846a9.139,9.151 63.874,1 0,12.769 -13.108a9.139,9.151 63.874,1 0,-12.769 13.108z"
android:fillColor="#39404a"/>
<path
android:pathData="M34.37,18.337l7.038,0.003l-0.096,85.655l-7.038,-0.003z"
android:fillColor="#39404a"/>
<path
android:pathData="m37.878,38.133c31.743,0.128 29.614,-4.427 29.723,36.496"
android:strokeWidth="8.7255"
android:fillColor="#00000000"
android:strokeColor="#39404a"/>
<path
android:pathData="m97.323,108.453c-31.743,-0.128 -29.614,4.427 -29.723,-36.496"
android:strokeWidth="8.7255"
android:fillColor="#00000000"
android:strokeColor="#39404a"/>
<path
android:pathData="M90.959,44.619a9.139,9.151 63.874,1 0,12.769 -13.108a9.139,9.151 63.874,1 0,-12.769 13.108z"
android:fillColor="#39404a"/>
<path
android:pathData="M90.955,114.542a9.139,9.151 63.874,1 0,12.769 -13.108a9.139,9.151 63.874,1 0,-12.769 13.108z"
android:fillColor="#39404a"/>
<path
android:pathData="M93.872,35.062l7.038,0.002l-0.096,68.927l-7.038,-0.002z"
android:fillColor="#39404a"/>
</group>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -89,13 +89,13 @@
</LinearLayout>
<com.pddstudio.highlightjs.HighlightJsView
android:id="@+id/singleCodeContents"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_height="match_parent"
android:id="@+id/highlightJs"
android:layout_marginTop="42dp"
android:visibility="gone" />
android:visibility="gone"
android:orientation="vertical" />
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/imageView"

View File

@ -44,36 +44,36 @@
app:tabTextColor="?attr/primaryTextColor"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem1_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tab_text_info" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItemFiles"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tab_text_files" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem1_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tab_text_info" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem2_issues"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pageTitleIssues" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItemPullRequests"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tabPullRequests" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem5_branches"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tab_text_branches" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItemPullRequests"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tabPullRequests" />
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem6_releases"
android:layout_width="wrap_content"

View File

@ -88,7 +88,8 @@
android:drawablePadding="24dp"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
android:padding="16dp" />
android:padding="16dp"
android:visibility="gone" />
<TextView
android:id="@+id/unsubscribeIssue"

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<com.pddstudio.highlightjs.HighlightJsView
android:id="@+id/singleCodeContents"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_marginTop="42dp"
android:visibility="gone"
xmlns:android="http://schemas.android.com/apk/res/android" />

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -70,7 +70,7 @@
<string name="emptyFieldUsername">Benutzername ist erforderlich</string>
<string name="emptyFieldPassword">Passwort ist erforderlich</string>
<string name="checkNetConnection">Kann nicht auf das Netzwerk zugreifen. Bitte überprüfe die Internetverbindung</string>
<string name="netConnectionIsBack">Juhu, wir haben Internetverbindung!</string>
<string name="netConnectionIsBack">Juhu, wir haben eine Internetverbindung!</string>
<string name="repoNameErrorEmpty">Der Repository Name ist leer.</string>
<string name="repoNameErrorInvalid">Der Repository Name ist nicht gültig. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="repoNameErrorReservedName">Repository-Name ist reserviert</string>
@ -495,6 +495,12 @@
<string name="closeMilestone">Meilenstein schließen</string>
<string name="openMilestone">Meilenstein wieder öffnen</string>
<string name="milestoneStatusUpdate">Meilensteinstatus erfolgreich aktualisiert</string>
<string name="tabIssueOpen">Offene</string>
<string name="tabIssueClosed">Geschlossene</string>
<string name="tabIssueOpen">Offen</string>
<string name="tabIssueClosed">Geschlossen</string>
<string name="errorOnLogin">Der Server kann nicht erreicht werden, bitte überprüfe deinen Serverstatus</string>
<string name="reportViewerHeader">Absturzberichte</string>
<string name="settingsEnableReportsText">Absturzberichte aktivieren</string>
<string name="crashTitle">GitNex hat gestoppt :(</string>
<string name="setCrashReports">Absturzberichte</string>
<string name="crashMessage">Klicke auf OK, um den Absturzbericht per E-Mail zu senden. Es wird helfen, diesen zu beheben :)\n\nDu könntest auch zusätzliche Infos in der E-Mail angeben. Danke für deine Hilfe!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -500,4 +500,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -120,8 +120,8 @@
<string name="infoTabRepoForksCount">Bifurcations</string>
<string name="infoTabRepoCreatedAt">Créé</string>
<string name="infoTabRepoUpdatedAt">Dernière modification</string>
<string name="infoShowMoreInformation">Show More Information</string>
<string name="infoMoreInformation">More Information</string>
<string name="infoShowMoreInformation">Voir plus dinformations</string>
<string name="infoMoreInformation">Plus dinformations</string>
<string name="timeAtText">à</string>
<string name="createdText">Ouvert\u0020</string>
<string name="dueDateText">Échéance</string>
@ -213,8 +213,8 @@
<string name="settingsPdfModeHeaderText">PDF mode nuit</string>
<string name="fileViewerHeader">Visionneuse de fichiers</string>
<string name="settingsCounterBadges">Compteurs</string>
<string name="settingsFileviewerSourceCodeHeaderText">Source Code Theme</string>
<string name="fileviewerSourceCodeThemeSelectorDialogTitle">Select Source Code Theme</string>
<string name="settingsFileviewerSourceCodeHeaderText">Thème du code source</string>
<string name="fileviewerSourceCodeThemeSelectorDialogTitle">Thème du code source</string>
<!-- settings -->
<string name="noMoreData">Aucune donnée</string>
<string name="createLabel">Nouvelle étiquette</string>
@ -495,6 +495,12 @@
<string name="closeMilestone">Fermer le jalon</string>
<string name="openMilestone">Ouvrir le jalon</string>
<string name="milestoneStatusUpdate">Jalon mis à jour</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="tabIssueOpen">Ouvert</string>
<string name="tabIssueClosed">Fermé</string>
<string name="errorOnLogin">Impossible daccéder au serveur, veuillez vérifier son statut</string>
<string name="reportViewerHeader">Rapports de plantage</string>
<string name="settingsEnableReportsText">Activer les rapports de plantage</string>
<string name="crashTitle">GitNex sest arrêté :(</string>
<string name="setCrashReports">Rapports de plantage</string>
<string name="crashMessage">Appuyez sur OK pour nous envoyer le rapport de plantage par e-mail. Cela nous aidera à corriger le problème :)\n\nVous pouvez également y ajouter vos propres remarques. Merci !</string>
</resources>

View File

@ -499,4 +499,10 @@ autorizzazione</string>
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -70,7 +70,7 @@
<string name="emptyFieldUsername">Nazwa użytkownika jest wymagana</string>
<string name="emptyFieldPassword">Hasło jest wymagane</string>
<string name="checkNetConnection">Nie można uzyskać dostępu do sieci, sprawdź swoje połączenie internetowe</string>
<string name="netConnectionIsBack">Yay, We have Internet connection!</string>
<string name="netConnectionIsBack">Jej, mamy połączenie z Internetem!</string>
<string name="repoNameErrorEmpty">Nazwa repozytorium jest pusta</string>
<string name="repoNameErrorInvalid">Nazwa repozytorium jest nieprawidłowa. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="repoNameErrorReservedName">Nazwa repozytorium jest zarezerwowana</string>
@ -120,8 +120,8 @@
<string name="infoTabRepoForksCount">Forki</string>
<string name="infoTabRepoCreatedAt">Utworzono</string>
<string name="infoTabRepoUpdatedAt">Ostatnia aktualizacja</string>
<string name="infoShowMoreInformation">Show More Information</string>
<string name="infoMoreInformation">More Information</string>
<string name="infoShowMoreInformation">Pokaż więcej informacji</string>
<string name="infoMoreInformation">Więcej informacji</string>
<string name="timeAtText">w</string>
<string name="createdText">Otwarty\u0020</string>
<string name="dueDateText">Termin</string>
@ -135,7 +135,7 @@
<string name="issueTypePullRequest">Typ: Pull Request</string>
<string name="issueCommenter">Komentujący:\u0020</string>
<string name="issueMilestone">Etap %1$s</string>
<string name="dueDate">Due on %1$s</string>
<string name="dueDate">Termin %1$s</string>
<string name="createdTime">Otwarto %1$s</string>
<string name="assignedTo">Przypisano do: %1$s</string>
<string name="commentButtonText">Komentarz</string>
@ -143,15 +143,15 @@
<string name="commentSuccess">Komentarz wysłany</string>
<string name="commentError">Coś poszło nie tak, spróbuj ponownie</string>
<string name="generalImgContentText">Awatar</string>
<string name="noDataMilestonesTab">Nie znaleziono kamieni milowych</string>
<string name="commitAuthor">Autor commit: %1$s</string>
<string name="noDataMilestonesTab">Nie znaleziono etapów</string>
<string name="commitAuthor">Autor commitu: %1$s</string>
<string name="commitHash">Hash commita \n%1$s%2$s</string>
<string name="releaseTitle">Tytuł wydania</string>
<string name="releaseDescription">Opis wydania</string>
<string name="releaseDownloadText">Pobrania</string>
<string name="releaseType">Typ wydania</string>
<string name="releaseZip">Wydaj Zip</string>
<string name="releaseTar">Wydaj Tar</string>
<string name="releaseZip">Wydanie Zip</string>
<string name="releaseTar">Wydanie Tar</string>
<string name="noDataReleasesTab">Nie znaleziono wydań</string>
<string name="releaseTag">Tag: %1$s</string>
<string name="collaboratorsNameToast">Współpracujący: %1$s</string>
@ -213,8 +213,8 @@
<string name="settingsPdfModeHeaderText">Tryb nocny PDF</string>
<string name="fileViewerHeader">Przeglądarka plików</string>
<string name="settingsCounterBadges">Odznaki liczników</string>
<string name="settingsFileviewerSourceCodeHeaderText">Source Code Theme</string>
<string name="fileviewerSourceCodeThemeSelectorDialogTitle">Select Source Code Theme</string>
<string name="settingsFileviewerSourceCodeHeaderText">Motyw kodu źródłowego</string>
<string name="fileviewerSourceCodeThemeSelectorDialogTitle">Wybierz motyw kodu źródłowego</string>
<!-- settings -->
<string name="noMoreData">Brak dostępnych danych</string>
<string name="createLabel">Nowa etykieta</string>
@ -245,10 +245,10 @@
<!-- org tabbed layout str -->
<string name="title_activity_org_detail">Szczegółowa aktywność organizacji</string>
<string name="orgTabRepos">Repozytoria</string>
<string name="orgTabTeams">Drużyny</string>
<string name="orgTabTeams">Zespoły</string>
<string name="orgTabMembers">Członkowie</string>
<string name="orgCreateTeam">Nowy zespół</string>
<string name="noDataTeams">Nie znaleziono drużyn</string>
<string name="noDataTeams">Nie znaleziono zespołów</string>
<string name="teamTitle">Nazwa zespołu</string>
<string name="teamDescription">Opis zespołu</string>
<string name="teamPermission">Pozwolenie: %1$s</string>
@ -311,8 +311,8 @@
<string name="addRemoveAssignees2">Dodaj przypisanych osób</string>
<string name="addRemoveAssignees">Dodaj / Usuń przypisanych osób</string>
<string name="assigneesUpdated">Zaktualizowano przypisanych</string>
<string name="singleIssueSubscribe">Subscribe</string>
<string name="singleIssueUnSubscribe">Unsubscribe</string>
<string name="singleIssueSubscribe">Subskrybuj</string>
<string name="singleIssueUnSubscribe">Anuluj subskrypcję</string>
<!-- single issue section -->
<!-- multi select dialog -->
<string name="select_entry">Wybierz wpisy</string>
@ -366,11 +366,11 @@
<string name="repoWatchersInMenu">Obserwatorzy</string>
<string name="noDataStargazers">Nie znaleziono gwiazdek</string>
<string name="noDataWatchers">Nie znaleziono obserwatorów</string>
<string name="noDataWebsite">No website found</string>
<string name="noDataWebsite">Nie znaleziono strony internetowej</string>
<string name="starMember">Gwiazdka</string>
<string name="watcherMember">Obserwujący</string>
<string name="commitLinkBranchesTab">Commit</string>
<string name="zipArchiveDownloadReleasesTab">Archiwum ZIP</string>
<string name="zipArchiveDownloadReleasesTab">Archiwum Zip</string>
<string name="tarArchiveDownloadReleasesTab">Archiwum Tar</string>
<!-- new file -->
<string name="newFileNameTintCopy">Nazwa pliku</string>
@ -433,7 +433,7 @@
<string name="unWatchRepositorySuccess">Repozytorium usunięte z listy obserwacyjnej</string>
<string name="versionUnsupportedOld">Wykryto nieobsługiwaną starą wersję(%1$s) Gitea. Proszę zaktualizować do najnowszej stabilnej wersji. Jeśli kontynuujesz, aplikacja może nie działać poprawnie.</string>
<string name="versionSupportedOld">Wykryto starą wersję Gitea, proszę zaktualizować do najnowszej stabilnej wersji</string>
<string name="versionUnsupportedNew">Wykryto nową wersję Gitea! Proszę AKTUALIZUJ GitNex!</string>
<string name="versionUnsupportedNew">Wykryto nową wersję Gitea! Proszę ZAKTUALIZOWAĆ GitNex!</string>
<string name="versionSupportedLatest">Wersja Gitea jest aktualna</string>
<string name="versionDevelopment">Wersja rozwojowa Gitea</string>
<string name="versionUnknow">Nie wykryto Gitea!</string>
@ -446,7 +446,7 @@
<string name="noDataPullRequests">Nie znaleziono pull requestów</string>
<string name="prCreator">Twórca:\u0020</string>
<string name="editPrText">Edytuj Pull Request</string>
<string name="copyPrUrlText">Skopiuj Pull Request URL</string>
<string name="copyPrUrlText">Skopiuj adres URL Pull Requesta</string>
<string name="editPrNavHeader">Edytuj Pull Request #%1$s</string>
<string name="editPrSuccessMessage">Zaktualizowano Pull Request</string>
<string name="fileDiffViewHeader">%1$s Plików zmienionych</string>
@ -488,13 +488,19 @@
<string name="mtm_decision_once">Raz</string>
<string name="mtm_decision_abort">Przerwij</string>
<string name="issueCommentShare">Udostępnij komentarz</string>
<string name="issueSubscribtion">Issue Subscribed</string>
<string name="issueSubscribtionError">Issue Subscription failed</string>
<string name="issueUnsubscribtion">Issue Unsubscribed</string>
<string name="issueUnsubscribtionError">Issue Un-Subscription failed</string>
<string name="closeMilestone">Close Milestone</string>
<string name="openMilestone">Open Milestone</string>
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="issueSubscribtion">Problem zasubskrybowany</string>
<string name="issueSubscribtionError">Błąd subskrypcji</string>
<string name="issueUnsubscribtion">Subskrypcja problemu anulowana</string>
<string name="issueUnsubscribtionError">Błąd anulowania subskrypcji</string>
<string name="closeMilestone">Zamknij etap</string>
<string name="openMilestone">Otwórz etap</string>
<string name="milestoneStatusUpdate">Status etapu zaktualizowany pomyślnie</string>
<string name="tabIssueOpen">Otwarte</string>
<string name="tabIssueClosed">Zamknięte</string>
<string name="errorOnLogin">Nie możemy połączyć się z serwerem, sprawdź status serwera</string>
<string name="reportViewerHeader">Raporty awarii</string>
<string name="settingsEnableReportsText">Włącz raporty awarii</string>
<string name="crashTitle">GitNex zatrzymał się :(</string>
<string name="setCrashReports">Raporty awarii</string>
<string name="crashMessage">Możesz nacisnąć przycisk OK, aby wysłać raport o awarii pocztą elektroniczną. Pomoże to naprawić to :)\n\nMożesz również dodać dodatkowe treści w wiadomości e-mail. Dziękujemy!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Фаза је ажурирана</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -63,7 +63,7 @@
<string name="logo">登录到 Gitea</string>
<string name="urlInfoTooltip">1- 选择协议 (https 或 http). \n2- 输入Gitea访问地址(可带端口) 例如: try.gitea.io:3000. \n3- 如已启用双重验证请在OTP输入有效代码。 \n4- 在 URL 字段中使用 USERNAME@DOMAIN.COM 进行 HTTP 基本身份验证。</string>
<string name="loginFailed">用户名或密码错误</string>
<string name="malformedUrl">Couldn\'t connect to host. Please check your URL or port for any errors.</string>
<string name="malformedUrl">无法连接到主机请检查您的URL或端口是否有任何错误。</string>
<string name="protocolError">非本地网络建议使用HTTPS安全协议进行访问。</string>
<string name="malformedJson">JSON 格式错误。服务器响应不成功。</string>
<string name="emptyFieldURL">未填写 Gitea访问地址</string>
@ -497,4 +497,10 @@
<string name="milestoneStatusUpdate">Milestone status updated successfully</string>
<string name="tabIssueOpen">Open</string>
<string name="tabIssueClosed">Closed</string>
<string name="errorOnLogin">We cannot reach the server, please check your server status</string>
<string name="reportViewerHeader">Crash Reports</string>
<string name="settingsEnableReportsText">Enable Crash Reports</string>
<string name="crashTitle">GitNex has stopped :(</string>
<string name="setCrashReports">Crash reports</string>
<string name="crashMessage">You can tap the OK button to send the crash report by email. It will help to fix it :)\n\nYou can also add additional content in the email. Thank you!</string>
</resources>

View File

@ -1,9 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<changelog>
<release version="2.5.0-rc4" versioncode="104">
<change>Release notes will be published with the stable release.</change>
<change>In the mean time check the milestone 2.5.0 for pull requests and issues that are merged/closed.</change>
<release version="2.5.1" versioncode="251">
<change>Bugfix: Crash when swiping issues tabs</change>
<change>Bugfix: Share repo empty url</change>
<change>Bugfix: Notification icons</change>
<change>Bugfix: Duplicate entries in diff view of PR files</change>
<change>Bugfix: Crash on tapping dropdowns (Android 5 bug)</change>
<change>Bugfix: Code highlighter (Android 5 and 6 bug)</change>
</release>
<release version="2.5.0" versioncode="250">
<change>New: Share issues, repositories, comments</change>
<change>New: Changelog popup</change>
<change>New: Show size of files in Files tab</change>
<change>New: Repository commits</change>
<change>New: Self signed certificates support</change>
<change>New: Counter badges for PR and Releases</change>
<change>New: Subscribe/unsubscribe to issue</change>
<change>New: Redesign repo info screen</change>
<change>New: Close / Reopen milestone</change>
<change>New: Theme auto switcher (choose from settings)</change>
<change>New: Merge open and closed issues under one tab</change>
<change>New: Integrate crash reporting</change>
<change>Improvement: Better detection of internet connection on login screen</change>
<change>Improvement: Token login is now prioritized (login via token is recommended)</change>
<change>Improvement: Focus on input and trigger keyboard</change>
<change>Improvement: Create repo from organization</change>
<change>Improvement: Show useful message for reserved keywords</change>
<change>Improvement: Placeholder for images</change>
<change>Improvement: Bottomsheets instead of popup menus</change>
<change>Improvement: Caching images for offline mode</change>
<change>Improvement: FAB button to comment on issue</change>
<change>Improvement: Snackbar (login screen)</change>
<change>Improvement: Refactor Issues tabs</change>
<change>Improvement: Multiple merge options like web UI</change>
<change>Improvement: Manrope as default font</change>
<change>Improvement: Remember login type</change>
<change>Improvement: Improve labels</change>
<change>Improvement: Hide collaborators tab for non admins</change>
<change>Bugfix: Use correct protocol when open repo in browser</change>
<change>Bugfix: Can't choose token selector when internet is Off</change>
<change>Bugfix: Empty repositories screen on new logins</change>
<change>Bugfix: Issues search bug</change>
<change>Bugfix: Crash on version API when REQUIRE_SIGNIN_VIEW is set to true</change>
<change>Bugfix: Milestone desc and due date disappreance bug</change>
<change>Bugfix: Date/time in issue comments bug</change>
</release>
</changelog>

View File

@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.2'
classpath 'com.android.tools.build:gradle:3.6.3'
}
}

View File

@ -0,0 +1,18 @@
2.5.0
New:
- Share issues, repositories, comments
- Changelog popup
- Show size of files in Files tab
- Repository commits
- Self signed certificates support
- Counter badges for PR and Releases
- Subscribe/unsubscribe to issue
- Redesign repo info screen
- Close / Reopen milestone
- Theme auto switcher (choose from settings)
- Merge open and closed issues under one tab
- Integrate crash reporting
Check release notes for complete list
https://gitea.com/gitnex/GitNex/releases

View File

@ -0,0 +1,12 @@
2.5.1
Bugfix:
- Fix crash when swiping issues tabs
- Fix share repo empty url
- Notification icons
- Fix duplicate entries in diff view of PR files
- Fix crash on tapping dropdowns (Android 5 bug)
- Fix code highlighter (Android 5 and 6 bug)
Check release notes for complete list
https://gitea.com/gitnex/GitNex/releases

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 67 KiB