diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8d6c6a8..2e9fb9e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,15 +12,15 @@ android:supportsRtl="true" android:theme="@style/Theme.Acanthus" android:usesCleartextTraffic="true"> - + - - + + () { - @Override - public void onChanged(Acanthus acanthus) { - succeedLogin(); - } - }); - } - - //----------------------------------------------------------------- - // ログイン成功時の処理 - private void succeedLogin() { - transitionActivity(new MainActivity()); - } - - //----------------------------------------------------------------- - // ログイン成功時の処理 - private void transitionActivity(AppCompatActivity appCompatActivity) { - Intent intent = new Intent(getApplication(), appCompatActivity.getClass()); - startActivity(intent); - finish(); - } - //----------------------------------------------------------------- - -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Login/LoginScreenViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/Login/LoginScreenViewModel.java deleted file mode 100644 index 31885b6..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Login/LoginScreenViewModel.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.ntlab.acanthus_client.views.Login; - -import android.accounts.AccountAuthenticatorActivity; -import android.widget.EditText; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -import org.ntlab.acanthus_client.Acanthus; -import org.ntlab.acanthus_client.entities.AccountTokenJson; -import org.ntlab.acanthus_client.resources.accounts.AccountsRest; -import org.ntlab.acanthus_client.views.MainActivity; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; - -//----------------------------------------------------------------- -// -public class LoginScreenViewModel extends ViewModel { - - private MutableLiveData acanthusMutableLiveData; - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // - public LoginScreenViewModel() { - this.acanthusMutableLiveData = new MutableLiveData<>(); - } - - //----------------------------------------------------------------- - // getter - public LiveData getAcanthus() { - return this.acanthusMutableLiveData; - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // トークンの発行APIの呼び出し - public void issueLoginToken(Acanthus acanthus, EditText emailForm, EditText passwordForm) { - Retrofit retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") - .addConverterFactory(JacksonConverterFactory.create()) - .build(); - final AccountsRest accountsRest = retrofit.create(AccountsRest.class); - - String emailAddress = emailForm.getText().toString(); - String password = passwordForm.getText().toString(); - - // ログイン - Call call = accountsRest.issueLoginToken(emailAddress, password); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) - setVariableFromResponse(acanthus, response.body().getToken()); - } - - @Override - public void onFailure(Call call, Throwable t) { - } - }); - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // ログイン成功時に値の変更を行う - private void setVariableFromResponse(Acanthus acanthus, String token) { - acanthus.setToken(token); - acanthusMutableLiveData.setValue(acanthus); - } - //----------------------------------------------------------------- - -} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditFragment.java deleted file mode 100644 index 23468b7..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditFragment.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.edit; - -import android.content.Intent; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.TextView; - - -import org.ntlab.acanthus_client.R; -import org.ntlab.acanthus_client.databinding.FragmentEditBinding; -import org.ntlab.acanthus_client.views.Paint.PaintActivity; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -public class EditFragment extends Fragment { - - private EditViewModel editViewModel; - private FragmentEditBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - editViewModel = - new ViewModelProvider(this).get(EditViewModel.class); - - binding = FragmentEditBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textMake; - editViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } - @Override - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - Button appButton = view.findViewById(R.id.Paint_button); - appButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), PaintActivity.class); - startActivity(intent); - } - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditViewModel.java deleted file mode 100644 index 43f6089..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/edit/EditViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.edit; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class EditViewModel extends ViewModel { - - private MutableLiveData mText; - - public EditViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is edit fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeFragment.java deleted file mode 100644 index 7eadc04..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeFragment.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.home; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import org.ntlab.acanthus_client.databinding.FragmentHomeBinding; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -public class HomeFragment extends Fragment { - - private HomeViewModel homeViewModel; - private FragmentHomeBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - homeViewModel = - new ViewModelProvider(this).get(HomeViewModel.class); - - binding = FragmentHomeBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textHome; - homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeViewModel.java deleted file mode 100644 index 9f6e6bd..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/home/HomeViewModel.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.home; - -import android.widget.EditText; - -import org.ntlab.acanthus_client.resources.accounts.HelloWorldRest; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; -import retrofit2.converter.scalars.ScalarsConverterFactory; - -public class HomeViewModel extends ViewModel { - private EditText editEmailTextView; - private MutableLiveData mText; - - - public HomeViewModel() { - mText = new MutableLiveData<>(); - Gethelloworld(mText); - } - - public void Gethelloworld(MutableLiveData mText){ - Retrofit retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") - .addConverterFactory(ScalarsConverterFactory.create()) - .addConverterFactory(JacksonConverterFactory.create()) - .build(); - final HelloWorldRest helloworld = retrofit.create(HelloWorldRest.class); - Call call = helloworld.getHelloWorld(); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if(response.isSuccessful()) { - String res = response.body(); - mText.setValue(res); - }else{ - mText.setValue("False helloworld"); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - mText.setValue("みす helloworld"); - } - }); - - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageFragment.java deleted file mode 100644 index e27cf1e..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageFragment.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.mypage; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - - -import org.ntlab.acanthus_client.databinding.FragmentMypageBinding; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -public class MyPageFragment extends Fragment { - - private MyPageViewModel mypageViewModel; - private FragmentMypageBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - mypageViewModel = - new ViewModelProvider(this).get(MyPageViewModel.class); - - binding = FragmentMypageBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textMypage; - mypageViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageViewModel.java deleted file mode 100644 index d32ee78..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/mypage/MyPageViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.mypage; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class MyPageViewModel extends ViewModel { - - private MutableLiveData mText; - - public MyPageViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is mypage fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchFragment.java deleted file mode 100644 index 00abbaa..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchFragment.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.search; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import org.ntlab.acanthus_client.databinding.FragmentSearchBinding; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -public class SearchFragment extends Fragment { - - private SearchViewModel searchViewModel; - private FragmentSearchBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - searchViewModel = - new ViewModelProvider(this).get(SearchViewModel.class); - - binding = FragmentSearchBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textSearch; - searchViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchViewModel.java deleted file mode 100644 index c8d2e1d..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Main_menu_ui/search/SearchViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ntlab.acanthus_client.views.Main_menu_ui.search; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class SearchViewModel extends ViewModel { - - private MutableLiveData mText; - - public SearchViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is Search fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Paint/MyPaint.java b/app/src/main/java/org/ntlab/acanthus_client/views/Paint/MyPaint.java deleted file mode 100644 index d13d2cb..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Paint/MyPaint.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.ntlab.acanthus_client.views.Paint; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Path; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; - -import androidx.annotation.Nullable; - -public class MyPaint extends View { - - private Path path; - private Paint paint; - - public MyPaint(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - - //1)コンストラクタ(≒必需品) - path = new Path();//線を引いたり、図形を描いたり、要するにグラフィック - - paint = new Paint();//筆の種類 - paint.setColor(Color.RED);//色の指定 - paint.setStyle(Paint.Style.STROKE);//線をひく - paint.setStrokeWidth(20);//幅 - - } - - //2)onDraw(描画の準備/プロペラが回りだした状態) - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - canvas.drawPath(path,paint); - } - - - //3)実際の操縦 (条件分岐:押したとき、動かしたとき、放した時) - - @Override - public boolean onTouchEvent(MotionEvent event) { - //(3-1)座標を取得(x座標、y座標) - float x = event.getX(); - float y = event.getY(); - - //(3-2)タッチの処理 - switch (event.getAction()){ - case MotionEvent.ACTION_DOWN: - path.moveTo(x,y); - invalidate(); - break; - case MotionEvent.ACTION_MOVE: - path.lineTo(x,y); - invalidate(); - break; - case MotionEvent.ACTION_UP: - break; - } - - //return super.onTouchEvent(event); - return true; - } - - - //4)クリア処理 - public void clearCanvas(){ - path.reset(); - invalidate(); - } - -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/Paint/PaintActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/Paint/PaintActivity.java deleted file mode 100644 index b602205..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/Paint/PaintActivity.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ntlab.acanthus_client.views.Paint; - -import androidx.appcompat.app.AppCompatActivity; - -import android.graphics.PorterDuff; -import android.os.Bundle; -import android.view.View; - -import org.ntlab.acanthus_client.R; - -public class PaintActivity extends AppCompatActivity { - - private MyPaint myPaint; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_paint); - - //6)描画のid取得 - myPaint =(MyPaint) findViewById(R.id.myCanvas); - } - - //5)クリアメソッド(4)呼び出し - public void onClear(View view){ - myPaint.clearCanvas(); - } - -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/SignUp/SignUpActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/SignUp/SignUpActivity.java deleted file mode 100644 index cc84d7d..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/SignUp/SignUpActivity.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.ntlab.acanthus_client.views.SignUp; - -import androidx.appcompat.app.AppCompatActivity; - -import android.content.Intent; -import android.os.Bundle; -import android.widget.Button; -import android.widget.EditText; -import android.widget.TextView; - -import org.ntlab.acanthus_client.R; -import org.ntlab.acanthus_client.entities.AccountUidJson; -import org.ntlab.acanthus_client.resources.accounts.AccountsRest; -import org.ntlab.acanthus_client.views.Login.LoginScreenActivity; -import org.ntlab.acanthus_client.views.MainActivity; - -import java.util.ArrayList; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; - -//----------------------------------------------------------------- -// -public class SignUpActivity extends AppCompatActivity { - //----------------------------------------------------------------- - // 各Viewの列挙型 - public enum EditTexts { - nameForm(0), emailForm(1), passwordForm(2), signUpButton(3), loginButton(4); - - private int textId; - - //----------------------------------------------------------------- - private EditTexts(int textId) { - this.textId = textId; - } - - //----------------------------------------------------------------- - // getter - public int getTextId() { - return this.textId; - } - } - - //----------------------------------------------------------------- - private ArrayList views = new ArrayList<>(); - - //----------------------------------------------------------------- - // - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_sign_up); - initView(); - Retrofit retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") - .addConverterFactory(JacksonConverterFactory.create()) - .build(); - final AccountsRest accountsRest = retrofit.create(AccountsRest.class); - - onClickSignUp(accountsRest); - onClickAlreadyLoggedIn(); - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // サインアップ時押下時 - private void onClickSignUp(AccountsRest accountsRest) { - Button signUpButton = (Button) views.get(EditTexts.signUpButton.getTextId()); - - // - signUpButton.setOnClickListener(v -> { - String name = views.get(EditTexts.nameForm.getTextId()).getText().toString(); - ; - String emailAddress = views.get(EditTexts.emailForm.getTextId()).getText().toString(); - ; - String password = views.get(EditTexts.passwordForm.getTextId()).getText().toString(); - ; - - Call call = accountsRest.createAccount(name, emailAddress, password); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) transitionLoginActivity(); - else clearForm(); - } - - @Override - public void onFailure(Call call, Throwable t) { - } - }); - }); - } - - //----------------------------------------------------------------- - // アカウント所持ボタン押下処理 - private void onClickAlreadyLoggedIn() { - Button alreadyLoggedInButton = (Button) views.get(EditTexts.loginButton.getTextId()); - - // ログイン画面に遷移 - alreadyLoggedInButton.setOnClickListener(v -> { - transitionLoginActivity(); - }); - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // ログイン画面遷移 - private void transitionLoginActivity() { - Intent intent = new Intent(getApplication(), LoginScreenActivity.class); - startActivity(intent); - finish(); - } - - //----------------------------------------------------------------- - // 登録内容のクリア - private void clearForm() { - for (int i = EditTexts.nameForm.getTextId(); i <= EditTexts.passwordForm.getTextId(); i++) { - views.get(i).getEditableText().clear(); - } - - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // - private void initView() { - views.add(findViewById(R.id.editTextTextSignUpPersonName)); - views.add(findViewById(R.id.editTextTextSignUpEmailAddress)); - views.add(findViewById(R.id.editTextTextSignUpPassword)); - views.add(findViewById(R.id.buttonSignUpRegister)); - views.add(findViewById(R.id.buttonAlreadyLoggedIn)); - } -} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenActivity.java new file mode 100644 index 0000000..e3afb6c --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenActivity.java @@ -0,0 +1,86 @@ +package org.ntlab.acanthus_client.views.login; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.databinding.ActivityLoginScreenBinding; +import org.ntlab.acanthus_client.views.MainActivity; +import org.ntlab.acanthus_client.views.sign_up.SignUpActivity; + +//----------------------------------------------------------------- +// ログイン画面 +public class LoginScreenActivity extends AppCompatActivity { + + //----------------------------------------------------------------- + private LoginScreenViewModel loginScreenViewModel; + private ActivityLoginScreenBinding binding; + + + //----------------------------------------------------------------- + // ログインボタン押下時の処理 + public void onClickLogin(View view) { + Acanthus acanthus = (Acanthus) getApplication(); + loginScreenViewModel.issueLoginToken( + acanthus, binding.editTextTextLoginEmail, binding.editTextTextLoginPassword); + } + + //----------------------------------------------------------------- + // サインアップを押下 + public void onClickSignUp(View view) { + transitionActivity(new SignUpActivity()); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + init(); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // 初期化 + private void init() { + setContentView(R.layout.activity_login_screen); + binding = ActivityLoginScreenBinding.inflate(getLayoutInflater()); + + startObserve(); + } + + //----------------------------------------------------------------- + // VMの監視開始 + private void startObserve() { + loginScreenViewModel = new ViewModelProvider(this).get(LoginScreenViewModel.class); + loginScreenViewModel.getAcanthus().observe(this, new Observer() { + @Override + public void onChanged(Acanthus acanthus) { + succeedLogin(); + } + }); + } + + //----------------------------------------------------------------- + // ログイン成功時の処理 + private void succeedLogin() { + transitionActivity(new MainActivity()); + } + + //----------------------------------------------------------------- + // ログイン成功時の処理 + private void transitionActivity(AppCompatActivity appCompatActivity) { + Intent intent = new Intent(getApplication(), appCompatActivity.getClass()); + startActivity(intent); + finish(); + } + //----------------------------------------------------------------- + +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java new file mode 100644 index 0000000..3457cb4 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java @@ -0,0 +1,75 @@ +package org.ntlab.acanthus_client.views.login; + +import android.widget.EditText; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.entities.AccountTokenJson; +import org.ntlab.acanthus_client.resources.accounts.AccountsRest; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +//----------------------------------------------------------------- +// +public class LoginScreenViewModel extends ViewModel { + + private MutableLiveData acanthusMutableLiveData; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // + public LoginScreenViewModel() { + this.acanthusMutableLiveData = new MutableLiveData<>(); + } + + //----------------------------------------------------------------- + // getter + public LiveData getAcanthus() { + return this.acanthusMutableLiveData; + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // トークンの発行APIの呼び出し + public void issueLoginToken(Acanthus acanthus, EditText emailForm, EditText passwordForm) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final AccountsRest accountsRest = retrofit.create(AccountsRest.class); + + String emailAddress = emailForm.getText().toString(); + String password = passwordForm.getText().toString(); + + // ログイン + Call call = accountsRest.issueLoginToken(emailAddress, password); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) + setVariableFromResponse(acanthus, response.body().getToken()); + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // ログイン成功時に値の変更を行う + private void setVariableFromResponse(Acanthus acanthus, String token) { + acanthus.setToken(token); + acanthusMutableLiveData.setValue(acanthus); + } + //----------------------------------------------------------------- + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java new file mode 100644 index 0000000..bddc5b4 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java @@ -0,0 +1,62 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.edit; + +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.databinding.FragmentEditBinding; +import org.ntlab.acanthus_client.views.paint.PaintActivity; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +public class EditFragment extends Fragment { + + private EditViewModel editViewModel; + private FragmentEditBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + editViewModel = + new ViewModelProvider(this).get(EditViewModel.class); + + binding = FragmentEditBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textMake; + editViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + Button appButton = view.findViewById(R.id.Paint_button); + appButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), PaintActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java new file mode 100644 index 0000000..e5fb17b --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java @@ -0,0 +1,19 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.edit; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class EditViewModel extends ViewModel { + + private MutableLiveData mText; + + public EditViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is edit fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java new file mode 100644 index 0000000..8d669ba --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java @@ -0,0 +1,45 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.home; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.ntlab.acanthus_client.databinding.FragmentHomeBinding; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +public class HomeFragment extends Fragment { + + private HomeViewModel homeViewModel; + private FragmentHomeBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + homeViewModel = + new ViewModelProvider(this).get(HomeViewModel.class); + + binding = FragmentHomeBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textHome; + homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeViewModel.java new file mode 100644 index 0000000..72e0bd7 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeViewModel.java @@ -0,0 +1,58 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.home; + +import android.widget.EditText; + +import org.ntlab.acanthus_client.resources.accounts.HelloWorldRest; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; + +public class HomeViewModel extends ViewModel { + private EditText editEmailTextView; + private MutableLiveData mText; + + + public HomeViewModel() { + mText = new MutableLiveData<>(); + Gethelloworld(mText); + } + + public void Gethelloworld(MutableLiveData mText){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final HelloWorldRest helloworld = retrofit.create(HelloWorldRest.class); + Call call = helloworld.getHelloWorld(); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if(response.isSuccessful()) { + String res = response.body(); + mText.setValue(res); + }else{ + mText.setValue("False helloworld"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + mText.setValue("みす helloworld"); + } + }); + + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java new file mode 100644 index 0000000..20d33e9 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java @@ -0,0 +1,46 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.mypage; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + + +import org.ntlab.acanthus_client.databinding.FragmentMypageBinding; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +public class MyPageFragment extends Fragment { + + private MyPageViewModel mypageViewModel; + private FragmentMypageBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + mypageViewModel = + new ViewModelProvider(this).get(MyPageViewModel.class); + + binding = FragmentMypageBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textMypage; + mypageViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java new file mode 100644 index 0000000..e43bc5e --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java @@ -0,0 +1,19 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.mypage; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class MyPageViewModel extends ViewModel { + + private MutableLiveData mText; + + public MyPageViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is mypage fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchFragment.java new file mode 100644 index 0000000..aef01f9 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchFragment.java @@ -0,0 +1,45 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.search; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.ntlab.acanthus_client.databinding.FragmentSearchBinding; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +public class SearchFragment extends Fragment { + + private SearchViewModel searchViewModel; + private FragmentSearchBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + searchViewModel = + new ViewModelProvider(this).get(SearchViewModel.class); + + binding = FragmentSearchBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textSearch; + searchViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java new file mode 100644 index 0000000..9afe3f4 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java @@ -0,0 +1,19 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.search; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class SearchViewModel extends ViewModel { + + private MutableLiveData mText; + + public SearchViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is Search fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java new file mode 100644 index 0000000..f86f8b1 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java @@ -0,0 +1,74 @@ +package org.ntlab.acanthus_client.views.paint; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +import androidx.annotation.Nullable; + +public class MyPaint extends View { + + private Path path; + private Paint paint; + + public MyPaint(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + + //1)コンストラクタ(≒必需品) + path = new Path();//線を引いたり、図形を描いたり、要するにグラフィック + + paint = new Paint();//筆の種類 + paint.setColor(Color.RED);//色の指定 + paint.setStyle(Paint.Style.STROKE);//線をひく + paint.setStrokeWidth(20);//幅 + + } + + //2)onDraw(描画の準備/プロペラが回りだした状態) + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + canvas.drawPath(path,paint); + } + + + //3)実際の操縦 (条件分岐:押したとき、動かしたとき、放した時) + + @Override + public boolean onTouchEvent(MotionEvent event) { + //(3-1)座標を取得(x座標、y座標) + float x = event.getX(); + float y = event.getY(); + + //(3-2)タッチの処理 + switch (event.getAction()){ + case MotionEvent.ACTION_DOWN: + path.moveTo(x,y); + invalidate(); + break; + case MotionEvent.ACTION_MOVE: + path.lineTo(x,y); + invalidate(); + break; + case MotionEvent.ACTION_UP: + break; + } + + //return super.onTouchEvent(event); + return true; + } + + + //4)クリア処理 + public void clearCanvas(){ + path.reset(); + invalidate(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java new file mode 100644 index 0000000..fc4abe0 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java @@ -0,0 +1,28 @@ +package org.ntlab.acanthus_client.views.paint; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.view.View; + +import org.ntlab.acanthus_client.R; + +public class PaintActivity extends AppCompatActivity { + + private MyPaint myPaint; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_paint); + + //6)描画のid取得 + myPaint =(MyPaint) findViewById(R.id.myCanvas); + } + + //5)クリアメソッド(4)呼び出し + public void onClear(View view){ + myPaint.clearCanvas(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/sign_up/SignUpActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/sign_up/SignUpActivity.java new file mode 100644 index 0000000..c87643a --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/sign_up/SignUpActivity.java @@ -0,0 +1,134 @@ +package org.ntlab.acanthus_client.views.sign_up; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.widget.Button; +import android.widget.TextView; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.AccountUidJson; +import org.ntlab.acanthus_client.resources.accounts.AccountsRest; +import org.ntlab.acanthus_client.views.login.LoginScreenActivity; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +//----------------------------------------------------------------- +// +public class SignUpActivity extends AppCompatActivity { + //----------------------------------------------------------------- + // 各Viewの列挙型 + public enum EditTexts { + nameForm(0), emailForm(1), passwordForm(2), signUpButton(3), loginButton(4); + + private int textId; + + //----------------------------------------------------------------- + private EditTexts(int textId) { + this.textId = textId; + } + + //----------------------------------------------------------------- + // getter + public int getTextId() { + return this.textId; + } + } + + //----------------------------------------------------------------- + private ArrayList views = new ArrayList<>(); + + //----------------------------------------------------------------- + // + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sign_up); + initView(); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final AccountsRest accountsRest = retrofit.create(AccountsRest.class); + + onClickSignUp(accountsRest); + onClickAlreadyLoggedIn(); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // サインアップ時押下時 + private void onClickSignUp(AccountsRest accountsRest) { + Button signUpButton = (Button) views.get(EditTexts.signUpButton.getTextId()); + + // + signUpButton.setOnClickListener(v -> { + String name = views.get(EditTexts.nameForm.getTextId()).getText().toString(); + ; + String emailAddress = views.get(EditTexts.emailForm.getTextId()).getText().toString(); + ; + String password = views.get(EditTexts.passwordForm.getTextId()).getText().toString(); + ; + + Call call = accountsRest.createAccount(name, emailAddress, password); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) transitionLoginActivity(); + else clearForm(); + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + }); + } + + //----------------------------------------------------------------- + // アカウント所持ボタン押下処理 + private void onClickAlreadyLoggedIn() { + Button alreadyLoggedInButton = (Button) views.get(EditTexts.loginButton.getTextId()); + + // ログイン画面に遷移 + alreadyLoggedInButton.setOnClickListener(v -> { + transitionLoginActivity(); + }); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // ログイン画面遷移 + private void transitionLoginActivity() { + Intent intent = new Intent(getApplication(), LoginScreenActivity.class); + startActivity(intent); + finish(); + } + + //----------------------------------------------------------------- + // 登録内容のクリア + private void clearForm() { + for (int i = EditTexts.nameForm.getTextId(); i <= EditTexts.passwordForm.getTextId(); i++) { + views.get(i).getEditableText().clear(); + } + + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // + private void initView() { + views.add(findViewById(R.id.editTextTextSignUpPersonName)); + views.add(findViewById(R.id.editTextTextSignUpEmailAddress)); + views.add(findViewById(R.id.editTextTextSignUpPassword)); + views.add(findViewById(R.id.buttonSignUpRegister)); + views.add(findViewById(R.id.buttonAlreadyLoggedIn)); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login_screen.xml b/app/src/main/res/layout/activity_login_screen.xml index d7d7375..7f26930 100644 --- a/app/src/main/res/layout/activity_login_screen.xml +++ b/app/src/main/res/layout/activity_login_screen.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".views.Login.LoginScreenActivity"> + tools:context=".views.login.LoginScreenActivity"> + tools:context=".views.paint.PaintActivity"> - + tools:context=".views.sign_up.SignUpActivity"> + tools:context=".views.main_menu_ui.edit.EditFragment"> + tools:context=".views.main_menu_ui.home.HomeFragment"> + tools:context=".views.main_menu_ui.mypage.MyPageFragment"> + tools:context=".views.main_menu_ui.search.SearchFragment"> \ No newline at end of file