diff --git a/.gitignore b/.gitignore
index 93cf4a2d..7f5d55f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -195,3 +195,6 @@ crowdin.yml
!/gradle/wrapper/gradle-wrapper.jar
# End of https://www.gitignore.io/api/android,androidstudio
+
+# Crowdin Config
+crowdin.yml
diff --git a/app/build.gradle b/app/build.gradle
index 4e1a1157..3cc8fd32 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -54,14 +54,14 @@ configurations {
}
dependencies {
- def lifecycle_version = '2.3.0-rc01'
+ def lifecycle_version = '2.3.0'
def markwon_version = '4.6.1'
- def work_version = "2.4.0"
+ def work_version = "2.5.0"
def acra = "5.7.0"
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.3.0-beta01'
- implementation 'com.google.android.material:material:1.3.0-alpha03' // Upgrading to rc01 results in failing builds
+ implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
@@ -110,6 +110,8 @@ dependencies {
implementation "com.eightbitlab:blurview:1.6.4"
implementation "io.mikael:urlbuilder:2.0.9"
implementation "org.codeberg.gitnex-garage:emoji-java:v5.1.2"
+ implementation "org.codeberg.gitnex:tea4j:1.0.1"
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.1"
+ implementation 'androidx.biometric:biometric:1.1.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 840c9b46..0eab7a1f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,9 +9,10 @@
newFileCreate.setEnabled(hasNetworkConnection));
newFileCreate.setOnClickListener(createFileListener);
@@ -162,7 +162,6 @@ public class CreateFileActivity extends BaseActivity {
private void processNewFile() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
String newFileName_ = newFileName.getText().toString();
String newFileContent_ = newFileContent.getText().toString();
@@ -181,7 +180,7 @@ public class CreateFileActivity extends BaseActivity {
return;
}
- if(!appUtil.checkStringsWithDash(newFileBranchName_)) {
+ if(!AppUtil.checkStringsWithDash(newFileBranchName_)) {
Toasty.error(ctx, getString(R.string.newFileInvalidBranchName));
return;
@@ -198,7 +197,7 @@ public class CreateFileActivity extends BaseActivity {
switch(fileAction) {
case FILE_ACTION_CREATE:
- createNewFile(Authorization.get(ctx), repoOwner, repoName, newFileName_, appUtil.encodeBase64(newFileContent_), newFileCommitMessage_, newFileBranchName_);
+ createNewFile(Authorization.get(ctx), repoOwner, repoName, newFileName_, AppUtil.encodeBase64(newFileContent_), newFileCommitMessage_, newFileBranchName_);
break;
case FILE_ACTION_DELETE:
@@ -207,7 +206,7 @@ public class CreateFileActivity extends BaseActivity {
case FILE_ACTION_EDIT:
editFile(Authorization.get(ctx), repoOwner, repoName, filePath,
- appUtil.encodeBase64(newFileContent_), newFileCommitMessage_, newFileBranchName_, fileSha);
+ AppUtil.encodeBase64(newFileContent_), newFileCommitMessage_, newFileBranchName_, fileSha);
break;
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java
index fbdad652..12b0f449 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java
@@ -14,6 +14,10 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.Collaborators;
+import org.gitnex.tea4j.models.CreateIssue;
+import org.gitnex.tea4j.models.Labels;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.AssigneesActions;
import org.mian.gitnex.actions.LabelsActions;
@@ -30,10 +34,6 @@ import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Collaborators;
-import org.mian.gitnex.models.CreateIssue;
-import org.mian.gitnex.models.Labels;
-import org.mian.gitnex.models.Milestones;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java
index 70751fa1..8b36f34f 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java
@@ -13,6 +13,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.pes.androidmaterialcolorpickerdialog.ColorPicker;
+import org.gitnex.tea4j.models.CreateLabel;
+import org.gitnex.tea4j.models.Labels;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateLabelBinding;
@@ -21,8 +23,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.CreateLabel;
-import org.mian.gitnex.models.Labels;
import org.mian.gitnex.viewmodels.LabelsViewModel;
import org.mian.gitnex.viewmodels.OrganizationLabelsViewModel;
import java.util.Objects;
@@ -122,7 +122,7 @@ public class CreateLabelActivity extends BaseActivity {
private void processUpdateLabel() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
+
String repoFullName = tinyDB.getString("repoFullName");
String[] parts = repoFullName.split("/");
final String repoOwner = parts[0];
@@ -152,7 +152,7 @@ public class CreateLabelActivity extends BaseActivity {
return;
}
- if(!appUtil.checkStrings(updateLabelName)) {
+ if(!AppUtil.checkStrings(updateLabelName)) {
Toasty.error(ctx, getString(R.string.labelNameError));
return;
@@ -167,7 +167,6 @@ public class CreateLabelActivity extends BaseActivity {
private void processCreateLabel() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
String repoFullName = tinyDB.getString("repoFullName");
String[] parts = repoFullName.split("/");
@@ -198,7 +197,7 @@ public class CreateLabelActivity extends BaseActivity {
return;
}
- if(!appUtil.checkStrings(newLabelName)) {
+ if(!AppUtil.checkStrings(newLabelName)) {
Toasty.error(ctx, getString(R.string.labelNameError));
return;
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java
index 4b1af58f..efdfebab 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java
@@ -12,6 +12,7 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateMilestoneBinding;
@@ -21,7 +22,6 @@ import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Milestones;
import java.util.Calendar;
import retrofit2.Call;
import retrofit2.Callback;
@@ -92,7 +92,7 @@ public class CreateMilestoneActivity extends BaseActivity implements View.OnClic
private void processNewMilestone() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
+
TinyDB tinyDb = TinyDB.getInstance(appCtx);
String repoFullName = tinyDb.getString("repoFullName");
String[] parts = repoFullName.split("/");
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java
index 7464795e..2c110de5 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java
@@ -10,15 +10,14 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateNewUserBinding;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
-import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserInfo;
import retrofit2.Call;
import retrofit2.Callback;
@@ -74,8 +73,6 @@ public class CreateNewUserActivity extends BaseActivity {
private void processCreateNewUser() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
- TinyDB tinyDb = TinyDB.getInstance(appCtx);
String newFullName = fullName.getText().toString().trim();
String newUserName = userUserName.getText().toString().trim();
@@ -94,13 +91,13 @@ public class CreateNewUserActivity extends BaseActivity {
return;
}
- if(!appUtil.checkStrings(newFullName)) {
+ if(!AppUtil.checkStrings(newFullName)) {
Toasty.error(ctx, getString(R.string.userInvalidFullName));
return;
}
- if(!appUtil.checkStringsWithAlphaNumeric(newUserName)) {
+ if(!AppUtil.checkStringsWithAlphaNumeric(newUserName)) {
Toasty.error(ctx, getString(R.string.userInvalidUserName));
return;
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java
index 36296ace..a0d4d953 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java
@@ -11,6 +11,7 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.UserOrganizations;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateOrganizationBinding;
@@ -19,7 +20,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserOrganizations;
import retrofit2.Call;
import retrofit2.Callback;
@@ -94,8 +94,6 @@ public class CreateOrganizationActivity extends BaseActivity {
private void processNewOrganization() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
- TinyDB tinyDb = TinyDB.getInstance(appCtx);
String newOrgName = orgName.getText().toString();
String newOrgDesc = orgDesc.getText().toString();
@@ -119,7 +117,7 @@ public class CreateOrganizationActivity extends BaseActivity {
Toasty.error(ctx, getString(R.string.orgNameErrorEmpty));
}
- else if(!appUtil.checkStrings(newOrgName)) {
+ else if(!AppUtil.checkStrings(newOrgName)) {
Toasty.warning(ctx, getString(R.string.orgNameErrorInvalid));
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreatePullRequestActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreatePullRequestActivity.java
index a8351f3e..a274d2ff 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreatePullRequestActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreatePullRequestActivity.java
@@ -12,6 +12,10 @@ import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.Branches;
+import org.gitnex.tea4j.models.CreatePullRequest;
+import org.gitnex.tea4j.models.Labels;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.LabelsActions;
import org.mian.gitnex.adapters.LabelsListAdapter;
@@ -23,10 +27,6 @@ import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Branches;
-import org.mian.gitnex.models.CreatePullRequest;
-import org.mian.gitnex.models.Labels;
-import org.mian.gitnex.models.Milestones;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java
index f09182c0..744391de 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java
@@ -14,6 +14,8 @@ import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.Branches;
+import org.gitnex.tea4j.models.Releases;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateReleaseBinding;
@@ -21,8 +23,6 @@ import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.Branches;
-import org.mian.gitnex.models.Releases;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java
index 6eaae9ef..a38a2e02 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java
@@ -14,6 +14,8 @@ import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
+import org.gitnex.tea4j.models.OrgOwner;
+import org.gitnex.tea4j.models.OrganizationRepository;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateRepoBinding;
@@ -22,8 +24,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.OrgOwner;
-import org.mian.gitnex.models.OrganizationRepository;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -104,7 +104,6 @@ public class CreateRepoActivity extends BaseActivity {
private void processNewRepo() {
boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
- AppUtil appUtil = new AppUtil();
String newRepoName = repoName.getText().toString();
String newRepoDesc = repoDesc.getText().toString();
@@ -129,7 +128,7 @@ public class CreateRepoActivity extends BaseActivity {
Toasty.error(ctx, getString(R.string.repoNameErrorEmpty));
}
- else if(!appUtil.checkStrings(newRepoName)) {
+ else if(!AppUtil.checkStrings(newRepoName)) {
Toasty.warning(ctx, getString(R.string.repoNameErrorInvalid));
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java
index cb9eec7a..2a17d157 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java
@@ -12,6 +12,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.res.ResourcesCompat;
+import org.gitnex.tea4j.models.Teams;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityCreateTeamByOrgBinding;
@@ -20,7 +21,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.Teams;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -224,7 +224,6 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
private void processCreateTeam() {
- AppUtil appUtil = new AppUtil();
final TinyDB tinyDb = TinyDB.getInstance(appCtx);
final String loginUid = tinyDb.getString("loginUid");
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
@@ -248,7 +247,7 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
return;
}
- if(!appUtil.checkStringsWithAlphaNumericDashDotUnderscore(newTeamName)) {
+ if(!AppUtil.checkStringsWithAlphaNumericDashDotUnderscore(newTeamName)) {
Toasty.warning(ctx, getString(R.string.teamNameError));
return;
@@ -256,7 +255,7 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
if(!newTeamDesc.equals("")) {
- if(!appUtil.checkStrings(newTeamDesc)) {
+ if(!AppUtil.checkStrings(newTeamDesc)) {
Toasty.warning(ctx, getString(R.string.teamDescError));
return;
diff --git a/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java b/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java
index 3d56aef1..42be2a54 100644
--- a/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/DeepLinksActivity.java
@@ -9,6 +9,8 @@ import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import org.apache.commons.lang3.StringUtils;
+import org.gitnex.tea4j.models.PullRequests;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.database.api.RepositoriesApi;
@@ -17,8 +19,6 @@ import org.mian.gitnex.database.models.Repository;
import org.mian.gitnex.database.models.UserAccount;
import org.mian.gitnex.databinding.ActivityDeeplinksBinding;
import org.mian.gitnex.helpers.UrlHelper;
-import org.mian.gitnex.models.PullRequests;
-import org.mian.gitnex.models.UserRepositories;
import java.net.URI;
import java.util.List;
import java.util.Objects;
@@ -78,6 +78,13 @@ public class DeepLinksActivity extends BaseActivity {
if(hostUri.toLowerCase().contains(Objects.requireNonNull(data.getHost().toLowerCase()))) {
accountFound = true;
+
+ tinyDB.putString("loginUid", userAccount.getUserName());
+ tinyDB.putString("userLogin", userAccount.getUserName());
+ tinyDB.putString(userAccount.getUserName() + "-token", userAccount.getToken());
+ tinyDB.putString("instanceUrl", userAccount.getInstanceUrl());
+ tinyDB.putInt("currentActiveAccountId", userAccount.getAccountId());
+
break;
}
}
@@ -326,7 +333,7 @@ public class DeepLinksActivity extends BaseActivity {
// pull was done from a deleted fork
tinyDB.putString("prIsFork", "true");
- tinyDB.putString("prForkFullName", ctx.getString(R.string.prDeletedFrok));
+ tinyDB.putString("prForkFullName", ctx.getString(R.string.prDeletedFork));
}
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java
index f7592f9e..9e813b5e 100644
--- a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java
@@ -18,6 +18,9 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.CreateIssue;
+import org.gitnex.tea4j.models.Issues;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityEditIssueBinding;
@@ -27,9 +30,6 @@ import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.CreateIssue;
-import org.mian.gitnex.models.Issues;
-import org.mian.gitnex.models.Milestones;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
diff --git a/app/src/main/java/org/mian/gitnex/activities/FileDiffActivity.java b/app/src/main/java/org/mian/gitnex/activities/FileDiffActivity.java
index 95da2dca..b24ded72 100644
--- a/app/src/main/java/org/mian/gitnex/activities/FileDiffActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/FileDiffActivity.java
@@ -9,6 +9,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
+import org.gitnex.tea4j.models.FileDiffView;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.FilesDiffAdapter;
import org.mian.gitnex.clients.RetrofitClient;
@@ -18,7 +19,6 @@ import org.mian.gitnex.helpers.ParseDiff;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.FileDiffView;
import java.io.IOException;
import java.util.List;
import okhttp3.ResponseBody;
diff --git a/app/src/main/java/org/mian/gitnex/activities/FileViewActivity.java b/app/src/main/java/org/mian/gitnex/activities/FileViewActivity.java
index 6bf6f99f..e4e5c35d 100644
--- a/app/src/main/java/org/mian/gitnex/activities/FileViewActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/FileViewActivity.java
@@ -2,10 +2,7 @@ package org.mian.gitnex.activities;
import android.app.Activity;
import android.content.Intent;
-import android.graphics.BitmapFactory;
import android.graphics.Typeface;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
@@ -20,8 +17,6 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
-import androidx.activity.result.ActivityResult;
-import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
@@ -31,17 +26,18 @@ import com.github.barteksc.pdfviewer.util.FitPolicy;
import com.github.chrisbanes.photoview.PhotoView;
import com.vdurmont.emoji.EmojiParser;
import org.apache.commons.io.FileUtils;
+import org.gitnex.tea4j.models.Files;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityFileViewBinding;
import org.mian.gitnex.fragments.BottomSheetFileViewerFragment;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.AppUtil;
+import org.mian.gitnex.helpers.Images;
import org.mian.gitnex.helpers.Markdown;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.highlightjs.HighlightJsView;
import org.mian.gitnex.helpers.highlightjs.models.Theme;
-import org.mian.gitnex.models.Files;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -70,13 +66,11 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
private Boolean pdfNightMode;
private String singleFileName;
private String fileSha;
- private AppUtil appUtil;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- appUtil = new AppUtil();
ActivityFileViewBinding activityFileViewBinding = ActivityFileViewBinding.inflate(getLayoutInflater());
setContentView(activityFileViewBinding.getRoot());
@@ -174,86 +168,94 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
tinyDB.putString("downloadFileName", filename);
tinyDB.putString("downloadFileContents", response.body().getContent());
- if(appUtil.imageExtension(fileExtension)) { // file is image
+ boolean unknown = false;
- singleFileContentsFrame.setVisibility(View.GONE);
- singleCodeContents.setVisibility(View.GONE);
- pdfViewFrame.setVisibility(View.GONE);
- imageView.setVisibility(View.VISIBLE);
+ switch(AppUtil.getFileType(fileExtension)) {
- imageData = Base64.decode(response.body().getContent(), Base64.DEFAULT);
- Drawable imageDrawable = new BitmapDrawable(getResources(), BitmapFactory.decodeByteArray(imageData, 0, imageData.length));
- imageView.setImageDrawable(imageDrawable);
+ case IMAGE:
+
+ singleFileContentsFrame.setVisibility(View.GONE);
+ singleCodeContents.setVisibility(View.GONE);
+ pdfViewFrame.setVisibility(View.GONE);
+ imageView.setVisibility(View.VISIBLE);
+
+ imageData = Base64.decode(response.body().getContent(), Base64.DEFAULT);
+ imageView.setImageBitmap(Images.scaleImage(imageData, 1920));
+ break;
+ case TEXT:
+
+ imageView.setVisibility(View.GONE);
+ singleFileContentsFrame.setVisibility(View.GONE);
+ pdfViewFrame.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.setSource(AppUtil.decodeBase64(response.body().getContent()));
+ break;
+ case DOCUMENT:
+
+ if(fileExtension.equalsIgnoreCase("pdf")) {
+
+ imageView.setVisibility(View.GONE);
+ singleFileContentsFrame.setVisibility(View.GONE);
+ singleCodeContents.setVisibility(View.GONE);
+ pdfViewFrame.setVisibility(View.VISIBLE);
+
+ pdfNightMode = tinyDB.getBoolean("enablePdfMode");
+ decodedPdf = Base64.decode(response.body().getContent(), Base64.DEFAULT);
+
+ pdfView.fromBytes(decodedPdf)
+ .enableSwipe(true)
+ .swipeHorizontal(false)
+ .enableDoubletap(true)
+ .defaultPage(0)
+ .enableAnnotationRendering(false)
+ .password(null)
+ .scrollHandle(null)
+ .enableAntialiasing(true)
+ .spacing(0)
+ .autoSpacing(true)
+ .pageFitPolicy(FitPolicy.WIDTH)
+ .fitEachPage(true)
+ .pageSnap(false)
+ .pageFling(true)
+ .nightMode(pdfNightMode).load();
+ }
+ else {
+
+ unknown = true;
+ }
+ break;
+ case UNKNOWN:
+
+ default:
+ unknown = true;
+ break;
}
- else if(appUtil.sourceCodeExtension(fileExtension)) { // file is sourcecode
- imageView.setVisibility(View.GONE);
- singleFileContentsFrame.setVisibility(View.GONE);
- pdfViewFrame.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.setSource(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);
- pdfViewFrame.setVisibility(View.VISIBLE);
-
- pdfNightMode = tinyDB.getBoolean("enablePdfMode");
-
- decodedPdf = Base64.decode(response.body().getContent(), Base64.DEFAULT);
- pdfView.fromBytes(decodedPdf).enableSwipe(true).swipeHorizontal(false).enableDoubletap(true).defaultPage(0).enableAnnotationRendering(false).password(null).scrollHandle(null).enableAntialiasing(true).spacing(0).autoSpacing(true).pageFitPolicy(FitPolicy.WIDTH).fitEachPage(true).pageSnap(false).pageFling(true).nightMode(pdfNightMode).load();
-
- }
- else if(appUtil.excludeFilesInFileViewerExtension(fileExtension)) { // files need to be excluded
+ if(unknown) { // While the file could still be non-binary,
+ // it's better we don't show it (to prevent any crashes and/or unwanted behavior) and let the user download it instead.
imageView.setVisibility(View.GONE);
singleCodeContents.setVisibility(View.GONE);
pdfViewFrame.setVisibility(View.GONE);
singleFileContentsFrame.setVisibility(View.VISIBLE);
- singleFileContents.setText(getResources().getString(R.string.excludeFilesInFileviewer));
+ singleFileContents.setText(getString(R.string.excludeFilesInFileViewer));
singleFileContents.setGravity(Gravity.CENTER);
singleFileContents.setTypeface(null, Typeface.BOLD);
}
- else { // file type not known - plain text view
-
- imageView.setVisibility(View.GONE);
- singleCodeContents.setVisibility(View.GONE);
- pdfViewFrame.setVisibility(View.GONE);
- singleFileContentsFrame.setVisibility(View.VISIBLE);
-
- singleFileContents.setText(appUtil.decodeBase64(response.body().getContent()));
- }
}
else {
@@ -323,7 +325,7 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
}
else if(id == R.id.markdown) {
- new Markdown(ctx, EmojiParser.parseToUnicode(appUtil.decodeBase64(tinyDB.getString("downloadFileContents"))), singleFileContents);
+ new Markdown(ctx, EmojiParser.parseToUnicode(AppUtil.decodeBase64(tinyDB.getString("downloadFileContents"))), singleFileContents);
if(!tinyDB.getBoolean("enableMarkdownInFileView")) {
@@ -337,7 +339,7 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
singleCodeContents.setVisibility(View.VISIBLE);
singleFileContentsFrame.setVisibility(View.GONE);
singleFileContents.setVisibility(View.GONE);
- singleCodeContents.setSource(appUtil.decodeBase64(tinyDB.getString("downloadFileContents")));
+ singleCodeContents.setSource(AppUtil.decodeBase64(tinyDB.getString("downloadFileContents")));
tinyDB.putBoolean("enableMarkdownInFileView", false);
}
return true;
@@ -359,20 +361,15 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
if("deleteFile".equals(text)) {
String fileExtension = FileUtils.getExtension(singleFileName);
- String data = appUtil.decodeBase64(tinyDB.getString("downloadFileContents"));
+
+ String data = AppUtil.getFileType(fileExtension) == AppUtil.FileType.TEXT ?
+ AppUtil.decodeBase64(tinyDB.getString("downloadFileContents")) : "";
+
Intent intent = new Intent(ctx, CreateFileActivity.class);
intent.putExtra("fileAction", CreateFileActivity.FILE_ACTION_DELETE);
intent.putExtra("filePath", singleFileName);
intent.putExtra("fileSha", fileSha);
-
- if(!appUtil.imageExtension(fileExtension)) {
-
- intent.putExtra("fileContents", data);
- }
- else {
-
- intent.putExtra("fileContents", "");
- }
+ intent.putExtra("fileContents", data);
ctx.startActivity(intent);
}
@@ -380,24 +377,25 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
if("editFile".equals(text)) {
String fileExtension = FileUtils.getExtension(singleFileName);
- String data = appUtil.decodeBase64(tinyDB.getString("downloadFileContents"));
- Intent intent = new Intent(ctx, CreateFileActivity.class);
- intent.putExtra("fileAction", CreateFileActivity.FILE_ACTION_EDIT);
- intent.putExtra("filePath", singleFileName);
- intent.putExtra("fileSha", fileSha);
- if(!appUtil.imageExtension(fileExtension)) {
+ switch(AppUtil.getFileType(fileExtension)) {
- intent.putExtra("fileContents", data);
+ case TEXT:
+
+ Intent intent = new Intent(ctx, CreateFileActivity.class);
+
+ intent.putExtra("fileAction", CreateFileActivity.FILE_ACTION_EDIT);
+ intent.putExtra("filePath", singleFileName);
+ intent.putExtra("fileSha", fileSha);
+ intent.putExtra("fileContents", AppUtil.decodeBase64(tinyDB.getString("downloadFileContents")));
+
+ ctx.startActivity(intent);
+ break;
+ default:
+
+ Toasty.error(ctx, getString(R.string.fileTypeCannotBeEdited));
}
- else {
-
- intent.putExtra("fileContents", "");
- }
-
- ctx.startActivity(intent);
}
-
}
private void requestFileDownload() {
@@ -420,11 +418,8 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
}
}
- ActivityResultLauncher fileDownloadActivityResultLauncher = registerForActivityResult(
- new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() {
-
- @Override
- public void onActivityResult(ActivityResult result) {
+ ActivityResultLauncher fileDownloadActivityResultLauncher =
+ registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
@@ -445,15 +440,14 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
outputStream.close();
Toasty.success(ctx, getString(R.string.downloadFileSaved));
-
}
catch(IOException e) {
Log.e("errorFileDownloading", Objects.requireNonNull(e.getMessage()));
}
}
- }
- });
+
+ });
private void initCloseListener() {
diff --git a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
index 6a944713..6a18e9a0 100644
--- a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
@@ -29,6 +29,11 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.amulyakhare.textdrawable.TextDrawable;
import com.google.gson.JsonElement;
import com.vdurmont.emoji.EmojiParser;
+import org.gitnex.tea4j.models.Collaborators;
+import org.gitnex.tea4j.models.Issues;
+import org.gitnex.tea4j.models.Labels;
+import org.gitnex.tea4j.models.UpdateIssueAssignees;
+import org.gitnex.tea4j.models.WatchInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.AssigneesActions;
import org.mian.gitnex.actions.LabelsActions;
@@ -54,11 +59,6 @@ import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Collaborators;
-import org.mian.gitnex.models.Issues;
-import org.mian.gitnex.models.Labels;
-import org.mian.gitnex.models.UpdateIssueAssignees;
-import org.mian.gitnex.models.WatchInfo;
import org.mian.gitnex.viewmodels.IssueCommentsViewModel;
import org.mian.gitnex.views.ReactionList;
import java.text.DateFormat;
diff --git a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
index 3926e121..4c3698cd 100644
--- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
@@ -12,6 +12,9 @@ import android.widget.EditText;
import android.widget.RadioGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
+import org.gitnex.tea4j.models.GiteaVersion;
+import org.gitnex.tea4j.models.UserInfo;
+import org.gitnex.tea4j.models.UserTokens;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.database.api.UserAccountsApi;
@@ -24,9 +27,6 @@ import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.UrlHelper;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.GiteaVersion;
-import org.mian.gitnex.models.UserInfo;
-import org.mian.gitnex.models.UserTokens;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.List;
@@ -61,7 +61,7 @@ public class LoginActivity extends BaseActivity {
ActivityLoginBinding activityLoginBinding = ActivityLoginBinding.inflate(getLayoutInflater());
setContentView(activityLoginBinding.getRoot());
- NetworkStatusObserver networkStatusObserver = NetworkStatusObserver.get(ctx);
+ NetworkStatusObserver networkStatusObserver = NetworkStatusObserver.getInstance(ctx);
loginButton = activityLoginBinding.loginButton;
instanceUrlET = activityLoginBinding.instanceUrl;
diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
index e2f9f061..b02a2740 100644
--- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
+import android.text.Html;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -17,6 +18,8 @@ import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.biometric.BiometricPrompt;
+import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
@@ -24,6 +27,9 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.navigation.NavigationView;
+import org.gitnex.tea4j.models.GiteaVersion;
+import org.gitnex.tea4j.models.NotificationCount;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.UserAccountsNavAdapter;
import org.mian.gitnex.clients.PicassoService;
@@ -52,11 +58,9 @@ import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.GiteaVersion;
-import org.mian.gitnex.models.NotificationCount;
-import org.mian.gitnex.models.UserInfo;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Executor;
import eightbitlab.com.blurview.BlurView;
import eightbitlab.com.blurview.RenderScriptBlur;
import retrofit2.Call;
@@ -157,6 +161,43 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
break;
}
+ // biometric auth
+ if(tinyDB.getBoolean("biometricStatus")) {
+
+ Executor executor = ContextCompat.getMainExecutor(this);
+
+ BiometricPrompt biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
+
+ @Override
+ public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
+
+ super.onAuthenticationError(errorCode, errString);
+
+ // Authentication error, close the app
+ if(errorCode == BiometricPrompt.ERROR_USER_CANCELED ||
+ errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {
+
+ finish();
+ }
+ }
+
+ // Authentication succeeded, continue to app
+ @Override public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) { super.onAuthenticationSucceeded(result); }
+
+ // Authentication failed, close the app
+ @Override public void onAuthenticationFailed() { super.onAuthenticationFailed(); }
+
+ });
+
+ BiometricPrompt.PromptInfo biometricPromptBuilder = new BiometricPrompt.PromptInfo.Builder()
+ .setTitle(getString(R.string.biometricAuthTitle))
+ .setSubtitle(getString(R.string.biometricAuthSubTitle))
+ .setNegativeButtonText(getString(R.string.cancelButton)).build();
+
+ biometricPrompt.authenticate(biometricPromptBuilder);
+
+ }
+
toolbarTitle.setTypeface(myTypeface);
setSupportActionBar(toolbar);
@@ -214,7 +255,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
Menu menu = navigationView.getMenu();
navNotifications = menu.findItem(R.id.nav_notifications);
- ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+ ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigationDrawerOpen, R.string.navigationDrawerClose);
drawer.addDrawerListener(toggle);
drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
@@ -268,7 +309,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
if(!userFullNameNav.equals("")) {
- userFullName.setText(userFullNameNav);
+ userFullName.setText(Html.fromHtml(userFullNameNav));
}
if(!userAvatarNav.equals("")) {
diff --git a/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java b/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java
index 32ddb423..7098dc4b 100644
--- a/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java
@@ -9,6 +9,8 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.MergePullRequest;
+import org.gitnex.tea4j.models.MergePullRequestSpinner;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityMergePullRequestBinding;
@@ -17,8 +19,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.MergePullRequest;
-import org.mian.gitnex.models.MergePullRequestSpinner;
import java.util.ArrayList;
import java.util.Objects;
import okhttp3.ResponseBody;
diff --git a/app/src/main/java/org/mian/gitnex/activities/OrganizationDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/OrganizationDetailActivity.java
index 8b69b5f6..63200b4e 100644
--- a/app/src/main/java/org/mian/gitnex/activities/OrganizationDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/OrganizationDetailActivity.java
@@ -212,7 +212,7 @@ public class OrganizationDetailActivity extends BaseActivity implements BottomSh
@Override
public int getCount() {
- return 4;
+ return 5;
}
}
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java b/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java
index 398277da..ef47f0d4 100644
--- a/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java
@@ -11,6 +11,7 @@ import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.AddEmail;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.ActivityProfileEmailBinding;
@@ -19,7 +20,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.AddEmail;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
index 7abf2742..fb01d048 100644
--- a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
@@ -27,6 +27,9 @@ import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.Branches;
+import org.gitnex.tea4j.models.UserRepositories;
+import org.gitnex.tea4j.models.WatchInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.fragments.BottomSheetIssuesFilterFragment;
@@ -44,9 +47,6 @@ import org.mian.gitnex.fragments.RepoInfoFragment;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Branches;
-import org.mian.gitnex.models.UserRepositories;
-import org.mian.gitnex.models.WatchInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/app/src/main/java/org/mian/gitnex/activities/RepoForksActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepoForksActivity.java
index b69c54b4..6c3e6f63 100644
--- a/app/src/main/java/org/mian/gitnex/activities/RepoForksActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/RepoForksActivity.java
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.RepoForksAdapter;
import org.mian.gitnex.clients.RetrofitClient;
@@ -29,7 +30,6 @@ import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.UserRepositories;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/activities/RepoStargazersActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepoStargazersActivity.java
index 9ea12885..438863b1 100644
--- a/app/src/main/java/org/mian/gitnex/activities/RepoStargazersActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/RepoStargazersActivity.java
@@ -28,11 +28,11 @@ public class RepoStargazersActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
ActivityRepoStargazersBinding activityRepoStargazersBinding = ActivityRepoStargazersBinding.inflate(getLayoutInflater());
setContentView(activityRepoStargazersBinding.getRoot());
- super.onCreate(savedInstanceState);
-
ImageView closeActivity = activityRepoStargazersBinding.close;
TextView toolbarTitle = activityRepoStargazersBinding.toolbarTitle;
noDataStargazers = activityRepoStargazersBinding.noDataStargazers;
diff --git a/app/src/main/java/org/mian/gitnex/activities/RepositorySettingsActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepositorySettingsActivity.java
index 98448a64..54e62e0d 100644
--- a/app/src/main/java/org/mian/gitnex/activities/RepositorySettingsActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/RepositorySettingsActivity.java
@@ -10,6 +10,8 @@ import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.google.gson.JsonElement;
+import org.gitnex.tea4j.models.RepositoryTransfer;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.database.api.RepositoriesApi;
@@ -19,8 +21,6 @@ import org.mian.gitnex.databinding.CustomRepositoryEditPropertiesDialogBinding;
import org.mian.gitnex.databinding.CustomRepositoryTransferDialogBinding;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.RepositoryTransfer;
-import org.mian.gitnex.models.UserRepositories;
import retrofit2.Call;
import retrofit2.Callback;
@@ -113,6 +113,7 @@ public class RepositorySettingsActivity extends BaseActivity {
}
});
+ dialogTransferRepository.setCancelable(false);
dialogTransferRepository.show();
}
@@ -195,6 +196,7 @@ public class RepositorySettingsActivity extends BaseActivity {
}
});
+ dialogDeleteRepository.setCancelable(false);
dialogDeleteRepository.show();
}
@@ -334,6 +336,7 @@ public class RepositorySettingsActivity extends BaseActivity {
propBinding.repoEnableMerge.isChecked(), propBinding.repoEnableRebase.isChecked(),
propBinding.repoEnableSquash.isChecked(), propBinding.repoEnableForceMerge.isChecked()));
+ dialogProp.setCancelable(false);
dialogProp.show();
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsFileViewerActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsFileViewerActivity.java
index 42f37e8c..d3e86f63 100644
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsFileViewerActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/SettingsFileViewerActivity.java
@@ -54,7 +54,7 @@ public class SettingsFileViewerActivity extends BaseActivity {
AlertDialog.Builder fvtsBuilder = new AlertDialog.Builder(SettingsFileViewerActivity.this);
- fvtsBuilder.setTitle(R.string.fileviewerSourceCodeThemeSelectorDialogTitle);
+ fvtsBuilder.setTitle(R.string.fileViewerSourceCodeThemeSelectorDialogTitle);
fvtsBuilder.setCancelable(fileViewerSourceCodeThemesSelectedChoice != -1);
fvtsBuilder.setSingleChoiceItems(fileViewerSourceCodeThemesList, fileViewerSourceCodeThemesSelectedChoice, (dialogInterfaceTheme, i) -> {
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsGeneralActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsGeneralActivity.java
index a96bbb2c..f63762a5 100644
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsGeneralActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/SettingsGeneralActivity.java
@@ -113,7 +113,7 @@ public class SettingsGeneralActivity extends BaseActivity {
// home screen
// link handler
- String[] defaultScreen_ = {getResources().getString(R.string.generalDeepLinkSelectedText), getResources().getString(R.string.navRepos), getResources().getString(R.string.navOrgs), getResources().getString(R.string.pageTitleNotifications), getResources().getString(R.string.navExplore)};
+ String[] defaultScreen_ = {getResources().getString(R.string.generalDeepLinkSelectedText), getResources().getString(R.string.navRepos), getResources().getString(R.string.navOrg), getResources().getString(R.string.pageTitleNotifications), getResources().getString(R.string.navExplore)};
defaultScreen = new ArrayList<>(Arrays.asList(defaultScreen_));
String[] linksArray = new String[defaultScreen.size()];
@@ -131,7 +131,7 @@ public class SettingsGeneralActivity extends BaseActivity {
}
else if(defaultLinkHandlerScreenSelectedChoice == 2) {
- viewBinding.generalDeepLinkSelected.setText(getResources().getString(R.string.navOrgs));
+ viewBinding.generalDeepLinkSelected.setText(getResources().getString(R.string.navOrg));
}
else if(defaultLinkHandlerScreenSelectedChoice == 3) {
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsNotificationsActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsNotificationsActivity.java
index 3a231f34..b668625b 100644
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsNotificationsActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/SettingsNotificationsActivity.java
@@ -10,7 +10,7 @@ import org.mian.gitnex.R;
import org.mian.gitnex.databinding.ActivitySettingsNotificationsBinding;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.notifications.NotificationsMaster;
+import org.mian.gitnex.notifications.Notifications;
/**
* Template Author M M Arif
@@ -43,7 +43,7 @@ public class SettingsNotificationsActivity extends BaseActivity {
viewBinding.enableNotificationsMode.setOnCheckedChangeListener((buttonView, isChecked) -> {
tinyDB.putBoolean("notificationsEnabled", isChecked);
- if(!isChecked) NotificationsMaster.fireWorker(ctx);
+ if(!isChecked) Notifications.stopWorker(ctx);
Toasty.info(appCtx, getResources().getString(R.string.settingsSave));
});
@@ -66,8 +66,8 @@ public class SettingsNotificationsActivity extends BaseActivity {
tinyDB.putInt("pollingDelayMinutes", numberPicker.getValue());
- NotificationsMaster.fireWorker(ctx);
- NotificationsMaster.hireWorker(ctx);
+ Notifications.stopWorker(ctx);
+ Notifications.startWorker(ctx);
viewBinding.pollingDelaySelected.setText(String.format(getString(R.string.pollingDelaySelectedText), numberPicker.getValue()));
Toasty.info(appCtx, getResources().getString(R.string.settingsSave));
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsSecurityActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsSecurityActivity.java
index ad86d2ab..0e81ccb0 100644
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsSecurityActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/SettingsSecurityActivity.java
@@ -1,7 +1,9 @@
package org.mian.gitnex.activities;
+import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
@@ -9,6 +11,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
+import androidx.biometric.BiometricManager;
+import com.google.android.material.switchmaterial.SwitchMaterial;
import org.apache.commons.io.FileUtils;
import org.mian.gitnex.R;
import org.mian.gitnex.databinding.ActivitySettingsSecurityBinding;
@@ -16,6 +20,8 @@ import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.ssl.MemorizingTrustManager;
import java.io.File;
import java.io.IOException;
+import static androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG;
+import static androidx.biometric.BiometricManager.Authenticators.DEVICE_CREDENTIAL;
/**
* Author M M Arif
@@ -53,6 +59,8 @@ public class SettingsSecurityActivity extends BaseActivity {
LinearLayout cacheSizeImagesFrame = activitySettingsSecurityBinding.cacheSizeImagesSelectionFrame;
LinearLayout clearCacheFrame = activitySettingsSecurityBinding.clearCacheSelectionFrame;
+ SwitchMaterial switchBiometric = activitySettingsSecurityBinding.switchBiometric;
+
if(!tinyDB.getString("cacheSizeStr").isEmpty()) {
cacheSizeDataSelected.setText(tinyDB.getString("cacheSizeStr"));
@@ -73,6 +81,70 @@ public class SettingsSecurityActivity extends BaseActivity {
cacheSizeImagesSelectedChoice = tinyDB.getInt("cacheSizeImagesId");
}
+ switchBiometric.setChecked(tinyDB.getBoolean("biometricStatus"));
+
+ // biometric switcher
+ switchBiometric.setOnCheckedChangeListener((buttonView, isChecked) -> {
+
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+
+ if(isChecked) {
+
+ BiometricManager biometricManager = BiometricManager.from(ctx);
+ KeyguardManager keyguardManager = (KeyguardManager) ctx.getSystemService(Context.KEYGUARD_SERVICE);
+
+ if (!keyguardManager.isDeviceSecure()) {
+
+ switch(biometricManager.canAuthenticate(BIOMETRIC_STRONG | DEVICE_CREDENTIAL)) {
+
+ case BiometricManager.BIOMETRIC_SUCCESS:
+
+ tinyDB.putBoolean("biometricStatus", true);
+ Toasty.success(appCtx, getResources().getString(R.string.settingsSave));
+ break;
+ case BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE:
+ case BiometricManager.BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED:
+ case BiometricManager.BIOMETRIC_ERROR_UNSUPPORTED:
+ case BiometricManager.BIOMETRIC_STATUS_UNKNOWN:
+
+ tinyDB.putBoolean("biometricStatus", false);
+ switchBiometric.setChecked(false);
+ Toasty.error(appCtx, getResources().getString(R.string.biometricNotSupported));
+ break;
+ case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE:
+
+ tinyDB.putBoolean("biometricStatus", false);
+ switchBiometric.setChecked(false);
+ Toasty.error(appCtx, getResources().getString(R.string.biometricNotAvailable));
+ break;
+ case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:
+
+ tinyDB.putBoolean("biometricStatus", false);
+ switchBiometric.setChecked(false);
+ Toasty.info(appCtx, getResources().getString(R.string.enrollBiometric));
+ break;
+ }
+ }
+ else {
+
+ tinyDB.putBoolean("biometricStatus", true);
+ Toasty.success(appCtx, getResources().getString(R.string.settingsSave));
+ }
+ }
+ else {
+
+ tinyDB.putBoolean("biometricStatus", false);
+ Toasty.success(appCtx, getResources().getString(R.string.settingsSave));
+ }
+ }
+ else {
+
+ tinyDB.putBoolean("biometricStatus", false);
+ Toasty.success(appCtx, getResources().getString(R.string.biometricNotSupported));
+ }
+
+ });
+
// clear cache setter
File cacheDir = appCtx.getCacheDir();
clearCacheSelected.setText(FileUtils.byteCountToDisplaySize((int) FileUtils.sizeOfDirectory(cacheDir)));
diff --git a/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java
index 7ebf2c7f..5bce9a2e 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/AdminCronTasksAdapter.java
@@ -12,13 +12,13 @@ import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.JsonElement;
import org.apache.commons.lang3.StringUtils;
+import org.gitnex.tea4j.models.CronTasks;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.CronTasks;
import java.util.List;
import java.util.Locale;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/AdminGetUsersAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/AdminGetUsersAdapter.java
index 2f8f63c7..4f7766d8 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/AdminGetUsersAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/AdminGetUsersAdapter.java
@@ -1,6 +1,7 @@
package org.mian.gitnex.adapters;
import android.content.Context;
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,10 +13,11 @@ import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.amulyakhare.textdrawable.TextDrawable;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.PicassoService;
+import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.RoundedTransformation;
-import org.mian.gitnex.models.UserInfo;
import java.util.ArrayList;
import java.util.List;
@@ -25,19 +27,22 @@ import java.util.List;
public class AdminGetUsersAdapter extends RecyclerView.Adapter implements Filterable {
- private List usersList;
- private Context mCtx;
- private List usersListFull;
+ private final List usersList;
+ private final Context mCtx;
+ private final List usersListFull;
static class UsersViewHolder extends RecyclerView.ViewHolder {
- private ImageView userAvatar;
- private TextView userFullName;
- private TextView userEmail;
- private ImageView userRole;
- private TextView userName;
+ private String userLoginId;
+
+ private final ImageView userAvatar;
+ private final TextView userFullName;
+ private final TextView userEmail;
+ private final ImageView userRole;
+ private final TextView userName;
private UsersViewHolder(View itemView) {
+
super(itemView);
userAvatar = itemView.findViewById(R.id.userAvatar);
@@ -46,10 +51,17 @@ public class AdminGetUsersAdapter extends RecyclerView.Adapter {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public AdminGetUsersAdapter(Context mCtx, List usersListMain) {
+
this.mCtx = mCtx;
this.usersList = usersListMain;
usersListFull = new ArrayList<>(usersList);
@@ -58,6 +70,7 @@ public class AdminGetUsersAdapter extends RecyclerView.Adapter filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(usersListFull);
- } else {
+ }
+ else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (UserInfo item : usersListFull) {
@@ -137,6 +159,7 @@ public class AdminGetUsersAdapter extends RecyclerView.Adapter {
- private Context mCtx;
- private List assigneesList;
+ private final Context mCtx;
+ private final List assigneesList;
private List assigneesStrings = new ArrayList<>();
private List currentAssignees;
- private AssigneesListAdapterListener assigneesListener;
+ private final AssigneesListAdapterListener assigneesListener;
public interface AssigneesListAdapterListener {
@@ -45,9 +46,9 @@ public class AssigneesListAdapter extends RecyclerView.Adapter collaboratorsList;
- private Context mCtx;
+ private final List collaboratorsList;
+ private final Context mCtx;
- private class ViewHolder {
+ private static class ViewHolder {
- private ImageView collaboratorAvatar;
- private TextView collaboratorName;
+ private String userLoginId;
+
+ private final ImageView collaboratorAvatar;
+ private final TextView collaboratorName;
ViewHolder(View v) {
+
collaboratorAvatar = v.findViewById(R.id.collaboratorAvatar);
collaboratorName = v.findViewById(R.id.collaboratorName);
+
+ collaboratorAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public CollaboratorsAdapter(Context mCtx, List collaboratorsListMain) {
+
this.mCtx = mCtx;
this.collaboratorsList = collaboratorsListMain;
}
@@ -61,17 +74,18 @@ public class CollaboratorsAdapter extends BaseAdapter {
ViewHolder viewHolder = null;
if (finalView == null) {
+
finalView = LayoutInflater.from(mCtx).inflate(R.layout.list_collaborators, null);
viewHolder = new ViewHolder(finalView);
finalView.setTag(viewHolder);
}
else {
+
viewHolder = (ViewHolder) finalView.getTag();
}
initData(viewHolder, position);
return finalView;
-
}
private void initData(ViewHolder viewHolder, int position) {
@@ -79,10 +93,14 @@ public class CollaboratorsAdapter extends BaseAdapter {
Collaborators currentItem = collaboratorsList.get(position);
PicassoService.getInstance(mCtx).get().load(currentItem.getAvatar_url()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.collaboratorAvatar);
+ viewHolder.userLoginId = currentItem.getLogin();
+
if(!currentItem.getFull_name().equals("")) {
- viewHolder.collaboratorName.setText(currentItem.getFull_name());
+
+ viewHolder.collaboratorName.setText(Html.fromHtml(currentItem.getFull_name()));
}
else {
+
viewHolder.collaboratorName.setText(currentItem.getLogin());
}
diff --git a/app/src/main/java/org/mian/gitnex/adapters/CommitsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/CommitsAdapter.java
index 609c4fa6..9c67fcde 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/CommitsAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/CommitsAdapter.java
@@ -12,11 +12,11 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.vdurmont.emoji.EmojiParser;
+import org.gitnex.tea4j.models.Commits;
import org.mian.gitnex.R;
import org.mian.gitnex.helpers.ClickListener;
import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.Commits;
import java.util.List;
import java.util.Locale;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/ExploreRepositoriesAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/ExploreRepositoriesAdapter.java
index b1ff42cc..b2af0601 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/ExploreRepositoriesAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/ExploreRepositoriesAdapter.java
@@ -18,6 +18,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.amulyakhare.textdrawable.TextDrawable;
import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.google.android.material.bottomsheet.BottomSheetDialog;
+import org.gitnex.tea4j.models.UserRepositories;
+import org.gitnex.tea4j.models.WatchInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.OpenRepoInBrowserActivity;
import org.mian.gitnex.activities.RepoDetailActivity;
@@ -31,8 +33,6 @@ import org.mian.gitnex.database.models.Repository;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserRepositories;
-import org.mian.gitnex.models.WatchInfo;
import java.util.List;
import java.util.Objects;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java
index 93b12a42..5724dd44 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java
@@ -9,11 +9,12 @@ import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.content.res.AppCompatResources;
import androidx.recyclerview.widget.RecyclerView;
import org.apache.commons.io.FileUtils;
+import org.gitnex.tea4j.models.Files;
import org.mian.gitnex.R;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.Files;
import java.util.ArrayList;
import java.util.List;
@@ -23,34 +24,33 @@ import java.util.List;
public class FilesAdapter extends RecyclerView.Adapter implements Filterable {
- private List filesList;
- private Context mCtx;
- private List filesListFull;
+ private final List originalFiles = new ArrayList<>();
+ private final List alteredFiles = new ArrayList<>();
- private FilesAdapterListener filesListener;
+ private final Context mCtx;
+
+ private final FilesAdapterListener filesListener;
public interface FilesAdapterListener {
+
void onClickDir(String str);
void onClickFile(String str);
}
- class FilesViewHolder extends RecyclerView.ViewHolder {
+ class FilesViewHolder extends RecyclerView.ViewHolder {
- private ImageView fileTypeImage;
- private ImageView dirTypeImage;
- private ImageView unknownTypeImage;
- private TextView fileName;
- private TextView fileType;
- private TextView fileInfo;
+ private String fileType;
+
+ private final ImageView fileTypeIs;
+ private final TextView fileName;
+ private final TextView fileInfo;
private FilesViewHolder(View itemView) {
super(itemView);
+
fileName = itemView.findViewById(R.id.fileName);
- fileTypeImage = itemView.findViewById(R.id.fileImage);
- dirTypeImage = itemView.findViewById(R.id.dirImage);
- unknownTypeImage = itemView.findViewById(R.id.unknownImage);
- fileType = itemView.findViewById(R.id.fileType);
+ fileTypeIs = itemView.findViewById(R.id.fileTypeIs);
fileInfo = itemView.findViewById(R.id.fileInfo);
//ImageView filesDropdownMenu = itemView.findViewById(R.id.filesDropdownMenu);
@@ -59,10 +59,10 @@ public class FilesAdapter extends RecyclerView.Adapter filesListMain, FilesAdapterListener filesListener) {
+ public FilesAdapter(Context mCtx, FilesAdapterListener filesListener) {
+
this.mCtx = mCtx;
- this.filesList = filesListMain;
- filesListFull = new ArrayList<>(filesList);
this.filesListener = filesListener;
+
+ }
+
+ public List getOriginalFiles() {
+ return originalFiles;
+ }
+
+ public void notifyOriginalDataSetChanged() {
+
+ alteredFiles.clear();
+ alteredFiles.addAll(originalFiles);
+
+ notifyDataSetChanged();
+
}
@NonNull
@@ -155,35 +168,32 @@ public class FilesAdapter extends RecyclerView.Adapter filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
- filteredList.addAll(filesListFull);
+ filteredList.addAll(originalFiles);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
- for (Files item : filesListFull) {
+ for (Files item : originalFiles) {
if (item.getName().toLowerCase().contains(filterPattern) || item.getPath().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
@@ -216,10 +228,14 @@ public class FilesAdapter extends RecyclerView.Adapter {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
+
}
}
@@ -311,6 +319,8 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter
class IssuesHolder extends RecyclerView.ViewHolder {
+ private String userLoginId;
+
private final TextView issueNumber;
private final ImageView issueAssigneeAvatar;
private final TextView issueTitle;
@@ -118,9 +121,9 @@ public class IssuesAdapter extends RecyclerView.Adapter
LinearLayout frameCommentsCount = itemView.findViewById(R.id.frameCommentsCount);
issueCreatedTime = itemView.findViewById(R.id.issueCreatedTime);
- issueTitle.setOnClickListener(v -> {
+ issueTitle.setOnClickListener(title -> {
- Context context = v.getContext();
+ Context context = title.getContext();
Intent intent = new Intent(context, IssueDetailActivity.class);
intent.putExtra("issueNumber", issueNumber.getText());
@@ -131,9 +134,10 @@ public class IssuesAdapter extends RecyclerView.Adapter
context.startActivity(intent);
});
- frameCommentsCount.setOnClickListener(v -> {
- Context context = v.getContext();
+ frameCommentsCount.setOnClickListener(commentsCount -> {
+
+ Context context = commentsCount.getContext();
Intent intent = new Intent(context, IssueDetailActivity.class);
intent.putExtra("issueNumber", issueNumber.getText());
@@ -145,6 +149,13 @@ public class IssuesAdapter extends RecyclerView.Adapter
});
+ issueAssigneeAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
+
}
@SuppressLint("SetTextI18n")
@@ -154,12 +165,7 @@ public class IssuesAdapter extends RecyclerView.Adapter
final String locale = tinyDb.getString("locale");
final String timeFormat = tinyDb.getString("dateFormat");
- if(!issuesModel.getUser().getFull_name().equals("")) {
- issueAssigneeAvatar.setOnClickListener(new ClickListener(context.getResources().getString(R.string.issueCreator) + issuesModel.getUser().getFull_name(), context));
- }
- else {
- issueAssigneeAvatar.setOnClickListener(new ClickListener(context.getResources().getString(R.string.issueCreator) + issuesModel.getUser().getLogin(), context));
- }
+ userLoginId = issuesModel.getUser().getLogin();
PicassoService.getInstance(context).get().load(issuesModel.getUser().getAvatar_url()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(issueAssigneeAvatar);
diff --git a/app/src/main/java/org/mian/gitnex/adapters/LabelsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/LabelsAdapter.java
index 73d8cab3..2b546330 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/LabelsAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/LabelsAdapter.java
@@ -15,11 +15,11 @@ import androidx.cardview.widget.CardView;
import androidx.core.widget.ImageViewCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetDialog;
+import org.gitnex.tea4j.models.Labels;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.CreateLabelActivity;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.ColorInverter;
-import org.mian.gitnex.models.Labels;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/LabelsListAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/LabelsListAdapter.java
index 4a01cb16..cdca4eb3 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/LabelsListAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/LabelsListAdapter.java
@@ -9,8 +9,8 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import org.gitnex.tea4j.models.Labels;
import org.mian.gitnex.R;
-import org.mian.gitnex.models.Labels;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/MembersByOrgAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/MembersByOrgAdapter.java
index 5428f4aa..e1636e8e 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/MembersByOrgAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/MembersByOrgAdapter.java
@@ -2,6 +2,7 @@ package org.mian.gitnex.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -10,10 +11,11 @@ import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.PicassoService;
+import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.RoundedTransformation;
-import org.mian.gitnex.models.UserInfo;
import java.util.ArrayList;
import java.util.List;
@@ -23,26 +25,36 @@ import java.util.List;
public class MembersByOrgAdapter extends BaseAdapter implements Filterable {
- private List membersList;
- private Context mCtx;
- private List membersListFull;
+ private final List membersList;
+ private final Context mCtx;
+ private final List membersListFull;
- private class ViewHolder {
+ private static class ViewHolder {
- private ImageView memberAvatar;
- private TextView memberName;
+ private String userLoginId;
+
+ private final ImageView memberAvatar;
+ private final TextView memberName;
ViewHolder(View v) {
+
memberAvatar = v.findViewById(R.id.memberAvatar);
memberName = v.findViewById(R.id.memberName);
+
+ memberAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public MembersByOrgAdapter(Context mCtx, List membersListMain) {
+
this.mCtx = mCtx;
this.membersList = membersListMain;
membersListFull = new ArrayList<>(membersList);
-
}
@Override
@@ -67,17 +79,18 @@ public class MembersByOrgAdapter extends BaseAdapter implements Filterable {
MembersByOrgAdapter.ViewHolder viewHolder = null;
if (finalView == null) {
+
finalView = LayoutInflater.from(mCtx).inflate(R.layout.list_members_by_org, null);
- viewHolder = new MembersByOrgAdapter.ViewHolder(finalView);
+ viewHolder = new ViewHolder(finalView);
finalView.setTag(viewHolder);
}
else {
+
viewHolder = (MembersByOrgAdapter.ViewHolder) finalView.getTag();
}
initData(viewHolder, position);
return finalView;
-
}
private void initData(MembersByOrgAdapter.ViewHolder viewHolder, int position) {
@@ -85,10 +98,14 @@ public class MembersByOrgAdapter extends BaseAdapter implements Filterable {
UserInfo currentItem = membersList.get(position);
PicassoService.getInstance(mCtx).get().load(currentItem.getAvatar()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(viewHolder.memberAvatar);
+ viewHolder.userLoginId = currentItem.getLogin();
+
if(!currentItem.getFullname().equals("")) {
- viewHolder.memberName.setText(currentItem.getFullname());
+
+ viewHolder.memberName.setText(Html.fromHtml(currentItem.getFullname()));
}
else {
+
viewHolder.memberName.setText(currentItem.getLogin());
}
@@ -99,14 +116,17 @@ public class MembersByOrgAdapter extends BaseAdapter implements Filterable {
return membersFilter;
}
- private Filter membersFilter = new Filter() {
+ private final Filter membersFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
+
filteredList.addAll(membersListFull);
- } else {
+ }
+ else {
+
String filterPattern = constraint.toString().toLowerCase().trim();
for (UserInfo item : membersListFull) {
@@ -124,6 +144,7 @@ public class MembersByOrgAdapter extends BaseAdapter implements Filterable {
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
+
membersList.clear();
membersList.addAll((List) results.values);
notifyDataSetChanged();
diff --git a/app/src/main/java/org/mian/gitnex/adapters/MilestonesAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/MilestonesAdapter.java
index 29dd0d2b..46966259 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/MilestonesAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/MilestonesAdapter.java
@@ -14,6 +14,7 @@ import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.vdurmont.emoji.EmojiParser;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.MilestoneActions;
import org.mian.gitnex.helpers.ClickListener;
@@ -21,7 +22,6 @@ import org.mian.gitnex.helpers.Markdown;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.Milestones;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/MyReposListAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/MyReposListAdapter.java
index c069ba36..944760ad 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/MyReposListAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/MyReposListAdapter.java
@@ -20,6 +20,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.amulyakhare.textdrawable.TextDrawable;
import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.google.android.material.bottomsheet.BottomSheetDialog;
+import org.gitnex.tea4j.models.UserRepositories;
+import org.gitnex.tea4j.models.WatchInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.OpenRepoInBrowserActivity;
import org.mian.gitnex.activities.RepoDetailActivity;
@@ -33,8 +35,6 @@ import org.mian.gitnex.database.models.Repository;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserRepositories;
-import org.mian.gitnex.models.WatchInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/NotificationsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/NotificationsAdapter.java
index 2ad63657..3a568bc0 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/NotificationsAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/NotificationsAdapter.java
@@ -11,11 +11,11 @@ import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.text.HtmlCompat;
import androidx.recyclerview.widget.RecyclerView;
+import org.gitnex.tea4j.models.NotificationThread;
import org.mian.gitnex.R;
import org.mian.gitnex.database.api.RepositoriesApi;
import org.mian.gitnex.database.models.Repository;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.NotificationThread;
import java.util.List;
/**
diff --git a/app/src/main/java/org/mian/gitnex/adapters/OrganizationsListAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/OrganizationsListAdapter.java
index 929ae2bb..73f79096 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/OrganizationsListAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/OrganizationsListAdapter.java
@@ -12,12 +12,12 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import org.gitnex.tea4j.models.UserOrganizations;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.OrganizationDetailActivity;
import org.mian.gitnex.clients.PicassoService;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.UserOrganizations;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/adapters/ProfileEmailsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/ProfileEmailsAdapter.java
index c124fd60..6c85fba2 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/ProfileEmailsAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/ProfileEmailsAdapter.java
@@ -10,8 +10,8 @@ import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.amulyakhare.textdrawable.TextDrawable;
+import org.gitnex.tea4j.models.Emails;
import org.mian.gitnex.R;
-import org.mian.gitnex.models.Emails;
import java.util.List;
/**
diff --git a/app/src/main/java/org/mian/gitnex/adapters/ProfileFollowersAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/ProfileFollowersAdapter.java
index cf20b379..55779d15 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/ProfileFollowersAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/ProfileFollowersAdapter.java
@@ -1,18 +1,20 @@
package org.mian.gitnex.adapters;
import android.content.Context;
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
-import org.mian.gitnex.R;
-import org.mian.gitnex.clients.PicassoService;
-import org.mian.gitnex.helpers.RoundedTransformation;
-import org.mian.gitnex.models.UserInfo;
-import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import org.gitnex.tea4j.models.UserInfo;
+import org.mian.gitnex.R;
+import org.mian.gitnex.clients.PicassoService;
+import org.mian.gitnex.helpers.AppUtil;
+import org.mian.gitnex.helpers.RoundedTransformation;
+import java.util.List;
/**
* Author M M Arif
@@ -20,26 +22,36 @@ import androidx.recyclerview.widget.RecyclerView;
public class ProfileFollowersAdapter extends RecyclerView.Adapter {
- private List followersList;
- private Context mCtx;
+ private final List followersList;
+ private final Context mCtx;
static class FollowersViewHolder extends RecyclerView.ViewHolder {
- private ImageView userAvatar;
- private TextView userFullName;
- private TextView userName;
+ private String userLoginId;
+
+ private final ImageView userAvatar;
+ private final TextView userFullName;
+ private final TextView userName;
private FollowersViewHolder(View itemView) {
+
super(itemView);
userAvatar = itemView.findViewById(R.id.userAvatar);
userFullName = itemView.findViewById(R.id.userFullName);
userName = itemView.findViewById(R.id.userName);
+ userAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public ProfileFollowersAdapter(Context mCtx, List followersListMain) {
+
this.mCtx = mCtx;
this.followersList = followersListMain;
}
@@ -47,8 +59,9 @@ public class ProfileFollowersAdapter extends RecyclerView.Adapter {
- private List followingList;
- private Context mCtx;
+ private final List followingList;
+ private final Context mCtx;
static class FollowingViewHolder extends RecyclerView.ViewHolder {
- private ImageView userAvatar;
- private TextView userFullName;
- private TextView userName;
+ private String userLoginId;
+
+ private final ImageView userAvatar;
+ private final TextView userFullName;
+ private final TextView userName;
private FollowingViewHolder(View itemView) {
+
super(itemView);
userAvatar = itemView.findViewById(R.id.userAvatar);
userFullName = itemView.findViewById(R.id.userFullName);
userName = itemView.findViewById(R.id.userName);
+ userAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public ProfileFollowingAdapter(Context mCtx, List followingListMain) {
+
this.mCtx = mCtx;
this.followingList = followingListMain;
}
@@ -47,8 +59,9 @@ public class ProfileFollowingAdapter extends RecyclerView.Adapter {
Context context = v.getContext();
@@ -159,7 +163,13 @@ public class PullRequestsAdapter extends RecyclerView.Adapter {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
});
}
@@ -171,19 +181,9 @@ public class PullRequestsAdapter extends RecyclerView.Adapter" + context.getResources().getString(R.string.hash) + prModel.getNumber() + "";
prTitle.setText(HtmlCompat.fromHtml(prNumber_ + " " + EmojiParser.parseToUnicode(prModel.getTitle()), HtmlCompat.FROM_HTML_MODE_LEGACY));
@@ -199,7 +199,7 @@ public class PullRequestsAdapter extends RecyclerView.Adapter {
- private List searchedList;
- private Context mCtx;
- private TinyDB tinyDb;
+ private final List searchedList;
+ private final Context mCtx;
+ private final TinyDB tinyDb;
public SearchIssuesAdapter(List dataList, Context mCtx) {
@@ -46,12 +47,14 @@ public class SearchIssuesAdapter extends RecyclerView.Adapter {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
@@ -120,12 +130,7 @@ public class SearchIssuesAdapter extends RecyclerView.Adapter teamMembersList;
- private Context mCtx;
+ private final List teamMembersList;
+ private final Context mCtx;
private static class ViewHolder {
- private ImageView memberAvatar;
- private TextView memberName;
+ private String userLoginId;
+
+ private final ImageView memberAvatar;
+ private final TextView memberName;
ViewHolder(View v) {
+
memberAvatar = v.findViewById(R.id.memberAvatar);
memberName = v.findViewById(R.id.memberName);
+
+ memberAvatar.setOnClickListener(loginId -> {
+
+ Context context = loginId.getContext();
+
+ AppUtil.copyToClipboard(context, userLoginId, context.getString(R.string.copyLoginIdToClipBoard, userLoginId));
+ });
}
}
public TeamMembersByOrgAdapter(Context mCtx, List membersListMain) {
+
this.mCtx = mCtx;
this.teamMembersList = membersListMain;
-
}
@Override
@@ -64,17 +76,18 @@ public class TeamMembersByOrgAdapter extends BaseAdapter {
TeamMembersByOrgAdapter.ViewHolder viewHolder = null;
if (finalView == null) {
+
finalView = LayoutInflater.from(mCtx).inflate(R.layout.list_members_by_team_by_org, null);
viewHolder = new ViewHolder(finalView);
finalView.setTag(viewHolder);
}
else {
+
viewHolder = (TeamMembersByOrgAdapter.ViewHolder) finalView.getTag();
}
initData(viewHolder, position);
return finalView;
-
}
private void initData(TeamMembersByOrgAdapter.ViewHolder viewHolder, int position) {
@@ -82,6 +95,8 @@ public class TeamMembersByOrgAdapter extends BaseAdapter {
UserInfo currentItem = teamMembersList.get(position);
PicassoService.getInstance(mCtx).get().load(currentItem.getAvatar()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
+ viewHolder.userLoginId = currentItem.getLogin();
+
final TinyDB tinyDb = TinyDB.getInstance(mCtx);
Typeface myTypeface;
@@ -102,13 +117,14 @@ public class TeamMembersByOrgAdapter extends BaseAdapter {
}
if(!currentItem.getFullname().equals("")) {
- viewHolder.memberName.setText(currentItem.getFullname());
- viewHolder.memberName.setTypeface(myTypeface);
+
+ viewHolder.memberName.setText(Html.fromHtml(currentItem.getFullname()));
}
else {
+
viewHolder.memberName.setText(currentItem.getLogin());
- viewHolder.memberName.setTypeface(myTypeface);
}
+ viewHolder.memberName.setTypeface(myTypeface);
}
}
diff --git a/app/src/main/java/org/mian/gitnex/adapters/TeamsByOrgAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/TeamsByOrgAdapter.java
index b3b7f686..2582535d 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/TeamsByOrgAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/TeamsByOrgAdapter.java
@@ -8,13 +8,13 @@ import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
-import org.mian.gitnex.R;
-import org.mian.gitnex.activities.OrganizationTeamMembersActivity;
-import org.mian.gitnex.models.Teams;
-import java.util.ArrayList;
-import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import org.gitnex.tea4j.models.Teams;
+import org.mian.gitnex.R;
+import org.mian.gitnex.activities.OrganizationTeamMembersActivity;
+import java.util.ArrayList;
+import java.util.List;
/**
* Author M M Arif
diff --git a/app/src/main/java/org/mian/gitnex/adapters/UserAccountsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/UserAccountsAdapter.java
index 99b18a4d..6849e929 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/UserAccountsAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/UserAccountsAdapter.java
@@ -10,6 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.content.res.AppCompatResources;
import androidx.recyclerview.widget.RecyclerView;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.PicassoService;
@@ -27,19 +28,20 @@ import io.mikael.urlbuilder.UrlBuilder;
public class UserAccountsAdapter extends RecyclerView.Adapter {
- private List userAccountsList;
- private Context mCtx;
+ private final List userAccountsList;
+ private final Context mCtx;
private TinyDB tinyDB;
class UserAccountsViewHolder extends RecyclerView.ViewHolder {
- private TextView accountUrl;
- private TextView userId;
- private ImageView activeAccount;
- private ImageView deleteAccount;
- private ImageView repoAvatar;
- private TextView accountId;
- private TextView accountName;
+ private int accountId;
+ private String accountName;
+
+ private final TextView accountUrl;
+ private final TextView userId;
+ private final ImageView activeAccount;
+ private final ImageView deleteAccount;
+ private final ImageView repoAvatar;
private UserAccountsViewHolder(View itemView) {
@@ -50,30 +52,26 @@ public class UserAccountsAdapter extends RecyclerView.Adapter {
new AlertDialog.Builder(mCtx)
- .setIcon(mCtx.getDrawable(R.drawable.ic_delete))
+ .setIcon(AppCompatResources.getDrawable(mCtx, R.drawable.ic_delete))
.setTitle(mCtx.getResources().getString(R.string.removeAccountPopupTitle))
.setMessage(mCtx.getResources().getString(R.string.removeAccountPopupMessage))
.setPositiveButton(mCtx.getResources().getString(R.string.removeButton), (dialog, which) -> {
updateLayoutByPosition(getAdapterPosition());
UserAccountsApi userAccountsApi = new UserAccountsApi(mCtx);
- userAccountsApi.deleteAccount(Integer.parseInt(accountId.getText().toString()));
+ userAccountsApi.deleteAccount(Integer.parseInt(String.valueOf(accountId)));
}).setNeutralButton(mCtx.getResources().getString(R.string.cancelButton), null)
.show();
-
});
- itemView.setOnClickListener(itemEdit -> {
+ itemView.setOnClickListener(switchAccount -> {
- String accountNameSwitch = accountName.getText().toString();
UserAccountsApi userAccountsApi = new UserAccountsApi(mCtx);
- UserAccount userAccount = userAccountsApi.getAccountData(accountNameSwitch);
+ UserAccount userAccount = userAccountsApi.getAccountData(accountName);
if(tinyDB.getInt("currentActiveAccountId") != userAccount.getAccountId()) {
@@ -109,7 +107,6 @@ public class UserAccountsAdapter extends RecyclerView.Adapter {
-
- //Log.e("PicassoService", Objects.requireNonNull(uri.toString()));
- //Log.e("PicassoService", exception.toString());
-
- });
+// builder.listener((picasso, uri, exception) -> {
+//
+// Log.e("PicassoService", Objects.requireNonNull(uri.toString()));
+// Log.e("PicassoService", exception.toString());
+//
+// });
picasso = builder.memoryCache(new PicassoCache(cachePath, context)).build();
@@ -66,10 +66,15 @@ public class PicassoService {
public static synchronized PicassoService getInstance(Context context) {
if(picassoService == null) {
- picassoService = new PicassoService(context);
+ synchronized(PicassoService.class) {
+ if(picassoService == null) {
+ picassoService = new PicassoService(context);
+ }
+ }
}
return picassoService;
+
}
}
diff --git a/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java b/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java
index 9304d051..d7772734 100644
--- a/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java
+++ b/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java
@@ -2,12 +2,12 @@ package org.mian.gitnex.clients;
import android.content.Context;
import android.util.Log;
+import org.gitnex.tea4j.ApiInterface;
+import org.gitnex.tea4j.WebInterface;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.FilesData;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.ssl.MemorizingTrustManager;
-import org.mian.gitnex.interfaces.ApiInterface;
-import org.mian.gitnex.interfaces.WebInterface;
import java.io.File;
import java.security.SecureRandom;
import java.util.Map;
@@ -96,30 +96,38 @@ public class RetrofitClient {
}
public static ApiInterface getApiInterface(Context context, String url) {
+
if(!apiInterfaces.containsKey(url)) {
+ synchronized(RetrofitClient.class) {
+ if(!apiInterfaces.containsKey(url)) {
- ApiInterface apiInterface = createRetrofit(context, url)
- .create(ApiInterface.class);
-
- apiInterfaces.put(url, apiInterface);
- return apiInterface;
+ ApiInterface apiInterface = createRetrofit(context, url).create(ApiInterface.class);
+ apiInterfaces.put(url, apiInterface);
+ return apiInterface;
+ }
+ }
}
return apiInterfaces.get(url);
+
}
public static WebInterface getWebInterface(Context context, String url) {
+
if(!webInterfaces.containsKey(url)) {
+ synchronized(RetrofitClient.class) {
+ if(!webInterfaces.containsKey(url)) {
- WebInterface webInterface = createRetrofit(context, url)
- .create(WebInterface.class);
-
- webInterfaces.put(url, webInterface);
- return webInterface;
+ WebInterface webInterface = createRetrofit(context, url).create(WebInterface.class);
+ webInterfaces.put(url, webInterface);
+ return webInterface;
+ }
+ }
}
return webInterfaces.get(url);
+
}
}
diff --git a/app/src/main/java/org/mian/gitnex/core/MainApplication.java b/app/src/main/java/org/mian/gitnex/core/MainApplication.java
new file mode 100644
index 00000000..ceed209a
--- /dev/null
+++ b/app/src/main/java/org/mian/gitnex/core/MainApplication.java
@@ -0,0 +1,134 @@
+package org.mian.gitnex.core;
+
+import android.annotation.SuppressLint;
+import android.app.Application;
+import android.content.Context;
+import org.acra.ACRA;
+import org.acra.BuildConfig;
+import org.acra.ReportField;
+import org.acra.annotation.AcraCore;
+import org.acra.annotation.AcraNotification;
+import org.acra.config.CoreConfigurationBuilder;
+import org.acra.config.LimiterConfigurationBuilder;
+import org.acra.config.MailSenderConfigurationBuilder;
+import org.acra.data.StringFormat;
+import org.mian.gitnex.R;
+import org.mian.gitnex.helpers.AppUtil;
+import org.mian.gitnex.helpers.FontsOverride;
+import org.mian.gitnex.helpers.StaticGlobalVariables;
+import org.mian.gitnex.helpers.TinyDB;
+import org.mian.gitnex.notifications.Notifications;
+
+/**
+ * @author opyale
+ */
+
+@SuppressLint("NonConstantResourceId")
+@AcraNotification(resIcon = R.drawable.gitnex_transparent,
+ resTitle = R.string.crashTitle,
+ resChannelName = R.string.setCrashReports,
+ resText = R.string.crashMessage)
+@AcraCore(reportContent = { ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.STACK_TRACE })
+
+public class MainApplication extends Application {
+
+ private Context appCtx;
+ private TinyDB tinyDB;
+
+ @Override
+ public void onCreate() {
+
+ super.onCreate();
+
+ appCtx = getApplicationContext();
+ tinyDB = TinyDB.getInstance(appCtx);
+
+ setDefaults();
+
+ switch(tinyDB.getInt("customFontId", -1)) {
+
+ case 0:
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/roboto.ttf");
+ break;
+
+ case 2:
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/sourcecodeproregular.ttf");
+ break;
+
+ default:
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/manroperegular.ttf");
+
+ }
+
+ if(tinyDB.getBoolean("crashReportingEnabled")) {
+
+ CoreConfigurationBuilder ACRABuilder = new CoreConfigurationBuilder(this);
+
+ ACRABuilder.setBuildConfigClass(BuildConfig.class).setReportFormat(StringFormat.KEY_VALUE_LIST);
+ ACRABuilder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder.class).setReportAsFile(true).setMailTo(getResources().getString(R.string.appEmail)).setSubject(getResources().getString(R.string.crashReportEmailSubject, AppUtil.getAppBuildNo(getApplicationContext()))).setEnabled(true);
+ ACRABuilder.getPluginConfigurationBuilder(LimiterConfigurationBuilder.class).setEnabled(true);
+
+ ACRA.init(this, ACRABuilder);
+
+ }
+
+ Notifications.startWorker(appCtx);
+
+ }
+
+ private void setDefaults() {
+
+ // enabling counter badges by default
+ if(tinyDB.getString("enableCounterBadgesInit").isEmpty()) {
+
+ tinyDB.putBoolean("enableCounterBadges", true);
+ tinyDB.putString("enableCounterBadgesInit", "yes");
+ }
+
+ // enable crash reports by default
+ if(tinyDB.getString("crashReportingEnabledInit").isEmpty()) {
+
+ tinyDB.putBoolean("crashReportingEnabled", true);
+ tinyDB.putString("crashReportingEnabledInit", "yes");
+ }
+
+ // default cache setter
+ if(tinyDB.getString("cacheSizeStr").isEmpty()) {
+
+ tinyDB.putString("cacheSizeStr", getResources().getString(R.string.cacheSizeDataSelectionSelectedText));
+ }
+ if(tinyDB.getString("cacheSizeImagesStr").isEmpty()) {
+
+ tinyDB.putString("cacheSizeImagesStr", getResources().getString(R.string.cacheSizeImagesSelectionSelectedText));
+ }
+
+ // enable comment drafts by default
+ if(tinyDB.getString("draftsCommentsDeletionEnabledInit").isEmpty()) {
+
+ tinyDB.putBoolean("draftsCommentsDeletionEnabled", true);
+ tinyDB.putString("draftsCommentsDeletionEnabledInit", "yes");
+ }
+
+ // setting default polling delay
+ if(tinyDB.getInt("pollingDelayMinutes", 0) <= 0) {
+
+ tinyDB.putInt("pollingDelayMinutes", StaticGlobalVariables.defaultPollingDelay);
+ }
+
+ // disable biometric by default
+ if(tinyDB.getString("biometricStatusInit").isEmpty()) {
+
+ tinyDB.putBoolean("biometricStatus", false);
+ tinyDB.putString("biometricStatusInit", "yes");
+ }
+ }
+}
diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFilterFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFilterFragment.java
index e1279f8b..a59d2a6a 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFilterFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFilterFragment.java
@@ -23,9 +23,10 @@ public class BottomSheetNotificationsFilterFragment extends BottomSheetDialogFra
@Override
public void onAttach(@NonNull Context context) {
- this.tinyDB = TinyDB.getInstance(context);
super.onAttach(context);
+ this.tinyDB = TinyDB.getInstance(context);
+
}
@Nullable
diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFragment.java
index 4e606a8b..5f1c3169 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetNotificationsFragment.java
@@ -11,12 +11,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
+import org.gitnex.tea4j.models.NotificationThread;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.NotificationsActions;
import org.mian.gitnex.databinding.BottomSheetNotificationsBinding;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.NotificationThread;
/**
* Author opyale
@@ -30,6 +30,8 @@ public class BottomSheetNotificationsFragment extends BottomSheetDialogFragment
public void onAttach(Context context, NotificationThread notificationThread, OnOptionSelectedListener onOptionSelectedListener) {
+ super.onAttach(context);
+
this.context = context;
this.notificationThread = notificationThread;
this.onOptionSelectedListener = onOptionSelectedListener;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetReplyFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetReplyFragment.java
index d5b486e0..a138c8c9 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetReplyFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetReplyFragment.java
@@ -53,6 +53,8 @@ public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
@Override
public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+
tinyDB = TinyDB.getInstance(context);
draftsApi = new DraftsApi(context);
@@ -60,7 +62,6 @@ public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
currentActiveAccountId = tinyDB.getInt("currentActiveAccountId");
issueNumber = Integer.parseInt(tinyDB.getString("issueNumber"));
- super.onAttach(context);
}
@SuppressLint("ClickableViewAccessibility")
@@ -119,7 +120,7 @@ public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
comment.requestFocus();
comment.setOnTouchListener((v, event) -> {
- BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from((View) bottomSheetReplyLayoutBinding.getRoot().getParent());
+ BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from((View) bottomSheetReplyLayoutBinding.getRoot().getParent());
switch(event.getAction()) {
diff --git a/app/src/main/java/org/mian/gitnex/fragments/CollaboratorsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/CollaboratorsFragment.java
index a55ccda5..34756db0 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/CollaboratorsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/CollaboratorsFragment.java
@@ -13,10 +13,10 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
+import org.gitnex.tea4j.models.Collaborators;
import org.mian.gitnex.adapters.CollaboratorsAdapter;
import org.mian.gitnex.databinding.FragmentCollaboratorsBinding;
import org.mian.gitnex.helpers.Authorization;
-import org.mian.gitnex.models.Collaborators;
import org.mian.gitnex.viewmodels.CollaboratorsViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
index d55590a9..db32f168 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
@@ -19,6 +19,8 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
+import org.gitnex.tea4j.models.ExploreRepositories;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.ExploreRepositoriesAdapter;
import org.mian.gitnex.clients.RetrofitClient;
@@ -30,8 +32,6 @@ import org.mian.gitnex.helpers.InfiniteScrollListener;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.ExploreRepositories;
-import org.mian.gitnex.models.UserRepositories;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java
index 29312780..5f986962 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java
@@ -27,6 +27,7 @@ import org.mian.gitnex.adapters.FilesAdapter;
import org.mian.gitnex.databinding.FragmentFilesBinding;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
+import org.mian.gitnex.helpers.Path;
import org.mian.gitnex.viewmodels.FilesViewModel;
import java.util.ArrayList;
import java.util.Collections;
@@ -41,34 +42,38 @@ import moe.feng.common.view.breadcrumbs.model.BreadcrumbItem;
public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapterListener {
private ProgressBar mProgressBar;
- private FilesAdapter adapter;
private RecyclerView mRecyclerView;
private TextView noDataFiles;
private LinearLayout filesFrame;
- private TextView fileStructure;
- private static String repoNameF = "param2";
- private static String repoOwnerF = "param1";
- private static String repoRefF = "param3";
+
+ private static final String repoNameF = "param2";
+ private static final String repoOwnerF = "param1";
+ private static final String repoRefF = "param3";
private BreadcrumbsView mBreadcrumbsView;
private String repoName;
private String repoOwner;
private String ref;
+ private final Path path = new Path();
+
+ private FilesAdapter filesAdapter;
+
private OnFragmentInteractionListener mListener;
- public FilesFragment() {
-
- }
+ public FilesFragment() {}
public static FilesFragment newInstance(String param1, String param2, String param3) {
FilesFragment fragment = new FilesFragment();
+
Bundle args = new Bundle();
args.putString(repoOwnerF, param1);
args.putString(repoNameF, param2);
args.putString(repoRefF, param3);
+
fragment.setArguments(args);
+
return fragment;
}
@@ -76,6 +81,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
if(getArguments() != null) {
repoName = getArguments().getString(repoNameF);
repoOwner = getArguments().getString(repoOwnerF);
@@ -84,7 +90,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentFilesBinding fragmentFilesBinding = FragmentFilesBinding.inflate(inflater, container, false);
setHasOptionsMenu(true);
@@ -92,10 +98,12 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
noDataFiles = fragmentFilesBinding.noDataFiles;
filesFrame = fragmentFilesBinding.filesFrame;
- fileStructure = fragmentFilesBinding.fileStructure;
+ filesAdapter = new FilesAdapter(getContext(), this);
+
mRecyclerView = fragmentFilesBinding.recyclerView;
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ mRecyclerView.setAdapter(filesAdapter);
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(), DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(dividerItemDecoration);
@@ -104,10 +112,33 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
mBreadcrumbsView = fragmentFilesBinding.breadcrumbsView;
mBreadcrumbsView.setItems(new ArrayList<>(Collections.singletonList(BreadcrumbItem.createSimpleItem(getResources().getString(R.string.filesBreadcrumbRoot) + getResources().getString(R.string.colonDivider) + ref))));
+ // noinspection unchecked
+ mBreadcrumbsView.setCallback(new DefaultBreadcrumbsCallback() {
+
+ @SuppressLint("SetTextI18n")
+ @Override
+ public void onNavigateBack(BreadcrumbItem item, int position) {
+
+ if(position == 0) {
+
+ path.clear();
+ fetchDataAsync(Authorization.get(getContext()), repoOwner, repoName, ref);
+ return;
+
+ }
+
+ path.pop(path.size() - position);
+ fetchDataAsyncSub(Authorization.get(getContext()), repoOwner, repoName, path.toString(), ref);
+
+ }
+
+ @Override public void onNavigateNewLocation(BreadcrumbItem newItem, int changedPosition) {}
+
+ });
((RepoDetailActivity) requireActivity()).setFragmentRefreshListenerFiles(repoBranch -> {
- fileStructure.setText("");
+ path.clear();
ref = repoBranch;
mBreadcrumbsView.setItems(new ArrayList<>(Collections.singletonList(BreadcrumbItem.createSimpleItem(getResources().getString(R.string.filesBreadcrumbRoot) + getResources().getString(R.string.colonDivider) + ref))));
fetchDataAsync(Authorization.get(getContext()), repoOwner, repoName, repoBranch);
@@ -128,48 +159,10 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
@Override
public void onClickDir(String dirName) {
- StringBuilder breadcrumbBuilder = new StringBuilder();
-
- breadcrumbBuilder.append(fileStructure.getText().toString()).append("/").append(dirName);
-
- fileStructure.setText(breadcrumbBuilder);
-
- String dirName_ = fileStructure.getText().toString();
- dirName_ = dirName_.startsWith("/") ? dirName_.substring(1) : dirName_;
- final String finalDirName_ = dirName_;
-
+ path.add(dirName);
mBreadcrumbsView.addItem(new BreadcrumbItem(Collections.singletonList(dirName)));
- //noinspection unchecked
- mBreadcrumbsView.setCallback(new DefaultBreadcrumbsCallback() {
- @SuppressLint("SetTextI18n")
- @Override
- public void onNavigateBack(BreadcrumbItem item, int position) {
-
- if(position == 0) {
-
- fetchDataAsync(Authorization.get(getContext()), repoOwner, repoName, ref);
- fileStructure.setText("");
- return;
- }
-
- String filterDir = fileStructure.getText().toString();
- String result = filterDir.substring(0, filterDir.indexOf(item.getSelectedItem()));
- fileStructure.setText(result + item.getSelectedItem());
-
- String currentIndex = (result + item.getSelectedItem()).substring(1);
-
- fetchDataAsyncSub(Authorization.get(getContext()), repoOwner, repoName, currentIndex, ref);
-
- }
-
- @Override
- public void onNavigateNewLocation(BreadcrumbItem newItem, int changedPosition) {
-
- }
- });
-
- fetchDataAsyncSub(Authorization.get(getContext()), repoOwner, repoName, finalDirName_, ref);
+ fetchDataAsyncSub(Authorization.get(getContext()), repoOwner, repoName, path.toString(), ref);
}
@@ -178,9 +171,9 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
Intent intent = new Intent(getContext(), FileViewActivity.class);
- if(!fileStructure.getText().toString().equals("Root")) {
+ if(path.size() != 0) {
- intent.putExtra("singleFileName", fileStructure.getText().toString() + "/" + fileName);
+ intent.putExtra("singleFileName", path.toString() + "/" + fileName);
}
else {
@@ -199,24 +192,23 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
filesModel.getFilesList(instanceToken, owner, repo, ref, getContext(), mProgressBar, noDataFiles).observe(getViewLifecycleOwner(), filesListMain -> {
- adapter = new FilesAdapter(getContext(), filesListMain, FilesFragment.this);
- mBreadcrumbsView.removeItemAfter(1);
+ filesAdapter.getOriginalFiles().clear();
+ filesAdapter.getOriginalFiles().addAll(filesListMain);
+ filesAdapter.notifyOriginalDataSetChanged();
- if(adapter.getItemCount() > 0) {
+ if(filesListMain.size() > 0) {
- mRecyclerView.setAdapter(adapter);
AppUtil.setMultiVisibility(View.VISIBLE, mRecyclerView, filesFrame);
noDataFiles.setVisibility(View.GONE);
+
}
else {
-
- adapter.notifyDataSetChanged();
- mRecyclerView.setAdapter(adapter);
AppUtil.setMultiVisibility(View.VISIBLE, mRecyclerView, filesFrame, noDataFiles);
}
filesFrame.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.GONE);
+
});
}
@@ -230,16 +222,16 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
filesModel2.getFilesList2(instanceToken, owner, repo, filesDir, ref, getContext(), mProgressBar, noDataFiles).observe(this, filesListMain2 -> {
- adapter = new FilesAdapter(getContext(), filesListMain2, FilesFragment.this);
+ filesAdapter.getOriginalFiles().clear();
+ filesAdapter.getOriginalFiles().addAll(filesListMain2);
+ filesAdapter.notifyOriginalDataSetChanged();
+
+ if(filesListMain2.size() > 0) {
- if(adapter.getItemCount() > 0) {
- mRecyclerView.setAdapter(adapter);
AppUtil.setMultiVisibility(View.VISIBLE, mRecyclerView, filesFrame);
noDataFiles.setVisibility(View.GONE);
}
else {
- adapter.notifyDataSetChanged();
- mRecyclerView.setAdapter(adapter);
AppUtil.setMultiVisibility(View.VISIBLE, mRecyclerView, filesFrame, noDataFiles);
}
@@ -268,7 +260,7 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
public boolean onQueryTextChange(String newText) {
if(mRecyclerView.getAdapter() != null) {
- adapter.getFilter().filter(newText);
+ filesAdapter.getFilter().filter(newText);
}
return false;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java
index c0d26d1c..c535bb58 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.Issues;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.RepoDetailActivity;
import org.mian.gitnex.adapters.IssuesAdapter;
@@ -31,7 +32,6 @@ import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Issues;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java
index 5bc09959..7c2cc2f4 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java
@@ -17,13 +17,13 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.MembersByOrgAdapter;
import org.mian.gitnex.databinding.FragmentMembersByOrgBinding;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.UserInfo;
import org.mian.gitnex.viewmodels.MembersByOrgViewModel;
import java.util.List;
import java.util.Objects;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java
index b1a0d9d2..f8657f11 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/MilestonesFragment.java
@@ -16,6 +16,7 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
+import org.gitnex.tea4j.models.Milestones;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.RepoDetailActivity;
import org.mian.gitnex.adapters.MilestonesAdapter;
@@ -25,7 +26,6 @@ import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.Milestones;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java
index 81eca00f..91a5aba5 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/NotificationsFragment.java
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
import org.apache.commons.lang3.StringUtils;
+import org.gitnex.tea4j.models.NotificationThread;
import org.mian.gitnex.R;
import org.mian.gitnex.actions.NotificationsActions;
import org.mian.gitnex.activities.IssueDetailActivity;
@@ -32,7 +33,6 @@ import org.mian.gitnex.helpers.InfiniteScrollListener;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.NotificationThread;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/OrganizationInfoFragment.java b/app/src/main/java/org/mian/gitnex/fragments/OrganizationInfoFragment.java
index bf30aac6..cab98332 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/OrganizationInfoFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/OrganizationInfoFragment.java
@@ -13,13 +13,13 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
+import org.gitnex.tea4j.models.Organization;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.PicassoService;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.FragmentOrganizationInfoBinding;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.RoundedTransformation;
-import org.mian.gitnex.models.Organization;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
index 73590ab5..f304e9cf 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
@@ -52,7 +52,7 @@ public class OrganizationsFragment extends Fragment {
final SwipeRefreshLayout swipeRefresh = fragmentOrganizationsBinding.pullToRefresh;
- ((MainActivity) requireActivity()).setActionBarTitle(getResources().getString(R.string.navOrgs));
+ ((MainActivity) requireActivity()).setActionBarTitle(getResources().getString(R.string.navOrg));
mProgressBar = fragmentOrganizationsBinding.progressBar;
noDataOrg = fragmentOrganizationsBinding.noDataOrg;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ProfileEmailsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ProfileEmailsFragment.java
index a0a47a8b..181573ab 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ProfileEmailsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ProfileEmailsFragment.java
@@ -17,10 +17,10 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.Emails;
import org.mian.gitnex.adapters.ProfileEmailsAdapter;
import org.mian.gitnex.databinding.FragmentProfileEmailsBinding;
import org.mian.gitnex.helpers.Authorization;
-import org.mian.gitnex.models.Emails;
import org.mian.gitnex.viewmodels.ProfileEmailsViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowersFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowersFragment.java
index 42b94362..58d8a066 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowersFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowersFragment.java
@@ -18,10 +18,10 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.adapters.ProfileFollowersAdapter;
import org.mian.gitnex.databinding.FragmentProfileFollowersBinding;
import org.mian.gitnex.helpers.Authorization;
-import org.mian.gitnex.models.UserInfo;
import org.mian.gitnex.viewmodels.ProfileFollowersViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowingFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowingFragment.java
index 539c72bc..8450fb89 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowingFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ProfileFollowingFragment.java
@@ -18,11 +18,11 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.adapters.ProfileFollowingAdapter;
import org.mian.gitnex.databinding.FragmentProfileFollowingBinding;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.UserInfo;
import org.mian.gitnex.viewmodels.ProfileFollowingViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
index cb08ce87..1282c19b 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
import android.os.Bundle;
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -24,6 +25,7 @@ import com.squareup.picasso.Callback;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.clients.PicassoService;
+import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.ColorInverter;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TinyDB;
@@ -75,7 +77,12 @@ public class ProfileFragment extends Fragment {
userLanguage.setText(R.string.notSupported);
}
- userFullName.setText(tinyDb.getString("userFullname"));
+ userAvatar.setOnClickListener(loginId -> {
+
+ AppUtil.copyToClipboard(ctx, tinyDb.getString("userLogin"), ctx.getString(R.string.copyLoginIdToClipBoard, tinyDb.getString("userLogin")));
+ });
+
+ userFullName.setText(Html.fromHtml(tinyDb.getString("userFullname")));
userLogin.setText(getString(R.string.usernameWithAt, tinyDb.getString("userLogin")));
PicassoService.getInstance(ctx).get()
diff --git a/app/src/main/java/org/mian/gitnex/fragments/PullRequestsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/PullRequestsFragment.java
index 717d5d92..793378a5 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/PullRequestsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/PullRequestsFragment.java
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.PullRequests;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.RepoDetailActivity;
import org.mian.gitnex.adapters.PullRequestsAdapter;
@@ -31,7 +32,6 @@ import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.Version;
-import org.mian.gitnex.models.PullRequests;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ReleasesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ReleasesFragment.java
index 323c1523..30c72f31 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ReleasesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ReleasesFragment.java
@@ -18,11 +18,11 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.Releases;
import org.mian.gitnex.adapters.ReleasesAdapter;
import org.mian.gitnex.databinding.FragmentReleasesBinding;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.Releases;
import org.mian.gitnex.viewmodels.ReleasesViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java b/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java
index 25503e40..0a3962d8 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/RepoInfoFragment.java
@@ -17,6 +17,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import org.apache.commons.io.FileUtils;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.RepoDetailActivity;
import org.mian.gitnex.activities.RepoStargazersActivity;
@@ -30,7 +31,6 @@ import org.mian.gitnex.helpers.Markdown;
import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserRepositories;
import java.util.Locale;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java
index db446555..f79a32c0 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java
@@ -22,13 +22,13 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.RepositoriesByOrgAdapter;
import org.mian.gitnex.databinding.FragmentRepositoriesByOrgBinding;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.UserRepositories;
import org.mian.gitnex.viewmodels.RepositoriesByOrgViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/SearchIssuesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/SearchIssuesFragment.java
index e31c977e..374dc47c 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/SearchIssuesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/SearchIssuesFragment.java
@@ -12,6 +12,7 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
+import org.gitnex.tea4j.models.Issues;
import org.mian.gitnex.adapters.SearchIssuesAdapter;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.databinding.FragmentSearchIssuesBinding;
@@ -19,7 +20,6 @@ import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.InfiniteScrollListener;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.Issues;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java b/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java
index da178f22..4a9f299a 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java
@@ -22,12 +22,12 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import org.gitnex.tea4j.models.Teams;
import org.mian.gitnex.R;
import org.mian.gitnex.adapters.TeamsByOrgAdapter;
import org.mian.gitnex.databinding.FragmentTeamsByOrgBinding;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.Teams;
import org.mian.gitnex.viewmodels.TeamsByOrgViewModel;
import java.util.List;
diff --git a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java
index 8ff97995..a5fee3fd 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java
@@ -1,5 +1,7 @@
package org.mian.gitnex.helpers;
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -18,7 +20,10 @@ import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
+import java.util.Objects;
/**
* Author M M Arif
@@ -26,9 +31,36 @@ import java.util.Locale;
public class AppUtil {
+ public enum FileType { IMAGE, DOCUMENT, TEXT, UNKNOWN }
+
+ private static final HashMap, FileType> extensions = new HashMap<>();
+
+ // AppUtil should not be instantiated.
+ private AppUtil() {}
+
+ static {
+
+ extensions.put(Arrays.asList("jpg", "jpeg", "gif", "png", "ico"), FileType.IMAGE);
+ extensions.put(Arrays.asList("doc", "docx", "ppt", "pptx", "xls", "xlsx", "xlsm", "odt", "ott", "odf", "ods", "ots", "exe", "jar", "odg", "otg", "odp", "otp", "bin", "dmg", "psd", "xcf", "pdf"), FileType.DOCUMENT);
+ extensions.put(Arrays.asList("txt", "md", "json", "java", "go", "php", "c", "cc", "cpp", "h", "cxx", "cyc", "m", "cs", "bash", "sh", "bsh", "cv", "python", "perl", "pm", "rb", "ruby", "javascript", "coffee", "rc", "rs", "rust", "basic", "clj", "css", "dart", "lisp", "erl", "hs", "lsp", "rkt", "ss", "llvm", "ll", "lua", "matlab", "pascal", "r", "scala", "sql", "latex", "tex", "vb", "vbs", "vhd", "tcl", "wiki.meta", "yaml", "yml", "markdown", "xml", "proto", "regex", "py", "pl", "js", "html", "htm", "volt", "ini", "htaccess", "conf", "gitignore", "gradle", "txt", "properties", "bat", "twig", "cvs", "cmake", "in", "info", "spec", "m4", "am", "dist", "pam", "hx", "ts"), FileType.TEXT);
+ }
+
+ public static FileType getFileType(String extension) {
+
+ for(List e : extensions.keySet()) {
+
+ if(e.contains(extension)) {
+
+ return extensions.get(e);
+ }
+ }
+
+ return FileType.UNKNOWN;
+ }
+
public static boolean hasNetworkConnection(Context context) {
- return NetworkStatusObserver.get(context).hasNetworkConnection();
+ return NetworkStatusObserver.getInstance(context).hasNetworkConnection();
}
public static int getAppBuildNo(Context context) {
@@ -57,19 +89,19 @@ public class AppUtil {
return context.getPackageName().equals("org.mian.gitnex.pro");
}
- public Boolean checkStringsWithAlphaNumeric(String str) { // [a-zA-Z0-9]
+ public static Boolean checkStringsWithAlphaNumeric(String str) { // [a-zA-Z0-9]
return str.matches("^[\\w]+$");
}
- public Boolean checkStrings(String str) { // [a-zA-Z0-9-_. ]
+ public static Boolean checkStrings(String str) { // [a-zA-Z0-9-_. ]
return str.matches("^[\\w .-]+$");
}
- public Boolean checkStringsWithAlphaNumericDashDotUnderscore(String str) { // [a-zA-Z0-9-_]
+ public static Boolean checkStringsWithAlphaNumericDashDotUnderscore(String str) { // [a-zA-Z0-9-_]
return str.matches("^[\\w.-]+$");
}
- public Boolean checkStringsWithDash(String str) { // [a-zA-Z0-9-_. ]
+ public static Boolean checkStringsWithDash(String str) { // [a-zA-Z0-9-_. ]
return str.matches("^[\\w-]+$");
}
@@ -168,7 +200,7 @@ public class AppUtil {
}
- public String encodeBase64(String str) {
+ public static String encodeBase64(String str) {
String base64Str = str;
if(!str.equals("")) {
@@ -180,7 +212,7 @@ public class AppUtil {
}
- public String decodeBase64(String str) {
+ public static String decodeBase64(String str) {
String base64Str = str;
if(!str.equals("")) {
@@ -192,39 +224,7 @@ public class AppUtil {
}
- public Boolean sourceCodeExtension(String ext) {
-
- String[] extValues = new String[]{"md", "json", "java", "go", "php", "c", "cc", "cpp", "h", "cxx", "cyc", "m", "cs", "bash", "sh", "bsh", "cv", "python", "perl", "pm", "rb", "ruby", "javascript", "coffee", "rc", "rs", "rust", "basic", "clj", "css", "dart", "lisp", "erl", "hs", "lsp", "rkt", "ss", "llvm", "ll", "lua", "matlab", "pascal", "r", "scala", "sql", "latex", "tex", "vb", "vbs", "vhd", "tcl", "wiki.meta", "yaml", "yml", "markdown", "xml", "proto", "regex", "py", "pl", "js", "html", "htm", "volt", "ini", "htaccess", "conf", "gitignore", "gradle", "txt", "properties", "bat", "twig", "cvs", "cmake", "in", "info", "spec", "m4", "am", "dist", "pam", "hx", "ts"};
-
- return Arrays.asList(extValues).contains(ext);
-
- }
-
- public Boolean pdfExtension(String ext) {
-
- String[] extValues = new String[]{"pdf"};
-
- return Arrays.asList(extValues).contains(ext);
-
- }
-
- public Boolean imageExtension(String ext) {
-
- String[] extValues = new String[]{"jpg", "jpeg", "gif", "png", "ico"};
-
- return Arrays.asList(extValues).contains(ext);
-
- }
-
- public Boolean excludeFilesInFileViewerExtension(String ext) {
-
- String[] extValues = new String[]{"doc", "docx", "ppt", "pptx", "xls", "xlsx", "xlsm", "odt", "ott", "odf", "ods", "ots", "exe", "jar", "odg", "otg", "odp", "otp", "bin", "dmg", "psd", "xcf"};
-
- return Arrays.asList(extValues).contains(ext);
-
- }
-
- public String getLastCharactersOfWord(String str, int count) {
+ public static String getLastCharactersOfWord(String str, int count) {
return str.substring(str.length() - count);
@@ -248,4 +248,14 @@ public class AppUtil {
return (int) (context.getResources().getDisplayMetrics().scaledDensity * sp);
}
+ public static void copyToClipboard(Context ctx, CharSequence data, String message) {
+
+ ClipboardManager clipboard = (ClipboardManager) Objects.requireNonNull(ctx).getSystemService(Context.CLIPBOARD_SERVICE);
+ assert clipboard != null;
+
+ ClipData clip = ClipData.newPlainText(data, data);
+ clipboard.setPrimaryClip(clip);
+
+ Toasty.info(ctx, message);
+ }
}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/Images.java b/app/src/main/java/org/mian/gitnex/helpers/Images.java
new file mode 100644
index 00000000..d3aa82dd
--- /dev/null
+++ b/app/src/main/java/org/mian/gitnex/helpers/Images.java
@@ -0,0 +1,42 @@
+package org.mian.gitnex.helpers;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+/**
+ * Author M M Arif
+ */
+
+public class Images {
+
+ public static Bitmap scaleImage(byte[] imageData, int sizeLimit) {
+
+ Bitmap original = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
+
+ if(original.getHeight() > sizeLimit && original.getWidth() <= original.getHeight()) {
+
+ double reductionPercentage = (double) sizeLimit / original.getHeight();
+
+ Bitmap scaled = Bitmap.createScaledBitmap(original, (int) (reductionPercentage * original.getWidth()), sizeLimit, false);
+ original.recycle();
+
+ return scaled;
+
+ }
+ else if(original.getWidth() > sizeLimit && original.getHeight() < original.getWidth()) {
+
+ double reductionPercentage = (double) sizeLimit / original.getWidth();
+
+ Bitmap scaled = Bitmap.createScaledBitmap(original, sizeLimit, (int) (reductionPercentage * original.getHeight()), false);
+ original.recycle();
+
+ return scaled;
+
+ }
+
+ // Image size does not exceed bounds.
+ return original;
+
+ }
+
+}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/NetworkStatusObserver.java b/app/src/main/java/org/mian/gitnex/helpers/NetworkStatusObserver.java
index 5845be53..a3df356b 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/NetworkStatusObserver.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/NetworkStatusObserver.java
@@ -15,7 +15,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/
public class NetworkStatusObserver {
- private static NetworkStatusObserver networkStatusObserver;
+ private static volatile NetworkStatusObserver networkStatusObserver;
private final AtomicBoolean hasNetworkConnection = new AtomicBoolean(false);
private final List networkStatusListeners = new ArrayList<>();
@@ -98,12 +98,18 @@ public class NetworkStatusObserver {
public interface NetworkStatusListener { void onNetworkStatusChanged(boolean hasNetworkConnection); }
- public static NetworkStatusObserver get(Context context) {
+ public static NetworkStatusObserver getInstance(Context context) {
+
if(networkStatusObserver == null) {
- networkStatusObserver = new NetworkStatusObserver(context);
+ synchronized(NetworkStatusObserver.class) {
+ if(networkStatusObserver == null) {
+ networkStatusObserver = new NetworkStatusObserver(context);
+ }
+ }
}
return networkStatusObserver;
+
}
}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java b/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java
index 69856078..d9b4968c 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java
@@ -1,6 +1,6 @@
package org.mian.gitnex.helpers;
-import org.mian.gitnex.models.FileDiffView;
+import org.gitnex.tea4j.models.FileDiffView;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
diff --git a/app/src/main/java/org/mian/gitnex/helpers/Path.java b/app/src/main/java/org/mian/gitnex/helpers/Path.java
new file mode 100644
index 00000000..06567592
--- /dev/null
+++ b/app/src/main/java/org/mian/gitnex/helpers/Path.java
@@ -0,0 +1,137 @@
+package org.mian.gitnex.helpers;
+
+import androidx.annotation.NonNull;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.StringJoiner;
+
+/**
+ * @author opyale
+ */
+
+public class Path {
+
+ private final List segments;
+ private final List onChangedListeners;
+
+ public Path(String... segments) {
+
+ this.segments = new ArrayList<>(Arrays.asList(segments));
+ this.onChangedListeners = new ArrayList<>();
+
+ }
+
+ public interface OnChangedListener { void onChanged(); }
+
+ public Path addListener(OnChangedListener onChangedListener) {
+
+ onChangedListeners.add(onChangedListener);
+ return this;
+
+ }
+
+ public Path removeListener(OnChangedListener onChangedListener) {
+
+ onChangedListeners.remove(onChangedListener);
+ return this;
+
+ }
+
+ private void pathChanged() {
+
+ for(OnChangedListener onChangedListener : onChangedListeners) {
+ onChangedListener.onChanged();
+ }
+ }
+
+ public Path add(String segment) {
+
+ if(segment != null && !segment.trim().isEmpty()) {
+
+ try {
+ segments.add(URLEncoder.encode(segment, "UTF-8"));
+ } catch(UnsupportedEncodingException ignored) {}
+ }
+
+ pathChanged();
+ return this;
+
+ }
+
+ public int size() {
+
+ return segments.size();
+ }
+
+ public Path join(Path path) {
+
+ this.segments.addAll(path.segments);
+
+ pathChanged();
+ return this;
+
+ }
+
+ public Path pop(int count) {
+
+ for(int i=0; i !s.trim().isEmpty())
+ .toArray(String[]::new)
+ );
+
+ }
+
+ @NonNull
+ @Override
+ public String toString() {
+
+ StringJoiner stringJoiner = new StringJoiner("/");
+
+ for(String segment : segments)
+ stringJoiner.add(segment);
+
+ return stringJoiner.toString();
+
+ }
+
+}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/TinyDB.java b/app/src/main/java/org/mian/gitnex/helpers/TinyDB.java
index b93962b3..92441fc8 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/TinyDB.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/TinyDB.java
@@ -15,7 +15,7 @@ import java.util.Map;
public class TinyDB {
- private static TinyDB tinyDB;
+ private static volatile TinyDB tinyDB;
private final SharedPreferences preferences;
@@ -24,11 +24,17 @@ public class TinyDB {
}
public static synchronized TinyDB getInstance(Context context) {
+
if(tinyDB == null) {
- tinyDB = new TinyDB(context);
+ synchronized(TinyDB.class) {
+ if(tinyDB == null) {
+ tinyDB = new TinyDB(context);
+ }
+ }
}
return tinyDB;
+
}
/**
diff --git a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingActivity.java b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingActivity.java
index 23395ad5..cf31106c 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingActivity.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingActivity.java
@@ -19,15 +19,15 @@ public class MemorizingActivity extends Activity {
Intent intent = getIntent();
int decisionId = intent.getIntExtra("DECISION_INTENT_ID", MTMDecision.DECISION_INVALID);
- int titleId = intent.getIntExtra("DECISION_TITLE_ID", R.string.mtm_accept_cert);
+ int titleId = intent.getIntExtra("DECISION_TITLE_ID", R.string.mtmAcceptCert);
String cert = intent.getStringExtra("DECISION_INTENT_CERT");
AlertDialog.Builder builder = new AlertDialog.Builder(MemorizingActivity.this);
builder.setTitle(titleId);
builder.setMessage(cert);
- builder.setPositiveButton(R.string.mtm_decision_always, (dialog, which) -> onSendResult(decisionId, MTMDecision.DECISION_ALWAYS));
- builder.setNeutralButton(R.string.mtm_decision_abort, (dialog, which) -> onSendResult(decisionId, MTMDecision.DECISION_ABORT));
+ builder.setPositiveButton(R.string.mtmDecisionAlways, (dialog, which) -> onSendResult(decisionId, MTMDecision.DECISION_ALWAYS));
+ builder.setNeutralButton(R.string.mtmDecisionAbort, (dialog, which) -> onSendResult(decisionId, MTMDecision.DECISION_ABORT));
builder.setOnCancelListener(dialog -> onSendResult(decisionId, MTMDecision.DECISION_ABORT));
builder.create().show();
diff --git a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java
index 2d06e043..cc5161c0 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java
@@ -449,10 +449,10 @@ public class MemorizingTrustManager implements X509TrustManager {
StringBuilder stringBuilder = new StringBuilder();
if(isPathException(e)) {
- stringBuilder.append(context.getString(R.string.mtm_trust_anchor));
+ stringBuilder.append(context.getString(R.string.mtmTrustAnchor));
}
else if(isExpiredException(e)) {
- stringBuilder.append(context.getString(R.string.mtm_cert_expired));
+ stringBuilder.append(context.getString(R.string.mtmCertExpired));
}
else {
// get to the cause
@@ -464,9 +464,9 @@ public class MemorizingTrustManager implements X509TrustManager {
}
stringBuilder.append("\n\n");
- stringBuilder.append(context.getString(R.string.mtm_connect_anyway));
+ stringBuilder.append(context.getString(R.string.mtmConnectAnyway));
stringBuilder.append("\n\n");
- stringBuilder.append(context.getString(R.string.mtm_cert_details));
+ stringBuilder.append(context.getString(R.string.mtmCertDetails));
for(X509Certificate c : chain) {
certDetails(stringBuilder, c);
@@ -479,7 +479,7 @@ public class MemorizingTrustManager implements X509TrustManager {
StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(context.getString(R.string.mtm_hostname_mismatch, hostname));
+ stringBuilder.append(context.getString(R.string.mtmHostnameMismatch, hostname));
stringBuilder.append("\n\n");
try {
@@ -510,9 +510,9 @@ public class MemorizingTrustManager implements X509TrustManager {
}
stringBuilder.append("\n");
- stringBuilder.append(context.getString(R.string.mtm_connect_anyway));
+ stringBuilder.append(context.getString(R.string.mtmConnectAnyway));
stringBuilder.append("\n\n");
- stringBuilder.append(context.getString(R.string.mtm_cert_details));
+ stringBuilder.append(context.getString(R.string.mtmCertDetails));
certDetails(stringBuilder, cert);
return stringBuilder.toString();
}
@@ -544,7 +544,7 @@ public class MemorizingTrustManager implements X509TrustManager {
private void startActivityNotification(Intent intent, int decisionId, String certName) {
final PendingIntent call = PendingIntent.getActivity(context, 0, intent, 0);
- final String mtmNotification = context.getString(R.string.mtm_notification);
+ final String mtmNotification = context.getString(R.string.mtmNotification);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "ssl")
.setSmallIcon(android.R.drawable.ic_lock_lock)
@@ -596,7 +596,7 @@ public class MemorizingTrustManager implements X509TrustManager {
private void interactCert(final X509Certificate[] chain, String authType, CertificateException cause) throws CertificateException {
- if(interact(certChainMessage(chain, cause), R.string.mtm_accept_cert) == MTMDecision.DECISION_ALWAYS) {
+ if(interact(certChainMessage(chain, cause), R.string.mtmAcceptCert) == MTMDecision.DECISION_ALWAYS) {
storeCert(chain[0]); // only store the server cert, not the whole chain
} else {
throw (cause);
@@ -605,7 +605,7 @@ public class MemorizingTrustManager implements X509TrustManager {
private boolean interactHostname(X509Certificate cert, String hostname) {
- if(interact(hostNameMessage(cert, hostname), R.string.mtm_accept_server_name) == MTMDecision.DECISION_ALWAYS) {
+ if(interact(hostNameMessage(cert, hostname), R.string.mtmAcceptServerName) == MTMDecision.DECISION_ALWAYS) {
storeCert(hostname, cert);
return true;
}
diff --git a/app/src/main/java/org/mian/gitnex/interfaces/ApiInterface.java b/app/src/main/java/org/mian/gitnex/interfaces/ApiInterface.java
deleted file mode 100644
index a1fc22e8..00000000
--- a/app/src/main/java/org/mian/gitnex/interfaces/ApiInterface.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package org.mian.gitnex.interfaces;
-
-import com.google.gson.JsonElement;
-import org.mian.gitnex.models.APISettings;
-import org.mian.gitnex.models.AddEmail;
-import org.mian.gitnex.models.AttachmentSettings;
-import org.mian.gitnex.models.Branches;
-import org.mian.gitnex.models.Collaborators;
-import org.mian.gitnex.models.Commits;
-import org.mian.gitnex.models.CreateIssue;
-import org.mian.gitnex.models.CreateLabel;
-import org.mian.gitnex.models.CreatePullRequest;
-import org.mian.gitnex.models.CreateStatusOption;
-import org.mian.gitnex.models.CronTasks;
-import org.mian.gitnex.models.DeleteFile;
-import org.mian.gitnex.models.EditFile;
-import org.mian.gitnex.models.Emails;
-import org.mian.gitnex.models.ExploreRepositories;
-import org.mian.gitnex.models.Files;
-import org.mian.gitnex.models.GiteaVersion;
-import org.mian.gitnex.models.IssueComments;
-import org.mian.gitnex.models.IssueReaction;
-import org.mian.gitnex.models.Issues;
-import org.mian.gitnex.models.Labels;
-import org.mian.gitnex.models.MarkdownOption;
-import org.mian.gitnex.models.MergePullRequest;
-import org.mian.gitnex.models.Milestones;
-import org.mian.gitnex.models.NewFile;
-import org.mian.gitnex.models.NotificationCount;
-import org.mian.gitnex.models.NotificationThread;
-import org.mian.gitnex.models.OrgOwner;
-import org.mian.gitnex.models.Organization;
-import org.mian.gitnex.models.OrganizationRepository;
-import org.mian.gitnex.models.Permission;
-import org.mian.gitnex.models.PullRequests;
-import org.mian.gitnex.models.Releases;
-import org.mian.gitnex.models.RepositorySettings;
-import org.mian.gitnex.models.RepositoryTransfer;
-import org.mian.gitnex.models.Status;
-import org.mian.gitnex.models.Teams;
-import org.mian.gitnex.models.UISettings;
-import org.mian.gitnex.models.UpdateIssueAssignees;
-import org.mian.gitnex.models.UpdateIssueState;
-import org.mian.gitnex.models.UserHeatmap;
-import org.mian.gitnex.models.UserInfo;
-import org.mian.gitnex.models.UserOrganizations;
-import org.mian.gitnex.models.UserRepositories;
-import org.mian.gitnex.models.UserSearch;
-import org.mian.gitnex.models.UserTokens;
-import org.mian.gitnex.models.WatchInfo;
-import java.util.List;
-import okhttp3.ResponseBody;
-import retrofit2.Call;
-import retrofit2.http.Body;
-import retrofit2.http.DELETE;
-import retrofit2.http.GET;
-import retrofit2.http.HTTP;
-import retrofit2.http.Header;
-import retrofit2.http.PATCH;
-import retrofit2.http.POST;
-import retrofit2.http.PUT;
-import retrofit2.http.Path;
-import retrofit2.http.Query;
-
-/**
- * Author M M Arif
- */
-
-public interface ApiInterface {
-
- @GET("version") // gitea version API without any auth
- Call getGiteaVersion();
-
- @GET("version") // gitea version API
- Call getGiteaVersionWithBasic(@Header("Authorization") String authorization);
-
- @GET("version") // gitea version API
- Call getGiteaVersionWithOTP(@Header("Authorization") String authorization, @Header("X-Gitea-OTP") int loginOTP);
-
- @GET("version") // gitea version API
- Call getGiteaVersionWithToken(@Header("Authorization") String token);
-
- @POST("markdown")
- Call renderMarkdown(@Header("Authorization") String token, @Body MarkdownOption markdownOption);
-
- @POST("markdown/raw")
- Call renderRawMarkdown(@Header("Authorization") String token, @Body String body);
-
- @GET("signing-key.gpg") // Get default signing-key.gpg
- Call getSigningKey(@Header("Authorization") String token);
-
- @GET("settings/api") // Get instance's global settings for api
- Call getAPISettings(@Header("Authorization") String token);
-
- @GET("settings/attachment") // Get instance's global settings for attachments
- Call getAttachmentSettings(@Header("Authorization") String token);
-
- @GET("settings/repository") // Get instance's global settings for repositories
- Call getRepositorySettings(@Header("Authorization") String token);
-
- @GET("settings/ui") // Get instance's global settings for ui
- Call getUISettings(@Header("Authorization") String token);
-
- @GET("users/{username}/tokens") // get user token
- Call> getUserTokens(@Header("Authorization") String authorization, @Path("username") String loginUid);
-
- @GET("users/{username}/tokens") // get user token with 2fa otp
- Call> getUserTokensWithOTP(@Header("Authorization") String authorization, @Header("X-Gitea-OTP") int loginOTP, @Path("username") String loginUid);
-
- @POST("users/{username}/tokens") // create new token
- Call createNewToken(@Header("Authorization") String authorization, @Path("username") String loginUid, @Body UserTokens jsonStr);
-
- @POST("users/{username}/tokens") // create new token with 2fa otp
- Call createNewTokenWithOTP(@Header("Authorization") String authorization, @Header("X-Gitea-OTP") int loginOTP, @Path("username") String loginUid, @Body UserTokens jsonStr);
-
- @DELETE("users/{username}/tokens/{token}") // delete token by ID
- Call deleteToken(@Header("Authorization") String authorization, @Path("username") String loginUid, @Path("token") int tokenID);
-
- @DELETE("users/{username}/tokens/{token}") // delete token by ID with 2fa otp
- Call deleteTokenWithOTP(@Header("Authorization") String authorization, @Header("X-Gitea-OTP") int loginOTP, @Path("username") String loginUid, @Path("token") int tokenID);
-
- @GET("notifications") // List users's notification threads
- Call> getNotificationThreads(@Header("Authorization") String token, @Query("all") Boolean all, @Query("status-types") String[] statusTypes, @Query("since") String since, @Query("before") String before, @Query("page") Integer page, @Query("limit") Integer limit);
-
- @PUT("notifications") // Mark notification threads as read, pinned or unread
- Call markNotificationThreadsAsRead(@Header("Authorization") String token, @Query("last_read_at") String last_read_at, @Query("all") Boolean all, @Query("status-types") String[] statusTypes, @Query("to-status") String toStatus);
-
- @GET("notifications/new") // Check if unread notifications exist
- Call checkUnreadNotifications(@Header("Authorization") String token);
-
- @GET("notifications/threads/{id}") // Get notification thread by ID
- Call getNotificationThread(@Header("Authorization") String token, @Path("id") Integer id);
-
- @PATCH("notifications/threads/{id}") // Mark notification thread as read by ID
- Call markNotificationThreadAsRead(@Header("Authorization") String token, @Path("id") Integer id, @Query("to-status") String toStatus);
-
- @GET("repos/{owner}/{repo}/notifications") // List users's notification threads on a specific repo
- Call> getRepoNotificationThreads(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("all") String all, @Query("status-types") String[] statusTypes, @Query("since") String since, @Query("before") String before, @Query("page") String page, @Query("limit") String limit);
-
- @PUT("repos/{owner}/{repo}/notifications") // Mark notification threads as read, pinned or unread on a specific repo
- Call markRepoNotificationThreadsAsRead(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("all") Boolean all, @Query("status-types") String[] statusTypes, @Query("to-status") String toStatus, @Query("last_read_at") String last_read_at);
-
- @GET("user") // username, full name, email
- Call getUserInfo(@Header("Authorization") String token);
-
- @GET("user/orgs") // get user organizations
- Call> getUserOrgs(@Header("Authorization") String token);
-
- @POST("orgs") // create new organization
- Call createNewOrganization(@Header("Authorization") String token, @Body UserOrganizations jsonStr);
-
- @POST("org/{org}/repos") // create new repository under org
- Call createNewUserOrgRepository(@Header("Authorization") String token, @Path("org") String orgName, @Body OrganizationRepository jsonStr);
-
- @GET("user/orgs") // get user organizations
- Call> getOrgOwners(@Header("Authorization") String token);
-
- @GET("user/repos") // get user repositories
- Call> getUserRepositories(@Header("Authorization") String token, @Query("page") int page, @Query("limit") int limit);
-
- @POST("user/repos") // create new repository
- Call createNewUserRepository(@Header("Authorization") String token, @Body OrganizationRepository jsonStr);
-
- @GET("user/followers") // get user followers
- Call> getFollowers(@Header("Authorization") String token);
-
- @GET("user/following") // get following
- Call> getFollowing(@Header("Authorization") String token);
-
- @POST("user/emails") // add new email
- Call addNewEmail(@Header("Authorization") String token, @Body AddEmail jsonStr);
-
- @GET("user/emails") // get user emails
- Call> getUserEmails(@Header("Authorization") String token);
-
- @GET("user/starred") // get user starred repositories
- Call> getUserStarredRepos(@Header("Authorization") String token, @Query("page") int page, @Query("limit") int limit);
-
- @GET("users/{username}/heatmap") // Get a user's heatmap
- Call> getUserHeatmap(@Header("Authorization") String token, @Path("username") String username);
-
- @GET("repos/{owner}/{repo}") // get repo information
- Call getUserRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @PATCH("repos/{owner}/{repo}") // patch/update repository properties
- Call updateRepositoryProperties(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body UserRepositories jsonStr);
-
- @DELETE("repos/{owner}/{repo}") // delete repository
- Call deleteRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @POST("repos/{owner}/{repo}/transfer") // transfer repository
- Call transferRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body RepositoryTransfer jsonStr);
-
- @GET("repos/{owner}/{repo}/issues") // get issues by repo
- Call> 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, @Query("state") String issueState);
-
- @GET("repos/{owner}/{repo}/issues/{index}") // get issue by id
- Call getIssueByIndex(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
-
- @GET("repos/{owner}/{repo}/issues/{index}/comments") // get issue comments
- Call> getIssueComments(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
-
- @POST("repos/{owner}/{repo}/issues/{index}/comments") // reply to issue
- Call replyCommentToIssue(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Body Issues jsonStr);
-
- @GET("repos/{owner}/{repo}/milestones") // get milestones by repo
- Call> getMilestones(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Query("page") int page, @Query("limit") int limit, @Query("state") String state);
-
- @GET("repos/{owner}/{repo}/branches") // get branches
- Call> getBranches(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/{owner}/{repo}/releases") // get releases
- Call> getReleases(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/{owner}/{repo}/collaborators") // get collaborators list
- Call> getCollaborators(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("orgs/{org}/members") // get organization members
- Call> getOrgMembers(@Header("Authorization") String token, @Path("org") String ownerName);
-
- @POST("repos/{owner}/{repo}/milestones") // create new milestone
- Call createMilestone(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body Milestones jsonStr);
-
- @POST("repos/{owner}/{repo}/issues") // create new issue
- Call createNewIssue(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body CreateIssue jsonStr);
-
- @GET("repos/{owner}/{repo}/labels") // get labels list
- Call> getLabels(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("orgs/{owner}/labels") // get org labels list
- Call> getOrganizationLabels(@Header("Authorization") String token, @Path("owner") String ownerName);
-
- @POST("orgs/{owner}/labels") // create org label
- Call createOrganizationLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Body CreateLabel jsonStr);
-
- @PATCH("orgs/{owner}/labels/{id}") // update / patch org label
- Call patchOrganizationLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("id") int labelID, @Body CreateLabel jsonStr);
-
- @DELETE("orgs/{owner}/labels/{id}") // delete org label
- Call deleteOrganizationLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("id") int labelID);
-
- @GET("users/{username}/repos") // get current logged in user repositories
- Call> getCurrentUserRepositories(@Header("Authorization") String token, @Path("username") String username, @Query("page") int page, @Query("limit") int limit);
-
- @POST("repos/{owner}/{repo}/labels") // create label
- Call createLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body CreateLabel jsonStr);
-
- @DELETE("repos/{owner}/{repo}/labels/{index}") // delete a label
- Call deleteLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int labelIndex);
-
- @PATCH("repos/{owner}/{repo}/labels/{index}") // update / patch a label
- Call patchLabel(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int labelIndex, @Body CreateLabel jsonStr);
-
- @GET("orgs/{orgName}/repos") // get repositories by org
- Call> getReposByOrg(@Header("Authorization") String token, @Path("orgName") String orgName, @Query("page") int page, @Query("limit") int limit);
-
- @GET("orgs/{orgName}/teams") // get teams by org
- Call> getTeamsByOrg(@Header("Authorization") String token, @Path("orgName") String orgName);
-
- @GET("orgs/{orgName}/members") // get members by org
- Call> getMembersByOrg(@Header("Authorization") String token, @Path("orgName") String orgName);
-
- @GET("teams/{teamIndex}/members") // get team members by org
- Call> getTeamMembersByOrg(@Header("Authorization") String token, @Path("teamIndex") int teamIndex);
-
- @POST("orgs/{orgName}/teams") // create new team
- Call createTeamsByOrg(@Header("Authorization") String token, @Path("orgName") String orgName, @Body Teams jsonStr);
-
- @GET("users/search") // search users
- Call getUserBySearch(@Header("Authorization") String token, @Query("q") String searchKeyword, @Query("limit") int limit);
-
- @GET("repos/{owner}/{repo}/collaborators/{collaborator}") // check collaborator in repo
- Call checkRepoCollaborator(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("collaborator") String repoCollaborator);
-
- @DELETE("repos/{owner}/{repo}/collaborators/{username}") // delete a collaborator from repository
- Call deleteCollaborator(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("username") String username);
-
- @PUT("repos/{owner}/{repo}/collaborators/{username}") // add a collaborator to repository
- Call addCollaborator(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("username") String username, @Body Permission jsonStr);
-
- @PATCH("repos/{owner}/{repo}/issues/comments/{commentId}") // edit a comment
- Call patchIssueComment(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("commentId") int commentId, @Body IssueComments jsonStr);
-
- @GET("repos/{owner}/{repo}/issues/comments/{commentId}/reactions") // get comment reactions
- Call> getIssueCommentReactions(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("commentId") int commentId);
-
- @POST("repos/{owner}/{repo}/issues/comments/{commentId}/reactions") // add reaction to a comment
- Call setIssueCommentReaction(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("commentId") int commentId, @Body IssueReaction jsonStr);
-
- @HTTP(method = "DELETE", path = "repos/{owner}/{repo}/issues/comments/{commentId}/reactions", hasBody = true) // delete a reaction of a comment
- Call removeIssueCommentReaction(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("commentId") int commentId, @Body IssueReaction jsonStr);
-
- @GET("repos/{owner}/{repo}/issues/{index}/reactions") // get issue reactions
- Call> getIssueReactions(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
-
- @POST("repos/{owner}/{repo}/issues/{index}/reactions") // add reaction to an issue
- Call setIssueReaction(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Body IssueReaction jsonStr);
-
- @HTTP(method = "DELETE", path = "repos/{owner}/{repo}/issues/{index}/reactions", hasBody = true) // delete a reaction of an issue
- Call removeIssueReaction(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Body IssueReaction jsonStr);
-
- @GET("repos/{owner}/{repo}/issues/{index}/labels") // get issue labels
- Call> getIssueLabels(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
-
- @PUT("repos/{owner}/{repo}/issues/{index}/labels") // replace an issue's labels
- Call updateIssueLabels(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Body Labels jsonStr);
-
- @GET("repos/{owner}/{repo}/raw/{filename}") // get file contents
- Call getFileContents(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("filename") String filename);
-
- @POST("admin/users") // create new user
- Call createNewUser(@Header("Authorization") String token, @Body UserInfo jsonStr);
-
- @PATCH("repos/{owner}/{repo}/issues/{issueIndex}") // patch issue data
- Call patchIssue(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("issueIndex") int issueIndex, @Body CreateIssue jsonStr);
-
- @GET("orgs/{orgName}") // get an organization
- Call getOrganization(@Header("Authorization") String token, @Path("orgName") String orgName);
-
- @PATCH("repos/{owner}/{repo}/issues/{issueIndex}") // close / reopen issue
- Call closeReopenIssue(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("issueIndex") int issueIndex, @Body UpdateIssueState jsonStr);
-
- @POST("repos/{owner}/{repo}/releases") // create new release
- Call createNewRelease(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body Releases jsonStr);
-
- @PATCH("repos/{owner}/{repo}/issues/{issueIndex}") // patch issue assignees
- Call patchIssueAssignees(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("issueIndex") int issueIndex, @Body UpdateIssueAssignees jsonStr);
-
- @GET("admin/users") // get all users
- Call> adminGetUsers(@Header("Authorization") String token);
-
- @GET("repos/{owner}/{repo}/stargazers") // get all repo stars
- Call> getRepoStargazers(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/{owner}/{repo}/subscribers") // get all repo watchers
- Call> getRepoWatchers(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/search") // get all the repos which match the query string
- Call queryRepos(@Header("Authorization") String token, @Query("q") String searchKeyword, @Query("private") Boolean repoTypeInclude, @Query("sort") String sort, @Query("order") String order, @Query("topic") boolean topic, @Query("includeDesc") boolean includeDesc, @Query("template") boolean template, @Query("archived") boolean archived, @Query("limit") int limit, @Query("page") int page);
-
- @GET("repos/issues/search") // get all the issues which match the query string
- Call> queryIssues(@Header("Authorization") String token, @Query("q") String searchKeyword, @Query("type") String type, @Query("state") String state, @Query("page") int page);
-
- @POST("repos/{owner}/{repo}/contents/{file}") // create new file
- Call createNewFile(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("file") String fileName, @Body NewFile jsonStr);
-
- @GET("repos/{owner}/{repo}/contents") // get all the files and dirs of a repository
- Call> getFiles(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Query("ref") String ref);
-
- @GET("repos/{owner}/{repo}/contents/{file}") // get single file contents
- Call getSingleFileContents(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("file") String file, @Query("ref") String ref);
-
- @GET("repos/{owner}/{repo}/contents/{fileDir}") // get all the sub files and dirs of a repository
- Call> getDirFiles(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("fileDir") String fileDir, @Query("ref") String ref);
-
- @HTTP(method = "DELETE", path = "repos/{owner}/{repo}/contents/{filepath}", hasBody = true) // delete a file
- Call deleteFile(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("filepath") String filepath, @Body DeleteFile jsonStr);
-
- @PUT("repos/{owner}/{repo}/contents/{filepath}") // edit/update a file
- Call editFile(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("filepath") String filepath, @Body EditFile jsonStr);
-
- @GET("user/starred/{owner}/{repo}") // check star status of a repository
- Call checkRepoStarStatus(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @PUT("user/starred/{owner}/{repo}") // star a repository
- Call starRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @DELETE("user/starred/{owner}/{repo}") // un star a repository
- Call unStarRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/{owner}/{repo}/subscription") // check watch status of a repository
- Call checkRepoWatchStatus(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @PUT("repos/{owner}/{repo}/subscription") // watch a repository
- Call watchRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @DELETE("repos/{owner}/{repo}/subscription") // un watch a repository
- Call unWatchRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
-
- @GET("repos/{owner}/{repo}/issues/{index}/subscriptions/check")
- Call checkIssueWatchStatus(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex);
-
- @PUT("repos/{owner}/{repo}/issues/{index}/subscriptions/{user}") // subscribe user to issue
- Call addIssueSubscriber(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Path("user") String issueSubscriber);
-
- @DELETE("repos/{owner}/{repo}/issues/{index}/subscriptions/{user}") // unsubscribe user to issue
- Call delIssueSubscriber(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int issueIndex, @Path("user") String issueSubscriber);
-
- @GET("repos/{owner}/{repo}/pulls") // get repository pull requests
- Call> getPullRequests(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("state") String state, @Query("limit") int limit);
-
- @GET("repos/{owner}/{repo}/pulls/{index}.diff") // get pull diff file contents
- Call getPullDiffContent(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Path("index") String pullIndex);
-
- @POST("repos/{owner}/{repo}/pulls/{index}/merge") // merge a pull request
- Call mergePullRequest(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int index, @Body MergePullRequest jsonStr);
-
- @POST("repos/{owner}/{repo}/pulls") // create a pull request
- Call createPullRequest(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Body CreatePullRequest jsonStr);
-
- @GET("repos/{owner}/{repo}/pulls/{index}") // get pull request by index
- Call getPullRequestByIndex(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Path("index") int index);
-
- @GET("repos/{owner}/{repo}/commits") // get all commits
- Call> getRepositoryCommits(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("page") int page, @Query("sha") String branchName, @Query("limit") int limit);
-
- @PATCH("repos/{owner}/{repo}/milestones/{index}") // close / reopen milestone
- Call closeReopenMilestone(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("index") int index, @Body Milestones jsonStr);
-
- @DELETE("repos/{owner}/{repo}/issues/comments/{id}") // delete own comment from issue
- Call deleteComment(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("id") int commentIndex);
-
- @GET("teams/{teamId}/members/{username}") // check team member
- Call checkTeamMember(@Header("Authorization") String token, @Path("teamId") int teamId, @Path("username") String username);
-
- @PUT("teams/{teamId}/members/{username}") // add new team member
- Call addTeamMember(@Header("Authorization") String token, @Path("teamId") int teamId, @Path("username") String username);
-
- @DELETE("teams/{teamId}/members/{username}") // remove team member
- Call removeTeamMember(@Header("Authorization") String token, @Path("teamId") int teamId, @Path("username") String username);
-
- @DELETE("repos/{owner}/{repo}/branches/{branch}") // delete branch
- Call deleteBranch(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("branch") String branchName);
-
- @GET("repos/{owner}/{repo}/forks") // get all repo forks
- Call> getRepositoryForks(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Query("page") int page, @Query("limit") int limit);
-
- @POST("repos/{owner}/{repo}/statuses/{sha}") // Create a commit status
- Call createCommitStatus(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Path("sha") String sha, @Body CreateStatusOption createStatusOption);
-
- @GET("repos/{owner}/{repo}/statuses/{sha}") // Get a commit's statuses
- Call> getCommitStatuses(@Header("Authorization") String token, @Path("owner") String owner, @Path("repo") String repo, @Query("sort") String sort, @Query("state") String state, @Query("page") int page, @Query("limit") int limit);
-
- @GET("admin/cron") // get cron tasks
- Call> adminGetCronTasks(@Header("Authorization") String token, @Query("page") int page, @Query("limit") int limit);
-
- @POST("admin/cron/{taskName}") // run cron task
- Call adminRunCronTask(@Header("Authorization") String token, @Path("taskName") String taskName);
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/interfaces/WebInterface.java b/app/src/main/java/org/mian/gitnex/interfaces/WebInterface.java
deleted file mode 100644
index 21ace76e..00000000
--- a/app/src/main/java/org/mian/gitnex/interfaces/WebInterface.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mian.gitnex.interfaces;
-
-import okhttp3.ResponseBody;
-import retrofit2.Call;
-import retrofit2.http.GET;
-import retrofit2.http.Path;
-
-/**
- * Author M M Arif
- */
-
-public interface WebInterface {
-
- @GET("{owner}/{repo}/pulls/{index}.diff") // get pull diff file contents
- Call getPullDiffContent(@Path("owner") String owner, @Path("repo") String repo, @Path("index") String pullIndex);
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/APISettings.java b/app/src/main/java/org/mian/gitnex/models/APISettings.java
deleted file mode 100644
index ff633aea..00000000
--- a/app/src/main/java/org/mian/gitnex/models/APISettings.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class APISettings {
-
- private int default_git_trees_per_page;
- private int default_max_blob_size;
- private int default_paging_num;
- private int max_response_items;
-
- public int getDefault_git_trees_per_page() {
-
- return default_git_trees_per_page;
- }
-
- public int getDefault_max_blob_size() {
-
- return default_max_blob_size;
- }
-
- public int getDefault_paging_num() {
-
- return default_paging_num;
- }
-
- public int getMax_response_items() {
-
- return max_response_items;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/AddEmail.java b/app/src/main/java/org/mian/gitnex/models/AddEmail.java
deleted file mode 100644
index fcc6c751..00000000
--- a/app/src/main/java/org/mian/gitnex/models/AddEmail.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class AddEmail {
-
- private List emails;
-
- public AddEmail(List emails) {
- this.emails = emails;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/AttachmentSettings.java b/app/src/main/java/org/mian/gitnex/models/AttachmentSettings.java
deleted file mode 100644
index 0f2dcef0..00000000
--- a/app/src/main/java/org/mian/gitnex/models/AttachmentSettings.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class AttachmentSettings {
-
- private String allowed_types;
- private boolean enabled;
- private float max_files;
- private float max_size;
-
- public String getAllowed_types() {
-
- return allowed_types;
- }
-
- public boolean isEnabled() {
-
- return enabled;
- }
-
- public float getMax_files() {
-
- return max_files;
- }
-
- public float getMax_size() {
-
- return max_size;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Branches.java b/app/src/main/java/org/mian/gitnex/models/Branches.java
deleted file mode 100644
index 1283d281..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Branches.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-
-/**
- * Author M M Arif
- */
-
-public class Branches {
-
- private String name;
-
- private commitObject commit;
-
- public Branches(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public class commitObject {
-
- private String id;
- private String message;
- private String url;
- private Date timestamp;
-
- private authorObject author;
-
- public class authorObject {
-
- private String name;
- private String email;
- private String username;
-
- public String getName() {
- return name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getUsername() {
- return username;
- }
- }
-
- public String getId() {
- return id;
- }
-
- public String getMessage() {
- return message;
- }
-
- public authorObject getAuthor() {
- return author;
- }
-
- public String getUrl() {
- return url;
- }
-
- public Date getTimestamp() {
- return timestamp;
- }
- }
-
- public commitObject getCommit() {
- return commit;
- }
-
- @Override
- public String toString() {
- return name;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Collaborators.java b/app/src/main/java/org/mian/gitnex/models/Collaborators.java
deleted file mode 100644
index 2edd579f..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Collaborators.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Objects;
-
-/**
- * Author M M Arif
- */
-
-public class Collaborators {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public Collaborators(String full_name, String login, String avatar_url) {
-
- this.full_name = full_name;
- this.login = login;
- this.avatar_url = avatar_url;
- }
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
-
- @Override
- public boolean equals(Object o) {
-
- if(this == o) {
- return true;
- }
- if(o == null || getClass() != o.getClass()) {
- return false;
- }
- Collaborators that = (Collaborators) o;
- return Objects.equals(login, that.login);
- }
-
- @Override
- public int hashCode() {
-
- return Objects.hash(login);
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Commits.java b/app/src/main/java/org/mian/gitnex/models/Commits.java
deleted file mode 100644
index 9972ac65..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Commits.java
+++ /dev/null
@@ -1,262 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class Commits {
-
- private String url;
- private String sha;
- private String html_url;
- private commitObject commit;
- private authorObject author;
- private committerObject committer;
- private List parent;
-
- public String getUrl() {
- return url;
- }
-
- public String getSha() {
- return sha;
- }
-
- public String getHtml_url() {
- return html_url;
- }
-
- public Commits(String url) {
- this.url = url;
- }
-
- public static class commitObject {
-
- private String url;
- private CommitAuthor author;
- private CommitCommitter committer;
- private String message;
- private CommitTree tree;
-
- public static class CommitAuthor {
-
- String name;
- String email;
- Date date;
-
- public String getName() {
- return name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public Date getDate() {
- return date;
- }
-
- }
-
- public static class CommitCommitter {
-
- String name;
- String email;
- Date date;
-
- public String getName() {
- return name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public Date getDate() {
- return date;
- }
-
- }
-
- public static class CommitTree {
-
- String url;
- String sha;
-
- public String getUrl() {
- return url;
- }
-
- public String getSha() {
- return sha;
- }
-
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getMessage() {
- return message;
- }
-
- public CommitAuthor getAuthor() {
- return author;
- }
-
- public CommitCommitter getCommitter() {
- return committer;
- }
-
- public CommitTree getTree() {
- return tree;
- }
- }
-
- public static class authorObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private Boolean is_admin;
- private String last_login;
- private String created;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public Boolean getIs_admin() {
- return is_admin;
- }
-
- public String getLast_login() {
- return last_login;
- }
-
- public String getCreated() {
- return created;
- }
-
- public String getUsername() {
- return username;
- }
- }
-
- public static class committerObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private Boolean is_admin;
- private String last_login;
- private String created;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public Boolean getIs_admin() {
- return is_admin;
- }
-
- public String getLast_login() {
- return last_login;
- }
-
- public String getCreated() {
- return created;
- }
-
- public String getUsername() {
- return username;
- }
-
- }
-
- public static class parentObject {
-
- private String url;
- private String sha;
-
- public String getUrl() {
- return url;
- }
-
- public String getSha() {
- return sha;
- }
- }
-
- public commitObject getCommit() {
- return commit;
- }
-
- public authorObject getAuthor() {
- return author;
- }
-
- public committerObject getCommitter() {
- return committer;
- }
-
- public List getParent() {
- return parent;
- }
-
-}
-
-
-
diff --git a/app/src/main/java/org/mian/gitnex/models/CreateIssue.java b/app/src/main/java/org/mian/gitnex/models/CreateIssue.java
deleted file mode 100644
index 974cb513..00000000
--- a/app/src/main/java/org/mian/gitnex/models/CreateIssue.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class CreateIssue {
-
- private String body;
- private boolean closed;
- private String due_date;
- private int milestone;
- private String title;
-
- private List assignees;
- private List labels;
-
- public CreateIssue(String assignee, String body, boolean closed, String due_date, int milestone, String title, List assignees, List labels) {
- this.body = body;
- this.closed = closed;
- this.due_date = due_date;
- this.milestone = milestone;
- this.title = title;
- this.assignees = assignees;
- this.labels = labels;
- }
-
- public CreateIssue(String title, String body, String due_date, int milestone) {
- this.title = title;
- this.body = body;
- this.due_date = due_date;
- this.milestone = milestone;
- }
-
- private class Assignees {
- }
-
- private class Labels {
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/CreateLabel.java b/app/src/main/java/org/mian/gitnex/models/CreateLabel.java
deleted file mode 100644
index 65d49893..00000000
--- a/app/src/main/java/org/mian/gitnex/models/CreateLabel.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class CreateLabel {
-
- private String name;
- private String color;
-
- public CreateLabel(String name, String color) {
- this.name = name;
- this.color = color;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/CreatePullRequest.java b/app/src/main/java/org/mian/gitnex/models/CreatePullRequest.java
deleted file mode 100644
index 4d4a1e9f..00000000
--- a/app/src/main/java/org/mian/gitnex/models/CreatePullRequest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class CreatePullRequest {
-
- private String title;
- private String body;
- private String assignee;
- private String base;
- private String head;
- private int milestone;
- private String due_date;
- private String message;
-
- private List assignees;
- private List labels;
-
- public CreatePullRequest(String title, String body, String assignee, String base, String head, int milestone, String due_date, List assignees, List labels) {
-
- this.title = title;
- this.body = body;
- this.assignee = assignee;
- this.base = base; // merge into branch
- this.head = head; // pull from branch
- this.milestone = milestone;
- this.due_date = due_date;
- this.assignees = assignees;
- this.labels = labels;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/CreateStatusOption.java b/app/src/main/java/org/mian/gitnex/models/CreateStatusOption.java
deleted file mode 100644
index 74cdc8d8..00000000
--- a/app/src/main/java/org/mian/gitnex/models/CreateStatusOption.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class CreateStatusOption {
-
- private String context;
- private String description;
- private String statusState;
- private String target_url;
-
- public CreateStatusOption(String context, String description, String statusState, String target_url) {
- this.context = context;
- this.description = description;
- this.statusState = statusState;
- this.target_url = target_url;
- }
-
- public String getContext() {
- return context;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getStatusState() {
- return statusState;
- }
-
- public String getTarget_url() {
- return target_url;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/CronTasks.java b/app/src/main/java/org/mian/gitnex/models/CronTasks.java
deleted file mode 100644
index 699abcfa..00000000
--- a/app/src/main/java/org/mian/gitnex/models/CronTasks.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-
-/**
- * Author M M Arif
- */
-
-public class CronTasks {
-
- private String name;
- private String schedule;
- private Date next;
- private Date prev;
- private int exec_times;
-
- public String getName() {
-
- return name;
- }
-
- public String getSchedule() {
-
- return schedule;
- }
-
- public Date getNext() {
-
- return next;
- }
-
- public Date getPrev() {
-
- return prev;
- }
-
- public int getExec_times() {
-
- return exec_times;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/DeleteFile.java b/app/src/main/java/org/mian/gitnex/models/DeleteFile.java
deleted file mode 100644
index 35d19ae2..00000000
--- a/app/src/main/java/org/mian/gitnex/models/DeleteFile.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class DeleteFile {
-
- private String branch;
- private String message;
- private String new_branch;
- private String sha;
-
- public String getBranch() {
-
- return branch;
- }
-
- public void setBranch(String branch) {
-
- this.branch = branch;
- }
-
- public String getMessage() {
-
- return message;
- }
-
- public void setMessage(String message) {
-
- this.message = message;
- }
-
- public String getNew_branch() {
-
- return new_branch;
- }
-
- public void setNew_branch(String new_branch) {
-
- this.new_branch = new_branch;
- }
-
- public String getSha() {
-
- return sha;
- }
-
- public void setSha(String sha) {
-
- this.sha = sha;
- }
-
- public DeleteFile(String branch, String message, String new_branch, String sha) {
- this.branch = branch;
- this.message = message;
- this.new_branch = new_branch;
- this.sha = sha;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/EditFile.java b/app/src/main/java/org/mian/gitnex/models/EditFile.java
deleted file mode 100644
index 4461ada0..00000000
--- a/app/src/main/java/org/mian/gitnex/models/EditFile.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class EditFile {
-
- private String branch;
- private String message;
- private String new_branch;
- private String sha;
- private String content;
-
- public String getBranch() {
-
- return branch;
- }
-
- public void setBranch(String branch) {
-
- this.branch = branch;
- }
-
- public String getMessage() {
-
- return message;
- }
-
- public void setMessage(String message) {
-
- this.message = message;
- }
-
- public String getNew_branch() {
-
- return new_branch;
- }
-
- public void setNew_branch(String new_branch) {
-
- this.new_branch = new_branch;
- }
-
- public String getSha() {
-
- return sha;
- }
-
- public void setSha(String sha) {
-
- this.sha = sha;
- }
-
- public String getContent() {
-
- return content;
- }
-
- public void setContent(String content) {
-
- this.content = content;
- }
-
- public EditFile(String branch, String message, String new_branch, String sha, String content) {
- this.branch = branch;
- this.message = message;
- this.new_branch = new_branch;
- this.sha = sha;
- this.content = content;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Emails.java b/app/src/main/java/org/mian/gitnex/models/Emails.java
deleted file mode 100644
index 069ac710..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Emails.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class Emails {
-
- private String email;
- private Boolean verified;
- private Boolean primary;
-
- public String getEmail() {
- return email;
- }
-
- public Boolean getVerified() {
- return verified;
- }
-
- public Boolean getPrimary() {
- return primary;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/ExploreRepositories.java b/app/src/main/java/org/mian/gitnex/models/ExploreRepositories.java
deleted file mode 100644
index 07aab8dc..00000000
--- a/app/src/main/java/org/mian/gitnex/models/ExploreRepositories.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.ArrayList;
-
-/**
- * Author M M Arif
- */
-
-public class ExploreRepositories {
-
- private ArrayList data;
- private Boolean ok;
-
- public ArrayList getSearchedData() {
- return data;
- }
-
- public Boolean getOk() {
- return ok;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/FileDiffView.java b/app/src/main/java/org/mian/gitnex/models/FileDiffView.java
deleted file mode 100644
index ddb5d8b0..00000000
--- a/app/src/main/java/org/mian/gitnex/models/FileDiffView.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.mian.gitnex.models;
-
-import androidx.annotation.NonNull;
-import java.util.List;
-
-/**
- * Author M M Arif
- * Author 6543
- */
-
-public class FileDiffView {
-
- private String fileNewName;
- private String fileOldName;
- private String diffType;
- private String fileInfo;
- private Stats stats;
- private List contents;
-
- public class Stats {
-
- private int lineAdded;
- private int lineRemoved;
-
- public Stats(int added, int removed) {
-
- this.lineAdded = added;
- this.lineRemoved = removed;
- }
-
- public int getAdded() {
-
- return lineAdded;
- }
-
- public int getRemoved() {
-
- return lineRemoved;
- }
-
- @NonNull
- public String toString() {
-
- return "+" + this.lineAdded + ", -" + this.lineRemoved;
- }
-
- }
-
- public static class Content {
-
- private int lineAdded;
- private int lineRemoved;
- private int oldLineStart;
- private int newLineStart;
- private String raw;
-
- public Content(String content) {
-
- this.raw = content;
- }
-
- public Content(String content, int oldStart, int newStart, int removed, int added) {
-
- this.raw = content;
- this.lineAdded = added;
- this.lineRemoved = removed;
- this.oldLineStart = oldStart;
- this.newLineStart = newStart;
- }
-
- public String getRaw() {
-
- return raw;
- }
-
- public int getLineAdded() {
-
- return this.lineAdded;
- }
-
- public int getLineRemoved() {
-
- return this.lineRemoved;
- }
-
- public int getOldLineStart() {
-
- return this.oldLineStart;
- }
-
- public int getNewLineStart() {
-
- return this.newLineStart;
- }
-
- }
-
- public FileDiffView(String oldName, String newName, String diffType, String fileInfo, List fileContents) {
-
- this.fileNewName = newName.trim();
- this.fileOldName = oldName.trim();
- this.diffType = diffType;
- this.fileInfo = fileInfo;
- this.contents = fileContents;
- this.stats = new Stats(0, 0);
- if(fileContents != null) {
- for(Content content : this.contents) {
- stats.lineAdded += content.lineAdded;
- stats.lineRemoved += content.lineRemoved;
- }
- }
-
- }
-
- public String getFileName() {
-
- if(fileOldName.length() != 0 && !fileOldName.equals(fileNewName)) {
- return fileOldName + " -> " + fileNewName;
- }
- return fileNewName;
- }
-
- public boolean isFileBinary() {
-
- return diffType.equals("binary");
- }
-
- public String getFileInfo() {
-
- if(diffType.equals("binary")) {
- return diffType + " " + fileInfo;
- }
-
- if(fileInfo.equals("change") && this.stats != null) {
- return this.stats.toString();
- }
-
- return fileInfo;
- }
-
- @NonNull
- public String toString() {
-
- StringBuilder raw = new StringBuilder();
- if(this.contents != null) {
- for(Content c : this.contents) {
- raw.append(c.getRaw());
- }
- }
- return raw.toString();
- }
-
- @NonNull
- public List getFileContents() {
-
- return this.contents;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Files.java b/app/src/main/java/org/mian/gitnex/models/Files.java
deleted file mode 100644
index 4d2509af..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Files.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class Files {
-
- private String name;
- private String path;
- private String sha;
- private String type;
- private int size;
- private String encoding;
- private String content;
- private String target;
- private String url;
- private String html_url;
- private String git_url;
- private String download_url;
- private String submodule_git_url;
-
- public String getName() {
- return name;
- }
-
- public String getPath() {
- return path;
- }
-
- public String getSha() {
- return sha;
- }
-
- public String getType() {
- return type;
- }
-
- public int getSize() {
- return size;
- }
-
- public String getEncoding() {
- return encoding;
- }
-
- public String getContent() {
- return content;
- }
-
- public String getTarget() {
- return target;
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getHtml_url() {
- return html_url;
- }
-
- public String getGit_url() {
- return git_url;
- }
-
- public String getDownload_url() {
- return download_url;
- }
-
- public String getSubmodule_git_url() {
- return submodule_git_url;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/GiteaVersion.java b/app/src/main/java/org/mian/gitnex/models/GiteaVersion.java
deleted file mode 100644
index d285396d..00000000
--- a/app/src/main/java/org/mian/gitnex/models/GiteaVersion.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class GiteaVersion {
-
- private String version;
-
- public String getVersion() {
- return version;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/IssueComments.java b/app/src/main/java/org/mian/gitnex/models/IssueComments.java
deleted file mode 100644
index ba0d0c4c..00000000
--- a/app/src/main/java/org/mian/gitnex/models/IssueComments.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-
-/**
- * Author M M Arif
- */
-
-public class IssueComments {
-
- private int id;
- private String html_url;
- private String pull_request_url;
- private String issue_url;
- private String body;
- private Date created_at;
- private Date updated_at;
-
- private userObject user;
-
- public IssueComments(String body) {
-
- this.body = body;
- }
-
- public class userObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public int getId() {
-
- return id;
- }
-
- public String getLogin() {
-
- return login;
- }
-
- public String getFull_name() {
-
- return full_name;
- }
-
- public String getEmail() {
-
- return email;
- }
-
- public String getAvatar_url() {
-
- return avatar_url;
- }
-
- public String getLanguage() {
-
- return language;
- }
-
- public String getUsername() {
-
- return username;
- }
-
- }
-
- public int getId() {
-
- return id;
- }
-
- public String getHtml_url() {
-
- return html_url;
- }
-
- public String getPull_request_url() {
-
- return pull_request_url;
- }
-
- public String getIssue_url() {
-
- return issue_url;
- }
-
- public String getBody() {
-
- return body;
- }
-
- public Date getCreated_at() {
-
- return created_at;
- }
-
- public userObject getUser() {
-
- return user;
- }
-
- public Date getUpdated_at() {
-
- return updated_at;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/IssueReaction.java b/app/src/main/java/org/mian/gitnex/models/IssueReaction.java
deleted file mode 100644
index 74fcc838..00000000
--- a/app/src/main/java/org/mian/gitnex/models/IssueReaction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-
-/**
- * Author 6543
- */
-
-public class IssueReaction {
-
- private String content;
- private userObject user;
- private Date created_at;
-
- public IssueReaction(String content) {
- this.content = content;
- }
-
- public static class userObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
-
- }
-
- public String getContent() {
- return content;
- }
-
- public userObject getUser() {
- return user;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Issues.java b/app/src/main/java/org/mian/gitnex/models/Issues.java
deleted file mode 100644
index b5269176..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Issues.java
+++ /dev/null
@@ -1,305 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class Issues {
-
- private int id;
- private String url;
- private String html_url;
- private int number;
- private String title;
- private String body;
- private String state;
- private int comments;
- private Date created_at;
- private Date updated_at;
- private Date due_date;
- private Date closed_at;
-
- private userObject user;
- private List labels;
- private pullRequestObject pull_request;
- private milestoneObject milestone;
- private List assignees;
- private repositoryObject repository;
-
- public Issues(String body) {
- this.body = body;
- }
-
- public static class userObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
-
- }
-
- public static class labelsObject {
-
- private int id;
- private String name;
- private String color;
- private String url;
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getColor() {
- return color;
- }
-
- public String getUrl() {
- return url;
- }
- }
-
- public static class pullRequestObject {
-
- private boolean merged;
- private String merged_at;
-
- public boolean isMerged() {
- return merged;
- }
-
- public String getMerged_at() {
- return merged_at;
- }
- }
-
- public static class milestoneObject {
-
- private int id;
- private String title;
- private String description;
- private String state;
- private String open_issues;
- private String closed_issues;
- private String closed_at;
- private String due_on;
-
- public int getId() {
- return id;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getState() {
- return state;
- }
-
- public String getOpen_issues() {
- return open_issues;
- }
-
- public String getClosed_issues() {
- return closed_issues;
- }
-
- public String getClosed_at() {
- return closed_at;
- }
-
- public String getDue_on() {
- return due_on;
- }
- }
-
- public static class assigneesObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
- }
-
- public static class repositoryObject {
-
- private int id;
- private String full_name;
- private String name;
- private String owner;
-
- public int getId() {
-
- return id;
- }
-
- public String getFull_name() {
-
- return full_name;
- }
-
- public String getName() {
-
- return name;
- }
-
- public String getOwner() {
-
- return owner;
- }
-
- }
-
- public int getId() {
- return id;
- }
-
- public String getUrl() {
- return url;
- }
-
- public int getNumber() {
- return number;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getBody() {
- return body;
- }
-
- public String getState() {
- return state;
- }
-
- public int getComments() {
- return comments;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public Date getUpdated_at() {
- return updated_at;
- }
-
- public Date getDue_date() {
- return due_date;
- }
-
- public Date getClosed_at() {
- return closed_at;
- }
-
- public userObject getUser() {
- return user;
- }
-
- public List getLabels() {
- return labels;
- }
-
- public pullRequestObject getPull_request() {
- return pull_request;
- }
-
- public milestoneObject getMilestone() {
- return milestone;
- }
-
- public List getAssignees() {
- return assignees;
- }
-
- public String getHtml_url() {
-
- return html_url;
- }
-
- public void setHtml_url(String html_url) {
-
- this.html_url = html_url;
- }
-
- public repositoryObject getRepository() {
-
- return repository;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Labels.java b/app/src/main/java/org/mian/gitnex/models/Labels.java
deleted file mode 100644
index 90630930..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Labels.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class Labels {
-
- private int id;
- private String name;
- private String color;
- private String url;
- private List labels;
-
- public Labels(String name, String color) {
- this.name = name;
- this.color = color;
- }
-
- public Labels(List labels) {
- this.labels = labels;
- }
-
- public Labels(int id, String name, String color) {
- this.id = id;
- this.name = name;
- this.color = color;
- }
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getColor() {
- return color;
- }
-
- public String getUrl() {
- return url;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/MarkdownOption.java b/app/src/main/java/org/mian/gitnex/models/MarkdownOption.java
deleted file mode 100644
index 444dea44..00000000
--- a/app/src/main/java/org/mian/gitnex/models/MarkdownOption.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class MarkdownOption {
-
- private String Context;
- private String Mode;
- private String Text;
- private boolean Wiki;
-
- public MarkdownOption(String context, String mode, String text, boolean wiki) {
-
- Context = context;
- Mode = mode;
- Text = text;
- Wiki = wiki;
- }
-
- public String getContext() {
-
- return Context;
- }
-
- public String getMode() {
-
- return Mode;
- }
-
- public String getText() {
-
- return Text;
- }
-
- public boolean isWiki() {
-
- return Wiki;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/MergePullRequest.java b/app/src/main/java/org/mian/gitnex/models/MergePullRequest.java
deleted file mode 100644
index 1d142def..00000000
--- a/app/src/main/java/org/mian/gitnex/models/MergePullRequest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class MergePullRequest {
-
- private String Do;
- private String MergeMessageField;
- private String MergeTitleField;
-
- public MergePullRequest(String Do, String MergeMessageField, String MergeTitleField) {
-
- this.Do = Do;
- this.MergeMessageField = MergeMessageField;
- this.MergeTitleField = MergeTitleField;
-
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/MergePullRequestSpinner.java b/app/src/main/java/org/mian/gitnex/models/MergePullRequestSpinner.java
deleted file mode 100644
index 6feb5073..00000000
--- a/app/src/main/java/org/mian/gitnex/models/MergePullRequestSpinner.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.mian.gitnex.models;
-
-import androidx.annotation.NonNull;
-
-/**
- * Author M M Arif
- */
-
-public class MergePullRequestSpinner {
-
- private String id;
- private String mergerMethod;
-
- public MergePullRequestSpinner(String id, String mergerMethod) {
- this.id = id;
- this.mergerMethod = mergerMethod;
- }
-
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- private String getMergerMethod() {
- return mergerMethod;
- }
-
- public void setName(String mergerMethod) {
- this.mergerMethod = mergerMethod;
- }
-
- @NonNull
- @Override
- public String toString() {
- return mergerMethod;
- }
-
- @Override
- public boolean equals(Object obj) {
-
- if(obj instanceof MergePullRequestSpinner){
-
- MergePullRequestSpinner spinner = (MergePullRequestSpinner )obj;
- return spinner.getMergerMethod().equals(mergerMethod) && spinner.getId().equals(id);
-
- }
-
- return false;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Milestones.java b/app/src/main/java/org/mian/gitnex/models/Milestones.java
deleted file mode 100644
index 0a16f2c2..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Milestones.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class Milestones {
-
- private int id;
- private String title;
- private String description;
- private String state;
- private int open_issues;
- private int closed_issues;
- private String due_on;
-
- public Milestones(String description, String title, String due_on) {
- this.description = description;
- this.title = title;
- this.due_on = due_on;
- }
-
- public Milestones(int id, String title) {
- this.id = id;
- this.title = title;
- }
-
- public Milestones(String state) {
- this.state = state;
- }
-
- public int getId() {
- return id;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getState() {
- return state;
- }
-
- public int getOpen_issues() {
- return open_issues;
- }
-
- public int getClosed_issues() {
- return closed_issues;
- }
-
- public String getDue_on() {
- return due_on;
- }
-
- @Override
- public String toString() {
- return title;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/NewFile.java b/app/src/main/java/org/mian/gitnex/models/NewFile.java
deleted file mode 100644
index 3d13067c..00000000
--- a/app/src/main/java/org/mian/gitnex/models/NewFile.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class NewFile {
-
- private String branch;
- private String content;
- private String message;
- private String new_branch;
-
- private authorObject author;
- private committerObject committer;
-
- public String getBranch() {
- return branch;
- }
-
- public void setBranch(String branch) {
- this.branch = branch;
- }
-
- public String getContents() {
- return content;
- }
-
- public void setContents(String contents) {
- this.content = contents;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public String getNew_branch() {
- return new_branch;
- }
-
- public void setNew_branch(String new_branch) {
- this.new_branch = new_branch;
- }
-
- public static class authorObject {
-
- private String email;
- private String name;
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
-
- public static class committerObject {
-
- private String email;
- private String name;
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
-
- public NewFile(String branch, String content, String message, String new_branch) {
- this.branch = branch;
- this.content = content;
- this.message = message;
- this.new_branch = new_branch;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/NotificationCount.java b/app/src/main/java/org/mian/gitnex/models/NotificationCount.java
deleted file mode 100644
index 840a00cb..00000000
--- a/app/src/main/java/org/mian/gitnex/models/NotificationCount.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.mian.gitnex.models;
-
-import com.google.gson.annotations.SerializedName;
-
-/**
- * Author M M Arif
- */
-
-public class NotificationCount {
-
- @SerializedName("new")
- private int counter;
-
- public int getCounter() {
-
- return counter;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/NotificationSubject.java b/app/src/main/java/org/mian/gitnex/models/NotificationSubject.java
deleted file mode 100644
index 3c05f69d..00000000
--- a/app/src/main/java/org/mian/gitnex/models/NotificationSubject.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class NotificationSubject {
- private String latest_comment_url;
- private String title;
- private String type;
- private String url;
-
- public NotificationSubject(String latest_comment_url, String title, String type, String url) {
-
- this.latest_comment_url = latest_comment_url;
- this.title = title;
- this.type = type;
- this.url = url;
- }
-
- public String getLatest_comment_url() {
- return latest_comment_url;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getType() {
- return type;
- }
-
- public String getUrl() {
- return url;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/NotificationThread.java b/app/src/main/java/org/mian/gitnex/models/NotificationThread.java
deleted file mode 100644
index 322400f5..00000000
--- a/app/src/main/java/org/mian/gitnex/models/NotificationThread.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class NotificationThread {
- private int id;
- private boolean pinned;
- private UserRepositories repository;
- private NotificationSubject subject;
- private boolean unread;
- private String updated_at;
- private String url;
-
- public NotificationThread(int id, boolean pinned, UserRepositories repository, NotificationSubject subject, boolean unread, String updated_at, String url) {
-
- this.id = id;
- this.pinned = pinned;
- this.repository = repository;
- this.subject = subject;
- this.unread = unread;
- this.updated_at = updated_at;
- this.url = url;
- }
-
- public int getId() {
- return id;
- }
-
- public boolean isPinned() {
- return pinned;
- }
-
- public UserRepositories getRepository() {
- return repository;
- }
-
- public NotificationSubject getSubject() {
- return subject;
- }
-
- public boolean isUnread() {
- return unread;
- }
-
- public String getUpdated_at() {
- return updated_at;
- }
-
- public String getUrl() {
- return url;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/OrgOwner.java b/app/src/main/java/org/mian/gitnex/models/OrgOwner.java
deleted file mode 100644
index 7b1eceaf..00000000
--- a/app/src/main/java/org/mian/gitnex/models/OrgOwner.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class OrgOwner {
-
- private int id;
- private String username;
-
- public OrgOwner(String username) {
- this.username = username;
- }
-
- public String getUsername() {
- return username;
- }
-
- public int getId() {
- return id;
- }
-
- @Override
- public String toString() {
- return username;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Organization.java b/app/src/main/java/org/mian/gitnex/models/Organization.java
deleted file mode 100644
index 3649b1e2..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Organization.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class Organization {
-
- private int id;
- private String avatar_url;
- private String description;
- private String full_name;
- private String location;
- private String username;
- private String website;
-
- public int getId() {
- return id;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getLocation() {
- return location;
- }
-
- public String getUsername() {
- return username;
- }
-
- public String getWebsite() {
- return website;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/OrganizationRepository.java b/app/src/main/java/org/mian/gitnex/models/OrganizationRepository.java
deleted file mode 100644
index 473d0b51..00000000
--- a/app/src/main/java/org/mian/gitnex/models/OrganizationRepository.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.mian.gitnex.models;
-
-import com.google.gson.annotations.SerializedName;
-
-/**
- * Author M M Arif
- */
-
-public class OrganizationRepository {
-
- private boolean auto_init;
- private String description;
- private String gitignores;
- private String license;
- private String name;
- private String readme;
-
- @SerializedName("private")
- private boolean is_private;
-
- public OrganizationRepository(boolean auto_init, String description, String gitignores, String license, String name, boolean is_private, String readme) {
- this.auto_init = auto_init;
- this.description = description;
- this.gitignores = gitignores;
- this.license = license;
- this.name = name;
- this.is_private = is_private;
- this.readme = readme;
- }
-
- public void setAuto_init(boolean auto_init) {
- this.auto_init = auto_init;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void setGitignores(String gitignores) {
- this.gitignores = gitignores;
- }
-
- public void setLicense(String license) {
- this.license = license;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setIs_private(boolean is_private) {
- this.is_private = is_private;
- }
-
- public void setReadme(String readme) {
- this.readme = readme;
- }
-
- public boolean isAuto_init() {
- return auto_init;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getGitignores() {
- return gitignores;
- }
-
- public String getLicense() {
- return license;
- }
-
- public String getName() {
- return name;
- }
-
- public boolean isIs_private() {
- return is_private;
- }
-
- public String getReadme() {
- return readme;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Permission.java b/app/src/main/java/org/mian/gitnex/models/Permission.java
deleted file mode 100644
index fc61892d..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Permission.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class Permission {
-
- private String permission;
-
- public Permission(String permission) {
- this.permission = permission;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/PullRequests.java b/app/src/main/java/org/mian/gitnex/models/PullRequests.java
deleted file mode 100644
index d7e0d5ab..00000000
--- a/app/src/main/java/org/mian/gitnex/models/PullRequests.java
+++ /dev/null
@@ -1,883 +0,0 @@
-package org.mian.gitnex.models;
-
-import com.google.gson.annotations.SerializedName;
-import java.util.Date;
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class PullRequests {
-
- private int id;
- private String body;
- private int comments;
- private String diff_url;
- private String html_url;
- private String merge_base;
- private String merge_commit_sha;
- private boolean mergeable;
- private boolean merged;
- private int number;
- private String patch_url;
- private String state;
- private String title;
- private String url;
- private Date closed_at;
- private Date created_at;
- private Date due_date;
- private Date merged_at;
- private Date updated_at;
-
- private userObject user;
- private List labels;
- private List assignees;
- private mergedByObject merged_by;
- private milestoneObject milestone;
- private baseObject base;
- private headObject head;
-
- public PullRequests(String body) {
- this.body = body;
- }
-
- public static class headObject {
-
- private int repo_id;
- private String label;
- private String ref;
- private String sha;
-
- private repoObject repo;
-
- public static class repoObject {
-
- private int repo_id;
- private boolean allow_merge_commits;
- private boolean allow_rebase;
- private boolean allow_rebase_explicit;
- private boolean allow_squash_merge;
- private boolean archived;
- private boolean empty;
- private boolean fork;
- private boolean has_issues;
- private boolean has_pull_requests;
- private boolean has_wiki;
- private boolean ignore_whitespace_conflicts;
- @SerializedName("private")
- private boolean privateFlag;
- private boolean mirror;
- private String avatar_url;
- private String clone_url;
- private String default_branch;
- private String description;
- private String full_name;
- private String html_url;
- private String name;
- private String ssh_url;
- private String website;
- private int forks_count;
- private int id;
- private int open_issues_count;
- private int open_pr_counter;
- private int release_counter;
- private int size;
- private int stars_count;
- private int watchers_count;
- private Date created_at;
- private Date updated_at;
-
- private ownerObject owner;
- private permissionsObject permissions;
-
- public static class ownerObject {
-
- private int repo_id;
- private boolean is_admin;
- private String avatar_url;
- private String email;
- private String full_name;
- private String language;
- private String login;
- private Date created;
-
- public int getRepo_id() {
- return repo_id;
- }
-
- public boolean isIs_admin() {
- return is_admin;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getLogin() {
- return login;
- }
-
- public Date getCreated() {
- return created;
- }
- }
-
- public static class permissionsObject {
-
- private boolean admin;
- private boolean pull;
- private boolean push;
-
- public boolean isAdmin() {
- return admin;
- }
-
- public boolean isPull() {
- return pull;
- }
-
- public boolean isPush() {
- return push;
- }
- }
-
- public int getRepo_id() {
- return repo_id;
- }
-
- public boolean isAllow_merge_commits() {
- return allow_merge_commits;
- }
-
- public boolean isAllow_rebase() {
- return allow_rebase;
- }
-
- public boolean isAllow_rebase_explicit() {
- return allow_rebase_explicit;
- }
-
- public boolean isAllow_squash_merge() {
- return allow_squash_merge;
- }
-
- public boolean isArchived() {
- return archived;
- }
-
- public boolean isEmpty() {
- return empty;
- }
-
- public boolean isFork() {
- return fork;
- }
-
- public boolean isHas_issues() {
- return has_issues;
- }
-
- public boolean isHas_pull_requests() {
- return has_pull_requests;
- }
-
- public boolean isHas_wiki() {
- return has_wiki;
- }
-
- public boolean isIgnore_whitespace_conflicts() {
- return ignore_whitespace_conflicts;
- }
-
- public boolean isPrivateFlag() {
- return privateFlag;
- }
-
- public boolean isMirror() {
- return mirror;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getClone_url() {
- return clone_url;
- }
-
- public String getDefault_branch() {
- return default_branch;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getHtml_url() {
- return html_url;
- }
-
- public String getName() {
- return name;
- }
-
- public String getSsh_url() {
- return ssh_url;
- }
-
- public String getWebsite() {
- return website;
- }
-
- public int getForks_count() {
- return forks_count;
- }
-
- public int getId() {
- return id;
- }
-
- public int getOpen_issues_count() {
- return open_issues_count;
- }
-
- public int getOpen_pull_count() {
- return open_pr_counter;
- }
-
- public int getRelease_count() {
- return release_counter;
- }
-
- public int getSize() {
- return size;
- }
-
- public int getStars_count() {
- return stars_count;
- }
-
- public int getWatchers_count() {
- return watchers_count;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public Date getUpdated_at() {
- return updated_at;
- }
-
- public ownerObject getOwner() {
- return owner;
- }
-
- public permissionsObject getPermissions() {
- return permissions;
- }
- }
-
- public int getRepo_id() {
-
- return repo_id;
- }
-
- public String getLabel() {
-
- return label;
- }
-
- public String getRef() {
-
- return ref;
- }
-
- public String getSha() {
-
- return sha;
- }
-
- public repoObject getRepo() {
-
- return repo;
- }
-
- }
-
- public static class baseObject {
-
- private int repo_id;
- private String label;
- private String ref;
- private String sha;
-
- private repoObject repo;
-
- public static class repoObject {
-
- private int repo_id;
- private boolean allow_merge_commits;
- private boolean allow_rebase;
- private boolean allow_rebase_explicit;
- private boolean allow_squash_merge;
- private boolean archived;
- private boolean empty;
- private boolean fork;
- private boolean has_issues;
- private boolean has_pull_requests;
- private boolean has_wiki;
- private boolean ignore_whitespace_conflicts;
- @SerializedName("private")
- private boolean privateFlag;
- private boolean mirror;
- private String avatar_url;
- private String clone_url;
- private String default_branch;
- private String description;
- private String full_name;
- private String html_url;
- private String name;
- private String ssh_url;
- private String website;
- private int forks_count;
- private int id;
- private int open_issues_count;
- private int size;
- private int stars_count;
- private int watchers_count;
- private Date created_at;
- private Date updated_at;
-
- private ownerObject owner;
- private permissionsObject permissions;
-
- public static class ownerObject {
-
- private int repo_id;
- private boolean is_admin;
- private String avatar_url;
- private String email;
- private String full_name;
- private String language;
- private String login;
- private Date created;
-
- public int getRepo_id() {
- return repo_id;
- }
-
- public boolean isIs_admin() {
- return is_admin;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getLogin() {
- return login;
- }
-
- public Date getCreated() {
- return created;
- }
- }
-
- public static class permissionsObject {
-
- private boolean admin;
- private boolean pull;
- private boolean push;
-
- public boolean isAdmin() {
- return admin;
- }
-
- public boolean isPull() {
- return pull;
- }
-
- public boolean isPush() {
- return push;
- }
- }
-
- public int getRepo_id() {
- return repo_id;
- }
-
- public boolean isAllow_merge_commits() {
- return allow_merge_commits;
- }
-
- public boolean isAllow_rebase() {
- return allow_rebase;
- }
-
- public boolean isAllow_rebase_explicit() {
- return allow_rebase_explicit;
- }
-
- public boolean isAllow_squash_merge() {
- return allow_squash_merge;
- }
-
- public boolean isArchived() {
- return archived;
- }
-
- public boolean isEmpty() {
- return empty;
- }
-
- public boolean isFork() {
- return fork;
- }
-
- public boolean isHas_issues() {
- return has_issues;
- }
-
- public boolean isHas_pull_requests() {
- return has_pull_requests;
- }
-
- public boolean isHas_wiki() {
- return has_wiki;
- }
-
- public boolean isIgnore_whitespace_conflicts() {
- return ignore_whitespace_conflicts;
- }
-
- public boolean isPrivateFlag() {
- return privateFlag;
- }
-
- public boolean isMirror() {
- return mirror;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getClone_url() {
- return clone_url;
- }
-
- public String getDefault_branch() {
- return default_branch;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getHtml_url() {
- return html_url;
- }
-
- public String getName() {
- return name;
- }
-
- public String getSsh_url() {
- return ssh_url;
- }
-
- public String getWebsite() {
- return website;
- }
-
- public int getForks_count() {
- return forks_count;
- }
-
- public int getId() {
- return id;
- }
-
- public int getOpen_issues_count() {
- return open_issues_count;
- }
-
- public int getSize() {
- return size;
- }
-
- public int getStars_count() {
- return stars_count;
- }
-
- public int getWatchers_count() {
- return watchers_count;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public Date getUpdated_at() {
- return updated_at;
- }
-
- public ownerObject getOwner() {
- return owner;
- }
-
- public permissionsObject getPermissions() {
- return permissions;
- }
- }
-
- public int getRepo_id() {
-
- return repo_id;
- }
-
- public String getLabel() {
-
- return label;
- }
-
- public String getRef() {
-
- return ref;
- }
-
- public String getSha() {
-
- return sha;
- }
-
- public repoObject getRepo() {
-
- return repo;
- }
-
- }
-
- public static class userObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private boolean is_admin;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public boolean isIs_admin() {
- return is_admin;
- }
- }
-
- public static class labelsObject {
-
- private int id;
- private String name;
- private String color;
- private String url;
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getColor() {
- return color;
- }
-
- public String getUrl() {
- return url;
- }
- }
-
- public static class assigneesObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private boolean is_admin;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public boolean isIs_admin() {
- return is_admin;
- }
- }
-
- public static class mergedByObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private boolean is_admin;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public boolean isIs_admin() {
- return is_admin;
- }
- }
-
- public static class milestoneObject {
-
- private int id;
- private String title;
- private String description;
- private String state;
- private String open_issues;
- private String closed_issues;
- private String closed_at;
- private String due_on;
-
- public int getId() {
- return id;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getState() {
- return state;
- }
-
- public String getOpen_issues() {
- return open_issues;
- }
-
- public String getClosed_issues() {
- return closed_issues;
- }
-
- public String getClosed_at() {
- return closed_at;
- }
-
- public String getDue_on() {
- return due_on;
- }
- }
-
- public int getId() {
- return id;
- }
-
- public String getBody() {
- return body;
- }
-
- public int getComments() {
- return comments;
- }
-
- public String getDiff_url() {
- return diff_url;
- }
-
- public String getHtml_url() {
- return html_url;
- }
-
- public String getMerge_base() {
- return merge_base;
- }
-
- public String getMerge_commit_sha() {
- return merge_commit_sha;
- }
-
- public boolean isMergeable() {
- return mergeable;
- }
-
- public boolean isMerged() {
- return merged;
- }
-
- public int getNumber() {
- return number;
- }
-
- public String getPatch_url() {
- return patch_url;
- }
-
- public String getState() {
- return state;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getUrl() {
- return url;
- }
-
- public Date getClosed_at() {
- return closed_at;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public Date getDue_date() {
- return due_date;
- }
-
- public Date getMerged_at() {
- return merged_at;
- }
-
- public Date getUpdated_at() {
- return updated_at;
- }
-
- public userObject getUser() {
- return user;
- }
-
- public List getLabels() {
- return labels;
- }
-
- public List getAssignees() {
- return assignees;
- }
-
- public mergedByObject getMerged_by() {
- return merged_by;
- }
-
- public milestoneObject getMilestone() {
- return milestone;
- }
-
- public baseObject getBase() {
- return base;
- }
-
- public headObject getHead() {
- return head;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Releases.java b/app/src/main/java/org/mian/gitnex/models/Releases.java
deleted file mode 100644
index 90dfac50..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Releases.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class Releases {
-
- private int id;
- private String tag_name;
- private String tag_commitish;
- private String name;
- private String body;
- private String url;
- private String tarball_url;
- private String zipball_url;
- private boolean draft;
- private boolean prerelease;
- private Date created_at;
- private Date published_at;
-
- private authorObject author;
- private List assets;
-
- public Releases(String body, boolean draft, String name, boolean prerelease, String tag_name, String tag_commitish) {
- this.body = body;
- this.draft = draft;
- this.name = name;
- this.prerelease = prerelease;
- this.tag_name = tag_name;
- this.tag_commitish = tag_commitish;
- }
-
- public class authorObject {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFull_name() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
- }
-
- public class assetsObject {
-
- private int id;
- private String name;
- private int size;
- private int download_count;
- private Date created_at;
- private String uuid;
- private String browser_download_url;
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public int getSize() {
- return size;
- }
-
- public int getDownload_count() {
- return download_count;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public String getBrowser_download_url() {
- return browser_download_url;
- }
- }
-
- public int getId() {
- return id;
- }
-
- public String getTag_name() {
- return tag_name;
- }
-
- public String getTag_commitish() {
- return tag_commitish;
- }
-
- public String getName() {
- return name;
- }
-
- public String getBody() {
- return body;
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getTarball_url() {
- return tarball_url;
- }
-
- public String getZipball_url() {
- return zipball_url;
- }
-
- public boolean isDraft() {
- return draft;
- }
-
- public boolean isPrerelease() {
- return prerelease;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public Date getPublished_at() {
- return published_at;
- }
-
- public authorObject getAuthor() {
- return author;
- }
-
- public List getAssets() {
- return assets;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/RepositorySettings.java b/app/src/main/java/org/mian/gitnex/models/RepositorySettings.java
deleted file mode 100644
index 0fdf189f..00000000
--- a/app/src/main/java/org/mian/gitnex/models/RepositorySettings.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class RepositorySettings {
-
- private boolean http_git_disabled;
- private boolean mirrors_disabled;
-
- public boolean isHttp_git_disabled() {
-
- return http_git_disabled;
- }
-
- public boolean isMirrors_disabled() {
-
- return mirrors_disabled;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/RepositoryTransfer.java b/app/src/main/java/org/mian/gitnex/models/RepositoryTransfer.java
deleted file mode 100644
index 248dffb6..00000000
--- a/app/src/main/java/org/mian/gitnex/models/RepositoryTransfer.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class RepositoryTransfer {
-
- private String new_owner;
-
- public RepositoryTransfer(String new_owner) {
-
- this.new_owner = new_owner;
- }
-
- public String getNew_owner() {
-
- return new_owner;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Status.java b/app/src/main/java/org/mian/gitnex/models/Status.java
deleted file mode 100644
index a0012d11..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Status.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.Date;
-
-/**
- * Author opyale
- */
-
-public class Status {
-
- private String context;
- private Date created_at;
- private UserInfo creator;
- private String description;
- private int id;
- private String status;
- private String target_url;
- private Date updated_at;
- private String url;
-
- public String getContext() {
- return context;
- }
-
- public Date getCreated_at() {
- return created_at;
- }
-
- public UserInfo getCreator() {
- return creator;
- }
-
- public String getDescription() {
- return description;
- }
-
- public int getId() {
- return id;
- }
-
- public String getStatus() {
- return status;
- }
-
- public String getTarget_url() {
- return target_url;
- }
-
- public Date getUpdated_at() {
- return updated_at;
- }
-
- public String getUrl() {
- return url;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/Teams.java b/app/src/main/java/org/mian/gitnex/models/Teams.java
deleted file mode 100644
index 6c7649c2..00000000
--- a/app/src/main/java/org/mian/gitnex/models/Teams.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class Teams {
-
- private int id;
- private String name;
- private String description;
- private String permission;
- private List units;
-
- public Teams(String name, String description, String permission, List units) {
- this.name = name;
- this.description = description;
- this.permission = permission;
- this.units = units;
- }
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getPermission() {
- return permission;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UISettings.java b/app/src/main/java/org/mian/gitnex/models/UISettings.java
deleted file mode 100644
index 67b6e7ba..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UISettings.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class UISettings {
-
- private String[] allowed_reactions;
-
- public String[] getAllowed_reactions() {
-
- return allowed_reactions;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UpdateIssueAssignees.java b/app/src/main/java/org/mian/gitnex/models/UpdateIssueAssignees.java
deleted file mode 100644
index 190895f0..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UpdateIssueAssignees.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.List;
-
-/**
- * Author M M Arif
- */
-
-public class UpdateIssueAssignees {
-
- private List assignees;
-
- public UpdateIssueAssignees(List assignees) {
- this.assignees = assignees;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UpdateIssueState.java b/app/src/main/java/org/mian/gitnex/models/UpdateIssueState.java
deleted file mode 100644
index fdf11a30..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UpdateIssueState.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class UpdateIssueState {
-
- private String state;
-
- public UpdateIssueState(String state) {
- this.state = state;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UserHeatmap.java b/app/src/main/java/org/mian/gitnex/models/UserHeatmap.java
deleted file mode 100644
index f0a62c3b..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserHeatmap.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author opyale
- */
-
-public class UserHeatmap {
-
- private long contributions;
- private long timestamp;
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UserInfo.java b/app/src/main/java/org/mian/gitnex/models/UserInfo.java
deleted file mode 100644
index cbb348e1..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserInfo.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.mian.gitnex.models;
-
-import androidx.annotation.NonNull;
-
-/**
- * Author M M Arif
- */
-
-public class UserInfo {
-
- private int id;
- private String login;
- private String full_name;
- private String email;
- private String avatar_url;
- private String language;
- private String username;
-
- private String login_name;
- private String password;
- private Boolean send_notify;
- private int source_id;
-
- private Boolean is_admin;
-
- public UserInfo(String email, String full_name, String login_name, String password, String username, int source_id, Boolean send_notify) {
- this.email = email;
- this.full_name = full_name;
- this.login_name = login_name;
- this.password = password;
- this.username = username;
- this.source_id = source_id;
- this.send_notify = send_notify;
- }
-
- public int getId() {
- return id;
- }
-
- public String getLogin() {
- return login;
- }
-
- public String getFullname() {
- return full_name;
- }
-
- public String getEmail() {
- return email;
- }
-
- @NonNull
- public String getAvatar() {
- return avatar_url;
- }
-
- public String getLang() {
- return language;
- }
-
- public String getUsername() {
- return username;
- }
-
- public Boolean getIs_admin() {
- return is_admin;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UserOrganizations.java b/app/src/main/java/org/mian/gitnex/models/UserOrganizations.java
deleted file mode 100644
index 136f22ed..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserOrganizations.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class UserOrganizations {
-
- private int id;
- private String username;
- private String avatar_url;
- private String description;
- private String website;
- private String location;
-
- public UserOrganizations(String username, String avatar_url, String description, String website, String location) {
- this.username = username;
- this.avatar_url = avatar_url;
- this.description = description;
- this.website = website;
- this.location = location;
- }
-
- public int getId() {
- return id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public String getAvatar_url() {
- return avatar_url;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getWebsite() {
- return website;
- }
-
- public String getLocation() {
- return location;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UserRepositories.java b/app/src/main/java/org/mian/gitnex/models/UserRepositories.java
deleted file mode 100644
index 7fe82c0f..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserRepositories.java
+++ /dev/null
@@ -1,377 +0,0 @@
-package org.mian.gitnex.models;
-
-import com.google.gson.annotations.SerializedName;
-import java.util.Date;
-
-/**
- * Author M M Arif
- */
-
-public class UserRepositories {
-
- private int id;
- private String name;
- private String full_name;
- private String description;
- @SerializedName("private")
- private boolean privateFlag;
- private String stars_count;
- private String watchers_count;
- private String open_issues_count;
- private String open_pr_counter;
- private String release_counter;
- private String html_url;
- private String default_branch;
- private Date created_at;
- private Date updated_at;
- private String clone_url;
- private long size;
- private String ssh_url;
- private String website;
- private String forks_count;
- private Boolean has_issues;
- private String avatar_url;
- private boolean archived;
- private boolean allow_merge_commits;
- private boolean allow_rebase;
- private boolean allow_rebase_explicit;
- private boolean allow_squash_merge;
- private boolean has_pull_requests;
- private boolean has_wiki;
- private boolean ignore_whitespace_conflicts;
- private boolean template;
-
- private permissionsObject permissions;
- private externalIssueTrackerObject external_tracker;
- private externalWikiObject external_wiki;
- private internalTimeTrackerObject internal_tracker;
-
- public UserRepositories(String body) {
- this.name = name;
- }
-
- public UserRepositories(String name, String website, String description,
- boolean repoPrivate, boolean repoAsTemplate, boolean repoEnableIssues,
- boolean repoEnableWiki, boolean repoEnablePr,
- boolean repoEnableMerge, boolean repoEnableRebase, boolean repoEnableSquash, boolean repoEnableForceMerge) {
-
- this.name = name;
- this.website = website;
- this.description = description;
- this.privateFlag = repoPrivate;
- this.template = repoAsTemplate;
- this.has_issues = repoEnableIssues;
- this.has_wiki = repoEnableWiki;
- this.has_pull_requests = repoEnablePr;
- this.allow_merge_commits = repoEnableMerge;
- this.allow_rebase = repoEnableRebase;
- this.allow_squash_merge = repoEnableSquash;
- this.allow_rebase_explicit = repoEnableForceMerge;
- }
-
- public UserRepositories(String name, String website, String description,
- boolean repoPrivate, boolean repoAsTemplate, boolean repoEnableIssues,
- boolean repoEnableWiki, boolean repoEnablePr, internalTimeTrackerObject repoEnableTimer,
- boolean repoEnableMerge, boolean repoEnableRebase, boolean repoEnableSquash, boolean repoEnableForceMerge) {
-
- this.name = name;
- this.website = website;
- this.description = description;
- this.privateFlag = repoPrivate;
- this.template = repoAsTemplate;
- this.has_issues = repoEnableIssues;
- this.has_wiki = repoEnableWiki;
- this.has_pull_requests = repoEnablePr;
- this.internal_tracker = repoEnableTimer;
- this.allow_merge_commits = repoEnableMerge;
- this.allow_rebase = repoEnableRebase;
- this.allow_squash_merge = repoEnableSquash;
- this.allow_rebase_explicit = repoEnableForceMerge;
- }
-
- public static class internalTimeTrackerObject {
-
- private boolean allow_only_contributors_to_track_time;
- private boolean enable_issue_dependencies;
- private boolean enable_time_tracker;
-
- public internalTimeTrackerObject(boolean enable_time_tracker) {
-
- this.enable_time_tracker = enable_time_tracker;
- }
-
- public boolean isAllow_only_contributors_to_track_time() {
-
- return allow_only_contributors_to_track_time;
- }
-
- public boolean isEnable_issue_dependencies() {
-
- return enable_issue_dependencies;
- }
-
- public boolean isEnable_time_tracker() {
-
- return enable_time_tracker;
- }
-
- }
-
- public static class externalWikiObject {
-
- private String external_wiki_url;
-
- public externalWikiObject(String external_wiki_url) {
-
- this.external_wiki_url = external_wiki_url;
- }
-
- public String getExternal_wiki_url() {
-
- return external_wiki_url;
- }
-
- }
-
- public static class externalIssueTrackerObject {
-
- private String external_tracker_format;
- private String external_tracker_style;
- private String external_tracker_url;
-
- public externalIssueTrackerObject(String external_tracker_url) {
-
- this.external_tracker_url = external_tracker_url;
- }
-
- public String getExternal_tracker_format() {
-
- return external_tracker_format;
- }
-
- public String getExternal_tracker_style() {
-
- return external_tracker_style;
- }
-
- public String getExternal_tracker_url() {
-
- return external_tracker_url;
- }
-
- }
-
- public static class permissionsObject {
-
- private boolean admin;
- private boolean push;
- private boolean pull;
-
- public boolean isAdmin() {
-
- return admin;
- }
-
- public boolean canPush() {
-
- return push;
- }
-
- public boolean canPull() {
-
- return pull;
- }
-
- }
-
- public int getId() {
-
- return id;
- }
-
- public String getName() {
-
- return name;
- }
-
- public String getFullName() {
-
- return full_name;
- }
-
- public String getDescription() {
-
- return description;
- }
-
- public permissionsObject getPermissions() {
-
- return permissions;
- }
-
- public Boolean getPrivateFlag() {
-
- return privateFlag;
- }
-
- public String getStars_count() {
-
- return stars_count;
- }
-
- public String getOpen_pull_count() {
-
- return open_pr_counter;
- }
-
- public String getRelease_count() {
-
- return release_counter;
- }
-
- public String getWatchers_count() {
-
- return watchers_count;
- }
-
- public String getOpen_issues_count() {
-
- return open_issues_count;
- }
-
- public String getHtml_url() {
-
- return html_url;
- }
-
- public String getDefault_branch() {
-
- return default_branch;
- }
-
- public Date getCreated_at() {
-
- return created_at;
- }
-
- public Date getUpdated_at() {
-
- return updated_at;
- }
-
- public String getClone_url() {
-
- return clone_url;
- }
-
- public long getSize() {
-
- return size;
- }
-
- public String getSsh_url() {
-
- return ssh_url;
- }
-
- public String getWebsite() {
-
- return website;
- }
-
- public String getForks_count() {
-
- return forks_count;
- }
-
- public Boolean getHas_issues() {
-
- return has_issues;
- }
-
- public String getAvatar_url() {
-
- return avatar_url;
- }
-
- public boolean isPrivateFlag() {
-
- return privateFlag;
- }
-
- public String getOpen_pr_counter() {
-
- return open_pr_counter;
- }
-
- public String getRelease_counter() {
-
- return release_counter;
- }
-
- public boolean isArchived() {
-
- return archived;
- }
-
- public String getFull_name() {
-
- return full_name;
- }
-
- public boolean isAllow_merge_commits() {
-
- return allow_merge_commits;
- }
-
- public boolean isAllow_rebase() {
-
- return allow_rebase;
- }
-
- public boolean isAllow_rebase_explicit() {
-
- return allow_rebase_explicit;
- }
-
- public boolean isAllow_squash_merge() {
-
- return allow_squash_merge;
- }
-
- public boolean isHas_pull_requests() {
-
- return has_pull_requests;
- }
-
- public boolean isHas_wiki() {
-
- return has_wiki;
- }
-
- public boolean isIgnore_whitespace_conflicts() {
-
- return ignore_whitespace_conflicts;
- }
-
- public boolean isTemplate() {
-
- return template;
- }
-
- public externalIssueTrackerObject getExternal_tracker() {
-
- return external_tracker;
- }
-
- public externalWikiObject getExternal_wiki() {
-
- return external_wiki;
- }
-
- public internalTimeTrackerObject getInternal_tracker() {
-
- return internal_tracker;
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/UserSearch.java b/app/src/main/java/org/mian/gitnex/models/UserSearch.java
deleted file mode 100644
index 6fecdf64..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserSearch.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.mian.gitnex.models;
-
-import java.util.ArrayList;
-
-/**
- * Author M M Arif
- */
-
-public class UserSearch {
-
- private ArrayList data;
- private Boolean ok;
-
- public ArrayList getData() {
- return data;
- }
-
- public Boolean getOk() {
- return ok;
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/org/mian/gitnex/models/UserTokens.java b/app/src/main/java/org/mian/gitnex/models/UserTokens.java
deleted file mode 100644
index 7bd17e86..00000000
--- a/app/src/main/java/org/mian/gitnex/models/UserTokens.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class UserTokens {
-
- private int id;
- private String name;
- private String sha1;
- private String token_last_eight;
-
- public UserTokens(String name) {
- this.name = name;
- }
-
- public int getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getSha1() {
- return sha1;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getToken_last_eight() {
- return token_last_eight;
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/models/WatchInfo.java b/app/src/main/java/org/mian/gitnex/models/WatchInfo.java
deleted file mode 100644
index 046755a1..00000000
--- a/app/src/main/java/org/mian/gitnex/models/WatchInfo.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.mian.gitnex.models;
-
-/**
- * Author M M Arif
- */
-
-public class WatchInfo {
-
- private Boolean subscribed;
- private Boolean ignored; // = !subscribed
- private String reason; // not used by gitea jet
- private String created_at;
- private String url;
- private String repository_url;
-
- public Boolean getSubscribed() {
-
- return subscribed;
-
- }
-
- public String getCreated_at() {
-
- return created_at;
-
- }
-
- public String getUrl() {
-
- return url;
-
- }
-
- public String getRepository_url() {
-
- return repository_url;
-
- }
-
-}
diff --git a/app/src/main/java/org/mian/gitnex/notifications/NotificationsMaster.java b/app/src/main/java/org/mian/gitnex/notifications/Notifications.java
similarity index 93%
rename from app/src/main/java/org/mian/gitnex/notifications/NotificationsMaster.java
rename to app/src/main/java/org/mian/gitnex/notifications/Notifications.java
index aca4981e..37d90a5f 100644
--- a/app/src/main/java/org/mian/gitnex/notifications/NotificationsMaster.java
+++ b/app/src/main/java/org/mian/gitnex/notifications/Notifications.java
@@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
* Author opyale
*/
-public class NotificationsMaster {
+public class Notifications {
private static int notificationsSupported = -1;
@@ -30,12 +30,12 @@ public class NotificationsMaster {
}
}
- public static void fireWorker(Context context) {
+ public static void stopWorker(Context context) {
WorkManager.getInstance(context).cancelAllWorkByTag(context.getPackageName());
}
- public static void hireWorker(Context context) {
+ public static void startWorker(Context context) {
TinyDB tinyDB = TinyDB.getInstance(context);
diff --git a/app/src/main/java/org/mian/gitnex/notifications/NotificationsWorker.java b/app/src/main/java/org/mian/gitnex/notifications/NotificationsWorker.java
index b7e13062..1972f016 100644
--- a/app/src/main/java/org/mian/gitnex/notifications/NotificationsWorker.java
+++ b/app/src/main/java/org/mian/gitnex/notifications/NotificationsWorker.java
@@ -15,13 +15,13 @@ import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
+import org.gitnex.tea4j.models.NotificationThread;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.StaticGlobalVariables;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.NotificationThread;
import java.util.Date;
import java.util.List;
import retrofit2.Call;
@@ -36,8 +36,8 @@ public class NotificationsWorker extends Worker {
private static final int MAXIMUM_NOTIFICATIONS = 100;
private static final long[] VIBRATION_PATTERN = new long[]{ 1000, 1000 };
- private Context context;
- private TinyDB tinyDB;
+ private final Context context;
+ private final TinyDB tinyDB;
public NotificationsWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
@@ -157,7 +157,7 @@ public class NotificationsWorker extends Worker {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- NotificationChannel notificationChannel = new NotificationChannel(context.getPackageName(), context.getString(R.string.app_name),
+ NotificationChannel notificationChannel = new NotificationChannel(context.getPackageName(), context.getString(R.string.appName),
NotificationManager.IMPORTANCE_DEFAULT);
notificationChannel.setDescription(context.getString(R.string.notificationChannelDescription));
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/AdminCronTasksViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/AdminCronTasksViewModel.java
index e7f0c0a3..c11c5a44 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/AdminCronTasksViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/AdminCronTasksViewModel.java
@@ -6,11 +6,11 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.CronTasks;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.CronTasks;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/AdminGetUsersViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/AdminGetUsersViewModel.java
index 4d834265..98c688c9 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/AdminGetUsersViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/AdminGetUsersViewModel.java
@@ -6,11 +6,11 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/BranchesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/BranchesViewModel.java
index 26d55d00..d33128b0 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/BranchesViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/BranchesViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Branches;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Branches;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/CollaboratorsViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/CollaboratorsViewModel.java
index a54d81ee..6d673e58 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/CollaboratorsViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/CollaboratorsViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Collaborators;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Collaborators;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/FilesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/FilesViewModel.java
index 15116a3e..aa6eabb0 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/FilesViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/FilesViewModel.java
@@ -8,10 +8,10 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Files;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.Toasty;
-import org.mian.gitnex.models.Files;
import java.util.Collections;
import java.util.List;
import retrofit2.Call;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/IssueCommentsViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/IssueCommentsViewModel.java
index a9d473d9..90a09e47 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/IssueCommentsViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/IssueCommentsViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.IssueComments;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.IssueComments;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/LabelsViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/LabelsViewModel.java
index c83c4df5..f6e6d56f 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/LabelsViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/LabelsViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Labels;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Labels;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/MembersByOrgViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/MembersByOrgViewModel.java
index 3a1480b9..7bd9941f 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/MembersByOrgViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/MembersByOrgViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/MyRepositoriesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/MyRepositoriesViewModel.java
index 15a82907..07495d5c 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/MyRepositoriesViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/MyRepositoriesViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserRepositories;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationLabelsViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationLabelsViewModel.java
index 1340b08c..098c5066 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationLabelsViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationLabelsViewModel.java
@@ -9,9 +9,9 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Labels;
import org.jetbrains.annotations.NotNull;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Labels;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationListViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationListViewModel.java
index a40517cb..e973e433 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationListViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/OrganizationListViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserOrganizations;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserOrganizations;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileEmailsViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileEmailsViewModel.java
index 28da6ec8..f871dcdb 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileEmailsViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileEmailsViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Emails;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Emails;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowersViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowersViewModel.java
index 4ddcd249..380b8d59 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowersViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowersViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowingViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowingViewModel.java
index 2d974b7b..146554e9 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowingViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/ProfileFollowingViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/ReleasesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/ReleasesViewModel.java
index ec686395..ea7de358 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/ReleasesViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/ReleasesViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Releases;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Releases;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/RepoStargazersViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/RepoStargazersViewModel.java
index af8f4470..ef75b351 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/RepoStargazersViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/RepoStargazersViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/RepoWatchersViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/RepoWatchersViewModel.java
index 3755a00e..ce4b7144 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/RepoWatchersViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/RepoWatchersViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesByOrgViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesByOrgViewModel.java
index df97855c..e4826f3e 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesByOrgViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesByOrgViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserRepositories;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesListViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesListViewModel.java
index e4975a24..357e5eec 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesListViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/RepositoriesListViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserRepositories;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/StarredRepositoriesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/StarredRepositoriesViewModel.java
index 55dada7e..e269d45a 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/StarredRepositoriesViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/StarredRepositoriesViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserRepositories;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserRepositories;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/TeamMembersByOrgViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/TeamMembersByOrgViewModel.java
index 4a029bf5..e1476c49 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/TeamMembersByOrgViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/TeamMembersByOrgViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.UserInfo;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.UserInfo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/TeamsByOrgViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/TeamsByOrgViewModel.java
index af872c6c..1d2a9fc5 100644
--- a/app/src/main/java/org/mian/gitnex/viewmodels/TeamsByOrgViewModel.java
+++ b/app/src/main/java/org/mian/gitnex/viewmodels/TeamsByOrgViewModel.java
@@ -6,8 +6,8 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import org.gitnex.tea4j.models.Teams;
import org.mian.gitnex.clients.RetrofitClient;
-import org.mian.gitnex.models.Teams;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
diff --git a/app/src/main/java/org/mian/gitnex/views/ReactionList.java b/app/src/main/java/org/mian/gitnex/views/ReactionList.java
index e651e51e..4e5cfdcb 100644
--- a/app/src/main/java/org/mian/gitnex/views/ReactionList.java
+++ b/app/src/main/java/org/mian/gitnex/views/ReactionList.java
@@ -12,12 +12,12 @@ import android.widget.TextView;
import androidx.cardview.widget.CardView;
import com.vdurmont.emoji.Emoji;
import com.vdurmont.emoji.EmojiManager;
+import org.gitnex.tea4j.models.IssueReaction;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.IssueReaction;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/app/src/main/java/org/mian/gitnex/views/ReactionSpinner.java b/app/src/main/java/org/mian/gitnex/views/ReactionSpinner.java
index 32da4d05..a263f338 100644
--- a/app/src/main/java/org/mian/gitnex/views/ReactionSpinner.java
+++ b/app/src/main/java/org/mian/gitnex/views/ReactionSpinner.java
@@ -12,13 +12,13 @@ import android.widget.TextView;
import androidx.cardview.widget.CardView;
import com.vdurmont.emoji.Emoji;
import com.vdurmont.emoji.EmojiManager;
+import org.gitnex.tea4j.models.IssueReaction;
+import org.gitnex.tea4j.models.UISettings;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.helpers.TinyDB;
-import org.mian.gitnex.models.IssueReaction;
-import org.mian.gitnex.models.UISettings;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/app/src/main/res/layout/activity_add_collaborator_to_repository.xml b/app/src/main/res/layout/activity_add_collaborator_to_repository.xml
index 030ae915..ab0394e0 100644
--- a/app/src/main/res/layout/activity_add_collaborator_to_repository.xml
+++ b/app/src/main/res/layout/activity_add_collaborator_to_repository.xml
@@ -42,11 +42,12 @@
-
@@ -81,6 +82,7 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
android:imeOptions="actionSend"
android:inputType="text"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_add_new_account.xml b/app/src/main/res/layout/activity_add_new_account.xml
index c5bd242e..25785e8e 100644
--- a/app/src/main/res/layout/activity_add_new_account.xml
+++ b/app/src/main/res/layout/activity_add_new_account.xml
@@ -75,6 +75,7 @@
android:inputType="none"
android:textColor="?attr/inputTextColor"
android:labelFor="@+id/protocolSpinner"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -102,7 +103,8 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
- android:maxLines="1"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -130,7 +132,8 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
- android:maxLines="1"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_add_new_team_member.xml b/app/src/main/res/layout/activity_add_new_team_member.xml
index 298a878d..95ca58e1 100644
--- a/app/src/main/res/layout/activity_add_new_team_member.xml
+++ b/app/src/main/res/layout/activity_add_new_team_member.xml
@@ -42,12 +42,13 @@
-
diff --git a/app/src/main/res/layout/activity_commits.xml b/app/src/main/res/layout/activity_commits.xml
index 3b889389..12804fee 100644
--- a/app/src/main/res/layout/activity_commits.xml
+++ b/app/src/main/res/layout/activity_commits.xml
@@ -60,21 +60,23 @@
-
-
@@ -134,6 +136,7 @@
android:inputType="textCapSentences"
android:labelFor="@id/new_file_branches"
android:singleLine="true"
+ android:imeOptions="actionNext"
android:textColor="?attr/inputTextColor"
android:textSize="16sp" />
@@ -164,6 +167,7 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_issue.xml b/app/src/main/res/layout/activity_create_issue.xml
index c4586b87..807280d3 100644
--- a/app/src/main/res/layout/activity_create_issue.xml
+++ b/app/src/main/res/layout/activity_create_issue.xml
@@ -78,6 +78,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_milestone.xml b/app/src/main/res/layout/activity_create_milestone.xml
index 216c369f..a08ed94f 100644
--- a/app/src/main/res/layout/activity_create_milestone.xml
+++ b/app/src/main/res/layout/activity_create_milestone.xml
@@ -75,6 +75,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_new_user.xml b/app/src/main/res/layout/activity_create_new_user.xml
index a093c5b5..52edfcd8 100644
--- a/app/src/main/res/layout/activity_create_new_user.xml
+++ b/app/src/main/res/layout/activity_create_new_user.xml
@@ -75,6 +75,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -100,6 +102,8 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -125,6 +129,8 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -150,6 +156,7 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_organization.xml b/app/src/main/res/layout/activity_create_organization.xml
index 50c4c6ba..6adb7d93 100644
--- a/app/src/main/res/layout/activity_create_organization.xml
+++ b/app/src/main/res/layout/activity_create_organization.xml
@@ -75,6 +75,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_pr.xml b/app/src/main/res/layout/activity_create_pr.xml
index 6ce160bc..a0f35305 100644
--- a/app/src/main/res/layout/activity_create_pr.xml
+++ b/app/src/main/res/layout/activity_create_pr.xml
@@ -78,6 +78,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_release.xml b/app/src/main/res/layout/activity_create_release.xml
index 75147b09..936d015f 100644
--- a/app/src/main/res/layout/activity_create_release.xml
+++ b/app/src/main/res/layout/activity_create_release.xml
@@ -74,7 +74,9 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
- android:inputType="textCapSentences|textMultiLine"
+ android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -101,6 +103,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_create_team_by_org.xml b/app/src/main/res/layout/activity_create_team_by_org.xml
index 6a1f1593..e6452b93 100644
--- a/app/src/main/res/layout/activity_create_team_by_org.xml
+++ b/app/src/main/res/layout/activity_create_team_by_org.xml
@@ -75,6 +75,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
@@ -103,6 +105,8 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_deeplinks.xml b/app/src/main/res/layout/activity_deeplinks.xml
index c47935fd..dbd557ae 100644
--- a/app/src/main/res/layout/activity_deeplinks.xml
+++ b/app/src/main/res/layout/activity_deeplinks.xml
@@ -6,11 +6,12 @@
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
-
@@ -94,7 +95,7 @@
android:id="@+id/organization"
android:layout_width="match_parent"
android:layout_height="60dp"
- android:text="@string/navOrgs"
+ android:text="@string/navOrg"
android:textColor="@color/btnTextColor"
android:textSize="16sp"
android:layout_marginTop="8dp" />
diff --git a/app/src/main/res/layout/activity_edit_issue.xml b/app/src/main/res/layout/activity_edit_issue.xml
index 4449e83a..3da786c3 100644
--- a/app/src/main/res/layout/activity_edit_issue.xml
+++ b/app/src/main/res/layout/activity_edit_issue.xml
@@ -75,6 +75,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_file_diff.xml b/app/src/main/res/layout/activity_file_diff.xml
index 9c465288..2268bb74 100644
--- a/app/src/main/res/layout/activity_file_diff.xml
+++ b/app/src/main/res/layout/activity_file_diff.xml
@@ -61,11 +61,12 @@
-
diff --git a/app/src/main/res/layout/activity_file_view.xml b/app/src/main/res/layout/activity_file_view.xml
index aff93f71..57e080b2 100644
--- a/app/src/main/res/layout/activity_file_view.xml
+++ b/app/src/main/res/layout/activity_file_view.xml
@@ -45,11 +45,12 @@
-
-
@@ -134,6 +135,7 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
android:textSize="16sp" />
@@ -162,6 +164,7 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textPassword"
+ android:singleLine="true"
android:textSize="16sp" />
@@ -193,6 +196,7 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="number"
+ android:singleLine="true"
android:textSize="16sp" />
@@ -220,6 +224,7 @@
android:textColor="?attr/inputTextColor"
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
+ android:singleLine="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_merge_pull_request.xml b/app/src/main/res/layout/activity_merge_pull_request.xml
index 99a347f9..3ea2d0b0 100644
--- a/app/src/main/res/layout/activity_merge_pull_request.xml
+++ b/app/src/main/res/layout/activity_merge_pull_request.xml
@@ -89,6 +89,8 @@
android:textColorHighlight="?attr/hintColor"
android:textColorHint="?attr/hintColor"
android:inputType="textCapSentences"
+ android:singleLine="true"
+ android:imeOptions="actionNext"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/activity_org_detail.xml b/app/src/main/res/layout/activity_org_detail.xml
index 97def43a..d9990da2 100644
--- a/app/src/main/res/layout/activity_org_detail.xml
+++ b/app/src/main/res/layout/activity_org_detail.xml
@@ -48,7 +48,7 @@
android:id="@+id/tabItemInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/tab_text_info" />
+ android:text="@string/tabTextInfo" />
+ android:text="@string/tabTextLabels" />
-
+ android:text="@string/tabTextInfo" />
+ android:text="@string/tabTextFiles" />
+ android:text="@string/tabTextReleases" />
+ android:text="@string/tabTextMl" />
+ android:text="@string/tabTextLabels" />
+ android:text="@string/tabTextCollaborators" />
diff --git a/app/src/main/res/layout/activity_repo_forks.xml b/app/src/main/res/layout/activity_repo_forks.xml
index edcd061c..07f7d43a 100644
--- a/app/src/main/res/layout/activity_repo_forks.xml
+++ b/app/src/main/res/layout/activity_repo_forks.xml
@@ -60,21 +60,23 @@
-
-
-
-
diff --git a/app/src/main/res/layout/activity_settings_security.xml b/app/src/main/res/layout/activity_settings_security.xml
index 578f248b..17a76f0a 100644
--- a/app/src/main/res/layout/activity_settings_security.xml
+++ b/app/src/main/res/layout/activity_settings_security.xml
@@ -43,11 +43,42 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="visible">
+ app:UnSelectedTextColor="@color/lightGray" />
-
diff --git a/app/src/main/res/layout/fragment_issues.xml b/app/src/main/res/layout/fragment_issues.xml
index e8237bd6..fb1aa9ec 100644
--- a/app/src/main/res/layout/fragment_issues.xml
+++ b/app/src/main/res/layout/fragment_issues.xml
@@ -20,19 +20,21 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_organizations.xml b/app/src/main/res/layout/fragment_organizations.xml
index d14654ef..e7a0ae12 100644
--- a/app/src/main/res/layout/fragment_organizations.xml
+++ b/app/src/main/res/layout/fragment_organizations.xml
@@ -19,11 +19,12 @@
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_repositories.xml b/app/src/main/res/layout/fragment_repositories.xml
index a3b7ea53..91ca3bc7 100644
--- a/app/src/main/res/layout/fragment_repositories.xml
+++ b/app/src/main/res/layout/fragment_repositories.xml
@@ -21,11 +21,12 @@
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/list_files.xml b/app/src/main/res/layout/list_files.xml
index cf59bc16..03839bb7 100644
--- a/app/src/main/res/layout/list_files.xml
+++ b/app/src/main/res/layout/list_files.xml
@@ -1,91 +1,67 @@
-
+ android:background="?attr/primaryBackgroundColor"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
-