diff --git a/.editorconfig b/.editorconfig
index 9809e12c..44c3cd2c 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -20,3 +20,7 @@ indent_size = 2
[{*.yml,*.yaml}]
indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
+insert_final_newline = false
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index f44b1994..5c9943cc 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -36,6 +36,7 @@
+
@@ -156,4 +157,4 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 787311ae..eb788dae 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -36,7 +36,7 @@ configurations {
}
dependencies {
- def lifecycle_version = "2.2.0"
+ def lifecycle_version = "2.3.0-alpha05"
def markwon_version = '4.3.1'
def acra = "5.5.0"
@@ -77,7 +77,7 @@ dependencies {
implementation "pl.droidsonroids.gif:android-gif-drawable:1.2.19"
implementation "com.hendraanggrian.appcompat:socialview:0.2"
implementation "com.hendraanggrian.appcompat:socialview-commons:0.2"
- implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
+ implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" // Deprecated (https://developer.android.com/jetpack/androidx/releases/lifecycle)
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "com.github.HamidrezaAmz:BreadcrumbsView:0.2.9"
implementation "commons-io:commons-io:20030203.000550"
diff --git a/app/src/main/java/org/mian/gitnex/activities/AdminGetUsersActivity.java b/app/src/main/java/org/mian/gitnex/activities/AdminGetUsersActivity.java
index 2a2ace34..1973f97e 100644
--- a/app/src/main/java/org/mian/gitnex/activities/AdminGetUsersActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/AdminGetUsersActivity.java
@@ -28,7 +28,6 @@ import org.mian.gitnex.util.AppUtil;
import org.mian.gitnex.util.TinyDB;
import org.mian.gitnex.viewmodels.AdminGetUsersViewModel;
import java.util.List;
-import java.util.Objects;
/**
* Author M M Arif
@@ -132,7 +131,7 @@ public class AdminGetUsersActivity extends BaseActivity implements BottomSheetAd
public void run() {
if(searchFilter) {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
inflater.inflate(R.menu.search_menu, menu);
diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java
index 26449efa..493d2587 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java
@@ -61,7 +61,7 @@ public class CreateFileActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -146,7 +146,7 @@ public class CreateFileActivity extends BaseActivity {
private void processNewFile() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
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 60e0edd3..7d9f0762 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java
@@ -82,7 +82,7 @@ public class CreateIssueActivity extends BaseActivity implements View.OnClickLis
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -153,7 +153,7 @@ public class CreateIssueActivity extends BaseActivity implements View.OnClickLis
private void processNewIssue() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
final String loginUid = tinyDb.getString("loginUid");
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 eb4faabb..3775cb0b 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java
@@ -73,7 +73,7 @@ public class CreateLabelActivity extends BaseActivity {
}
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
ImageView closeActivity = findViewById(R.id.close);
colorPicker = findViewById(R.id.colorPicker);
@@ -154,7 +154,7 @@ public class CreateLabelActivity extends BaseActivity {
private void processUpdateLabel() {
final TinyDB tinyDb = new TinyDB(appCtx);
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
String repoFullName = tinyDb.getString("repoFullName");
String[] parts = repoFullName.split("/");
@@ -202,7 +202,7 @@ public class CreateLabelActivity extends BaseActivity {
private void processCreateLabel() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
String repoFullName = tinyDb.getString("repoFullName");
@@ -446,4 +446,4 @@ public class CreateLabelActivity extends BaseActivity {
}
-}
\ No newline at end of file
+}
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 044223b9..6e2b1f73 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java
@@ -50,7 +50,7 @@ public class CreateMilestoneActivity extends BaseActivity implements View.OnClic
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -92,7 +92,7 @@ public class CreateMilestoneActivity extends BaseActivity implements View.OnClic
private void processNewMilestone() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
String repoFullName = tinyDb.getString("repoFullName");
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 7f9135fc..728ead06 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java
@@ -48,7 +48,7 @@ public class CreateNewUserActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -80,7 +80,7 @@ public class CreateNewUserActivity extends BaseActivity {
private void processCreateNewUser() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
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 2fabfc2c..3bf00004 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java
@@ -47,7 +47,7 @@ public class CreateOrganizationActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -97,7 +97,7 @@ public class CreateOrganizationActivity extends BaseActivity {
private void processNewOrganization() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
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 2f674879..f42e8745 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java
@@ -60,7 +60,7 @@ public class CreateReleaseActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -125,7 +125,7 @@ public class CreateReleaseActivity extends BaseActivity {
private void processNewRelease() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
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 81a883f2..4b67e175 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java
@@ -64,7 +64,7 @@ public class CreateRepoActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(ctx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(ctx);
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
@@ -124,7 +124,7 @@ public class CreateRepoActivity extends BaseActivity {
private void processNewRepo() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
AppUtil appUtil = new AppUtil();
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
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 01bf62e2..3fa0823b 100644
--- a/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java
@@ -78,7 +78,7 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -256,7 +256,7 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
final String orgName = tinyDb.getString("orgName");;
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
String newTeamName = teamName.getText().toString();
String newTeamDesc = teamDesc.getText().toString();
String newTeamPermission = teamPermission.getText().toString().toLowerCase();
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 d1e91c8a..81adad90 100644
--- a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java
@@ -196,7 +196,7 @@ public class EditIssueActivity extends BaseActivity implements View.OnClickListe
private void processEditIssue() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
final String loginUid = tinyDb.getString("loginUid");
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 0468c4bb..3dd2d70b 100644
--- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
@@ -1,9 +1,7 @@
package org.mian.gitnex.activities;
-import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.util.Log;
@@ -25,14 +23,14 @@ import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.NetworkObserver;
import org.mian.gitnex.helpers.SnackBar;
+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 org.mian.gitnex.util.AppUtil;
import org.mian.gitnex.util.TinyDB;
-import java.net.URI;
-import java.net.URISyntaxException;
+import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID;
@@ -44,15 +42,20 @@ import retrofit2.Callback;
* Author M M Arif
*/
-public class LoginActivity extends BaseActivity implements View.OnClickListener {
+public class LoginActivity extends BaseActivity {
+
+ private enum Protocol { HTTPS, HTTP }
+ private enum LoginType { BASIC, TOKEN }
+
+ private Context appCtx;
+ private Context ctx = this;
+ private TinyDB tinyDB;
private Button loginButton;
private EditText instanceUrlET, loginUidET, loginPassword, otpCode, loginTokenCode;
private Spinner protocolSpinner;
private TextView otpInfo;
private RadioGroup loginMethod;
- final Context ctx = this;
- private Context appCtx;
private String device_id = "token";
private ScrollView layoutView;
@@ -68,8 +71,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- TinyDB tinyDb = new TinyDB(appCtx);
- NetworkObserver networkMonitor = new NetworkObserver(this);
+ tinyDB = new TinyDB(appCtx);
+ NetworkObserver networkMonitor = new NetworkObserver(ctx);
loginButton = findViewById(R.id.login_button);
instanceUrlET = findViewById(R.id.instance_url);
@@ -78,349 +81,182 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
otpCode = findViewById(R.id.otpCode);
otpInfo = findViewById(R.id.otpInfo);
ImageView info_button = findViewById(R.id.info);
- final TextView viewTextAppVersion = findViewById(R.id.appVersion);
protocolSpinner = findViewById(R.id.httpsSpinner);
loginMethod = findViewById(R.id.loginMethod);
loginTokenCode = findViewById(R.id.loginTokenCode);
layoutView = findViewById(R.id.loginForm);
- viewTextAppVersion.setText(AppUtil.getAppVersion(appCtx));
-
- Resources res = getResources();
- String[] allProtocols = res.getStringArray(R.array.protocolValues);
-
- final ArrayAdapter adapterProtocols = new ArrayAdapter(LoginActivity.this, R.layout.spinner_item, allProtocols);
+ ((TextView) findViewById(R.id.appVersion)).setText(AppUtil.getAppVersion(appCtx));
+ ArrayAdapter adapterProtocols = new ArrayAdapter<>(LoginActivity.this, R.layout.spinner_item, Protocol.values());
adapterProtocols.setDropDownViewResource(R.layout.spinner_dropdown_item);
- protocolSpinner.setAdapter(adapterProtocols);
+ protocolSpinner.setAdapter(adapterProtocols);
protocolSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView> parent, View view, int pos, long id) {
- String value = getResources().getStringArray(R.array.protocolValues)[pos];
- if(value.toLowerCase().equals("http")) {
+ if(protocolSpinner.getSelectedItem() == Protocol.HTTP) {
SnackBar.warning(ctx, layoutView, getResources().getString(R.string.protocolError));
}
-
}
- public void onNothingSelected(AdapterView> parent) {
-
- }
+ public void onNothingSelected(AdapterView> parent) {}
});
- info_button.setOnClickListener(infoListener);
-
- if(tinyDb.getString("loginType").equals("basic")) { // username/password
-
- loginMethod.check(R.id.loginUsernamePassword);
-
- loginUidET.setVisibility(View.VISIBLE);
- loginPassword.setVisibility(View.VISIBLE);
- otpCode.setVisibility(View.VISIBLE);
- otpInfo.setVisibility(View.VISIBLE);
- loginTokenCode.setVisibility(View.GONE);
-
- }
- else {
-
- loginMethod.check(R.id.loginToken);
-
- loginUidET.setVisibility(View.GONE);
- loginPassword.setVisibility(View.GONE);
- otpCode.setVisibility(View.GONE);
- otpInfo.setVisibility(View.GONE);
- loginTokenCode.setVisibility(View.VISIBLE);
-
- }
+ info_button.setOnClickListener(view -> new Tooltip.Builder(view)
+ .setText(R.string.urlInfoTooltip)
+ .setTextColor(getResources().getColor(R.color.white))
+ .setBackgroundColor(getResources().getColor(R.color.tooltipBackground))
+ .setCancelable(true)
+ .setDismissOnClick(true)
+ .setPadding(30)
+ .setCornerRadius(R.dimen.tooltipCornor)
+ .setGravity(Gravity.BOTTOM).show());
loginMethod.setOnCheckedChangeListener((group, checkedId) -> {
if(checkedId == R.id.loginToken) {
- loginUidET.setVisibility(View.GONE);
- loginPassword.setVisibility(View.GONE);
- otpCode.setVisibility(View.GONE);
- otpInfo.setVisibility(View.GONE);
+ AppUtil.setMultiVisibility(View.GONE, loginUidET, loginPassword, otpCode, otpInfo);
loginTokenCode.setVisibility(View.VISIBLE);
}
else {
- loginUidET.setVisibility(View.VISIBLE);
- loginPassword.setVisibility(View.VISIBLE);
- otpCode.setVisibility(View.VISIBLE);
- otpInfo.setVisibility(View.VISIBLE);
+ AppUtil.setMultiVisibility(View.VISIBLE, loginUidET, loginPassword, otpCode, otpInfo);
loginTokenCode.setVisibility(View.GONE);
}
-
});
networkMonitor.onInternetStateListener(isAvailable -> {
if(isAvailable) {
+
enableProcessButton();
SnackBar.success(ctx, layoutView, getResources().getString(R.string.netConnectionIsBack));
}
else {
+
disableProcessButton();
+ loginButton.setText(getResources().getString(R.string.btnLogin));
SnackBar.error(ctx, layoutView, getResources().getString(R.string.checkNetConnection));
}
+ });
+
+ loadDefaults();
+
+ loginButton.setOnClickListener(view -> {
+
+ disableProcessButton();
+ login();
});
- //login_button.setOnClickListener(this);
- if(!tinyDb.getString("instanceUrlRaw").isEmpty()) {
- instanceUrlET.setText(tinyDb.getString("instanceUrlRaw"));
- }
- if(!tinyDb.getString("loginUid").isEmpty()) {
- loginUidET.setText(tinyDb.getString("loginUid"));
- }
-
- if(tinyDb.getBoolean("loggedInMode")) {
-
- startActivity(new Intent(LoginActivity.this, MainActivity.class));
- finish();
-
- }
-
- loginButton.setOnClickListener(loginListener);
-
- if(!tinyDb.getString("uniqueAppId").isEmpty()) {
- device_id = tinyDb.getString("uniqueAppId");
- }
- else {
- device_id = UUID.randomUUID().toString();
- tinyDb.putString("uniqueAppId", device_id);
- }
-
}
- @Override
- public void onClick(View v) {
-
- if(v.getId() == R.id.login_button) {
- login();
- }
-
- }
-
- private View.OnClickListener loginListener = new View.OnClickListener() {
-
- public void onClick(View v) {
-
- disableProcessButton();
- loginButton.setText(R.string.processingText);
- login();
-
- }
- };
-
- private View.OnClickListener infoListener = v -> new Tooltip.Builder(v).setText(R.string.urlInfoTooltip).setTextColor(getResources().getColor(R.color.white)).setBackgroundColor(getResources().getColor(R.color.tooltipBackground)).setCancelable(true).setDismissOnClick(true).setPadding(30).setCornerRadius(R.dimen.tooltipCornor).setGravity(Gravity.BOTTOM).show();
-
- @SuppressLint("ResourceAsColor")
private void login() {
- TinyDB tinyDb = new TinyDB(appCtx);
- AppUtil appUtil = new AppUtil();
- boolean connToInternet = AppUtil.haveNetworkConnection(LoginActivity.this);
+ try {
- String instanceUrl = instanceUrlET.getText().toString().trim();
- String loginUid = loginUidET.getText().toString();
- String loginPass = loginPassword.getText().toString();
- String protocol = protocolSpinner.getSelectedItem().toString();
- String loginOTP_ = otpCode.getText().toString().trim();
- int loginMethodType = loginMethod.getCheckedRadioButtonId();
- String loginToken_ = loginTokenCode.getText().toString().trim();
+ String loginUid = loginUidET.getText().toString();
+ String loginPass = loginPassword.getText().toString();
+ String loginToken = loginTokenCode.getText().toString().trim();
- if(loginMethodType == R.id.loginUsernamePassword) {
+ Protocol protocol = (Protocol) protocolSpinner.getSelectedItem();
+ URL rawInstanceUrl = new URL(UrlHelper.fixScheme(instanceUrlET.getText().toString(), protocol.name().toLowerCase()));
+ LoginType loginType = (loginMethod.getCheckedRadioButtonId() == R.id.loginUsernamePassword) ? LoginType.BASIC : LoginType.TOKEN;
- tinyDb.putString("loginType", "basic");
+ String portAppendix = (rawInstanceUrl.getPort() > 0) ? ":" + rawInstanceUrl.getPort() : "";
+ String instanceUrlWithProtocol = protocol.name().toLowerCase() + "://" + rawInstanceUrl.getHost() + portAppendix;
+ String instanceUrl = instanceUrlWithProtocol + "/api/v1/";
- if(instanceUrl.contains("@")) {
+ tinyDB.putString("loginType", loginType.name().toLowerCase());
+ tinyDB.putString("instanceUrlRaw", rawInstanceUrl.getHost());
+ tinyDB.putString("instanceUrl", instanceUrl);
+ tinyDB.putString("instanceUrlWithProtocol", instanceUrlWithProtocol);
- String[] urlForHttpAuth = instanceUrl.split("@");
+ if(instanceUrlET.getText().toString().equals("")) {
- tinyDb.putString("basicAuthPassword", loginPass);
- tinyDb.putBoolean("basicAuthFlag", true);
-
- instanceUrl = urlForHttpAuth[1];
- loginUid = urlForHttpAuth[0];
+ SnackBar.warning(ctx, layoutView, getResources().getString(R.string.emptyFieldURL));
+ enableProcessButton();
+ return;
}
- String instanceHost;
- if(AppUtil.httpCheck(instanceUrl)) {
+ if(loginType == LoginType.BASIC) {
- URI uri = null;
- try {
- uri = new URI(instanceUrl);
- }
- catch(URISyntaxException e) {
- e.printStackTrace();
- }
- assert uri != null;
- instanceHost = uri.getHost();
+ int loginOTP = Integer.parseInt(otpCode.getText().toString().trim());
- }
- else {
- instanceHost = instanceUrl;
- }
+ if(rawInstanceUrl.getUserInfo() != null) {
- String instanceUrlWithProtocol;
- if(protocol.toLowerCase().equals("https")) {
- instanceUrl = "https://" + instanceHost + "/api/v1/";
- instanceUrlWithProtocol = "https://" + instanceHost + "/";
- }
- else {
- instanceUrl = "http://" + instanceHost + "/api/v1/";
- instanceUrlWithProtocol = "http://" + instanceHost + "/";
- }
-
- tinyDb.putString("instanceUrlRaw", instanceHost);
- tinyDb.putString("loginUid", loginUid);
- tinyDb.putString("instanceUrl", instanceUrl);
- tinyDb.putString("instanceUrlWithProtocol", instanceUrlWithProtocol);
-
- if(connToInternet) {
-
- if(instanceUrlET.getText().toString().equals("")) {
-
- SnackBar.warning(ctx, layoutView, getResources().getString(R.string.emptyFieldURL));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
- return;
+ tinyDB.putString("basicAuthPassword", loginPass);
+ tinyDB.putBoolean("basicAuthFlag", true);
}
+
+ tinyDB.putString("loginUid", loginUid);
+
if(loginUid.equals("")) {
SnackBar.warning(ctx, layoutView, getResources().getString(R.string.emptyFieldUsername));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
return;
}
- if(loginPassword.getText().toString().equals("")) {
+
+ if(loginPass.equals("")) {
SnackBar.warning(ctx, layoutView, getResources().getString(R.string.emptyFieldPassword));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
return;
}
- int loginOTP = 0;
- if(loginOTP_.length() == 6) {
-
- if(appUtil.checkIntegers(loginOTP_)) {
-
- loginOTP = Integer.parseInt(loginOTP_);
- }
- else {
-
- SnackBar.warning(ctx, layoutView, getResources().getString(R.string.loginOTPTypeError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
- return;
-
- }
-
- }
-
- versionCheck(instanceUrl, loginUid, loginPass, loginOTP, loginToken_, 1);
+ versionCheck(instanceUrl, loginUid, loginPass, loginOTP, loginToken, 1);
}
else {
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.checkNetConnection));
-
- }
-
- }
- else {
-
- tinyDb.putString("loginType", "token");
-
- String instanceHost;
- if(AppUtil.httpCheck(instanceUrl)) {
-
- URI uri = null;
- try {
- uri = new URI(instanceUrl);
- }
- catch(URISyntaxException e) {
- e.printStackTrace();
- }
- assert uri != null;
- instanceHost = uri.getHost();
-
- }
- else {
- instanceHost = instanceUrl;
- }
-
- String instanceUrlWithProtocol;
- if(protocol.toLowerCase().equals("https")) {
- instanceUrl = "https://" + instanceHost + "/api/v1/";
- instanceUrlWithProtocol = "https://" + instanceHost;
- }
- else {
- instanceUrl = "http://" + instanceHost + "/api/v1/";
- instanceUrlWithProtocol = "http://" + instanceHost;
- }
-
- tinyDb.putString("instanceUrlRaw", instanceHost);
- tinyDb.putString("instanceUrl", instanceUrl);
- tinyDb.putString("instanceUrlWithProtocol", instanceUrlWithProtocol);
-
- if(connToInternet) {
-
- if(instanceUrlET.getText().toString().equals("")) {
-
- SnackBar.warning(ctx, layoutView, getResources().getString(R.string.emptyFieldURL));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
- return;
-
- }
- if(loginToken_.equals("")) {
+ if(loginToken.equals("")) {
SnackBar.warning(ctx, layoutView, getResources().getString(R.string.loginTokenError));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
return;
}
- versionCheck(instanceUrl, loginUid, loginPass, 123, loginToken_, 2);
- }
- else {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.checkNetConnection));
+ versionCheck(instanceUrl, loginUid, loginPass, 123, loginToken, 2);
}
+ } catch (Exception e) {
+
+ Log.e("onFailure-login", e.toString());
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.malformedUrl));
+ enableProcessButton();
+
}
-
}
- private void versionCheck(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP, final String loginToken_, final int loginType) {
+ private void versionCheck(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP, final String loginToken, final int loginType) {
Call callVersion;
- if(!loginToken_.isEmpty()) {
- callVersion = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithToken(loginToken_);
+
+ if(!loginToken.equals("")) {
+
+ callVersion = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithToken(loginToken);
}
else {
- final String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8);
- if(loginOTP != 0) {
- callVersion = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithOTP(credential, loginOTP);
- }
- else {
- callVersion = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithBasic(credential);
- }
+
+ String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8);
+
+ callVersion = (loginOTP != 0) ?
+ RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithOTP(credential, loginOTP) :
+ RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getGiteaVersionWithBasic(credential);
+
}
callVersion.enqueue(new Callback() {
@@ -431,91 +267,86 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
if(responseVersion.code() == 200) {
GiteaVersion version = responseVersion.body();
+ Version gitea_version;
+
assert version != null;
- // init
- Version gitea_version = new Version(getString(R.string.versionLow));
try {
gitea_version = new Version(version.getVersion());
}
catch(Error e) {
+
SnackBar.error(ctx, layoutView, getResources().getString(R.string.versionUnknown));
enableProcessButton();
+ return;
}
- // UNSUPPORTED_OLD
if(gitea_version.less(getString(R.string.versionLow))) {
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctx);
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctx)
+ .setTitle(getString(R.string.versionAlertDialogHeader))
+ .setMessage(getResources().getString(R.string.versionUnsupportedOld, version.getVersion()))
+ .setIcon(R.drawable.ic_warning)
+ .setCancelable(true);
- alertDialogBuilder.setTitle(getString(R.string.versionAlertDialogHeader)).setMessage(getResources().getString(R.string.versionUnsupportedOld, version.getVersion())).setCancelable(true).setIcon(R.drawable.ic_warning).setNegativeButton(getString(R.string.cancelButton), (dialog, which) -> {
+ alertDialogBuilder.setNegativeButton(getString(R.string.cancelButton), (dialog, which) -> {
dialog.dismiss();
enableProcessButton();
-
- }).setPositiveButton(getString(R.string.textContinue), (dialog, which) -> {
-
- dialog.dismiss();
- login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
-
});
- AlertDialog alertDialog = alertDialogBuilder.create();
+ alertDialogBuilder.setPositiveButton(getString(R.string.textContinue), (dialog, which) -> {
- alertDialog.show();
- return;
+ dialog.dismiss();
+ login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken);
+ });
+
+ alertDialogBuilder.create().show();
}
- // SUPPORTED
else if(gitea_version.lessOrEqual(getString(R.string.versionHigh))) {
- login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
- return;
+
+ login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken);
}
- // UNSUPPORTED_NEW
else {
+
SnackBar.info(ctx, layoutView, getResources().getString(R.string.versionUnsupportedNew));
- login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
- return;
+ login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken);
+
}
}
else if(responseVersion.code() == 403) {
- login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
-
+ login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken);
}
}
- private void login(int loginType, String instanceUrl, String loginUid, String loginPass, int loginOTP, String loginToken_) {
+ private void login(int loginType, String instanceUrl, String loginUid, String loginPass, int loginOTP, String loginToken) {
if(loginType == 1) {
- letTheUserIn(instanceUrl, loginUid, loginPass, loginOTP);
+ setup(instanceUrl, loginUid, loginPass, loginOTP);
}
- else if(loginType == 2) { // token
- letTheUserInViaToken(instanceUrl, loginToken_);
+ else if(loginType == 2) { // Token
+ setupUsingExistingToken(instanceUrl, loginToken);
}
-
}
@Override
- public void onFailure(@NonNull Call callVersion, Throwable t) {
+ public void onFailure(@NonNull Call callVersion, @NonNull Throwable t) {
- Log.e("onFailure-version", t.toString());
+ Log.e("onFailure-versionCheck", t.toString());
SnackBar.error(ctx, layoutView, getResources().getString(R.string.errorOnLogin));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
}
-
});
-
}
- private void letTheUserInViaToken(String instanceUrl, final String loginToken_) {
+ private void setupUsingExistingToken(String instanceUrl, final String loginToken) {
- final TinyDB tinyDb = new TinyDB(appCtx);
-
- Call call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserInfo("token " + loginToken_);
+ Call call = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .getUserInfo("token " + loginToken);
call.enqueue(new Callback() {
@@ -524,36 +355,28 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
UserInfo userDetails = response.body();
- if(response.isSuccessful()) {
+ switch(response.code()) {
- if(response.code() == 200) {
-
- tinyDb.putBoolean("loggedInMode", true);
+ case 200:
+ tinyDB.putBoolean("loggedInMode", true);
assert userDetails != null;
- tinyDb.putString(userDetails.getLogin() + "-token", loginToken_);
- tinyDb.putString("loginUid", userDetails.getLogin());
- tinyDb.putString("userLogin", userDetails.getUsername());
+ tinyDB.putString(userDetails.getLogin() + "-token", loginToken);
+ tinyDB.putString("loginUid", userDetails.getLogin());
+ tinyDB.putString("userLogin", userDetails.getUsername());
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
+ break;
- }
+ case 401:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
+ enableProcessButton();
+ break;
- }
- else if(response.code() == 401) {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
- else {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
+ default:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
+ enableProcessButton();
}
@@ -565,27 +388,28 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Log.e("onFailure", t.toString());
SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericError));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
}
});
}
- private void letTheUserIn(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP) {
+ private void setup(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP) {
final String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8);
Call> call;
if(loginOTP != 0) {
- call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserTokensWithOTP(credential, loginOTP, loginUid);
-
+ call = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .getUserTokensWithOTP(credential, loginOTP, loginUid);
}
else {
- call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserTokens(credential, loginUid);
-
+ call = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .getUserTokens(credential, loginUid);
}
call.enqueue(new Callback>() {
@@ -594,228 +418,187 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
public void onResponse(@NonNull Call> call, @NonNull retrofit2.Response> response) {
List userTokens = response.body();
- final TinyDB tinyDb = new TinyDB(appCtx);
- final AppUtil appUtil = new AppUtil();
- //Headers responseHeaders = response.headers();
- if(response.isSuccessful()) {
+ AppUtil appUtil = new AppUtil();
- if(response.code() == 200) {
+ if(response.code() == 200) {
- boolean setTokenFlag = false;
+ boolean setTokenFlag = false;
+ assert userTokens != null;
- assert userTokens != null;
- if(userTokens.size() > 0) {
+ if(userTokens.size() > 0) { // FIXME This is in need of a refactor, but i don't understand what the code is used for.
- if(userTokens.get(0).getToken_last_eight() != null) {
+ if(userTokens.get(0).getToken_last_eight() != null) {
- for(int i = 0; i < userTokens.size(); i++) {
- if(userTokens.get(i).getToken_last_eight().equals(tinyDb.getString(loginUid + "-token-last-eight"))) {
- setTokenFlag = true;
- break;
- }
- //Log.i("Tokens: ", userTokens.get(i).getToken_last_eight());
+ for(int i = 0; i < userTokens.size(); i++) {
+
+ if(userTokens.get(i).getToken_last_eight().equals(tinyDB.getString(loginUid + "-token-last-eight"))) {
+ setTokenFlag = true;
+ break;
}
-
}
- else {
-
- for(int i = 0; i < userTokens.size(); i++) {
- if(userTokens.get(i).getSha1().equals(tinyDb.getString(loginUid + "-token"))) {
- setTokenFlag = true;
- break;
- }
- //Log.i("Tokens: ", userTokens.get(i).getSha1());
- }
-
- }
-
- }
-
- if(tinyDb.getString(loginUid + "-token").isEmpty() || !setTokenFlag) {
-
- UserTokens createUserToken = new UserTokens("gitnex-app-" + device_id);
-
- Call callCreateToken;
- if(loginOTP != 0) {
-
- callCreateToken = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().createNewTokenWithOTP(credential, loginOTP, loginUid, createUserToken);
-
- }
- else {
-
- callCreateToken = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().createNewToken(credential, loginUid, createUserToken);
-
- }
-
- callCreateToken.enqueue(new Callback() {
-
- @Override
- public void onResponse(@NonNull Call callCreateToken, @NonNull retrofit2.Response responseCreate) {
-
- if(responseCreate.isSuccessful()) {
-
- if(responseCreate.code() == 201) {
-
- UserTokens newToken = responseCreate.body();
- assert newToken != null;
- //Log.i("Tokens-NEW", "new:" + newToken.getSha1());
-
- if(!newToken.getSha1().equals("")) {
-
- Call call = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserInfo("token " + newToken.getSha1());
-
- call.enqueue(new Callback() {
-
- @Override
- public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) {
-
- UserInfo userDetails = response.body();
-
- if(response.isSuccessful()) {
-
- if(response.code() == 200) {
-
- tinyDb.remove("loginPass");
- tinyDb.putBoolean("loggedInMode", true);
- assert userDetails != null;
- tinyDb.putString("userLogin", userDetails.getUsername());
- tinyDb.putString(loginUid + "-token", newToken.getSha1());
- tinyDb.putString(loginUid + "-token-last-eight", appUtil.getLastCharactersOfWord(newToken.getSha1(), 8));
-
- startActivity(new Intent(LoginActivity.this, MainActivity.class));
- finish();
-
- }
-
- }
- else if(response.code() == 401) {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
- else {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
-
- }
-
- @Override
- public void onFailure(@NonNull Call call, @NonNull Throwable t) {
-
- Log.e("onFailure", t.toString());
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
- });
-
- }
-
- }
-
- }
- else if(responseCreate.code() == 500) {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + responseCreate.code());
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
-
- }
-
- @Override
- public void onFailure(@NonNull Call createUserToken, @NonNull Throwable t) {
-
- Log.e("onFailure-token", t.toString());
-
- }
-
- });
}
else {
- String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
-
- Call callGetUsername = RetrofitClient.getInstance(instanceUrl, ctx).getApiInterface().getUserInfo(instanceToken);
-
- callGetUsername.enqueue(new Callback() {
-
- @Override
- public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) {
-
- UserInfo userDetails = response.body();
-
- if(response.isSuccessful()) {
-
- if(response.code() == 200) {
-
- assert userDetails != null;
- tinyDb.putString("userLogin", userDetails.getUsername());
-
- tinyDb.putBoolean("loggedInMode", true);
- startActivity(new Intent(LoginActivity.this, MainActivity.class));
- finish();
-
- }
-
- }
- else if(response.code() == 401) {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
- else {
-
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
+ for(int i = 0; i < userTokens.size(); i++) {
+ if(userTokens.get(i).getSha1().equals(tinyDB.getString(loginUid + "-token"))) {
+ setTokenFlag = true;
+ break;
}
-
- @Override
- public void onFailure(@NonNull Call call, @NonNull Throwable t) {
-
- Log.e("onFailure", t.toString());
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericError));
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
-
- }
- });
-
+ }
}
-
}
- }
- else if(response.code() == 500) {
+ if(tinyDB.getString(loginUid + "-token").isEmpty() || !setTokenFlag) {
- SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
- enableProcessButton();
- loginButton.setText(R.string.btnLogin);
+ UserTokens createUserToken = new UserTokens("gitnex-app-" + device_id);
+ Call callCreateToken;
+ if(loginOTP != 0) {
+
+ callCreateToken = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .createNewTokenWithOTP(credential, loginOTP, loginUid, createUserToken);
+ }
+ else {
+
+ callCreateToken = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .createNewToken(credential, loginUid, createUserToken);
+ }
+
+ callCreateToken.enqueue(new Callback() {
+
+ @Override
+ public void onResponse(@NonNull Call callCreateToken, @NonNull retrofit2.Response responseCreate) {
+
+ if(responseCreate.code() == 201) {
+
+ UserTokens newToken = responseCreate.body();
+ assert newToken != null;
+
+ if(!newToken.getSha1().equals("")) {
+
+ Call call = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .getUserInfo("token " + newToken.getSha1());
+
+ call.enqueue(new Callback() {
+
+ @Override
+ public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) {
+
+ UserInfo userDetails = response.body();
+
+ switch(response.code()) {
+
+ case 200:
+ tinyDB.remove("loginPass");
+ tinyDB.putBoolean("loggedInMode", true);
+ assert userDetails != null;
+ tinyDB.putString("userLogin", userDetails.getUsername());
+ tinyDB.putString(loginUid + "-token", newToken.getSha1());
+ tinyDB.putString(loginUid + "-token-last-eight", appUtil.getLastCharactersOfWord(newToken.getSha1(), 8));
+
+ startActivity(new Intent(LoginActivity.this, MainActivity.class));
+ finish();
+ break;
+
+ case 401:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
+ enableProcessButton();
+ break;
+
+ default:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
+ enableProcessButton();
+
+ }
+
+ }
+
+ @Override
+ public void onFailure(@NonNull Call call, @NonNull Throwable t) {
+
+ Log.e("onFailure", t.toString());
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericError));
+ enableProcessButton();
+
+ }
+ });
+ }
+ }
+ else if(responseCreate.code() == 500) {
+
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + responseCreate.code());
+ enableProcessButton();
+
+ }
+ }
+
+ @Override
+ public void onFailure(@NonNull Call createUserToken, @NonNull Throwable t) {
+
+ Log.e("onFailure-token", t.toString());
+ }
+ });
+ }
+ else {
+
+ String instanceToken = "token " + tinyDB.getString(loginUid + "-token");
+
+ Call callGetUsername = RetrofitClient.getInstance(instanceUrl, ctx)
+ .getApiInterface()
+ .getUserInfo(instanceToken);
+
+ callGetUsername.enqueue(new Callback() {
+
+ @Override
+ public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) {
+
+ UserInfo userDetails = response.body();
+
+ switch(response.code()) {
+
+ case 200:
+ assert userDetails != null;
+ tinyDB.putString("userLogin", userDetails.getUsername());
+ tinyDB.putBoolean("loggedInMode", true);
+ startActivity(new Intent(LoginActivity.this, MainActivity.class));
+ finish();
+ break;
+
+ case 401:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.unauthorizedApiError));
+ enableProcessButton();
+ break;
+
+ default:
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
+ enableProcessButton();
+
+ }
+
+ }
+
+ @Override
+ public void onFailure(@NonNull Call call, @NonNull Throwable t) {
+
+ Log.e("onFailure", t.toString());
+ SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericError));
+ enableProcessButton();
+
+ }
+ });
+ }
}
else {
SnackBar.error(ctx, layoutView, getResources().getString(R.string.genericApiStatusError) + response.code());
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
}
-
}
@Override
@@ -824,30 +607,65 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Log.e("onFailure-login", t.toString());
SnackBar.error(ctx, layoutView, getResources().getString(R.string.malformedJson));
enableProcessButton();
- loginButton.setText(R.string.btnLogin);
}
});
}
+ private void loadDefaults() {
+
+ if(tinyDB.getString("loginType").equals(LoginType.BASIC.name().toLowerCase())) {
+ loginMethod.check(R.id.loginUsernamePassword);
+ }
+ else {
+ loginMethod.check(R.id.loginToken);
+ }
+
+ if(!tinyDB.getString("instanceUrlRaw").equals("")) {
+ instanceUrlET.setText(tinyDB.getString("instanceUrlRaw"));
+ }
+
+ if(!tinyDB.getString("loginUid").equals("")) {
+ loginUidET.setText(tinyDB.getString("loginUid"));
+ }
+
+ if(tinyDB.getBoolean("loggedInMode")) {
+
+ startActivity(new Intent(LoginActivity.this, MainActivity.class));
+ finish();
+ }
+
+ if(!tinyDB.getString("uniqueAppId").isEmpty()) {
+ device_id = tinyDB.getString("uniqueAppId");
+ }
+ else {
+ device_id = UUID.randomUUID().toString();
+ tinyDB.putString("uniqueAppId", device_id);
+ }
+ }
+
private void disableProcessButton() {
- loginButton.setEnabled(false);
GradientDrawable shape = new GradientDrawable();
shape.setCornerRadius(8);
shape.setColor(getResources().getColor(R.color.hintColor));
+
+ loginButton.setText(R.string.processingText);
loginButton.setBackground(shape);
+ loginButton.setEnabled(false);
}
private void enableProcessButton() {
- loginButton.setEnabled(true);
GradientDrawable shape = new GradientDrawable();
shape.setCornerRadius(8);
shape.setColor(getResources().getColor(R.color.btnBackground));
+
+ loginButton.setText(R.string.btnLogin);
loginButton.setBackground(shape);
+ loginButton.setEnabled(true);
}
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 a22877ca..119f1025 100644
--- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
@@ -106,7 +106,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
tinyDb.putInt("homeScreenId", 0);
}
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
if(!tinyDb.getBoolean("loggedInMode")) {
logout(this, ctx);
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 8cc14121..8bf083da 100644
--- a/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java
@@ -62,7 +62,7 @@ public class MergePullRequestActivity extends BaseActivity {
View view = viewBinding.getRoot();
setContentView(view);
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -217,7 +217,7 @@ public class MergePullRequestActivity extends BaseActivity {
String mergePRTitle = viewBinding.mergeTitle.getText().toString();
boolean deleteBranch = viewBinding.deleteBranch.isChecked();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
if(!connToInternet) {
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 5cec96de..c60a022e 100644
--- a/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java
@@ -49,7 +49,7 @@ public class ProfileEmailActivity extends BaseActivity {
super.onCreate(savedInstanceState);
appCtx = getApplicationContext();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -84,7 +84,7 @@ public class ProfileEmailActivity extends BaseActivity {
private void processAddNewEmail() {
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
final String instanceUrl = tinyDb.getString("instanceUrl");
final String loginUid = tinyDb.getString("loginUid");
diff --git a/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java
index 6146bcea..b96a76ff 100644
--- a/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java
@@ -58,7 +58,7 @@ public class ReplyToIssueActivity extends BaseActivity {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
TinyDB tinyDb = new TinyDB(appCtx);
addComment = findViewById(R.id.addComment);
@@ -191,7 +191,7 @@ public class ReplyToIssueActivity extends BaseActivity {
private void processNewCommentReply() {
String newReplyDT = addComment.getText().toString();
- boolean connToInternet = AppUtil.haveNetworkConnection(appCtx);
+ boolean connToInternet = AppUtil.hasNetworkConnection(appCtx);
if(!connToInternet) {
diff --git a/app/src/main/java/org/mian/gitnex/clients/AppApiService.java b/app/src/main/java/org/mian/gitnex/clients/AppApiService.java
index 35b467b9..9304c1d8 100644
--- a/app/src/main/java/org/mian/gitnex/clients/AppApiService.java
+++ b/app/src/main/java/org/mian/gitnex/clients/AppApiService.java
@@ -27,7 +27,7 @@ public class AppApiService {
public static S createService(Class serviceClass, String instanceURL, Context ctx) {
TinyDB tinyDb = new TinyDB(ctx);
- final boolean connToInternet = AppUtil.haveNetworkConnection(ctx);
+ final boolean connToInternet = AppUtil.hasNetworkConnection(ctx);
File httpCacheDirectory = new File(ctx.getCacheDir(), "responses");
int cacheSize = FilesData.returnOnlyNumber(tinyDb.getString("cacheSizeStr")) * 1024 * 1024;
Cache cache = new Cache(httpCacheDirectory, cacheSize);
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 83ed2ef8..f9eb4166 100644
--- a/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java
+++ b/app/src/main/java/org/mian/gitnex/clients/RetrofitClient.java
@@ -32,7 +32,7 @@ public class RetrofitClient {
private RetrofitClient(String instanceUrl, Context ctx) {
TinyDB tinyDb = new TinyDB(ctx);
- final boolean connToInternet = AppUtil.haveNetworkConnection(ctx);
+ final boolean connToInternet = AppUtil.hasNetworkConnection(ctx);
int cacheSize = FilesData.returnOnlyNumber(tinyDb.getString("cacheSizeStr")) * 1024 * 1024;
File httpCacheDirectory = new File(ctx.getCacheDir(), "responses");
Cache cache = new Cache(httpCacheDirectory, cacheSize);
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 9c1d10f4..25ba5634 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/MembersByOrgFragment.java
@@ -104,7 +104,7 @@ public class MembersByOrgFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
diff --git a/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
index 1d94b016..c6304259 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
@@ -81,7 +81,7 @@ public class MyRepositoriesFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
final View v = inflater.inflate(R.layout.fragment_my_repositories, container, false);
setHasOptionsMenu(true);
@@ -196,7 +196,7 @@ public class MyRepositoriesFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
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 dcc07eeb..4df210fc 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 View v = inflater.inflate(R.layout.fragment_organizations, container, false);
setHasOptionsMenu(true);
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
@@ -158,7 +158,7 @@ public class OrganizationsFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
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 13271806..bfd43762 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesByOrgFragment.java
@@ -152,7 +152,7 @@ public class RepositoriesByOrgFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
diff --git a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
index 431d4f13..caf3d28c 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
@@ -51,7 +51,7 @@ public class RepositoriesFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
final View v = inflater.inflate(R.layout.fragment_repositories, container, false);
setHasOptionsMenu(true);
@@ -161,7 +161,7 @@ public class RepositoriesFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
diff --git a/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
index b12bf31f..872c47c6 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
@@ -78,7 +78,7 @@ public class StarredRepositoriesFragment extends Fragment {
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_starred_repositories, container, false);
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
setHasOptionsMenu(true);
TinyDB tinyDb = new TinyDB(getContext());
@@ -186,7 +186,7 @@ public class StarredRepositoriesFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
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 e22a23a0..14435625 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/TeamsByOrgFragment.java
@@ -148,7 +148,7 @@ public class TeamsByOrgFragment extends Fragment {
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
- boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
+ boolean connToInternet = AppUtil.hasNetworkConnection(Objects.requireNonNull(getContext()));
inflater.inflate(R.menu.search_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
diff --git a/app/src/main/java/org/mian/gitnex/helpers/AlertDialogs.java b/app/src/main/java/org/mian/gitnex/helpers/AlertDialogs.java
index ad82d98c..f734b8e7 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/AlertDialogs.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/AlertDialogs.java
@@ -19,28 +19,26 @@ public class AlertDialogs {
public static void authorizationTokenRevokedDialog(final Context context, String title, String message, String copyNegativeButton, String copyPositiveButton) {
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context)
+ .setTitle(title)
+ .setMessage(message)
+ .setCancelable(true)
+ .setIcon(R.drawable.ic_warning)
+ .setNegativeButton(copyNegativeButton, (dialog, which) -> dialog.dismiss())
+ .setPositiveButton(copyPositiveButton, (dialog, which) -> {
- alertDialogBuilder
- .setTitle(title)
- .setMessage(message)
- .setCancelable(true)
- .setIcon(R.drawable.ic_warning)
- .setNegativeButton(copyNegativeButton, (dialog, which) -> dialog.dismiss())
- .setPositiveButton(copyPositiveButton, (dialog, which) -> {
+ final TinyDB tinyDb = new TinyDB(context);
+ tinyDb.putBoolean("loggedInMode", false);
+ tinyDb.remove("basicAuthPassword");
+ tinyDb.putBoolean("basicAuthFlag", false);
+ Intent intent = new Intent(context, LoginActivity.class);
+ context.startActivity(intent);
+ dialog.dismiss();
- final TinyDB tinyDb = new TinyDB(context);
- tinyDb.putBoolean("loggedInMode", false);
- tinyDb.remove("basicAuthPassword");
- tinyDb.putBoolean("basicAuthFlag", false);
- Intent intent = new Intent(context, LoginActivity.class);
- context.startActivity(intent);
- dialog.dismiss();
+ });
- });
- AlertDialog alertDialog = alertDialogBuilder.create();
+ alertDialogBuilder.create().show();
- alertDialog.show();
}
public static void labelDeleteDialog(final Context context, final String labelTitle, final String labelId, String title, String message, String positiveButton, String negativeButton) {
diff --git a/app/src/main/java/org/mian/gitnex/helpers/LabelWidthCalculator.java b/app/src/main/java/org/mian/gitnex/helpers/LabelWidthCalculator.java
index eb14f224..307734fa 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/LabelWidthCalculator.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/LabelWidthCalculator.java
@@ -23,73 +23,4 @@ public class LabelWidthCalculator {
}
- public static int customWidth(int labelLength) {
-
- int width = 33;
-
- if(labelLength == 20) {
- width = ((width * labelLength) - 150);
- }
- else if(labelLength == 19) {
- width = ((width * labelLength) - 140);
- }
- else if(labelLength == 18) {
- width = ((width * labelLength) - 130);
- }
- else if(labelLength == 17) {
- width = ((width * labelLength) - 120);
- }
- else if(labelLength == 16) {
- width = ((width * labelLength) - 110);
- }
- else if(labelLength == 15) {
- width = ((width * labelLength) - 100);
- }
- else if(labelLength == 14) {
- width = ((width * labelLength) - 90);
- }
- else if(labelLength == 13) {
- width = ((width * labelLength) - 80);
- }
- else if(labelLength == 12) {
- width = ((width * labelLength) - 70);
- }
- else if(labelLength == 11) {
- width = ((width * labelLength) - 60);
- }
- else if(labelLength == 10) {
- width = ((width * labelLength) - 50);
- }
- else if(labelLength == 9) {
- width = ((width * labelLength) - 40);
- }
- else if(labelLength == 8) {
- width = ((width * labelLength) - 30);
- }
- else if(labelLength == 7) {
- width = ((width * labelLength) - 20);
- }
- else if(labelLength == 6) {
- width = ((width * labelLength) - 10);
- }
- else if(labelLength == 5) {
- width = ((width * labelLength) - 10);
- }
- else if(labelLength == 4) {
- width = ((width * labelLength) - 10);
- }
- else if(labelLength == 3) {
- width = ((width * labelLength) - 10);
- }
- else if(labelLength == 2) {
- width = ((width * labelLength));
- }
- else {
- width = (width * labelLength - 5);
- }
-
- return width;
-
- }
-
}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/Toasty.java b/app/src/main/java/org/mian/gitnex/helpers/Toasty.java
index f8080296..4285095a 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/Toasty.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/Toasty.java
@@ -13,34 +13,34 @@ import org.mian.gitnex.R;
public class Toasty {
- public static void info(Context context, String message) {
+ public static void info(Context context, String message) {
- LayoutInflater inflater = LayoutInflater.from(context);
- View view = inflater.inflate( context.getResources().getLayout(R.layout.custom_toast), null );
+ LayoutInflater inflater = LayoutInflater.from(context);
+ View view = inflater.inflate(context.getResources().getLayout(R.layout.custom_toast), null);
- TextView text = view.findViewById(R.id.toastText);
- text.setText(message);
+ TextView text = view.findViewById(R.id.toastText);
+ text.setText(message);
- Toast toast = new Toast(context);
- toast.setDuration(Toast.LENGTH_LONG);
- toast.setView(view);
- toast.show();
+ Toast toast = new Toast(context);
+ toast.setDuration(Toast.LENGTH_LONG);
+ toast.setView(view);
+ toast.show();
- }
+ }
- public static void error(Context context, String message) {
+ public static void error(Context context, String message) {
- LayoutInflater inflater = LayoutInflater.from(context);
- View view = inflater.inflate( context.getResources().getLayout(R.layout.custom_toast_error), null );
+ LayoutInflater inflater = LayoutInflater.from(context);
+ View view = inflater.inflate(context.getResources().getLayout(R.layout.custom_toast_error), null);
- TextView text = view.findViewById(R.id.toastText);
- text.setText(message);
+ TextView text = view.findViewById(R.id.toastText);
+ text.setText(message);
- Toast toast = new Toast(context);
- toast.setDuration(Toast.LENGTH_LONG);
- toast.setView(view);
- toast.show();
+ Toast toast = new Toast(context);
+ toast.setDuration(Toast.LENGTH_LONG);
+ toast.setView(view);
+ toast.show();
- }
+ }
}
diff --git a/app/src/main/java/org/mian/gitnex/helpers/UrlHelper.java b/app/src/main/java/org/mian/gitnex/helpers/UrlHelper.java
index bff59a69..c8d8447d 100644
--- a/app/src/main/java/org/mian/gitnex/helpers/UrlHelper.java
+++ b/app/src/main/java/org/mian/gitnex/helpers/UrlHelper.java
@@ -38,5 +38,10 @@ public class UrlHelper {
}
+ public static String fixScheme(String url, String scheme) {
+
+ return !url.matches("^(http|https)://.+$") ? scheme + "://" + url : url;
+ }
+
}
diff --git a/app/src/main/java/org/mian/gitnex/util/AppUtil.java b/app/src/main/java/org/mian/gitnex/util/AppUtil.java
index 4c1e4322..19b9404f 100644
--- a/app/src/main/java/org/mian/gitnex/util/AppUtil.java
+++ b/app/src/main/java/org/mian/gitnex/util/AppUtil.java
@@ -9,6 +9,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Base64;
import android.util.DisplayMetrics;
+import android.view.View;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
@@ -28,7 +29,7 @@ public class AppUtil {
return str.replace(original, replace);
}
- public static boolean haveNetworkConnection(Context context) {
+ public static boolean hasNetworkConnection(Context context) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
@@ -116,16 +117,9 @@ public class AppUtil {
}
- public static boolean httpCheck(String url) {
-
- String pattern = "^(http|https)://.*$";
- return url.matches(pattern);
-
- }
-
public static String formatFileSize(long size) {
- String repoSize = null;
+ String repoSize = size + " B";
double m = size / 1024.0;
double g = ((size / 1024.0) / 1024.0);
@@ -297,4 +291,12 @@ public class AppUtil {
}
+ public static void setMultiVisibility(int visibility, View... views) {
+
+ for(View view : views) {
+
+ view.setVisibility(visibility);
+ }
+ }
+
}
diff --git a/app/src/main/res/values/protocols.xml b/app/src/main/res/values/protocols.xml
deleted file mode 100644
index 5f83fe2a..00000000
--- a/app/src/main/res/values/protocols.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- - HTTPS
- - HTTP
-
-
-
\ No newline at end of file