瀏覽代碼

Added sign up button

dev
Denys Podymskyy 4 年之前
父節點
當前提交
f382ea5982
共有 5 個檔案被更改,包括 79 行新增4 行删除
  1. +25
    -1
      ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java
  2. +25
    -0
      ui/src/main/java/com/getbubblenow/android/repository/DataRepository.java
  3. +4
    -3
      ui/src/main/java/com/getbubblenow/android/viewmodel/LoginViewModel.java
  4. +24
    -0
      ui/src/main/res/layout/activity_login.xml
  5. +1
    -0
      ui/src/main/res/values/strings.xml

+ 25
- 1
ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java 查看文件

@@ -6,6 +6,7 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
@@ -22,7 +23,6 @@ import android.widget.Toast;

import com.getbubblenow.android.R;
import com.getbubblenow.android.api.ApiConstants;
import com.getbubblenow.android.repository.DataRepository;
import com.getbubblenow.android.resource.StatusResource;
import com.getbubblenow.android.viewmodel.LoginViewModel;

@@ -33,6 +33,7 @@ public class LoginActivity extends BaseActivityBubble {
private EditText userName;
private EditText password;
private AppCompatButton sign;
private TextView signUpButton;

private boolean userNameStateFlag = false;
private boolean passwordStateFlag = false;
@@ -40,6 +41,7 @@ public class LoginActivity extends BaseActivityBubble {
private static final String PASSWORD_KEY = "password";
private static final String NO_INTERNET_CONNECTION = "no internet connection";
private static final String LOGIN_FAILED = "Login Failed";
private static final String REGISTER_POSTFIX = "/register";

@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -63,12 +65,34 @@ public class LoginActivity extends BaseActivityBubble {
userNameStateListener();
passwordStateListener();
sendListener();
signUpButton.setOnClickListener(v -> signUp());
}

private void signUp() {
showLoadingDialog();
loginViewModel.getSignUpSage(this).observe(this, statusResource -> {
switch (statusResource.status) {
case SUCCESS:
closeLoadingDialog();
final String sage = statusResource.data;
final String url = sage + REGISTER_POSTFIX;
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
break;
case ERROR:
closeLoadingDialog();
showErrorDialog(statusResource.message);
break;
}
});
}

private void initViews() {
userName = findViewById(R.id.userName);
password = findViewById(R.id.password);
sign = findViewById(R.id.signButton);
signUpButton = findViewById(R.id.signUpButton);
}




+ 25
- 0
ui/src/main/java/com/getbubblenow/android/repository/DataRepository.java 查看文件

@@ -78,6 +78,7 @@ public class DataRepository {
private static final String RUNNING = "running";
private static final String BASE_URL_PREFIX = "https://";
private static final String BASE_URL_SUFFIX = ":1443/api/";
private static final String SAGE_LIST_IS_EMPTY = "Sage list is empty";
private static String deviceName;
private static String deviceID;
private List<String> nodes;
@@ -251,6 +252,30 @@ public class DataRepository {
}


public MutableLiveData<StatusResource<String>> getSignUpSage(final Context context) {
return new NetworkBoundStatusResource<String>() {
@Override protected void createCall() {
final Disposable sagesDisposable = clientApi.getSages()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(sages -> {
nodes = sages.getSages();
if (nodes != null && !nodes.isEmpty()) {
postMutableLiveData(StatusResource.success(nodes.get(0)));
} else {
Log.e("ERR", "There are no available sages at bootstrap URL.");
postMutableLiveData(StatusResource.error(SAGE_LIST_IS_EMPTY));
}
}, throwable -> {
Log.e("ERR", "Bootstrap URL cannot be reached.");
setErrorMessage(throwable, this);
});
compositeDisposable.add(sagesDisposable);
}
}.getMutableLiveData();
}


public MutableLiveData<StatusResource<byte[]>> login(Context context, String username, String password) {
return new NetworkBoundStatusResource<byte[]>() {



+ 4
- 3
ui/src/main/java/com/getbubblenow/android/viewmodel/LoginViewModel.java 查看文件

@@ -5,9 +5,6 @@ import android.content.Context;
import com.getbubblenow.android.repository.DataRepository;
import com.getbubblenow.android.resource.StatusResource;

import java.util.List;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

@@ -49,4 +46,8 @@ public class LoginViewModel extends ViewModel {
public boolean checkRepositoryInstance(){
return DataRepository.getRepositoryInstance() == null;
}

public MutableLiveData<StatusResource<String>> getSignUpSage(Context context){
return DataRepository.getRepositoryInstance().getSignUpSage(context);
}
}

+ 24
- 0
ui/src/main/res/layout/activity_login.xml 查看文件

@@ -154,4 +154,28 @@
android:textSize="@dimen/text_title" />
</LinearLayout>

<LinearLayout
android:id="@+id/linearLayoutForRegister"
android:layout_width="@dimen/edit_text_width"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_start_and_end"
android:layout_marginTop="24dp"
android:layout_marginEnd="@dimen/margin_start_and_end"
android:background="@color/white"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout">

<TextView
android:id="@+id/signUpButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/no_account_yet"
android:textAlignment="center"
android:textSize="14sp"
android:textStyle="normal"
android:clickable="true"
android:focusable="true" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

+ 1
- 0
ui/src/main/res/values/strings.xml 查看文件

@@ -264,4 +264,5 @@
<string name="empty_message">"Email and password should not be empty"</string>
<string name="building_bubble_title">We Are Building</string>
<string name="private_bubble">Your Private Bubble!</string>
<string name="no_account_yet">No account yet? Create one.</string>
</resources>

Loading…
取消
儲存