Implementing BottomSheetFragment for commenting on issues and pull requests. (#555)
change to server error on onFailure Fix keyboard move issue Fix statusbar color, remove social, enhance other things Merge branch 'master' into bottomsheet-issue-comments Merge branch 'master' of https://codeberg.org/gitnex/GitNex into bottomsheet-issue-comments Conflicts: app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java Making it work. Merge branch 'master' of https://codeberg.org/gitnex/GitNex into bottomsheet-issue-comments Merge branch 'master' of https://codeberg.org/gitnex/GitNex into bottomsheet-issue-comments Merge branch 'master' of https://codeberg.org/gitnex/GitNex into bottomsheet-issue-comments First major changes. Merge branch 'master' of https://codeberg.org/gitnex/GitNex into bottomsheet-issue-comments Cleanup. Simplifying title. Adding BottomSheetFragment layout for future changes. Co-authored-by: M M Arif <mmarif@swatian.com> Co-authored-by: M M Arif <mmarif@noreply.codeberg.org> Co-authored-by: opyale <opyale@noreply.gitea.io> Co-authored-by: opyale <example@example.com> Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/555 Reviewed-by: M M Arif <mmarif@noreply.codeberg.org>
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
package org.mian.gitnex.fragments;
|
||||
|
||||
import android.animation.ValueAnimator;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.actions.ActionResult;
|
||||
import org.mian.gitnex.actions.IssueActions;
|
||||
import org.mian.gitnex.activities.MainActivity;
|
||||
import org.mian.gitnex.database.api.DraftsApi;
|
||||
import org.mian.gitnex.helpers.StaticGlobalVariables;
|
||||
import org.mian.gitnex.helpers.TinyDB;
|
||||
import org.mian.gitnex.helpers.Toasty;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author opyale
|
||||
*/
|
||||
|
||||
public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
|
||||
|
||||
private TinyDB tinyDB;
|
||||
private DraftsApi draftsApi;
|
||||
|
||||
private int repositoryId;
|
||||
private int currentActiveAccountId;
|
||||
private int issueNumber;
|
||||
private long draftId;
|
||||
|
||||
private TextView draftsHint;
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
|
||||
tinyDB = new TinyDB(context);
|
||||
draftsApi = new DraftsApi(context);
|
||||
|
||||
repositoryId = (int) tinyDB.getLong("repositoryId", 0);
|
||||
currentActiveAccountId = tinyDB.getInt("currentActiveAccountId");
|
||||
issueNumber = Integer.parseInt(tinyDB.getString("issueNumber"));
|
||||
|
||||
super.onAttach(context);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
|
||||
View view = inflater.inflate(R.layout.bottom_sheet_reply_layout, container, false);
|
||||
Bundle arguments = requireArguments();
|
||||
|
||||
draftsHint = view.findViewById(R.id.drafts_hint);
|
||||
|
||||
EditText commentContent = view.findViewById(R.id.comment);
|
||||
TextView toolbarTitle = view.findViewById(R.id.toolbar_title);
|
||||
ImageButton close = view.findViewById(R.id.close);
|
||||
ImageButton drafts = view.findViewById(R.id.drafts);
|
||||
ImageButton send = view.findViewById(R.id.send);
|
||||
|
||||
send.setEnabled(false);
|
||||
|
||||
if(Objects.equals(arguments.getString("commentAction"), "edit")) {
|
||||
|
||||
send.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(arguments.getString("draftId") != null) {
|
||||
|
||||
draftId = Long.parseLong(arguments.getString("draftId"));
|
||||
}
|
||||
|
||||
if(!tinyDB.getString("issueTitle").isEmpty()) {
|
||||
|
||||
toolbarTitle.setText(tinyDB.getString("issueTitle"));
|
||||
}
|
||||
else if(arguments.getString("draftTitle") != null) {
|
||||
|
||||
toolbarTitle.setText(arguments.getString("draftTitle"));
|
||||
}
|
||||
|
||||
if(arguments.getString("commentBody") != null) {
|
||||
|
||||
send.setEnabled(true);
|
||||
send.setAlpha(1f);
|
||||
|
||||
commentContent.setText(arguments.getString("commentBody"));
|
||||
|
||||
if(arguments.getBoolean("cursorToEnd", false)) {
|
||||
|
||||
commentContent.setSelection(commentContent.length());
|
||||
}
|
||||
}
|
||||
|
||||
commentContent.requestFocus();
|
||||
commentContent.addTextChangedListener(new TextWatcher() {
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
String text = commentContent.getText().toString();
|
||||
|
||||
if(text.isEmpty()) {
|
||||
|
||||
send.setEnabled(false);
|
||||
send.setAlpha(0.5f);
|
||||
saveDraft(null, true);
|
||||
}
|
||||
else {
|
||||
|
||||
send.setEnabled(true);
|
||||
send.setAlpha(1f);
|
||||
saveDraft(text, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
||||
});
|
||||
|
||||
close.setOnClickListener(v -> dismiss());
|
||||
|
||||
drafts.setOnClickListener(v -> {
|
||||
|
||||
Intent intent = new Intent(getContext(), MainActivity.class);
|
||||
intent.putExtra("launchFragment", "drafts");
|
||||
startActivity(intent);
|
||||
|
||||
dismiss();
|
||||
});
|
||||
|
||||
send.setOnClickListener(v -> IssueActions
|
||||
.reply(getContext(), commentContent.getText().toString(), issueNumber)
|
||||
.accept((status, result) -> {
|
||||
|
||||
if(status == ActionResult.Status.SUCCESS) {
|
||||
|
||||
Toasty.success(getContext(), getString(R.string.commentSuccess));
|
||||
|
||||
tinyDB.putBoolean("commentPosted", true);
|
||||
tinyDB.putBoolean("resumeIssues", true);
|
||||
tinyDB.putBoolean("resumePullRequests", true);
|
||||
|
||||
if(draftId != 0 && tinyDB.getBoolean("draftsCommentsDeletionEnabled")) {
|
||||
|
||||
draftsApi.deleteSingleDraft((int) draftId);
|
||||
}
|
||||
|
||||
dismiss();
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.error(getContext(), getString(R.string.commentError));
|
||||
dismiss();
|
||||
}
|
||||
}));
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void saveDraft(String text, boolean remove) {
|
||||
|
||||
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0f, 1f);
|
||||
valueAnimator.setDuration(500);
|
||||
valueAnimator.addUpdateListener(animation -> {
|
||||
|
||||
float value = (Float) animation.getAnimatedValue();
|
||||
|
||||
if(value == 0f) {
|
||||
draftsHint.setVisibility((remove) ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
|
||||
draftsHint.setAlpha(value);
|
||||
});
|
||||
|
||||
if(remove) {
|
||||
|
||||
draftsApi.deleteSingleDraft((int) draftId);
|
||||
draftId = 0;
|
||||
|
||||
valueAnimator.reverse();
|
||||
}
|
||||
else {
|
||||
|
||||
if(draftId == 0) {
|
||||
draftId = draftsApi.insertDraft(repositoryId, currentActiveAccountId, issueNumber, text, StaticGlobalVariables.draftTypeComment, "TODO");
|
||||
} else {
|
||||
DraftsApi.updateDraft(text, (int) draftId, "TODO");
|
||||
}
|
||||
|
||||
draftsHint.setVisibility(View.VISIBLE);
|
||||
valueAnimator.start();
|
||||
}
|
||||
}
|
||||
|
||||
public static BottomSheetReplyFragment newInstance(Bundle bundle) {
|
||||
|
||||
BottomSheetReplyFragment fragment = new BottomSheetReplyFragment();
|
||||
fragment.setArguments(bundle);
|
||||
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -66,11 +67,9 @@ public class DraftsFragment extends Fragment {
|
||||
DividerItemDecoration.VERTICAL);
|
||||
mRecyclerView.addItemDecoration(dividerItemDecoration);
|
||||
|
||||
adapter = new DraftsAdapter(getContext(), draftsList_);
|
||||
|
||||
adapter = new DraftsAdapter(getContext(), getChildFragmentManager(), draftsList_);
|
||||
currentActiveAccountId = tinyDb.getInt("currentActiveAccountId");
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
draftsList_.clear();
|
||||
fetchDataAsync(currentActiveAccountId);
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
@@ -87,7 +88,7 @@ public class IssuesFragment extends Fragment {
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
noDataIssues = v.findViewById(R.id.noDataIssues);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
loadInitial(instanceToken, repoOwner, repoName, resultLimit, requestType, tinyDb.getString("repoIssuesState"));
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -87,18 +88,12 @@ public class LabelsFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
LabelsViewModel.loadLabelsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, getContext());
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
LabelsViewModel.loadLabelsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, getContext());
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
@@ -94,7 +95,7 @@ public class MilestonesFragment extends Fragment {
|
||||
viewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(ctx));
|
||||
viewBinding.recyclerView.setAdapter(adapter);
|
||||
|
||||
viewBinding.pullToRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
viewBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
dataList.clear();
|
||||
viewBinding.pullToRefresh.setRefreshing(false);
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -130,10 +131,11 @@ public class MyRepositoriesFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
MyRepositoriesViewModel.loadMyReposList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), userLogin, getContext(), pageSize, resultLimit);
|
||||
|
||||
}, 50));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), userLogin, pageSize, resultLimit);
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -99,18 +100,12 @@ public class OrganizationsFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
OrganizationListViewModel.loadOrgsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
OrganizationListViewModel.loadOrgsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
|
||||
}, 50));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken));
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -88,18 +89,12 @@ public class ProfileEmailsFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileEmailsViewModel.loadEmailsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileEmailsViewModel.loadEmailsList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken));
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -88,18 +89,12 @@ public class ProfileFollowersFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileFollowersViewModel.loadFollowersList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileFollowersViewModel.loadFollowersList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken));
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -88,18 +89,12 @@ public class ProfileFollowingFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileFollowingViewModel.loadFollowingList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ProfileFollowingViewModel.loadFollowingList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext());
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken));
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
@@ -88,7 +89,7 @@ public class PullRequestsFragment extends Fragment {
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
noData = v.findViewById(R.id.noData);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
loadInitial(instanceToken, repoOwner, repoName, pageSize, tinyDb.getString("repoPrState"), resultLimit);
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -88,18 +89,12 @@ public class ReleasesFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ReleasesViewModel.loadReleasesList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, getContext());
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
ReleasesViewModel.loadReleasesList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, getContext());
|
||||
|
||||
}, 50));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.RepoDetailActivity;
|
||||
import org.mian.gitnex.activities.RepoStargazersActivity;
|
||||
import org.mian.gitnex.activities.RepoWatchersActivity;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.helpers.AlertDialogs;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.Authorization;
|
||||
import org.mian.gitnex.helpers.ClickListener;
|
||||
import org.mian.gitnex.helpers.TimeHelper;
|
||||
@@ -283,13 +283,7 @@ public class RepoInfoFragment extends Fragment {
|
||||
|
||||
repoMetaForks.setText(repoInfo.getForks_count());
|
||||
repoMetaWatchers.setText(repoInfo.getWatchers_count());
|
||||
|
||||
if(repoInfo.getSize() != 0) {
|
||||
repoMetaSize.setText(AppUtil.formatFileSize(repoInfo.getSize()));
|
||||
}
|
||||
else {
|
||||
repoMetaSize.setText("0 B");
|
||||
}
|
||||
repoMetaSize.setText(FileUtils.byteCountToDisplaySize((int) repoInfo.getSize()));
|
||||
|
||||
repoMetaCreatedAt.setText(TimeHelper.formatTime(repoInfo.getCreated_at(), new Locale(locale), timeFormat, ctx));
|
||||
if(timeFormat.equals("pretty")) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -92,18 +93,12 @@ public class RepositoriesByOrgFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
RepositoriesByOrgViewModel.loadOrgRepos(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName, getContext(), pageSize, resultLimit);
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
RepositoriesByOrgViewModel.loadOrgRepos(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName, getContext(), pageSize, resultLimit);
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName, pageSize, resultLimit);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -98,10 +99,11 @@ public class RepositoriesFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
RepositoriesListViewModel.loadReposList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext(), pageSize, resultLimit);
|
||||
|
||||
}, 50));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), pageSize, resultLimit);
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -127,18 +128,12 @@ public class StarredRepositoriesFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
StarredRepositoriesViewModel.loadStarredReposList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext(), pageSize, resultLimit);
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
StarredRepositoriesViewModel.loadStarredReposList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), getContext(), pageSize, resultLimit);
|
||||
|
||||
}, 50));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), pageSize, resultLimit);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.mian.gitnex.fragments;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -90,18 +91,12 @@ public class TeamsByOrgFragment extends Fragment {
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
TeamsByOrgViewModel.loadTeamsByOrgList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName, getContext());
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
swipeRefresh.setRefreshing(false);
|
||||
TeamsByOrgViewModel.loadTeamsByOrgList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName, getContext());
|
||||
|
||||
}, 200));
|
||||
|
||||
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), orgName);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -57,7 +58,7 @@ public class UserAccountsFragment extends Fragment {
|
||||
|
||||
adapter = new UserAccountsAdapter(getContext(), userAccountsList);
|
||||
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler().postDelayed(() -> {
|
||||
swipeRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
|
||||
userAccountsList.clear();
|
||||
swipeRefresh.setRefreshing(false);
|
||||
|
||||
Reference in New Issue
Block a user