diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 862c084..f1ed5b3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,21 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/opensource_project/DetailedMenu1.java b/app/src/main/java/com/example/opensource_project/DetailedMenu1.java new file mode 100644 index 0000000..48d51f3 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/DetailedMenu1.java @@ -0,0 +1,78 @@ +package com.example.opensource_project; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.Toast; + +import static android.content.ContentValues.TAG; + +public class DetailedMenu1 extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.detailed_menu1); + + Intent intent = getIntent(); + int auth = intent.getExtras().getInt("auth"); + Button generate_button = (Button) findViewById(R.id.generate_button); + if(auth == 0){ // 관리자 + Log.d(TAG, "Inserted auth: " + auth); + generate_button.setVisibility(View.VISIBLE); + } + else if(auth == 1){ // 일반 사용자 + Log.d(TAG, "Inserted auth: " + auth); + generate_button.setVisibility(View.GONE); + } + // yet!!! 코드 최적화 안함 + else if(auth == 3){ // 외부 사용자 + Log.d(TAG, "Inserted auth: " + auth); + generate_button.setVisibility(View.GONE); + } + + generate_button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), RegisterProduct.class); + startActivity(intent); + } + }); + + LinearLayout linearButton1 = (LinearLayout) findViewById(R.id.layout_btn1); + LinearLayout linearButton2 = (LinearLayout) findViewById(R.id.layout_btn2); + LinearLayout linearButton3 = (LinearLayout) findViewById(R.id.layout_btn3); + LinearLayout linearButton4 = (LinearLayout) findViewById(R.id.layout_btn4); + linearButton1.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Intent intent = new Intent(getApplicationContext(), Payment2.class); + startActivity(intent); + } + }); + linearButton2.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu1.this, "상품을 등록 중에 있습니다.", Toast.LENGTH_SHORT).show(); + } + }); + linearButton3.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu1.this, "모든 상품이 품절되었습니다.", Toast.LENGTH_SHORT).show(); + } + }); + linearButton4.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu1.this, "모든 상품이 품절되었습니다.", Toast.LENGTH_SHORT).show(); + } + }); + } + +} diff --git a/app/src/main/java/com/example/opensource_project/DetailedMenu2.java b/app/src/main/java/com/example/opensource_project/DetailedMenu2.java new file mode 100644 index 0000000..4ce8399 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/DetailedMenu2.java @@ -0,0 +1,30 @@ +package com.example.opensource_project; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +public class DetailedMenu2 extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.detailed_menu2); + + LinearLayout chicken = (LinearLayout) findViewById(R.id.chicken); + chicken.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), buyProduct.class); + startActivity(intent); + } + + + }); + + } +} diff --git a/app/src/main/java/com/example/opensource_project/DetailedMenu4.java b/app/src/main/java/com/example/opensource_project/DetailedMenu4.java new file mode 100644 index 0000000..241c9c8 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/DetailedMenu4.java @@ -0,0 +1,74 @@ +package com.example.opensource_project; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.Toast; + +import static android.content.ContentValues.TAG; + +public class DetailedMenu4 extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.detailed_menu4); + + Intent intent = getIntent(); + int auth = intent.getExtras().getInt("auth"); + Button generate_button = (Button) findViewById(R.id.generate_button); + if(auth == 0){ // 관리자 + Log.d(TAG, "Inserted auth: " + auth); + generate_button.setVisibility(View.VISIBLE); + } + else if(auth == 1){ // 일반 사용자 + Log.d(TAG, "Inserted auth: " + auth); + generate_button.setVisibility(View.GONE); + } + + generate_button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), RegisterProduct.class); + startActivity(intent); + } + }); + + LinearLayout linearButton1 = (LinearLayout) findViewById(R.id.linear1); + LinearLayout linearButton2 = (LinearLayout) findViewById(R.id.linear2); + LinearLayout linearButton3 = (LinearLayout) findViewById(R.id.linear3); + LinearLayout linearButton4 = (LinearLayout) findViewById(R.id.linear4); + linearButton1.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Intent intent = new Intent(getApplicationContext(), Payment.class); + startActivity(intent); + } + }); + linearButton2.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu4.this, "모든 상품이 품절되었습니다.", Toast.LENGTH_SHORT).show(); + } + }); + linearButton3.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu4.this, "모든 상품이 품절되었습니다.", Toast.LENGTH_SHORT).show(); + } + }); + linearButton4.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(DetailedMenu4.this, "모든 상품이 품절되었습니다.", Toast.LENGTH_SHORT).show(); + } + }); + + } +} diff --git a/app/src/main/java/com/example/opensource_project/Login.java b/app/src/main/java/com/example/opensource_project/Login.java index 01eb7b7..a3c8839 100644 --- a/app/src/main/java/com/example/opensource_project/Login.java +++ b/app/src/main/java/com/example/opensource_project/Login.java @@ -3,9 +3,20 @@ import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.opensource_project.registration.createDatabaseController; +import com.example.opensource_project.registration.registrationService; + +import static android.content.ContentValues.TAG; public class Login extends AppCompatActivity { @@ -14,15 +25,97 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); - + final boolean[] login_flag = {false, false}; // 순서대로 ID, PW Button loginbutton = (Button) findViewById(R.id.Login); + Button registButton = (Button) findViewById(R.id.Changeregistration); + + createDatabaseController mainDB = new createDatabaseController(getApplicationContext(), "Maindb", null, 1); + SQLiteDatabase database; // Sqlite db 연결을 위한 객체 + database = mainDB.getReadableDatabase(); // Maindb의 데이터 내용을 가져옴 + mainDB.onCreate(database); + + Cursor cursor; + cursor = database.rawQuery("select * from userTable", null); // **모든 컬럼 접근 + //cursor = database.rawQuery("SELECT id FROM userTable", null); // 컬럼 한 개 접근 + + + registButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), registrationService.class); + startActivity(intent); + } + }); + + loginbutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + // cmp1 == ID column, cmp2 == PW inserted + String cmp1, cmp2; + boolean flag = false; // flag for 로그인 메인 | 비로그인 메인 + + cursor.moveToFirst(); + + EditText getUserSting; + getUserSting = (EditText) findViewById(R.id.idText); // 유저 아이디 입력 가져오기 + String userID = getUserSting.getText().toString(); + + getUserSting = (EditText) findViewById(R.id.passwordText); // 유저 비밀번호 입력 가져오기 + String userPW = getUserSting.getText().toString(); + + Log.d(TAG, "Inserted ID: " + userID); + Log.d(TAG, "Inserted PW: " + userPW); + + do{ + cmp1 = cursor.getString(0); + cmp2 = cursor.getString(1); + + //cmp2 = cursor.getString(cursor.getColumnIndex("pw")); + + if(cmp1.equals(userID)){ + login_flag[0] = true; + if(cmp2.equals(userPW)){ + + login_flag[1] = true; + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + Toast.makeText(getApplicationContext(), String.format("%s님 환영합니다.", userID), Toast.LENGTH_SHORT).show(); + String email = cursor.getString(3); + Log.d(TAG, "email? : " + email); + intent.putExtra("userID", userID); + intent.putExtra("email", email); + flag = true; + intent.putExtra("login_flag", flag); + intent.putExtra("auth", cursor.getInt(4)); // ** 해당 테이블의 첫번째 int 이므로 ! + + startActivity(intent); + break; + } + // 어차피 id는 하나이고, 걸려든 id가 pw와 일치하지 않으면 유효하지 않으므로 break + break; + } + }while(cursor.moveToNext()); + + if(login_flag[0] == false || login_flag[1] == false){ + Toast.makeText(getApplicationContext(), "아이디 또는 패스워드가 존재하지 않습니다.", Toast.LENGTH_SHORT).show(); + return; + } + + + } + }); + + // 로그인 없이 둘러보기 기능 + TextView without_login = (TextView) findViewById(R.id.without_login); + without_login.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + boolean flag = false; // flag for 로그인 메인 | 비로그인 메인 Intent intent = new Intent(getApplicationContext(), MainActivity.class); + intent.putExtra("login_flag", flag); + intent.putExtra("auth", -1); // ** 해당 테이블의 첫번째 int 이므로 ! startActivity(intent); } }); - } } \ No newline at end of file diff --git a/app/src/main/java/com/example/opensource_project/MainActivity.java b/app/src/main/java/com/example/opensource_project/MainActivity.java index 95621fc..dc5c061 100644 --- a/app/src/main/java/com/example/opensource_project/MainActivity.java +++ b/app/src/main/java/com/example/opensource_project/MainActivity.java @@ -7,9 +7,17 @@ import androidx.viewpager2.widget.MarginPageTransformer; import androidx.viewpager2.widget.ViewPager2; +import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Bundle; import android.view.View; +import android.widget.Button; +import android.widget.ImageButton; import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.opensource_project.registration.registrationService; import me.relex.circleindicator.CircleIndicator; import me.relex.circleindicator.CircleIndicator3; @@ -22,11 +30,90 @@ public class MainActivity extends AppCompatActivity { int[] images = {R.drawable.fish,R.drawable.menu2,R.drawable.menu3,R.drawable.menu4}; MainAdapter adapter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + Intent intent = getIntent(); + + boolean login_flag = intent.getExtras().getBoolean("login_flag"); + int auth = intent.getExtras().getInt("auth"); + if(login_flag == true){ + String userID = intent.getExtras().getString("userID"); + } + + TextView login_logout = (TextView) findViewById(R.id.login_logout); + + if(login_flag == true) login_logout.setText("로그아웃"); + + login_logout.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + boolean login_logout = login_flag; + Intent logout = new Intent(getApplicationContext(), Login.class); + if (login_logout == true){ + login_logout = false; // 사용하진 않지만, 혹시 몰라 일단 둠 + Toast.makeText(getApplicationContext(), "로그아웃 되었습니다.", Toast.LENGTH_SHORT).show(); + startActivity(logout); + } + else { + startActivity(logout); + } + } + }); + + + + // -- Detailed menu1 - Pizza -- + ImageButton detailedMenu1 = (ImageButton) findViewById(R.id.imageButton1); + detailedMenu1.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Intent new_intent = new Intent(getApplicationContext(), DetailedMenu1.class); + new_intent.putExtra("login_flag", login_flag); + new_intent.putExtra("auth", auth); // Detailed에서 권한에 따라 메뉴를 등록하는 버튼을 보거나 보지 않기 위해 사용 + startActivity(new_intent); + } + }); + + // -- Detailed menu4 - Chicken -- + ImageButton detailedMenu4 = (ImageButton) findViewById(R.id.imageButton4); + detailedMenu4.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Intent new_intent = new Intent(getApplicationContext(), DetailedMenu4.class); + new_intent.putExtra("login_flag", login_flag); + new_intent.putExtra("auth", auth); // Detailed에서 권한에 따라 메뉴를 등록하는 버튼을 보거나 보지 않기 위해 사용 + startActivity(new_intent); + } + }); + + + ImageButton detailedMenu2 = (ImageButton) findViewById(R.id.imageButton2); + detailedMenu2.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Intent intent = new Intent(getApplicationContext(), Menu_no.class); + startActivity(intent); + } + }); + + // 등록 업체가 없음을 알림 + ImageButton detailedMenu3 = (ImageButton) findViewById(R.id.imageButton3); + detailedMenu3.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v){ + Toast.makeText(MainActivity.this, "등록된 업체가 없습니다.", Toast.LENGTH_SHORT).show(); + } + }); + + + + + + //Assign variable vpHorizontal = findViewById(R.id.vp_horizontal); diff --git a/app/src/main/java/com/example/opensource_project/MainAdapter.java b/app/src/main/java/com/example/opensource_project/MainAdapter.java index c2a4c62..92e2bd8 100644 --- a/app/src/main/java/com/example/opensource_project/MainAdapter.java +++ b/app/src/main/java/com/example/opensource_project/MainAdapter.java @@ -21,6 +21,8 @@ public MainAdapter(int[] images){ this.images = images; } + + @NonNull @Override public MainAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { diff --git a/app/src/main/java/com/example/opensource_project/Menu_no.java b/app/src/main/java/com/example/opensource_project/Menu_no.java new file mode 100644 index 0000000..5e04a73 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/Menu_no.java @@ -0,0 +1,27 @@ +package com.example.opensource_project; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.appcompat.app.AppCompatActivity; + +public class Menu_no extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_menu_no); + + Button register = (Button) findViewById(R.id.button5); + register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), RegisterProduct.class); + startActivity(intent); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/opensource_project/Payment.java b/app/src/main/java/com/example/opensource_project/Payment.java new file mode 100644 index 0000000..fcc41f2 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/Payment.java @@ -0,0 +1,24 @@ +package com.example.opensource_project; + +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +public class Payment extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_payment); + + TextView backButton = (TextView) findViewById(R.id.backButton); + backButton.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View view){ + onBackPressed(); + } + }); + + } +} diff --git a/app/src/main/java/com/example/opensource_project/Payment2.java b/app/src/main/java/com/example/opensource_project/Payment2.java new file mode 100644 index 0000000..220df39 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/Payment2.java @@ -0,0 +1,24 @@ +package com.example.opensource_project; + +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +public class Payment2 extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_payment2); + + TextView backButton = (TextView) findViewById(R.id.backButton); + backButton.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View view){ + onBackPressed(); + } + }); + + } +} diff --git a/app/src/main/java/com/example/opensource_project/Practice_db.java b/app/src/main/java/com/example/opensource_project/Practice_db.java new file mode 100644 index 0000000..830295c --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/Practice_db.java @@ -0,0 +1,41 @@ +package com.example.opensource_project; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +import com.example.opensource_project.registration.registrationService; + +public class Practice_db extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_payment); + + + + Button loginbutton = (Button) findViewById(R.id.Login); + Button registButton = (Button) findViewById(R.id.Changeregistration); + + registButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), registrationService.class); + startActivity(intent); + } + }); + + + loginbutton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + + } +} diff --git a/app/src/main/java/com/example/opensource_project/RegisterProduct.java b/app/src/main/java/com/example/opensource_project/RegisterProduct.java new file mode 100644 index 0000000..770d748 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/RegisterProduct.java @@ -0,0 +1,93 @@ +package com.example.opensource_project; + +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +import java.io.InputStream; + +public class RegisterProduct extends AppCompatActivity { + + Button register; + Button load; + ImageView imageview; + Button btnAdd, btnMinus; + TextView tvCount; + int count = 0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register_product); + + register = (Button)findViewById(R.id.button4); + imageview = (ImageView)findViewById(R.id.imageView6); + load = (Button)findViewById(R.id.buttonLoadPic); + load.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(); + intent.setType("image/*"); + intent.setAction(Intent.ACTION_GET_CONTENT); + startActivityForResult(intent, 1); + } + }); + + register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), DetailedMenu2.class); + startActivity(intent); + } + }); + + tvCount = findViewById(R.id.textView11); + tvCount.setText(count + ""); + btnAdd = findViewById(R.id.button3); + btnMinus = findViewById(R.id.button2); + + btnAdd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + count++; + tvCount.setText(count + ""); + } + }); + + btnMinus.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + count--; + tvCount.setText(count+""); + } + }); + + } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // Check which request we're responding to + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 1) { + // Make sure the request was successful + if (resultCode == RESULT_OK) { + try { + // 선택한 이미지에서 비트맵 생성 + InputStream in = getContentResolver().openInputStream(data.getData()); + Bitmap img = BitmapFactory.decodeStream(in); + in.close(); + // 이미지 표시 + imageview.setImageBitmap(img); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/opensource_project/buyProduct.java b/app/src/main/java/com/example/opensource_project/buyProduct.java new file mode 100644 index 0000000..d2477c4 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/buyProduct.java @@ -0,0 +1,50 @@ +package com.example.opensource_project; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +public class buyProduct extends AppCompatActivity { + + Button btnAdd, btnMinus; + TextView tvCount, priCount; + int count = 0; + int pri_chi = 12500; + int price = 0; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_buy_product); + + priCount = findViewById(R.id.textView19); + priCount.setText(price + ""); + tvCount = findViewById(R.id.textView11); + tvCount.setText(count + ""); + btnAdd = findViewById(R.id.button3); + btnMinus = findViewById(R.id.button2); + + btnAdd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + count++; + tvCount.setText(count + ""); + price = count * pri_chi; + priCount.setText(price + ""); + } + }); + + btnMinus.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + count--; + tvCount.setText(count + ""); + price = count * pri_chi; + priCount.setText(price + ""); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/opensource_project/registration/createDatabaseController.java b/app/src/main/java/com/example/opensource_project/registration/createDatabaseController.java new file mode 100644 index 0000000..a435ab2 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/registration/createDatabaseController.java @@ -0,0 +1,26 @@ +package com.example.opensource_project.registration; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +import androidx.annotation.Nullable; + +public class createDatabaseController extends SQLiteOpenHelper { + + + public createDatabaseController(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { + super(context, name, factory, version); + } + + // domain = id, passwd, name, birth... all of these are text type + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL("CREATE TABLE IF NOT EXISTS userTable (id TEXT PRIMARY KEY NOT NULL, pw TEXT NOT NULL, pwCheck TEXT NOT NULL, email TEXT, auth integer );"); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } +} diff --git a/app/src/main/java/com/example/opensource_project/registration/registrationService.java b/app/src/main/java/com/example/opensource_project/registration/registrationService.java new file mode 100644 index 0000000..7fbd046 --- /dev/null +++ b/app/src/main/java/com/example/opensource_project/registration/registrationService.java @@ -0,0 +1,171 @@ +package com.example.opensource_project.registration; + +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.nfc.Tag; +import android.os.Bundle; +import android.util.Log; +import android.util.Patterns; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; +import static android.content.ContentValues.TAG; + + + +import com.example.opensource_project.R; +import com.example.opensource_project.registration.createDatabaseController; + +import java.util.regex.Pattern; + +public class registrationService extends AppCompatActivity { + + // 회원가입 버튼을 동작하게 하는 flag + boolean signUpIsOk = false; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.avtivity_registration); + + // domain = id, passwd, name, birth... all of these are text type (파일 상 변수이름들) + // 실제 도메인(유저 입력값) = id, pqsswd, passwdCheck, email address + + + // 중복확인 버튼 + Button buttonForDuplication = (Button) findViewById(R.id.checkDuplicate); + buttonForDuplication.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + boolean flag = false; + String userId, cmp; + EditText getUserSting; + createDatabaseController mainDB = new createDatabaseController(getApplicationContext(), "Maindb", null, 1); + + getUserSting = (EditText) findViewById(R.id.editTextID); // 유저 아이디 입력 --> 가져오기 + userId = getUserSting.getText().toString(); // String으로 뽑아내기 + + SQLiteDatabase database; // Sqlite db 연결을 위한 객체 + database = mainDB.getReadableDatabase(); // Maindb의 데이터 내용을 가져옴 + mainDB.onCreate(database); + + Cursor cursor; + cursor = database.rawQuery("SELECT * FROM userTable", null); + cursor.moveToFirst(); + cmp = cursor.getString(0); // 에러 유발 지점: 해결 --> cursor 이동과 getString 개념 잘 숙지할 것 + + flag = cmp.equals(userId); + + if(userId == null || userId.equals("") || userId.length() == 0 ){ + Toast.makeText(getApplicationContext(), "아이디를 입력하세요.", Toast.LENGTH_SHORT).show(); + signUpIsOk = false; // [*예외처리]: 가능한 아이디 중복 검사 이후 빈칸 만들고 다시 재검사 + return; + } + + do{ + cmp = cursor.getString(0); + + Log.d(TAG, "Inserted Data: " + userId); + Log.d(TAG, "Comparing ID: " + cmp); + + if(cmp.equals(userId)){ + Toast.makeText(getApplicationContext(), " 중복된 아이디가 존재합니다.", Toast.LENGTH_LONG).show(); + flag = true; + signUpIsOk = false; // [*예외처리]: 가능한 아이디 중복 검사 이후 중복된 아이디 입력하고 다시 재검사 + break; + } + }while (cursor.moveToNext());// 에러 유발 지점1 - 이미 위에서 첫번째 cursor item의 string을 가지고 왔는데, while 조건문이 처음에 + // 실행되면서 cursor가 이동한다. 따라서 두번째부터 비교를 시작하고 중복된 아이디를 찾을 수 없음 + Log.d(TAG, "사용자 테이블 비교 끝"); + + if (!flag){ + Toast.makeText(getApplicationContext(), " 사용 가능한 아이디입니다!", Toast.LENGTH_SHORT).show(); + signUpIsOk = true; + } + + } + }); + + // 회원가입 버튼 + Button buttonForRgst = (Button) findViewById(R.id.registration); + buttonForRgst.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + // 중복확인을 정상적으로 진행하지 않았을 때, 회원가입 진행을 막음 + if(signUpIsOk == false){ + Toast.makeText(getApplicationContext(), "ID 중복 검사를 실행하세요.", Toast.LENGTH_LONG).show(); + return; + }; + + createDatabaseController mainDB = new createDatabaseController(getApplicationContext(), "Maindb",null, 1); + SQLiteDatabase database; + + database = mainDB.getWritableDatabase(); + mainDB.onCreate(database); + + EditText idText, pwText, pwCheckText, emailText; + idText = (EditText) findViewById(R.id.editTextID); + pwText = (EditText) findViewById(R.id.editTextPW); + pwCheckText = (EditText) findViewById(R.id.editTextPWcheck); + emailText = (EditText) findViewById(R.id.editTextEmail); + + // matches의 올바른 parameter로 바꾸기 위해 CharSequence로 casting + CharSequence email = (CharSequence) emailText.getText(); + CharSequence pw = (CharSequence) pwText.getText(); + + // ** 회원가입 유효성 체크 + + //비밀번호 유효성 + if(!Pattern.matches("^(?=.*\\d)(?=.*[~`!@#$%\\^&*()-])(?=.*[a-zA-Z]).{8,20}$", pw)) + { + Toast.makeText(getApplicationContext(),"비밀번호 형식을 지켜주세요.",Toast.LENGTH_SHORT).show(); + return; + } + + // 비밀번호 확인 검사 + if (!pw.toString().equals(pwCheckText.getText().toString())){ + Toast.makeText(getApplicationContext(), "비밀번호가 일치하지 않습니다.", Toast.LENGTH_SHORT).show(); + return; + } + + // 이메일 형식 체크 + if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()) { + Toast.makeText(getApplicationContext(),"이메일 형식이 아닙니다",Toast.LENGTH_SHORT).show(); + return; + } + + + + + + // 다음번엔 조금 더 쉬운 db.insert();를 사용해 보자. + String query = "INSERT INTO userTable VALUES(" + + "'" + idText.getText().toString() + "', " + + "'" + pwText.getText().toString() + "', " + + "'" + pwCheckText.getText().toString() + "', " + + "'" + emailText.getText().toString() + "'," + + "1);"; + + database.execSQL(query); + database.close(); + Toast.makeText(getApplicationContext(), "회원가입 완료!", Toast.LENGTH_LONG).show(); + finish(); + } + }); + + + // 취소 버튼 + Button buttonForCancel = (Button) findViewById(R.id.cancel); + buttonForCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/bbq.jpg b/app/src/main/res/drawable-v24/bbq.jpg new file mode 100644 index 0000000..cf903df Binary files /dev/null and b/app/src/main/res/drawable-v24/bbq.jpg differ diff --git a/app/src/main/res/drawable-v24/bhc.png b/app/src/main/res/drawable-v24/bhc.png new file mode 100644 index 0000000..9057509 Binary files /dev/null and b/app/src/main/res/drawable-v24/bhc.png differ diff --git a/app/src/main/res/drawable-v24/fish.png b/app/src/main/res/drawable-v24/fish.png index 0d3c955..134ab48 100644 Binary files a/app/src/main/res/drawable-v24/fish.png and b/app/src/main/res/drawable-v24/fish.png differ diff --git a/app/src/main/res/drawable-v24/lafoora_main.png b/app/src/main/res/drawable-v24/lafoora_main.png index 286142b..9b7e1df 100644 Binary files a/app/src/main/res/drawable-v24/lafoora_main.png and b/app/src/main/res/drawable-v24/lafoora_main.png differ diff --git a/app/src/main/res/drawable-v24/lfr.png b/app/src/main/res/drawable-v24/lfr.png new file mode 100644 index 0000000..7a38fe0 Binary files /dev/null and b/app/src/main/res/drawable-v24/lfr.png differ diff --git a/app/src/main/res/drawable-v24/lfr_black.png b/app/src/main/res/drawable-v24/lfr_black.png new file mode 100644 index 0000000..da4b897 Binary files /dev/null and b/app/src/main/res/drawable-v24/lfr_black.png differ diff --git a/app/src/main/res/drawable-v24/lfr_logo.png b/app/src/main/res/drawable-v24/lfr_logo.png new file mode 100644 index 0000000..dbf4137 Binary files /dev/null and b/app/src/main/res/drawable-v24/lfr_logo.png differ diff --git a/app/src/main/res/drawable-v24/menu2.png b/app/src/main/res/drawable-v24/menu2.png index 5dce818..5773764 100644 Binary files a/app/src/main/res/drawable-v24/menu2.png and b/app/src/main/res/drawable-v24/menu2.png differ diff --git a/app/src/main/res/drawable-v24/menu3.png b/app/src/main/res/drawable-v24/menu3.png index f37cbb9..b85bdcb 100644 Binary files a/app/src/main/res/drawable-v24/menu3.png and b/app/src/main/res/drawable-v24/menu3.png differ diff --git a/app/src/main/res/drawable-v24/menu4.png b/app/src/main/res/drawable-v24/menu4.png index 985b528..cdb2dc2 100644 Binary files a/app/src/main/res/drawable-v24/menu4.png and b/app/src/main/res/drawable-v24/menu4.png differ diff --git a/app/src/main/res/drawable-v24/pelicana.jpg b/app/src/main/res/drawable-v24/pelicana.jpg new file mode 100644 index 0000000..127976a Binary files /dev/null and b/app/src/main/res/drawable-v24/pelicana.jpg differ diff --git a/app/src/main/res/drawable/borderline.xml b/app/src/main/res/drawable/borderline.xml new file mode 100644 index 0000000..838045a --- /dev/null +++ b/app/src/main/res/drawable/borderline.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/domino_black_tiger.jpg b/app/src/main/res/drawable/domino_black_tiger.jpg new file mode 100644 index 0000000..2420b84 Binary files /dev/null and b/app/src/main/res/drawable/domino_black_tiger.jpg differ diff --git a/app/src/main/res/drawable/dominopizza.jpg b/app/src/main/res/drawable/dominopizza.jpg new file mode 100644 index 0000000..d532acb Binary files /dev/null and b/app/src/main/res/drawable/dominopizza.jpg differ diff --git a/app/src/main/res/drawable/goobne.png b/app/src/main/res/drawable/goobne.png new file mode 100644 index 0000000..1da0687 Binary files /dev/null and b/app/src/main/res/drawable/goobne.png differ diff --git a/app/src/main/res/drawable/halfandhalf_chicken.png b/app/src/main/res/drawable/halfandhalf_chicken.png new file mode 100644 index 0000000..983aafe Binary files /dev/null and b/app/src/main/res/drawable/halfandhalf_chicken.png differ diff --git a/app/src/main/res/drawable/lafooras.png b/app/src/main/res/drawable/lafooras.png index 8765c0b..4796eeb 100644 Binary files a/app/src/main/res/drawable/lafooras.png and b/app/src/main/res/drawable/lafooras.png differ diff --git a/app/src/main/res/drawable/nenechicken.jpg b/app/src/main/res/drawable/nenechicken.jpg new file mode 100644 index 0000000..575b285 Binary files /dev/null and b/app/src/main/res/drawable/nenechicken.jpg differ diff --git a/app/src/main/res/drawable/pizzahut.png b/app/src/main/res/drawable/pizzahut.png new file mode 100644 index 0000000..5ac22e7 Binary files /dev/null and b/app/src/main/res/drawable/pizzahut.png differ diff --git a/app/src/main/res/drawable/pizzamaru.jpg b/app/src/main/res/drawable/pizzamaru.jpg new file mode 100644 index 0000000..5fef561 Binary files /dev/null and b/app/src/main/res/drawable/pizzamaru.jpg differ diff --git a/app/src/main/res/drawable/pizzaschool.jpg b/app/src/main/res/drawable/pizzaschool.jpg new file mode 100644 index 0000000..0b1f6ea Binary files /dev/null and b/app/src/main/res/drawable/pizzaschool.jpg differ diff --git a/app/src/main/res/drawable/radius.xml b/app/src/main/res/drawable/radius.xml new file mode 100644 index 0000000..4b95d8c --- /dev/null +++ b/app/src/main/res/drawable/radius.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_icon.jpg b/app/src/main/res/drawable/search_icon.jpg new file mode 100644 index 0000000..1801b4f Binary files /dev/null and b/app/src/main/res/drawable/search_icon.jpg differ diff --git a/app/src/main/res/layout/activity_buy_product.xml b/app/src/main/res/layout/activity_buy_product.xml new file mode 100644 index 0000000..305daa2 --- /dev/null +++ b/app/src/main/res/layout/activity_buy_product.xml @@ -0,0 +1,155 @@ + + + + + + + + + +