diff --git a/app/build.gradle b/app/build.gradle index 9f3f1fcae..500f62802 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -71,7 +71,6 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2' implementation 'com.google.android.material:material:1.0.0-rc02' implementation 'com.aurelhubert:ahbottomnavigation:2.1.0' - implementation 'com.github.florent37:shapeofview:1.3.0' //RXJava2 implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' diff --git a/app/src/main/java/com/dragons/aurora/activities/BaseActivity.java b/app/src/main/java/com/dragons/aurora/activities/BaseActivity.java index 0d13b7199..0a977fc80 100644 --- a/app/src/main/java/com/dragons/aurora/activities/BaseActivity.java +++ b/app/src/main/java/com/dragons/aurora/activities/BaseActivity.java @@ -22,8 +22,11 @@ package com.dragons.aurora.activities; import android.content.BroadcastReceiver; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; +import com.dragons.aurora.R; import com.dragons.aurora.Util; import androidx.appcompat.app.AppCompatActivity; @@ -34,6 +37,10 @@ public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { setTheme(Util.getThemeFromPref(this)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + getWindow().setStatusBarColor(Color.TRANSPARENT); + else + getWindow().setStatusBarColor(getResources().getColor(R.color.semi_transparent)); super.onCreate(savedInstanceState); } diff --git a/app/src/main/java/com/dragons/aurora/activities/LoginActivity.java b/app/src/main/java/com/dragons/aurora/activities/LoginActivity.java index 0807c0a40..a6e33eb2b 100644 --- a/app/src/main/java/com/dragons/aurora/activities/LoginActivity.java +++ b/app/src/main/java/com/dragons/aurora/activities/LoginActivity.java @@ -21,36 +21,47 @@ package com.dragons.aurora.activities; -import android.content.Context; import android.graphics.Color; import android.os.Bundle; -import android.preference.PreferenceManager; -import android.text.InputType; import android.text.TextUtils; import android.view.View; -import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.CheckBox; -import android.widget.EditText; -import android.widget.ImageView; +import com.dragons.aurora.Aurora; import com.dragons.aurora.ContextUtil; import com.dragons.aurora.R; import com.dragons.aurora.Util; import com.dragons.aurora.helpers.Accountant; +import com.dragons.aurora.helpers.Prefs; import com.dragons.aurora.task.AppProvidedCredentialsTask; import com.dragons.aurora.task.UserProvidedCredentialsTask; +import com.google.android.material.textfield.TextInputEditText; import java.util.Timer; import java.util.TimerTask; +import butterknife.BindView; +import butterknife.ButterKnife; + public class LoginActivity extends BaseActivity { + @BindView(R.id.btn_ok_anm) + Button login_anonymous; + @BindView(R.id.checkboxSave) + CheckBox checkBox; + @BindView(R.id.button_okg) + Button login_google; + @BindView(R.id.email_google) + TextInputEditText editEmail; + @BindView(R.id.password_google) + TextInputEditText editPassword; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); + ButterKnife.bind(this); getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); @@ -66,41 +77,37 @@ public class LoginActivity extends BaseActivity { } private void init() { - Button login_anonymous = findViewById(R.id.btn_ok_anm); - CheckBox checkBox = findViewById(R.id.checkboxSave); - EditText editPassword = findViewById(R.id.passwordg); - Button login_google = findViewById(R.id.button_okg); - AutoCompleteTextView editEmail = findViewById(R.id.emailg); - login_anonymous.setOnClickListener(v -> { new AppProvidedCredentialsTask(this).logInWithPredefinedAccount(); watchLoggedIn(); }); - login_google.setOnClickListener(view -> { - Context c = view.getContext(); + login_google.setOnClickListener(v -> { String email = editEmail.getText().toString(); String password = editPassword.getText().toString(); + if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password)) { - ContextUtil.toast(c.getApplicationContext(), R.string.error_credentials_empty); + ContextUtil.toast(v.getContext(), R.string.error_credentials_empty); return; } + if (checkBox.isChecked()) { - PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("SEC_ACCOUNT", true).apply(); - PreferenceManager.getDefaultSharedPreferences(this).edit().putString("GOOGLE_EMAIL", email).apply(); - PreferenceManager.getDefaultSharedPreferences(this).edit().putString("GOOGLE_PASSWORD", password).apply(); + Prefs.putBoolean(this, Aurora.SEC_ACCOUNT, true); + Prefs.putString(this, Aurora.GOOGLE_EMAIL, email); + Prefs.putString(this, Aurora.GOOGLE_PASSWORD, password); } new UserProvidedCredentialsTask(this).getUserCredentialsTask().execute(email, password); watchLoggedIn(); }); - ImageView toggle_password = findViewById(R.id.toggle_password_visibility); + + /*ImageView toggle_password = findViewById(R.id.toggle_password_visibility); toggle_password.setOnClickListener(v -> { boolean passwordVisible = !TextUtils.isEmpty((String) v.getTag()); v.setTag(passwordVisible ? null : "tag"); ((ImageView) v).setImageResource(passwordVisible ? R.drawable.ic_visibility_on : R.drawable.ic_visibility_off); editPassword.setInputType(passwordVisible ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD : InputType.TYPE_CLASS_TEXT); - }); + });*/ } private void watchLoggedIn() { diff --git a/app/src/main/java/com/dragons/aurora/dialogs/LoginDialog.java b/app/src/main/java/com/dragons/aurora/dialogs/LoginDialog.java new file mode 100644 index 000000000..96f2f8504 --- /dev/null +++ b/app/src/main/java/com/dragons/aurora/dialogs/LoginDialog.java @@ -0,0 +1,80 @@ +package com.dragons.aurora.dialogs; + +import android.app.Dialog; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.CheckBox; + +import com.dragons.aurora.ContextUtil; +import com.dragons.aurora.R; +import com.dragons.aurora.Util; +import com.dragons.aurora.helpers.Accountant; +import com.dragons.aurora.task.UserProvidedCredentialsTask; +import com.dragons.custom.AuroraDialog; +import com.google.android.material.textfield.TextInputEditText; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatDialogFragment; +import butterknife.BindView; +import butterknife.ButterKnife; + +public class LoginDialog extends AppCompatDialogFragment { + + @BindView(R.id.email_google) + TextInputEditText email_google; + @BindView(R.id.password_google) + TextInputEditText password_google; + @BindView(R.id.checkboxSave) + CheckBox checkbox; + @BindView(R.id.button_login) + Button button_login; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @NonNull + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.dialog_credentials, container, false); + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AuroraDialog(getContext(), Util.isDark(getContext()) + ? R.style.Theme_Aurora_Dialog_Dark + : R.style.Theme_Aurora_Dialog); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + ButterKnife.bind(this, view); + button_login.setOnClickListener(v -> init()); + } + + private void init() { + UserProvidedCredentialsTask mCredentialsTask = new UserProvidedCredentialsTask(getContext()); + if (TextUtils.isEmpty(email_google.getText()) || TextUtils.isEmpty(password_google.getText())) { + ContextUtil.toast(getContext(), R.string.error_credentials_empty); + } else { + String email = email_google.getText().toString(); + String password = password_google.getText().toString(); + + if (checkbox.isChecked()) { + mCredentialsTask.setGooglePrefs(email, password); + } + + Accountant.completeCheckout(getContext()); + mCredentialsTask.getUserCredentialsTask().execute(email, password); + dismiss(); + } + } +} diff --git a/app/src/main/java/com/dragons/aurora/fragment/AccountsFragment.java b/app/src/main/java/com/dragons/aurora/fragment/AccountsFragment.java index cd21a0c8f..01cc7569f 100755 --- a/app/src/main/java/com/dragons/aurora/fragment/AccountsFragment.java +++ b/app/src/main/java/com/dragons/aurora/fragment/AccountsFragment.java @@ -22,31 +22,36 @@ package com.dragons.aurora.fragment; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; +import android.widget.RelativeLayout; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.RequestOptions; import com.dragons.aurora.Aurora; -import com.dragons.aurora.PlayStoreApiAuthenticator; import com.dragons.aurora.R; import com.dragons.aurora.activities.LoginActivity; +import com.dragons.aurora.dialogs.LoginDialog; import com.dragons.aurora.helpers.Accountant; +import com.dragons.aurora.helpers.Prefs; import com.dragons.aurora.task.UserProvidedCredentialsTask; -import com.github.florent37.shapeofview.shapes.CircleView; -import com.percolate.caffeine.ViewUtils; +import com.google.android.material.card.MaterialCardView; +import com.google.android.material.chip.Chip; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; +import butterknife.BindView; +import butterknife.ButterKnife; import static com.dragons.aurora.Util.hide; import static com.dragons.aurora.Util.isConnected; @@ -55,6 +60,33 @@ import static com.dragons.aurora.Util.show; public class AccountsFragment extends BaseFragment { + private static final String urlTOS = "https://www.google.com/mobile/android/market-tos.html"; + + @BindView(R.id.chip_tos) + Chip chipTOS; + @BindView(R.id.chip_add) + Chip chipAdd; + @BindView(R.id.btn_logout) + Button logout_dummy; + @BindView(R.id.btn_logoutG) + Button logout_google; + @BindView(R.id.btn_refresh) + Button refresh_dummy; + @BindView(R.id.btn_switch) + Button switch_dummy; + @BindView(R.id.btn_switchG) + Button switch_google; + @BindView(R.id.btn_remove) + Button remove_google; + @BindView(R.id.avatar_dummy) + ImageView avatar_dummy; + @BindView(R.id.avatar_google) + ImageView avatar_google; + @BindView(R.id.dummyCard) + MaterialCardView layout_dummy; + @BindView(R.id.googleCard) + MaterialCardView layout_google; + private boolean isSecAvailable; private String myEmail; private View view; @@ -63,17 +95,15 @@ public class AccountsFragment extends BaseFragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = inflater.inflate(R.layout.fragment_accounts, container, false); + ButterKnife.bind(this, view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - ImageView toolbar_back = view.findViewById(R.id.toolbar_back); - toolbar_back.setOnClickListener(click -> getActivity().onBackPressed()); - - myEmail = PreferenceFragment.getString(getActivity(), Aurora.PREFERENCE_EMAIL); - isSecAvailable = PreferenceFragment.getBoolean(getActivity(), "SEC_ACCOUNT"); + myEmail = Prefs.getString(getActivity(), Aurora.PREFERENCE_EMAIL); + isSecAvailable = Prefs.getBoolean(getActivity(), Aurora.SEC_ACCOUNT); init(); } @@ -90,19 +120,24 @@ public class AccountsFragment extends BaseFragment { drawDummy(); else getContext().startActivity(new Intent(getContext(), LoginActivity.class)); + + chipTOS.setChipStrokeWidth(2); + chipAdd.setChipStrokeWidth(2); + chipTOS.setOnClickListener(v -> getContext().startActivity(new Intent(Intent.ACTION_VIEW, + Uri.parse(urlTOS)))); + chipAdd.setOnClickListener(v -> showGoogleDialog()); } private void drawDummy() { - show(view, R.id.dummyIndicator); - setAvatar(R.drawable.ic_dummy_avatar); + avatar_dummy.setImageResource(R.drawable.ic_dummy_avatar); setText(view, R.id.account_name, R.string.acc_dummy_name); setText(view, R.id.account_email, myEmail); - setText(view, R.id.account_gsf, R.string.device_gsfID, PreferenceFragment.getString(getActivity(), + setText(view, R.id.account_gsf, R.string.device_gsfID, Prefs.getString(getActivity(), Aurora.PREFERENCE_GSF_ID)); if (isSecAvailable) drawEmptyGoogle(); else - drawEmpty(); + show(view, R.id.chip_add); drawDummyButtons(); } @@ -110,20 +145,18 @@ public class AccountsFragment extends BaseFragment { private void drawGoogle() { drawEmptyDummy(); - hide(view, R.id.emptyCard); + hide(view, R.id.chip_add); show(view, R.id.googleCard); - show(view, R.id.googleIndicator); - setText(view, R.id.account_nameG, PreferenceFragment.getString(getActivity(), "GOOGLE_NAME")); + setText(view, R.id.account_nameG, Prefs.getString(getActivity(), Aurora.GOOGLE_NAME)); setText(view, R.id.account_emailG, myEmail); - setText(view, R.id.account_gsf, R.string.device_gsfID, PreferenceFragment.getString(getActivity(), + setText(view, R.id.account_gsf, R.string.device_gsfID, Prefs.getString(getActivity(), Aurora.PREFERENCE_GSF_ID)); - Button switchGoogle = ViewUtils.findViewById(view, R.id.btn_switchG); - switchGoogle.setOnClickListener(view -> Accountant.switchGoogle(getContext())); + switch_google.setOnClickListener(view -> showGoogleDialog()); if (isConnected(getActivity())) - loadAvatar(PreferenceFragment.getString(getActivity(), "GOOGLE_URL")); + loadAvatar(Prefs.getString(getActivity(), Aurora.GOOGLE_URL)); drawGoogleButtons(); } @@ -132,64 +165,55 @@ public class AccountsFragment extends BaseFragment { show(view, R.id.dummy_tapToSwitch); setText(view, R.id.account_name, R.string.acc_dummy_name); setText(view, R.id.account_email, R.string.account_dummy_email); - LinearLayout dummyCard = ViewUtils.findViewById(view, R.id.dummyLayout); - dummyCard.setOnClickListener(v -> Accountant.loginWithDummy(getContext())); + layout_dummy.setOnClickListener(v -> Accountant.loginWithDummy(getContext())); } private void drawEmptyGoogle() { - LinearLayout googleCard = ViewUtils.findViewById(view, R.id.googleLayout); - TextView removeAccount = ViewUtils.findViewById(view, R.id.btn_remove); show(view, R.id.googleCard); show(view, R.id.btn_remove); show(view, R.id.google_tapToSwitch); - setText(view, R.id.account_nameG, PreferenceFragment.getString(getActivity(), "GOOGLE_NAME")); - setText(view, R.id.account_emailG, PreferenceFragment.getString(getActivity(), "GOOGLE_EMAIL")); - googleCard.setOnClickListener(click -> new UserProvidedCredentialsTask(getContext()).withSavedGoogle()); - removeAccount.setOnClickListener(click -> { + + setText(view, R.id.account_nameG, Prefs.getString(getActivity(), Aurora.GOOGLE_NAME)); + setText(view, R.id.account_emailG, Prefs.getString(getActivity(), Aurora.GOOGLE_EMAIL)); + + layout_google.setOnClickListener(click -> new UserProvidedCredentialsTask(getContext()).withSavedGoogle()); + remove_google.setOnClickListener(click -> { new UserProvidedCredentialsTask(getContext()).removeGooglePrefs(); hide(view, R.id.googleCard); - show(view, R.id.emptyCard); + show(view, R.id.chip_add); }); } - private void drawEmpty() { - show(view, R.id.emptyCard); - CircleView add_account = view.findViewById(R.id.add_account); - add_account.setOnClickListener(v -> Accountant.switchGoogle(getContext())); + private void showGoogleDialog() { + FragmentTransaction ft = getFragmentManager().beginTransaction(); + Fragment prev = getFragmentManager().findFragmentByTag("dialog"); + if (prev != null) { + ft.remove(prev); + } + ft.addToBackStack(null); + LoginDialog loginDialog = new LoginDialog(); + loginDialog.show(ft, "dialog"); } - private void drawDummyButtons() { - Button logout = ViewUtils.findViewById(view, R.id.btn_logout); - Button switchDummy = ViewUtils.findViewById(view, R.id.btn_switch); - Button refreshToken = ViewUtils.findViewById(view, R.id.btn_refresh); + private void drawDummyButtons() { if (Accountant.isDummy(getContext())) { show(view, R.id.btn_logout); show(view, R.id.btn_switch); show(view, R.id.btn_refresh); } - - logout.setOnClickListener(view -> showLogOutDialog()); - switchDummy.setOnClickListener(view -> Accountant.switchDummy(getContext())); - refreshToken.setOnClickListener(view -> Accountant.refreshMyToken(getContext())); + logout_dummy.setOnClickListener(view -> showLogOutDialog()); + switch_dummy.setOnClickListener(view -> Accountant.switchDummy(getContext())); + refresh_dummy.setOnClickListener(view -> Accountant.refreshMyToken(getContext())); } private void drawGoogleButtons() { - Button logout = ViewUtils.findViewById(view, R.id.btn_logoutG); - Button switchDummy = ViewUtils.findViewById(view, R.id.btn_switchG); - if (Accountant.isGoogle(getContext())) { show(view, R.id.btn_logoutG); show(view, R.id.btn_switchG); } - - logout.setOnClickListener(view -> showLogOutDialog()); - switchDummy.setOnClickListener(view -> Accountant.switchGoogle(getContext())); - } - - private void setAvatar(int avatar) { - ImageView avatar_view = view.findViewById(R.id.accounts_Avatar); - avatar_view.setImageResource(avatar); + logout_google.setOnClickListener(view -> showLogOutDialog()); + switch_google.setOnClickListener(view -> showGoogleDialog()); } private void loadAvatar(String Url) { @@ -197,10 +221,10 @@ public class AccountsFragment extends BaseFragment { .with(getContext()) .load(Url) .apply(new RequestOptions() - .placeholder(ContextCompat.getDrawable(getContext(), R.drawable.ic_dummy_avatar)) + .placeholder(ContextCompat.getDrawable(getContext(), R.drawable.ic_user_placeholder)) .circleCrop() .diskCacheStrategy(DiskCacheStrategy.DATA)) - .into(((ImageView) view.findViewById(R.id.accounts_AvatarG))); + .into(avatar_google); } private void showLogOutDialog() { diff --git a/app/src/main/java/com/dragons/aurora/helpers/Accountant.java b/app/src/main/java/com/dragons/aurora/helpers/Accountant.java index c3c18362a..3801d4edf 100644 --- a/app/src/main/java/com/dragons/aurora/helpers/Accountant.java +++ b/app/src/main/java/com/dragons/aurora/helpers/Accountant.java @@ -70,10 +70,6 @@ public class Accountant { task.execute(); } - public static void switchGoogle(Context context) { - new UserProvidedCredentialsTask(context).logInWithGoogleAccount(); - } - public static void loginWithDummy(Context context) { if (isLoggedIn(context)) completeCheckout(context); diff --git a/app/src/main/java/com/dragons/aurora/task/UserProvidedCredentialsTask.java b/app/src/main/java/com/dragons/aurora/task/UserProvidedCredentialsTask.java index 7f0ac593a..ad0ce3fc8 100644 --- a/app/src/main/java/com/dragons/aurora/task/UserProvidedCredentialsTask.java +++ b/app/src/main/java/com/dragons/aurora/task/UserProvidedCredentialsTask.java @@ -21,38 +21,25 @@ package com.dragons.aurora.task; -import android.app.Dialog; import android.content.Context; -import android.preference.PreferenceManager; -import android.text.InputType; import android.text.TextUtils; -import android.widget.ArrayAdapter; -import android.widget.AutoCompleteTextView; -import android.widget.CheckBox; -import android.widget.EditText; -import android.widget.ImageView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import com.dragons.aurora.Aurora; -import com.dragons.aurora.ContextUtil; import com.dragons.aurora.CredentialsEmptyException; import com.dragons.aurora.PlayStoreApiAuthenticator; import com.dragons.aurora.R; import com.dragons.aurora.activities.AccountsActivity; import com.dragons.aurora.fragment.PreferenceFragment; -import com.dragons.aurora.helpers.Accountant; import com.dragons.aurora.helpers.Prefs; import com.dragons.aurora.playstoreapiv2.AuthException; import org.json.JSONException; import org.json.JSONObject; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Set; import timber.log.Timber; @@ -73,21 +60,7 @@ public class UserProvidedCredentialsTask extends CheckCredentialsTask { return task; } - private AutoCompleteTextView getEmailInput(Dialog ad) { - AutoCompleteTextView editEmail = (AutoCompleteTextView) ad.findViewById(R.id.email); - editEmail.setAdapter(new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, getUsedEmails())); - String previousEmail = ""; - editEmail.setText(PreferenceManager.getDefaultSharedPreferences(context).getString(Aurora.PREFERENCE_EMAIL, previousEmail)); - return editEmail; - } - - private List getUsedEmails() { - List emails = new ArrayList<>(Prefs.getStringSet(context, Aurora.USED_EMAILS_SET)); - Collections.sort(emails); - return emails; - } - - private void setGooglePrefs(String email, String password) { + public void setGooglePrefs(String email, String password) { Prefs.putBoolean(context, Aurora.SEC_ACCOUNT, true); Prefs.putString(context, Aurora.GOOGLE_EMAIL, email); Prefs.putString(context, Aurora.GOOGLE_PASSWORD, password); @@ -105,46 +78,6 @@ public class UserProvidedCredentialsTask extends CheckCredentialsTask { getUserCredentialsTask().execute(email, password); } - public void logInWithGoogleAccount() { - Dialog ad = new Dialog(context); - ad.setContentView(R.layout.dialog_credentials); - ad.setTitle(context.getString(R.string.credentials_title)); - ad.setCancelable(false); - - AutoCompleteTextView editEmail = getEmailInput(ad); - EditText editPassword = ad.findViewById(R.id.password); - final CheckBox checkBox = ad.findViewById(R.id.checkboxSave); - - editEmail.setText(""); - - ad.findViewById(R.id.button_exit).setOnClickListener(v -> ad.dismiss()); - ad.findViewById(R.id.button_ok).setOnClickListener(view -> { - Context c = view.getContext(); - String email = editEmail.getText().toString(); - String password = editPassword.getText().toString(); - if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password)) { - ContextUtil.toast(c.getApplicationContext(), R.string.error_credentials_empty); - return; - } - ad.dismiss(); - - if (checkBox.isChecked()) { - setGooglePrefs(email, password); - } - Accountant.completeCheckout(context); - getUserCredentialsTask().execute(email, password); - }); - - ad.findViewById(R.id.toggle_password_visibility).setOnClickListener(v -> { - boolean passwordVisible = !TextUtils.isEmpty((String) v.getTag()); - v.setTag(passwordVisible ? null : "tag"); - ((ImageView) v).setImageResource(passwordVisible ? R.drawable.ic_visibility_on : R.drawable.ic_visibility_off); - editPassword.setInputType(passwordVisible ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD : InputType.TYPE_CLASS_TEXT); - }); - - ad.show(); - } - @Override protected Void doInBackground(String[] params) { if (params.length < 2 @@ -207,7 +140,7 @@ public class UserProvidedCredentialsTask extends CheckCredentialsTask { Username = mJsonObject.getJSONObject("gphoto$nickname").getString("$t"); ImgURL = mJsonObject.getJSONObject("gphoto$thumbnail").getString("$t"); } catch (JSONException e) { - Timber.e(e.getMessage()); + Timber.e(e); } } Prefs.putString(context, Aurora.GOOGLE_NAME, Username); diff --git a/app/src/main/res/drawable/ic_add_alt.xml b/app/src/main/res/drawable/ic_add_alt.xml new file mode 100644 index 000000000..4165a868d --- /dev/null +++ b/app/src/main/res/drawable/ic_add_alt.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout-land/activity_login.xml b/app/src/main/res/layout-land/activity_login.xml deleted file mode 100644 index 9783bdbeb..000000000 --- a/app/src/main/res/layout-land/activity_login.xml +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -