Merge pull request 'feature/parent_login' (#107) from feature/parent_login into main
Reviewed-on: #107
This commit is contained in:
commit
c1b1cdcd1c
|
@ -44,4 +44,6 @@ dependencies {
|
|||
implementation project(':model')
|
||||
implementation project(':utils')
|
||||
implementation project(':data')
|
||||
implementation 'com.google.android.gms:play-services-cronet:18.0.1'
|
||||
|
||||
}
|
|
@ -4,17 +4,47 @@ import android.os.Bundle;
|
|||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextClock;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.chromium.net.CronetEngine;
|
||||
import org.chromium.net.CronetException;
|
||||
import org.chromium.net.UrlRequest;
|
||||
import org.chromium.net.UrlResponseInfo;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.Channels;
|
||||
import java.nio.channels.WritableByteChannel;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.hilt.android.AndroidEntryPoint;
|
||||
import one.nem.kidshift.utils.KSLogger;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Use the {@link DebugTempLoginFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
public class DebugTempLoginFragment extends Fragment {
|
||||
|
||||
@Inject
|
||||
KSLogger logger;
|
||||
|
||||
|
||||
// TODO: Rename parameter arguments, choose names that match
|
||||
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
|
||||
private static final String ARG_PARAM1 = "param1";
|
||||
|
@ -59,6 +89,93 @@ public class DebugTempLoginFragment extends Fragment {
|
|||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
return inflater.inflate(R.layout.fragment_debug_temp_login, container, false);
|
||||
View view = inflater.inflate(R.layout.fragment_debug_temp_login, container, false);
|
||||
|
||||
logger.setTag("Login");
|
||||
|
||||
|
||||
//xmlレイアウトからid取得
|
||||
EditText id = (EditText) view.findViewById(R.id.idtext);
|
||||
EditText pass = (EditText) view.findViewById(R.id.pass);
|
||||
|
||||
CronetEngine.Builder engineBuilder = new CronetEngine.Builder(getContext().getApplicationContext());
|
||||
engineBuilder.enableHttp2(true);
|
||||
CronetEngine engine = engineBuilder.build();
|
||||
|
||||
//ログインボタンを押したときの処理
|
||||
view.findViewById(R.id.button).setOnClickListener(
|
||||
view1 -> {
|
||||
//入力された値(id,pass)を取得
|
||||
Editable getText = id.getText();
|
||||
Editable getPass = pass.getText();
|
||||
// //入力された値(id,pass)をログに表示
|
||||
// logger.debug(getText.toString());
|
||||
// logger.debug(getPass.toString());
|
||||
|
||||
Executor executor = Executors.newSingleThreadExecutor();
|
||||
CronetCallback callback = new CronetCallback();
|
||||
UrlRequest.Builder requestBuilder = engine.newUrlRequestBuilder(
|
||||
"https://kidshift-beta.nem.one/debug/hello", callback, executor);
|
||||
UrlRequest request = requestBuilder.build();
|
||||
|
||||
request.start();
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private class CronetCallback extends UrlRequest.Callback{
|
||||
|
||||
private ByteArrayOutputStream bytesReceived = new ByteArrayOutputStream(); // 追加
|
||||
private WritableByteChannel receiveChannel = Channels.newChannel(bytesReceived); // 追加
|
||||
|
||||
@Override
|
||||
public void onRedirectReceived(UrlRequest request,UrlResponseInfo info,String newLocationUrl){
|
||||
request.followRedirect();
|
||||
|
||||
// リダイレクトを許可しない場合
|
||||
// request.cancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponseStarted(UrlRequest request, UrlResponseInfo info) {
|
||||
request.read(ByteBuffer.allocateDirect(1024));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReadCompleted(UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer) {
|
||||
byteBuffer.flip();
|
||||
try {
|
||||
receiveChannel.write(byteBuffer);
|
||||
} catch (IOException e){
|
||||
|
||||
}
|
||||
byteBuffer.clear();
|
||||
request.read(byteBuffer);
|
||||
|
||||
String body = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||
logger.debug(body);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
|
||||
byte[] byteArray = bytesReceived.toByteArray();
|
||||
String json = new String(byteArray);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) {
|
||||
error.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +1,66 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".DebugTempLoginFragment">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:text="@string/hello_blank_fragment" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="100dp"
|
||||
android:text="KidShiftアカウント"
|
||||
android:textSize="34sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/idtext"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="120dp"
|
||||
android:ems="10"
|
||||
android:hint="IDを入力"
|
||||
android:inputType="text"
|
||||
android:textSize="30sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/textView" />
|
||||
|
||||
|
||||
<EditText
|
||||
android:id="@+id/pass"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="50dp"
|
||||
android:ems="10"
|
||||
android:inputType="textPassword"
|
||||
android:textSize="30sp"
|
||||
android:hint="パスワード入力"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/idtext" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/button"
|
||||
android:layout_width="154dp"
|
||||
android:layout_height="68dp"
|
||||
android:layout_marginTop="80dp"
|
||||
android:backgroundTint="#9400d3"
|
||||
android:text="ログイン"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="24sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass" />
|
||||
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user