Houston we don't have a problem
This commit is contained in:
		
							parent
							
								
									669e2e43ae
								
							
						
					
					
						commit
						b74169da95
					
				@ -1,5 +1,7 @@
 | 
				
			|||||||
package ru.myitschool.work.data;
 | 
					package ru.myitschool.work.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.util.Log;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					import androidx.annotation.NonNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.function.Consumer;
 | 
					import java.util.function.Consumer;
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ import com.google.gson.annotations.SerializedName;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class QrDto {
 | 
					public class QrDto {
 | 
				
			||||||
    @Nullable
 | 
					    @Nullable
 | 
				
			||||||
    @SerializedName("code")
 | 
					    @SerializedName("value")
 | 
				
			||||||
    public String code;
 | 
					    public String code;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public QrDto(@Nullable String code) {
 | 
					    public QrDto(@Nullable String code) {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,7 @@
 | 
				
			|||||||
package ru.myitschool.work.domain.qr;
 | 
					package ru.myitschool.work.domain.qr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.util.Log;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					import androidx.annotation.NonNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.function.Consumer;
 | 
					import java.util.function.Consumer;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,11 +3,13 @@ package ru.myitschool.work.ui.profile;
 | 
				
			|||||||
import android.content.Context;
 | 
					import android.content.Context;
 | 
				
			||||||
import android.content.SharedPreferences;
 | 
					import android.content.SharedPreferences;
 | 
				
			||||||
import android.os.Bundle;
 | 
					import android.os.Bundle;
 | 
				
			||||||
 | 
					import android.util.Log;
 | 
				
			||||||
import android.view.View;
 | 
					import android.view.View;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					import androidx.annotation.NonNull;
 | 
				
			||||||
import androidx.annotation.Nullable;
 | 
					import androidx.annotation.Nullable;
 | 
				
			||||||
import androidx.fragment.app.Fragment;
 | 
					import androidx.fragment.app.Fragment;
 | 
				
			||||||
 | 
					import androidx.fragment.app.FragmentResultListener;
 | 
				
			||||||
import androidx.lifecycle.ViewModelProvider;
 | 
					import androidx.lifecycle.ViewModelProvider;
 | 
				
			||||||
import androidx.navigation.Navigation;
 | 
					import androidx.navigation.Navigation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -16,6 +18,7 @@ import com.squareup.picasso.Picasso;
 | 
				
			|||||||
import ru.myitschool.work.R;
 | 
					import ru.myitschool.work.R;
 | 
				
			||||||
import ru.myitschool.work.databinding.FragmentUserBinding;
 | 
					import ru.myitschool.work.databinding.FragmentUserBinding;
 | 
				
			||||||
import ru.myitschool.work.domain.entities.UserEntity;
 | 
					import ru.myitschool.work.domain.entities.UserEntity;
 | 
				
			||||||
 | 
					import ru.myitschool.work.ui.qr.scan.QrScanDestination;
 | 
				
			||||||
import ru.myitschool.work.utils.Utils;
 | 
					import ru.myitschool.work.utils.Utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class UserFragment extends Fragment {
 | 
					public class UserFragment extends Fragment {
 | 
				
			||||||
@ -59,10 +62,8 @@ public class UserFragment extends Fragment {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        binding.scan.setOnClickListener(v -> {
 | 
					        binding.scan.setOnClickListener(v -> {
 | 
				
			||||||
            if (getView() != null) {
 | 
					 | 
				
			||||||
                Navigation.findNavController(getView()).navigate(
 | 
					                Navigation.findNavController(getView()).navigate(
 | 
				
			||||||
                        R.id.action_userFragment_to_qrResultFragment);
 | 
					                        R.id.action_userFragment_to_qrScanFragment);
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        binding.logout.setOnClickListener(v -> {
 | 
					        binding.logout.setOnClickListener(v -> {
 | 
				
			||||||
@ -78,6 +79,16 @@ public class UserFragment extends Fragment {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        getParentFragmentManager().setFragmentResultListener(QrScanDestination.REQUEST_KEY, this, new FragmentResultListener() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
 | 
				
			||||||
 | 
					                Log.d("result1", QrScanDestination.INSTANCE.getDataIfExist(result));
 | 
				
			||||||
 | 
					                getParentFragmentManager().setFragmentResult("requestKey", result);
 | 
				
			||||||
 | 
					                Navigation.findNavController(getView()).navigate(
 | 
				
			||||||
 | 
					                        R.id.action_userFragment_to_qrResultFragment);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -31,26 +31,14 @@ public class QrResultFragment extends Fragment {
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
 | 
					    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
 | 
				
			||||||
        super.onViewCreated(view, savedInstanceState);
 | 
					        super.onViewCreated(view, savedInstanceState);
 | 
				
			||||||
 | 
					        binding = FragmentQrResultBinding.bind(view);
 | 
				
			||||||
 | 
					        viewModel = new ViewModelProvider(this).get(QrResultViewModel.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Log.d("status", String.valueOf(resultQr != null));
 | 
					        getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() {
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getView() != null && resultQr == null) {
 | 
					 | 
				
			||||||
            Navigation.findNavController(getView()).navigate(R.id.action_qrResultFragment_to_qrScanFragment);
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        getParentFragmentManager().setFragmentResultListener(QrScanDestination.REQUEST_KEY, this, new FragmentResultListener() {
 | 
					 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
 | 
					            public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
 | 
				
			||||||
                resultQr = QrScanDestination.INSTANCE.getDataIfExist(result);
 | 
					                resultQr = QrScanDestination.INSTANCE.getDataIfExist(result);
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Log.d("status", String.valueOf(resultQr != null));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        binding = FragmentQrResultBinding.bind(view);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        viewModel = new ViewModelProvider(this).get(QrResultViewModel.class);
 | 
					 | 
				
			||||||
                viewModel.stateLiveData.observe(getViewLifecycleOwner(), state -> {
 | 
					                viewModel.stateLiveData.observe(getViewLifecycleOwner(), state -> {
 | 
				
			||||||
                    if (state.getErrorMessage() == null && state.isOpened()) {
 | 
					                    if (state.getErrorMessage() == null && state.isOpened()) {
 | 
				
			||||||
                        binding.result.setText(R.string.door_opened);
 | 
					                        binding.result.setText(R.string.door_opened);
 | 
				
			||||||
@ -63,13 +51,14 @@ public class QrResultFragment extends Fragment {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (getContext() != null) {
 | 
					 | 
				
			||||||
                SharedPreferences sharedPreferences = getContext().getSharedPreferences("login", Context.MODE_PRIVATE);
 | 
					                SharedPreferences sharedPreferences = getContext().getSharedPreferences("login", Context.MODE_PRIVATE);
 | 
				
			||||||
                String login = sharedPreferences.getString("login", null);
 | 
					                String login = sharedPreferences.getString("login", null);
 | 
				
			||||||
            if (login != null && resultQr != null) {
 | 
					
 | 
				
			||||||
 | 
					                if (login != null) {
 | 
				
			||||||
                    viewModel.update(login, resultQr);
 | 
					                    viewModel.update(login, resultQr);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        binding.close.setOnClickListener(v -> {
 | 
					        binding.close.setOnClickListener(v -> {
 | 
				
			||||||
            if (getView() != null) {
 | 
					            if (getView() != null) {
 | 
				
			||||||
 | 
				
			|||||||
@ -10,12 +10,9 @@ import ru.myitschool.work.data.UserRepositoryImplementation;
 | 
				
			|||||||
import ru.myitschool.work.domain.entities.QrEntity;
 | 
					import ru.myitschool.work.domain.entities.QrEntity;
 | 
				
			||||||
import ru.myitschool.work.domain.entities.Status;
 | 
					import ru.myitschool.work.domain.entities.Status;
 | 
				
			||||||
import ru.myitschool.work.domain.qr.PushQrUseCase;
 | 
					import ru.myitschool.work.domain.qr.PushQrUseCase;
 | 
				
			||||||
import ru.myitschool.work.ui.profile.UserViewModel;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class QrResultViewModel extends ViewModel {
 | 
					public class QrResultViewModel extends ViewModel {
 | 
				
			||||||
    private final MutableLiveData<State> mutableStateLiveData = new MutableLiveData<State>(
 | 
					    private final MutableLiveData<State> mutableStateLiveData = new MutableLiveData<State>();
 | 
				
			||||||
            new State(null, false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    public final LiveData<State> stateLiveData = mutableStateLiveData;
 | 
					    public final LiveData<State> stateLiveData = mutableStateLiveData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public final PushQrUseCase pushQrUseCase = new PushQrUseCase(
 | 
					    public final PushQrUseCase pushQrUseCase = new PushQrUseCase(
 | 
				
			||||||
@ -37,6 +34,7 @@ public class QrResultViewModel extends ViewModel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public class State {
 | 
					    public class State {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @Nullable
 | 
					        @Nullable
 | 
				
			||||||
        private final String errorMessage;
 | 
					        private final String errorMessage;
 | 
				
			||||||
        private final boolean isOpened;
 | 
					        private final boolean isOpened;
 | 
				
			||||||
 | 
				
			|||||||
@ -14,14 +14,17 @@
 | 
				
			|||||||
        <action
 | 
					        <action
 | 
				
			||||||
            android:id="@+id/action_userFragment_to_qrResultFragment"
 | 
					            android:id="@+id/action_userFragment_to_qrResultFragment"
 | 
				
			||||||
            app:destination="@id/qrResultFragment" />
 | 
					            app:destination="@id/qrResultFragment" />
 | 
				
			||||||
 | 
					        <action
 | 
				
			||||||
 | 
					            android:id="@+id/action_userFragment_to_qrScanFragment"
 | 
				
			||||||
 | 
					            app:destination="@id/qrScanFragment" />
 | 
				
			||||||
    </fragment>
 | 
					    </fragment>
 | 
				
			||||||
    <fragment
 | 
					    <fragment
 | 
				
			||||||
        android:id="@+id/qrScanFragment"
 | 
					        android:id="@+id/qrScanFragment"
 | 
				
			||||||
        android:name="ru.myitschool.work.ui.qr.scan.QrScanFragment"
 | 
					        android:name="ru.myitschool.work.ui.qr.scan.QrScanFragment"
 | 
				
			||||||
        android:label="QrScanFragment" >
 | 
					        android:label="QrScanFragment" >
 | 
				
			||||||
        <action
 | 
					        <action
 | 
				
			||||||
            android:id="@+id/action_qrScanFragment_to_qrResultFragment"
 | 
					            android:id="@+id/action_qrScanFragment_to_userFragment"
 | 
				
			||||||
            app:destination="@id/qrResultFragment" />
 | 
					            app:destination="@id/userFragment" />
 | 
				
			||||||
    </fragment>
 | 
					    </fragment>
 | 
				
			||||||
    <fragment
 | 
					    <fragment
 | 
				
			||||||
        android:id="@+id/loginFragment"
 | 
					        android:id="@+id/loginFragment"
 | 
				
			||||||
@ -38,8 +41,5 @@
 | 
				
			|||||||
        <action
 | 
					        <action
 | 
				
			||||||
            android:id="@+id/action_qrResultFragment_to_userFragment"
 | 
					            android:id="@+id/action_qrResultFragment_to_userFragment"
 | 
				
			||||||
            app:destination="@id/userFragment" />
 | 
					            app:destination="@id/userFragment" />
 | 
				
			||||||
        <action
 | 
					 | 
				
			||||||
            android:id="@+id/action_qrResultFragment_to_qrScanFragment"
 | 
					 | 
				
			||||||
            app:destination="@id/qrScanFragment" />
 | 
					 | 
				
			||||||
    </fragment>
 | 
					    </fragment>
 | 
				
			||||||
</navigation>
 | 
					</navigation>
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user