diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..eb0a674 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +smash \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index af16d98..0000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index a2175f7..3e22da3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,21 +3,61 @@ diff --git a/app/assets b/app/assets new file mode 100644 index 0000000..e69de29 diff --git a/app/build.gradle b/app/build.gradle index dfdee67..9baf1ff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.android.application' + id 'com.google.gms.google-services' } android { @@ -32,6 +33,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'com.google.firebase:firebase-auth:21.0.5' + implementation 'com.google.firebase:firebase-database:20.0.5' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..20bf952 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,39 @@ +{ + "project_info": { + "project_number": "13141737605", + "project_id": "smash-f5803", + "storage_bucket": "smash-f5803.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:13141737605:android:dcfa396893b606241b29ec", + "android_client_info": { + "package_name": "com.example.smash" + } + }, + "oauth_client": [ + { + "client_id": "13141737605-9q68i7gc591aavpou786ca5j2e5j442g.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCgUYXF-Ba1TcYsRMCndrNmL8wBZWXS4B4" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "13141737605-9q68i7gc591aavpou786ca5j2e5j442g.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 61027d2..51990f1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/smash/DBHelper.java b/app/src/main/java/com/example/smash/DBHelper.java index c23ba57..5242a2c 100644 --- a/app/src/main/java/com/example/smash/DBHelper.java +++ b/app/src/main/java/com/example/smash/DBHelper.java @@ -1,11 +1,141 @@ package com.example.smash; +import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; -public class DBHelper extends SQLiteOpenHelper{ +import androidx.annotation.Nullable; + +import java.util.ArrayList; +import java.util.List; + +public class DBHelper extends SQLiteOpenHelper { + + public static final String DBNAME = "DB"; + private SQLiteDatabase userInfo; + static List infoList; + + public DBHelper(@Nullable Context context) { + super(context, "DB", null, 1); + } + + + + @Override + public void onCreate(SQLiteDatabase DB) { + DB.execSQL("create Table LoginDB(school TEXT, user TEXT primary key, password TEXT)"); + DB.execSQL("create Table InfoDB(name TEXT, department TEXT, grade TEXT, interest TEXT, time TEXT, place TEXT)"); + } + + @Override + public void onUpgrade(SQLiteDatabase Login, int oldVersion, int newVersion) { + Login.execSQL("drop Table if exists users"); + } + + public Boolean insertData(String school, String user, String password) { + SQLiteDatabase MyDB = this.getWritableDatabase(); + ContentValues contentValues = new ContentValues(); + contentValues.put("school", school); + contentValues.put("user", user); + contentValues.put("password", password); + long result = MyDB.insert("LoginDB", null, contentValues); + if (result == -1) return false; + else + return true; + } + + public Boolean checkusernamepassword(String school, String user, String password) { + SQLiteDatabase MyDB = this.getWritableDatabase(); + Cursor cursor = MyDB.rawQuery("Select * from LoginDB where school = ? and user = ? and password = ?", new String[]{school, user, password}); + if (cursor.getCount() > 0) + return true; + else + return false; + } + + public Boolean insertInfo(String name, String department, String grade, String interest, String time, String place){ + SQLiteDatabase MyDB = this. getWritableDatabase(); + ContentValues contentValues = new ContentValues(); + contentValues.put("name", name); + contentValues.put("department", department); + contentValues.put("grade", grade); + contentValues.put("interest", interest); + contentValues.put("time", time); + contentValues.put("place", place); + + long result = MyDB.insert("InfoDB", null, contentValues); + if(result == -1) return false; + else + return true; + } + + public List selectInfo(String name, String department, String grade, String interest, String time, String place){ + SQLiteDatabase MyDB = this.getWritableDatabase(); + String SELECT_QUERY = "SELECT*FROM InfoDB where name = ? and department = ? and grade = ? and interest = ? and time = ? and place = ?"; + Cursor cur = MyDB.rawQuery(SELECT_QUERY,new String[]{name, department, grade, interest, time, place}); + + int i=0; + + infoList = new ArrayList<>(); + + while(cur.moveToNext()){ + infoList.add(cur.getString(i)); + i++; + } + + return infoList; + } + +/* + public static final String DBNAME = "Login.db"; + + public DBHelper(@Nullable Context context) { + super(context, "Login.db", null, 1); + } + + @Override + public void onCreate(SQLiteDatabase MyDB) { + MyDB.execSQL("create Table users(school TEXT, user TEXT primary key, password TEXT)"); + } + + @Override + public void onUpgrade(SQLiteDatabase MyDB, int oldVersion, int newVersion) { + MyDB.execSQL("drop Table if exists users"); + } + + public Boolean insertData(String school, String user, String password){ + SQLiteDatabase MyDB = this.getWritableDatabase(); + ContentValues contentValues = new ContentValues(); + contentValues.put("school", school); + contentValues.put("user", user); + contentValues.put("password", password); + long result = MyDB.insert("users", null, contentValues); + if (result==-1) return false; + else + return true; + } + + public Boolean checkusername(String username) { + SQLiteDatabase MyDB = this.getWritableDatabase(); + Cursor cursor = MyDB.rawQuery("Select * from users where username = ?", new String[] {username}); + if (cursor.getCount()>0) + return true; + else + return false; + } + + public Boolean checkusernamepassword(String school, String user, String password) { + SQLiteDatabase db = this.getWritableDatabase(); + Cursor cursor = db.rawQuery("Select * from users where school = ? and user = ? and password = ?", new String[] {school,user,password}); + if (cursor.getCount()>0) + return true; + else + return false; + }*/ + +/* static final String DATABASE_NAME = "test.db"; public DBHelper(Context context, int version){ @@ -23,7 +153,7 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { onCreate(db); } - public void insert(String School, String Name, String PassWord){ + public void Insert(String School, String Name, String PassWord){ SQLiteDatabase db = getWritableDatabase(); db.execSQL("INSERT INTO Person VALUES('"+ School + "', " + Name + ", '"+ PassWord + "')"); db.close(); @@ -57,3 +187,6 @@ public String getResult(){ } } +*/ + +} diff --git a/app/src/main/java/com/example/smash/GetSetNotice.java b/app/src/main/java/com/example/smash/GetSetNotice.java new file mode 100644 index 0000000..dca78f0 --- /dev/null +++ b/app/src/main/java/com/example/smash/GetSetNotice.java @@ -0,0 +1,48 @@ +package com.example.smash; + +import java.util.Date; + +public class GetSetNotice { + + private int profile_image; + private String nickname; + private String title; + private Date write_data; + private String content; + + public int getProfile_image() { return profile_image; } + public void setProfile_image(int profile_image) { this.profile_image = profile_image; } + + public String getNickname() { + return nickname; + } + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getTitle() { return title; } + public void setTitle(String title) { + this.title = title; + } + + public Date getWrite_data() { + return write_data; + } + public void setWrite_data(Date write_data) { + this.write_data = write_data; + } + + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } + + public GetSetNotice(int profile_image, String nickname, String title, Date write_data, String content){ + this.nickname = nickname; + this.title = title; + this.write_data = write_data; + this.content = content; + } +} diff --git a/app/src/main/java/com/example/smash/InfoActivity.java b/app/src/main/java/com/example/smash/InfoActivity.java new file mode 100644 index 0000000..cf996a9 --- /dev/null +++ b/app/src/main/java/com/example/smash/InfoActivity.java @@ -0,0 +1,29 @@ +package com.example.smash; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public class InfoActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.info); + setTitle("Smash"); + + Button okBtn = (Button) findViewById(R.id.okBtn); + + okBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + + } +} diff --git a/app/src/main/java/com/example/smash/LoginActivity.java b/app/src/main/java/com/example/smash/LoginActivity.java index 6f60a13..6efd7bc 100644 --- a/app/src/main/java/com/example/smash/LoginActivity.java +++ b/app/src/main/java/com/example/smash/LoginActivity.java @@ -6,23 +6,59 @@ import android.os.Bundle; import android.view.View; import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + + public class LoginActivity extends AppCompatActivity { - Button login; @Override - protected void onCreate(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); setTitle("Smash"); - Button login = (Button) findViewById(R.id.btn_login); - login.setOnClickListener(new View.OnClickListener() { + Button btn_login = (Button) findViewById(R.id.btn_login); + Button btn_signup = findViewById(R.id.btn_signup); + EditText text_school = (EditText) findViewById(R.id.text_school); + EditText text_user = (EditText) findViewById(R.id.text_user); + EditText text_password = (EditText) findViewById(R.id.text_password); + DBHelper DB = new DBHelper(this); + + btn_login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String school = text_school.getText().toString(); + String user = text_user.getText().toString(); + String password = text_password.getText().toString(); + + if (school.equals("") || user.equals("") || password.equals("")) + Toast.makeText(LoginActivity.this, "Fill up all fields", Toast.LENGTH_SHORT).show(); + else { + Boolean checkuserpass = DB.checkusernamepassword(school, user, password); + if (checkuserpass) { + Toast.makeText(LoginActivity.this, "Sign in successful", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(getApplicationContext(), RealMainActivity.class); + startActivity(intent); + } else { + Toast.makeText(LoginActivity.this, "Invalid credentials", Toast.LENGTH_SHORT).show(); + } + } + } + }); + + + + btn_signup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Intent intent = new Intent (getApplicationContext(), SetupActivity.class); + Intent intent = new Intent(getApplicationContext(), SignupActivity.class); startActivity(intent); } }); } + + + } \ No newline at end of file diff --git a/app/src/main/java/com/example/smash/MainActivity.java b/app/src/main/java/com/example/smash/MainActivity.java index fa9890e..63542f4 100644 --- a/app/src/main/java/com/example/smash/MainActivity.java +++ b/app/src/main/java/com/example/smash/MainActivity.java @@ -21,6 +21,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { Button StuRoomBtn = (Button) findViewById(R.id.StudyRoomBtn1); Button InfoBtn = (Button) findViewById(R.id.infoBtn); + Button settingBtn = (Button) findViewById(R.id.SettingBtn); + Button logoutBtn = (Button) findViewById(R.id.logoutBtn); + Button makeRoomBtn = (Button) findViewById(R.id.makeRoomBtn); StuRoomBtn.setOnClickListener(new View.OnClickListener() { @Override @@ -31,12 +34,34 @@ public void onClick(View view) { }); InfoBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), InfoActivity.class); + startActivity(intent); + } + }); + settingBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(getApplicationContext(), SetupActivity.class); startActivity(intent); } }); + logoutBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + makeRoomBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + } diff --git a/app/src/main/java/com/example/smash/MakeNoticeActivity.java b/app/src/main/java/com/example/smash/MakeNoticeActivity.java new file mode 100644 index 0000000..ef73685 --- /dev/null +++ b/app/src/main/java/com/example/smash/MakeNoticeActivity.java @@ -0,0 +1,49 @@ +package com.example.smash; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.example.smash.LoginActivity; +import com.example.smash.MainActivity; + +public class MakeNoticeActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.notice_chat); + setTitle("Smash"); + + Button makeRoom = (Button) findViewById(R.id.uploadBtn); + Button makeBack = (Button) findViewById(R.id.Backbutton); + Button logoutBtn = (Button) findViewById(R.id.makeNoticeLogout); + + makeRoom.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + makeBack.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + logoutBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/smash/MakeRoomActivity.java b/app/src/main/java/com/example/smash/MakeRoomActivity.java new file mode 100644 index 0000000..5d615b6 --- /dev/null +++ b/app/src/main/java/com/example/smash/MakeRoomActivity.java @@ -0,0 +1,30 @@ +package com.example.smash; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.example.smash.MainActivity; + +public class MakeRoomActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.make_room); + setTitle("Smash"); + + Button makeRoom = (Button) findViewById(R.id.makeRoom); + + makeRoom.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/smash/NoticeActivity.java b/app/src/main/java/com/example/smash/NoticeActivity.java new file mode 100644 index 0000000..12f48a9 --- /dev/null +++ b/app/src/main/java/com/example/smash/NoticeActivity.java @@ -0,0 +1,83 @@ +package com.example.smash; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ListView; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import java.util.ArrayList; +import java.util.Date; + +public class NoticeActivity extends AppCompatActivity { + + ListView listView; + NoticeListAdapter noticeListAdapter; + ArrayList list_itemArrayList; + + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + + Button noticeBack = (Button) findViewById(R.id.noticeBack); + Button noticeOnOff = (Button) findViewById(R.id.noticeOnOff); + + noticeBack.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), RealMainActivity.class); + startActivity(intent); + } + }); + noticeOnOff.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + + super.onCreate(savedInstanceState); + setContentView(R.layout.notice); + listView = (ListView) findViewById(R.id.listView); + Button roomInfo = (Button) findViewById(R.id.RoomInfo); + Button scheBtn = (Button) findViewById(R.id.ScheduleBtn); + Button noticeBtn = (Button) findViewById(R.id.noticeBtn); + + list_itemArrayList = new ArrayList(); + + list_itemArrayList.add( + new GetSetNotice(R.mipmap.ic_launcher,"최지원", "모바일프로그래밍 스터디", + new Date(System.currentTimeMillis()), "모프 과제 같이해요")); + list_itemArrayList.add( + new GetSetNotice(R.mipmap.ic_launcher,"박태연", "컴퓨터알고리즘", + new Date(System.currentTimeMillis()), "컴알 팀플방")); + list_itemArrayList.add( + new GetSetNotice(R.mipmap.ic_launcher,"하재민", "자바웹애플리케이션", + new Date(System.currentTimeMillis()), "서버 같이 만들어요")); + list_itemArrayList.add( + new GetSetNotice(R.mipmap.ic_launcher,"누구게", "모바일프로그래밍 스터디", + new Date(System.currentTimeMillis()), "DB 어떻게해요")); + + noticeListAdapter = new NoticeListAdapter(NoticeActivity.this, list_itemArrayList); + listView.setAdapter(noticeListAdapter); + + roomInfo.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), RoomActivity.class); + startActivity(intent); + } + }); + scheBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), ScheduleActivity.class); + startActivity(intent); + } + }); + } +} diff --git a/app/src/main/java/com/example/smash/NoticeListAdapter.java b/app/src/main/java/com/example/smash/NoticeListAdapter.java new file mode 100644 index 0000000..0311daa --- /dev/null +++ b/app/src/main/java/com/example/smash/NoticeListAdapter.java @@ -0,0 +1,67 @@ +package com.example.smash; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +import org.w3c.dom.Text; + +import java.util.ArrayList; + + + +public class NoticeListAdapter extends BaseAdapter { + Context context; + ArrayList list_itemArrayList; + + TextView nickname_textView; + TextView title_textView; + TextView date_textView; + TextView content_textView; + ImageView profile_imageView; + + public NoticeListAdapter(Context context, ArrayListlist_itemArrayList){ + this.context = context; + this.list_itemArrayList = list_itemArrayList; + } + + @Override + public int getCount() { + return list_itemArrayList.size(); + } + + @Override + public Object getItem(int position) { + return list_itemArrayList.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if(convertView==null){ + convertView = LayoutInflater.from(context).inflate(R.layout.item,null); + nickname_textView = (TextView) convertView.findViewById(R.id.nickname_textview); + content_textView = (TextView) convertView.findViewById(R.id.content_textview); + date_textView = (TextView) convertView.findViewById(R.id.date_textview); + title_textView = (TextView) convertView.findViewById(R.id.title_textview); + profile_imageView = (ImageView) convertView.findViewById(R.id.profile_imageview); + } + nickname_textView.setText(list_itemArrayList.get(position).getNickname()); + title_textView.setText(list_itemArrayList.get(position).getTitle()); + content_textView.setText(list_itemArrayList.get(position).getContent()); + date_textView.setText(list_itemArrayList.get(position).getWrite_data().toString()); + profile_imageView.setImageResource(list_itemArrayList.get(position).getProfile_image()); + return convertView; + } +} diff --git a/app/src/main/java/com/example/smash/RealMainActivity.java b/app/src/main/java/com/example/smash/RealMainActivity.java new file mode 100644 index 0000000..fe14b2e --- /dev/null +++ b/app/src/main/java/com/example/smash/RealMainActivity.java @@ -0,0 +1,53 @@ +package com.example.smash; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public class RealMainActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.realmain); + setTitle("Smash"); + + Button onOffBtn = (Button) findViewById(R.id.onoffBtn); + Button searchBtn = (Button) findViewById(R.id.searchBtn); + Button myNoticeBtn = (Button) findViewById(R.id.myNoticeBtn); + Button myInfoBtn = (Button) findViewById(R.id.myInfoBtn); + + onOffBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + searchBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } + }); + myNoticeBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), NoticeActivity.class); + startActivity(intent); + } + }); + myInfoBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), InfoActivity.class); + startActivity(intent); + } + }); + + } +} diff --git a/app/src/main/java/com/example/smash/RoomActivity.java b/app/src/main/java/com/example/smash/RoomActivity.java index 096d6e5..d93efb6 100644 --- a/app/src/main/java/com/example/smash/RoomActivity.java +++ b/app/src/main/java/com/example/smash/RoomActivity.java @@ -1,6 +1,8 @@ package com.example.smash; +import android.content.Intent; import android.os.Bundle; +import android.view.View; import android.widget.Button; import androidx.annotation.Nullable; @@ -8,7 +10,7 @@ public class RoomActivity extends AppCompatActivity { - Button JoinBtn; + static int a = 0; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -16,5 +18,31 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { setContentView(R.layout.room); Button JoinBtn = (Button) findViewById(R.id.JoinBtn); + Button scheBtn = (Button) findViewById(R.id.ScheduleBtn); + Button noticeBtn = (Button) findViewById(R.id.noticeBtn); + + scheBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), ScheduleActivity.class); + startActivity(intent); + } + }); + noticeBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(getApplicationContext(), NoticeActivity.class); + startActivity(intent); + } + }); + JoinBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + a = 1; + Intent intent = new Intent(getApplicationContext(), RealMainActivity.class); + startActivity(intent); + } + }); + } } diff --git a/app/src/main/java/com/example/smash/Saturday.java b/app/src/main/java/com/example/smash/Saturday.java new file mode 100644 index 0000000..b54d764 --- /dev/null +++ b/app/src/main/java/com/example/smash/Saturday.java @@ -0,0 +1,13 @@ +package com.example.smash; + +import androidx.appcompat.app.AppCompatActivity; + +import java.util.Calendar; + +public class Saturday extends AppCompatActivity { + private final Calendar calendar = Calendar.getInstance(); + + public Saturday(){ + + } +} diff --git a/app/src/main/java/com/example/smash/ScheduleActivity.java b/app/src/main/java/com/example/smash/ScheduleActivity.java new file mode 100644 index 0000000..6c59cf1 --- /dev/null +++ b/app/src/main/java/com/example/smash/ScheduleActivity.java @@ -0,0 +1,178 @@ +package com.example.smash; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.CalendarView; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import java.io.FileInputStream; +import java.io.FileOutputStream; + +public class ScheduleActivity extends AppCompatActivity +{ + public String readDay = null; + public String str = null; + public CalendarView calendarView; + public Button cha_Btn, del_Btn, save_Btn; + public TextView diaryTextView, textView2, textView3; + public EditText contextEditText; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.schedule); + calendarView = findViewById(R.id.calendarView); + diaryTextView = findViewById(R.id.dateView); + save_Btn = findViewById(R.id.save_Btn); + del_Btn = findViewById(R.id.del_Btn); + cha_Btn = findViewById(R.id.cha_Btn); + textView2 = findViewById(R.id.textView2); + textView3 = findViewById(R.id.textView3); + contextEditText = findViewById(R.id.contextEditText); + + calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() + { + @Override + public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) + { + diaryTextView.setVisibility(View.VISIBLE); + save_Btn.setVisibility(View.VISIBLE); + contextEditText.setVisibility(View.VISIBLE); + textView2.setVisibility(View.INVISIBLE); + cha_Btn.setVisibility(View.INVISIBLE); + del_Btn.setVisibility(View.INVISIBLE); + diaryTextView.setText(String.format("%d / %d / %d", year, month + 1, dayOfMonth)); + contextEditText.setText(""); + checkDay(year, month, dayOfMonth); + } + }); + save_Btn.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View view) + { + saveDiary(readDay); + str = contextEditText.getText().toString(); + textView2.setText(str); + save_Btn.setVisibility(View.INVISIBLE); + cha_Btn.setVisibility(View.VISIBLE); + del_Btn.setVisibility(View.VISIBLE); + contextEditText.setVisibility(View.INVISIBLE); + textView2.setVisibility(View.VISIBLE); + + } + }); + } + + public void checkDay(int cYear, int cMonth, int cDay) + { + readDay = "" + cYear + "-" + (cMonth + 1) + "" + "-" + cDay + ".txt"; + FileInputStream fis; + + try + { + fis = openFileInput(readDay); + + byte[] fileData = new byte[fis.available()]; + fis.read(fileData); + fis.close(); + + str = new String(fileData); + + contextEditText.setVisibility(View.INVISIBLE); + textView2.setVisibility(View.VISIBLE); + textView2.setText(str); + + save_Btn.setVisibility(View.INVISIBLE); + cha_Btn.setVisibility(View.VISIBLE); + del_Btn.setVisibility(View.VISIBLE); + + cha_Btn.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View view) + { + contextEditText.setVisibility(View.VISIBLE); + textView2.setVisibility(View.INVISIBLE); + contextEditText.setText(str); + + save_Btn.setVisibility(View.VISIBLE); + cha_Btn.setVisibility(View.INVISIBLE); + del_Btn.setVisibility(View.INVISIBLE); + textView2.setText(contextEditText.getText()); + } + + }); + del_Btn.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View view) + { + textView2.setVisibility(View.INVISIBLE); + contextEditText.setText(""); + contextEditText.setVisibility(View.VISIBLE); + save_Btn.setVisibility(View.VISIBLE); + cha_Btn.setVisibility(View.INVISIBLE); + del_Btn.setVisibility(View.INVISIBLE); + removeDiary(readDay); + } + }); + if (textView2.getText() == null) + { + textView2.setVisibility(View.INVISIBLE); + diaryTextView.setVisibility(View.VISIBLE); + save_Btn.setVisibility(View.VISIBLE); + cha_Btn.setVisibility(View.INVISIBLE); + del_Btn.setVisibility(View.INVISIBLE); + contextEditText.setVisibility(View.VISIBLE); + } + + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @SuppressLint("WrongConstant") + public void removeDiary(String readDay) + { + FileOutputStream fos; + try + { + fos = openFileOutput(readDay, MODE_NO_LOCALIZED_COLLATORS); + String content = ""; + fos.write((content).getBytes()); + fos.close(); + + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @SuppressLint("WrongConstant") + public void saveDiary(String readDay) + { + FileOutputStream fos; + try + { + fos = openFileOutput(readDay, MODE_NO_LOCALIZED_COLLATORS); + String content = contextEditText.getText().toString(); + fos.write((content).getBytes()); + fos.close(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/smash/SetupActivity.java b/app/src/main/java/com/example/smash/SetupActivity.java index c2ae136..e3a7647 100644 --- a/app/src/main/java/com/example/smash/SetupActivity.java +++ b/app/src/main/java/com/example/smash/SetupActivity.java @@ -9,34 +9,87 @@ import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import org.w3c.dom.Text; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + public class SetupActivity extends AppCompatActivity { - TextView NameText; - EditText NameEdt; - Button SettingBtn; + private List infoList; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.setup); + setTitle("Smash"); + + Button settingBtn = (Button) findViewById(R.id.SettingBtn); + EditText nameTxt = (EditText) findViewById(R.id.NameEdt); + EditText interestTxt = (EditText) findViewById(R.id.InterestEdt); + EditText timeTxt = (EditText) findViewById(R.id.TimeEdt); + EditText placeTxt = (EditText) findViewById(R.id.PlaceEdt); + Spinner departmentSpinner = (Spinner) findViewById(R.id.DepartmentSpinner); + Spinner gradeSpinner = (Spinner) findViewById(R.id.GradeSpinner); + DBHelper DB = new DBHelper(this); + + TextView infoName = (TextView) findViewById(R.id.infoName); + TextView infoDepartment = (TextView) findViewById(R.id.infoDepartment); + TextView infoGrade = (TextView) findViewById(R.id.infoGrade); + TextView infoInterest = (TextView) findViewById(R.id.infoInterest); + TextView infoTime = (TextView) findViewById(R.id.infoTime); + TextView infoPlace = (TextView) findViewById(R.id.infoPlace); + - Spinner spinner = findViewById(R.id.DepartmentSpinner); - Spinner spinner1 = findViewById(R.id.GradeSpinner); - Button Setting = (Button) findViewById(R.id.SettingBtn); - Setting.setOnClickListener(new View.OnClickListener() { + settingBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Intent intent = new Intent(getApplicationContext(), MainActivity.class); - startActivity(intent); + String name = nameTxt.getText().toString(); + String interest = interestTxt.getText().toString(); + String time = timeTxt.getText().toString(); + String place = placeTxt.getText().toString(); + String department = (String) departmentSpinner.getSelectedItem(); + String grade = (String) gradeSpinner.getSelectedItem(); + + if(name.equals("") || interest.equals("") || time.equals("") || place.equals("") || department.equals("") || grade.equals("")) + Toast.makeText(SetupActivity.this, "빈칸이 존재합니다!", Toast.LENGTH_SHORT).show(); + else{ + + Boolean insertInfo = DB.insertInfo(name, department, grade, interest, time, place); + if(insertInfo){ + Toast.makeText(SetupActivity.this, "설정 완료", Toast.LENGTH_SHORT).show(); + infoList = DB.selectInfo(name, department, grade, interest, time, place); + Iterator iterator = infoList.iterator(); + while(iterator.hasNext()){ + infoName.setText(iterator.next()); + infoDepartment.setText(iterator.next()); + infoGrade.setText(iterator.next()); + infoInterest.setText(iterator.next()); + infoTime.setText(iterator.next()); + infoPlace.setText(iterator.next()); + } + + Intent intent = new Intent(getApplicationContext(), RealMainActivity.class); + startActivity(intent); + }else{ + Toast.makeText(SetupActivity.this, "설정 실패", Toast.LENGTH_SHORT).show(); + } + + //List selectInfo = DB.selectInfo(); + + + } + + } }); - } + } diff --git a/app/src/main/java/com/example/smash/SignupActivity.java b/app/src/main/java/com/example/smash/SignupActivity.java new file mode 100644 index 0000000..df36032 --- /dev/null +++ b/app/src/main/java/com/example/smash/SignupActivity.java @@ -0,0 +1,60 @@ +package com.example.smash; + +import android.content.Intent; +import android.database.sqlite.SQLiteDatabase; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +public class SignupActivity extends AppCompatActivity { + + SQLiteDatabase sqlDB; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.signup); + setTitle("Smash"); + + EditText text_school = (EditText) findViewById(R.id.text_school); + EditText text_user = (EditText) findViewById(R.id.text_user); + EditText text_password = (EditText) findViewById(R.id.text_password); + Button btn_signup = (Button) findViewById(R.id.btn_signup); + Button btn_signin = (Button) findViewById(R.id.btn_signin); + DBHelper DB = new DBHelper(this); + + btn_signup.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String school = text_school.getText().toString(); + String user = text_user.getText().toString(); + String password = text_password.getText().toString(); + + if (school.equals("") || user.equals("") || password.equals("")) + Toast.makeText(SignupActivity.this, "빈칸이 있습니다!", Toast.LENGTH_SHORT).show(); + else { + Boolean insert = DB.insertData(school, user, password); + if (insert == true) { + Toast.makeText(SignupActivity.this, "가입완료!", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(getApplicationContext(), SetupActivity.class); + startActivity(intent); + } else { + Toast.makeText(SignupActivity.this, "가입실패!", Toast.LENGTH_SHORT).show(); + } + } + } + }); + + btn_signin.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/add.png b/app/src/main/res/drawable-v24/add.png new file mode 100644 index 0000000..3d0b46f Binary files /dev/null and b/app/src/main/res/drawable-v24/add.png differ diff --git a/app/src/main/res/drawable-v24/add2.png b/app/src/main/res/drawable-v24/add2.png new file mode 100644 index 0000000..293d4bf Binary files /dev/null and b/app/src/main/res/drawable-v24/add2.png differ diff --git a/app/src/main/res/drawable-v24/back.png b/app/src/main/res/drawable-v24/back.png new file mode 100644 index 0000000..a509fcb Binary files /dev/null and b/app/src/main/res/drawable-v24/back.png differ diff --git a/app/src/main/res/drawable-v24/back2.png b/app/src/main/res/drawable-v24/back2.png new file mode 100644 index 0000000..99466fe Binary files /dev/null and b/app/src/main/res/drawable-v24/back2.png differ diff --git a/app/src/main/res/drawable-v24/mainreal.png b/app/src/main/res/drawable-v24/mainreal.png new file mode 100644 index 0000000..a8764a9 Binary files /dev/null and b/app/src/main/res/drawable-v24/mainreal.png differ diff --git a/app/src/main/res/drawable-v24/my.png b/app/src/main/res/drawable-v24/my.png new file mode 100644 index 0000000..5b2190f Binary files /dev/null and b/app/src/main/res/drawable-v24/my.png differ diff --git a/app/src/main/res/drawable-v24/new_add.png b/app/src/main/res/drawable-v24/new_add.png new file mode 100644 index 0000000..9eb98f2 Binary files /dev/null and b/app/src/main/res/drawable-v24/new_add.png differ diff --git a/app/src/main/res/drawable-v24/on_off_button.png b/app/src/main/res/drawable-v24/on_off_button.png new file mode 100644 index 0000000..07b6ac0 Binary files /dev/null and b/app/src/main/res/drawable-v24/on_off_button.png differ diff --git a/app/src/main/res/drawable-v24/onoff.png b/app/src/main/res/drawable-v24/onoff.png new file mode 100644 index 0000000..1dce2a7 Binary files /dev/null and b/app/src/main/res/drawable-v24/onoff.png differ diff --git a/app/src/main/res/drawable-v24/serch.png b/app/src/main/res/drawable-v24/serch.png new file mode 100644 index 0000000..891fb05 Binary files /dev/null and b/app/src/main/res/drawable-v24/serch.png differ diff --git a/app/src/main/res/drawable-v24/setting.png b/app/src/main/res/drawable-v24/setting.png new file mode 100644 index 0000000..21bd9fe Binary files /dev/null and b/app/src/main/res/drawable-v24/setting.png differ diff --git a/app/src/main/res/drawable-v24/settings.png b/app/src/main/res/drawable-v24/settings.png new file mode 100644 index 0000000..647bbaf Binary files /dev/null and b/app/src/main/res/drawable-v24/settings.png differ diff --git a/app/src/main/res/drawable-v24/smscolor.png b/app/src/main/res/drawable-v24/smscolor.png new file mode 100644 index 0000000..3628369 Binary files /dev/null and b/app/src/main/res/drawable-v24/smscolor.png differ diff --git a/app/src/main/res/drawable-v24/split2.png b/app/src/main/res/drawable-v24/split2.png new file mode 100644 index 0000000..56e891e Binary files /dev/null and b/app/src/main/res/drawable-v24/split2.png differ diff --git a/app/src/main/res/drawable-v24/split3.png b/app/src/main/res/drawable-v24/split3.png new file mode 100644 index 0000000..85b4b3b Binary files /dev/null and b/app/src/main/res/drawable-v24/split3.png differ diff --git a/app/src/main/res/drawable-v24/split_main.png b/app/src/main/res/drawable-v24/split_main.png new file mode 100644 index 0000000..b654205 Binary files /dev/null and b/app/src/main/res/drawable-v24/split_main.png differ diff --git a/app/src/main/res/drawable-v24/write.png b/app/src/main/res/drawable-v24/write.png new file mode 100644 index 0000000..5532b26 Binary files /dev/null and b/app/src/main/res/drawable-v24/write.png differ diff --git a/app/src/main/res/drawable/border.xml b/app/src/main/res/drawable/border.xml index f5f67be..acd4103 100644 --- a/app/src/main/res/drawable/border.xml +++ b/app/src/main/res/drawable/border.xml @@ -2,7 +2,7 @@ - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/border3.xml b/app/src/main/res/drawable/border3.xml new file mode 100644 index 0000000..ddbe66e --- /dev/null +++ b/app/src/main/res/drawable/border3.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/border3_1.xml b/app/src/main/res/drawable/border3_1.xml new file mode 100644 index 0000000..b0ad7c8 --- /dev/null +++ b/app/src/main/res/drawable/border3_1.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/gradient.xml b/app/src/main/res/drawable/gradient.xml new file mode 100644 index 0000000..f8b4685 --- /dev/null +++ b/app/src/main/res/drawable/gradient.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/join_button_border.xml b/app/src/main/res/drawable/join_button_border.xml index 0b74f3a..fcd34ea 100644 --- a/app/src/main/res/drawable/join_button_border.xml +++ b/app/src/main/res/drawable/join_button_border.xml @@ -6,7 +6,7 @@ android:right="5dp" android:top="5dp"> - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/round2.xml b/app/src/main/res/drawable/round2.xml new file mode 100644 index 0000000..2006ae5 --- /dev/null +++ b/app/src/main/res/drawable/round2.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/round3.xml b/app/src/main/res/drawable/round3.xml new file mode 100644 index 0000000..27cb72e --- /dev/null +++ b/app/src/main/res/drawable/round3.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/student.png b/app/src/main/res/drawable/student.png new file mode 100644 index 0000000..c63bdf1 Binary files /dev/null and b/app/src/main/res/drawable/student.png differ diff --git a/app/src/main/res/font/bm.ttf b/app/src/main/res/font/bm.ttf new file mode 100644 index 0000000..582daf5 Binary files /dev/null and b/app/src/main/res/font/bm.ttf differ diff --git a/app/src/main/res/font/font.xml b/app/src/main/res/font/font.xml new file mode 100644 index 0000000..3fab274 --- /dev/null +++ b/app/src/main/res/font/font.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/nanum.ttf b/app/src/main/res/font/nanum.ttf new file mode 100644 index 0000000..9564297 Binary files /dev/null and b/app/src/main/res/font/nanum.ttf differ diff --git a/app/src/main/res/layout/info.xml b/app/src/main/res/layout/info.xml new file mode 100644 index 0000000..3dbb12d --- /dev/null +++ b/app/src/main/res/layout/info.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +