Merge remote-tracking branch 'remotes/main/master' into self-signed

# Conflicts:
#	app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
This commit is contained in:
anonTree1417 2020-04-02 23:07:20 +02:00
commit 63865fefec

View File

@ -58,7 +58,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
@Override @Override
protected int getLayoutResourceId(){ protected int getLayoutResourceId(){
return R.layout.activity_login; return R.layout.activity_login;
} }
@ -87,7 +86,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Resources res = getResources(); Resources res = getResources();
String[] allProtocols = res.getStringArray(R.array.protocolValues); String[] allProtocols = res.getStringArray(R.array.protocolValues);
final ArrayAdapter<String> adapterProtocols = new ArrayAdapter<String>(Objects.requireNonNull(getApplicationContext()), R.layout.spinner_item, allProtocols); final ArrayAdapter<String> adapterProtocols = new ArrayAdapter<String>(Objects.requireNonNull(getApplicationContext()),
R.layout.spinner_item, allProtocols);
adapterProtocols.setDropDownViewResource(R.layout.spinner_dropdown_item); adapterProtocols.setDropDownViewResource(R.layout.spinner_dropdown_item);
protocolSpinner.setAdapter(adapterProtocols); protocolSpinner.setAdapter(adapterProtocols);
@ -104,8 +104,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
public void onNothingSelected(AdapterView<?> parent) { public void onNothingSelected(AdapterView<?> parent) {
} }
}); });
info_button.setOnClickListener(infoListener); info_button.setOnClickListener(infoListener);
@ -182,7 +182,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
private View.OnClickListener loginListener = new View.OnClickListener() { private View.OnClickListener loginListener = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
disableProcessButton(); disableProcessButton();
@ -193,10 +192,17 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
}; };
private View.OnClickListener infoListener = new View.OnClickListener() { private View.OnClickListener infoListener = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
new Tooltip.Builder(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(); .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();
} }
}; };
@ -235,8 +241,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
URI uri = null; URI uri = null;
try { try {
uri = new URI(instanceUrl); uri = new URI(instanceUrl);
} } catch (URISyntaxException e) {
catch(URISyntaxException e) {
e.printStackTrace(); e.printStackTrace();
} }
assert uri != null; assert uri != null;
@ -325,8 +330,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
URI uri = null; URI uri = null;
try { try {
uri = new URI(instanceUrl); uri = new URI(instanceUrl);
} } catch (URISyntaxException e) {
catch(URISyntaxException e) {
e.printStackTrace(); e.printStackTrace();
} }
assert uri != null; assert uri != null;
@ -385,9 +389,10 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
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) {
final TinyDB tinyDb = new TinyDB(getApplicationContext()); Call<GiteaVersion> callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
Call<GiteaVersion> callVersion = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().getGiteaVersion(); .getApiInterface()
.getGiteaVersion();
callVersion.enqueue(new Callback<GiteaVersion>() { callVersion.enqueue(new Callback<GiteaVersion>() {
@ -413,23 +418,22 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctx); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctx);
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), new DialogInterface.OnClickListener() { alertDialogBuilder
.setTitle(getString(R.string.versionAlertDialogHeader))
@Override .setMessage(getResources().getString(R.string.versionUnsupportedOld, version.getVersion()))
public void onClick(DialogInterface dialog, int which) { .setCancelable(true)
.setIcon(R.drawable.ic_warning)
.setNegativeButton(getString(R.string.cancelButton), (dialog, which) -> {
dialog.dismiss(); dialog.dismiss();
enableProcessButton(); enableProcessButton();
}
}).setPositiveButton(getString(R.string.textContinue), new DialogInterface.OnClickListener() {
@Override })
public void onClick(DialogInterface dialog, int which) { .setPositiveButton(getString(R.string.textContinue), (dialog, which) -> {
dialog.dismiss(); dialog.dismiss();
login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_); login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
}
}); });
AlertDialog alertDialog = alertDialogBuilder.create(); AlertDialog alertDialog = alertDialogBuilder.create();
@ -444,7 +448,9 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
else if (responseVersion.code() == 403) { else if (responseVersion.code() == 403) {
login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_); login(loginType, instanceUrl, loginUid, loginPass, loginOTP, loginToken_);
} }
} }
@ -456,6 +462,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
else if (loginType == 2) { // token else if (loginType == 2) { // token
letTheUserInViaToken(instanceUrl, loginToken_); letTheUserInViaToken(instanceUrl, loginToken_);
} }
} }
@Override @Override
@ -463,16 +470,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Log.e("onFailure-version", t.toString()); Log.e("onFailure-version", t.toString());
if(t instanceof NoRouteToHostException) {
Toasty.info(getApplicationContext(), getResources().getString(R.string.malformedUrl));
}
else {
Toasty.info(getApplicationContext(), getResources().getString(R.string.genericError));
}
enableProcessButton();
loginButton.setText(R.string.btnLogin);
} }
}); });
@ -483,7 +480,10 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
final TinyDB tinyDb = new TinyDB(getApplicationContext()); final TinyDB tinyDb = new TinyDB(getApplicationContext());
Call<UserInfo> call = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().getUserInfo("token " + loginToken_); Call<UserInfo> call = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getUserInfo("token " + loginToken_);
call.enqueue(new Callback<UserInfo>() { call.enqueue(new Callback<UserInfo>() {
@ -500,6 +500,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
assert userDetails != null; assert userDetails != null;
tinyDb.putString(userDetails.getLogin() + "-token", loginToken_); tinyDb.putString(userDetails.getLogin() + "-token", loginToken_);
tinyDb.putString("loginUid", userDetails.getLogin()); tinyDb.putString("loginUid", userDetails.getLogin());
tinyDb.putString("userLogin", userDetails.getUsername());
enableProcessButton(); enableProcessButton();
loginButton.setText(R.string.btnLogin); loginButton.setText(R.string.btnLogin);
@ -537,6 +538,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Toasty.info(getApplicationContext(), getResources().getString(R.string.genericError)); Toasty.info(getApplicationContext(), getResources().getString(R.string.genericError));
enableProcessButton(); enableProcessButton();
loginButton.setText(R.string.btnLogin); loginButton.setText(R.string.btnLogin);
} }
}); });
@ -548,10 +550,20 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Call<List<UserTokens>> call; Call<List<UserTokens>> call;
if(loginOTP != 0) { if(loginOTP != 0) {
call = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().getUserTokensWithOTP(credential, loginOTP, loginUid);
call = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getUserTokensWithOTP(credential, loginOTP, loginUid);
} }
else { else {
call = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().getUserTokens(credential, loginUid);
call = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getUserTokens(credential, loginUid);
} }
call.enqueue(new Callback<List<UserTokens>>() { call.enqueue(new Callback<List<UserTokens>>() {
@ -604,10 +616,20 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Call<UserTokens> callCreateToken; Call<UserTokens> callCreateToken;
if(loginOTP != 0) { if(loginOTP != 0) {
callCreateToken = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().createNewTokenWithOTP(credential, loginOTP, loginUid, createUserToken);
callCreateToken = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.createNewTokenWithOTP(credential, loginOTP, loginUid, createUserToken);
} }
else { else {
callCreateToken = RetrofitClient.getInstance(instanceUrl, getApplicationContext()).getApiInterface().createNewToken(credential, loginUid, createUserToken);
callCreateToken = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.createNewToken(credential, loginUid, createUserToken);
} }
callCreateToken.enqueue(new Callback<UserTokens>() { callCreateToken.enqueue(new Callback<UserTokens>() {
@ -625,11 +647,28 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
if (!newToken.getSha1().equals("")) { if (!newToken.getSha1().equals("")) {
Call<UserInfo> call = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getUserInfo("token " + newToken.getSha1());
call.enqueue(new Callback<UserInfo>() {
@Override
public void onResponse(@NonNull Call<UserInfo> call, @NonNull retrofit2.Response<UserInfo> response) {
UserInfo userDetails = response.body();
if (response.isSuccessful()) {
if (response.code() == 200) {
tinyDb.remove("loginPass"); tinyDb.remove("loginPass");
tinyDb.putBoolean("loggedInMode", true); tinyDb.putBoolean("loggedInMode", true);
assert userDetails != null;
tinyDb.putString("userLogin", userDetails.getUsername());
tinyDb.putString(loginUid + "-token", newToken.getSha1()); tinyDb.putString(loginUid + "-token", newToken.getSha1());
tinyDb.putString(loginUid + "-token-last-eight", appUtil.getLastCharactersOfWord(newToken.getSha1(), 8)); tinyDb.putString(loginUid + "-token-last-eight", appUtil.getLastCharactersOfWord(newToken.getSha1(), 8));
//Log.i("Tokens", "new:" + newToken.getSha1() + " old:" + tinyDb.getString(loginUid + "-token"));
startActivity(new Intent(LoginActivity.this, MainActivity.class)); startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish(); finish();
@ -637,6 +676,41 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
} }
else if(response.code() == 401) {
String toastError = getResources().getString(R.string.unauthorizedApiError);
Toasty.info(getApplicationContext(), toastError);
enableProcessButton();
loginButton.setText(R.string.btnLogin);
}
else {
String toastError = getResources().getString(R.string.genericApiStatusError) + response.code();
Toasty.info(getApplicationContext(), toastError);
enableProcessButton();
loginButton.setText(R.string.btnLogin);
}
}
@Override
public void onFailure(@NonNull Call<UserInfo> call, @NonNull Throwable t) {
Log.e("onFailure", t.toString());
Toasty.info(getApplicationContext(), getResources().getString(R.string.genericError));
enableProcessButton();
loginButton.setText(R.string.btnLogin);
}
});
}
}
} }
else if(responseCreate.code() == 500) { else if(responseCreate.code() == 500) {
@ -651,7 +725,9 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
@Override @Override
public void onFailure(@NonNull Call<UserTokens> createUserToken, Throwable t) { public void onFailure(@NonNull Call<UserTokens> createUserToken, @NonNull Throwable t) {
Log.e("onFailure-token", t.toString());
} }
@ -659,7 +735,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
else { else {
//Log.i("Current Token", tinyDb.getString(loginUid + "-token"));
tinyDb.putBoolean("loggedInMode", true); tinyDb.putBoolean("loggedInMode", true);
startActivity(new Intent(LoginActivity.this, MainActivity.class)); startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish(); finish();
@ -680,8 +755,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
else { else {
String toastError = getResources().getString(R.string.genericApiStatusError) + response.code(); String toastError = getResources().getString(R.string.genericApiStatusError) + response.code();
//Log.i("error message else4", String.valueOf(response.code()));
Toasty.info(getApplicationContext(), toastError); Toasty.info(getApplicationContext(), toastError);
enableProcessButton(); enableProcessButton();
loginButton.setText(R.string.btnLogin); loginButton.setText(R.string.btnLogin);
@ -697,6 +770,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
Toasty.info(getApplicationContext(), getResources().getString(R.string.malformedJson)); Toasty.info(getApplicationContext(), getResources().getString(R.string.malformedJson));
enableProcessButton(); enableProcessButton();
loginButton.setText(R.string.btnLogin); loginButton.setText(R.string.btnLogin);
} }
}); });