diff --git a/DdamiApp/app/.idea/assetWizardSettings.xml b/DdamiApp/app/.idea/assetWizardSettings.xml new file mode 100644 index 0000000..4c66d0e --- /dev/null +++ b/DdamiApp/app/.idea/assetWizardSettings.xml @@ -0,0 +1,32 @@ + + + + + + \ No newline at end of file diff --git a/DdamiApp/app/.idea/caches/build_file_checksums.ser b/DdamiApp/app/.idea/caches/build_file_checksums.ser index c1c0f46..fe44f0a 100644 Binary files a/DdamiApp/app/.idea/caches/build_file_checksums.ser and b/DdamiApp/app/.idea/caches/build_file_checksums.ser differ diff --git a/DdamiApp/app/.idea/libraries/Gradle__com_makeramen_roundedimageview_2_3_0_aar.xml b/DdamiApp/app/.idea/libraries/Gradle__com_makeramen_roundedimageview_2_3_0_aar.xml index 4bfa901..b3d218f 100644 --- a/DdamiApp/app/.idea/libraries/Gradle__com_makeramen_roundedimageview_2_3_0_aar.xml +++ b/DdamiApp/app/.idea/libraries/Gradle__com_makeramen_roundedimageview_2_3_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_12_1_jar.xml b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_12_1_jar.xml new file mode 100644 index 0000000..48f6062 --- /dev/null +++ b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_12_1_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml deleted file mode 100644 index 71953a1..0000000 --- a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml new file mode 100644 index 0000000..4dc9ed2 --- /dev/null +++ b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml index 0d5acff..ab7809f 100644 --- a/DdamiApp/app/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml +++ b/DdamiApp/app/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/DdamiApp/app/.idea/libraries/Gradle__de_hdodenhof_circleimageview_2_1_0_aar.xml b/DdamiApp/app/.idea/libraries/Gradle__de_hdodenhof_circleimageview_2_1_0_aar.xml index 5125ac6..9a05ae2 100644 --- a/DdamiApp/app/.idea/libraries/Gradle__de_hdodenhof_circleimageview_2_1_0_aar.xml +++ b/DdamiApp/app/.idea/libraries/Gradle__de_hdodenhof_circleimageview_2_1_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/DdamiApp/app/.idea/libraries/Gradle__gun0912_ted_tedpermission_2_1_0_aar.xml b/DdamiApp/app/.idea/libraries/Gradle__gun0912_ted_tedpermission_2_1_0_aar.xml index 65bb110..7c76004 100644 --- a/DdamiApp/app/.idea/libraries/Gradle__gun0912_ted_tedpermission_2_1_0_aar.xml +++ b/DdamiApp/app/.idea/libraries/Gradle__gun0912_ted_tedpermission_2_1_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/DdamiApp/app/.idea/modules.xml b/DdamiApp/app/.idea/modules.xml index 26963c3..8cce195 100644 --- a/DdamiApp/app/.idea/modules.xml +++ b/DdamiApp/app/.idea/modules.xml @@ -3,7 +3,9 @@ + + \ No newline at end of file diff --git a/DdamiApp/app/.idea/navEditor.xml b/DdamiApp/app/.idea/navEditor.xml index 592b8ad..12c7ae2 100644 --- a/DdamiApp/app/.idea/navEditor.xml +++ b/DdamiApp/app/.idea/navEditor.xml @@ -8,36 +8,41 @@ diff --git a/DdamiApp/app/build.gradle b/DdamiApp/app/build.gradle index 4aa7726..aa95e79 100644 --- a/DdamiApp/app/build.gradle +++ b/DdamiApp/app/build.gradle @@ -96,8 +96,14 @@ dependencies { // implementation 'com.google.firebase:firebase-core:16.0.4' // implementation 'com.google.firebase:firebase-analytics:17.2.2' + //noinspection GradleCompatible implementation 'com.android.support:design:23.2.0' + + //okhttp + implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1' +// implementation 'com.android.support:appcompat-v7:27.1.1' + } repositories { mavenCentral() diff --git a/DdamiApp/app/local.properties b/DdamiApp/app/local.properties index 51b9032..a002008 100644 --- a/DdamiApp/app/local.properties +++ b/DdamiApp/app/local.properties @@ -4,5 +4,5 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Tue Jul 28 00:12:45 KST 2020 -sdk.dir=C\:\\Users\\USER\\AppData\\Local\\Android\\Sdk +#Wed Aug 12 19:38:15 KST 2020 +sdk.dir=C\:\\Users\\Hello\\AppData\\Local\\Android\\Sdk diff --git a/DdamiApp/app/src/main/AndroidManifest.xml b/DdamiApp/app/src/main/AndroidManifest.xml index feb1231..e55e4c7 100644 --- a/DdamiApp/app/src/main/AndroidManifest.xml +++ b/DdamiApp/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - + data, @Nullable Menu menu, int deviceId) { + + } + + @Override + public void onPointerCaptureChanged(boolean hasCapture) { + + } +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/MainActivity.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/MainActivity.java index fe36007..031b672 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/MainActivity.java +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/MainActivity.java @@ -728,6 +728,7 @@ import com.doubleslash.ddamiapp.R; import com.doubleslash.ddamiapp.activity.verification.VerificationActivity; import com.doubleslash.ddamiapp.fragment.ActivitisFragment; +import com.doubleslash.ddamiapp.fragment.GetItemFragment; import com.doubleslash.ddamiapp.fragment.LikeFragment; import com.doubleslash.ddamiapp.fragment.MainFragment; import com.doubleslash.ddamiapp.fragment.MyRoomFragment; @@ -762,7 +763,7 @@ public class MainActivity extends AppCompatActivity { TextView nav_header_program; ImageView nav_profile_img; Fragment fragment; - + String token; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -770,7 +771,7 @@ protected void onCreate(Bundle savedInstanceState) { initViews(); String id = getIntent().getStringExtra("id"); - String token = getIntent().getStringExtra("token"); + token = getIntent().getStringExtra("token"); Toast.makeText(this, "id = " + id + "token = " + token, Toast.LENGTH_LONG).show(); @@ -865,9 +866,15 @@ public void onClick(View v) { @Override public void onClick(View v) { MyRoomFragment myroom = new MyRoomFragment(); + MyRoomFragment myroom2 = new MyRoomFragment(); drawerLayout.closeDrawers(); myroom.setArguments(bundle); + System.out.println(token); + Bundle bundle2 = new Bundle(); + bundle2.putString("token",token); + myroom2.setArguments(bundle2); replaceFragment(myroom); + } }); @@ -879,7 +886,14 @@ public void onClick(View v) { replaceFragment(like); } }); - + nav_shop_like.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + GetItemFragment getItem = new GetItemFragment(); + drawerLayout.closeDrawers(); + replaceFragment(getItem); + } + }); nav_shop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/SavePopUP.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/SavePopUP.java new file mode 100644 index 0000000..972f667 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/SavePopUP.java @@ -0,0 +1,59 @@ +package com.doubleslash.ddamiapp.activity; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.KeyboardShortcutGroup; +import android.view.Menu; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.doubleslash.ddamiapp.R; + +import java.lang.invoke.WrongMethodTypeException; +import java.util.List; + +public class SavePopUP extends Dialog implements View.OnClickListener { + Context context; + Button tempSave, saveCancel; + public static int tempCount = 0; + protected void onCreate(Bundle savedInstanceState){ + super.onCreate(savedInstanceState); + setContentView(R.layout.temp_save_pop_up); + tempSave = findViewById(R.id.tempSave); + saveCancel = findViewById(R.id.saveCancel); + tempSave.setOnClickListener(this); + saveCancel.setOnClickListener(this); + } + public SavePopUP(@NonNull Context context) { + super(context); + this.context = context; + } + + @Override + public void onClick(View view) { + + switch (view.getId()){ + case R.id.tempSave: + tempCount++; + ((WritingActivity)context).finish(); + case R.id.saveCancel: + dismiss(); + break; + } + + } + + @Override + public void onProvideKeyboardShortcuts(List data, @Nullable Menu menu, int deviceId) { + + } + + @Override + public void onPointerCaptureChanged(boolean hasCapture) { + + } +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/WritingActivity.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/WritingActivity.java index 98f8af9..9401bf8 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/WritingActivity.java +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/WritingActivity.java @@ -1,17 +1,27 @@ package com.doubleslash.ddamiapp.activity; import android.Manifest; -import android.app.Activity; +import android.app.ActionBar; +import android.app.AlertDialog; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.graphics.RectF; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; +import android.util.Log; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; @@ -19,8 +29,14 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.FileProvider; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import com.doubleslash.ddamiapp.R; +import com.doubleslash.ddamiapp.db.ManagerDB; +import com.doubleslash.ddamiapp.model.UploadPieceDAO; +import com.doubleslash.ddamiapp.network.kotlin.ApiService; import com.gun0912.tedpermission.PermissionListener; import com.gun0912.tedpermission.TedPermission; @@ -30,6 +46,17 @@ import java.util.ArrayList; import java.util.Date; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +import static com.doubleslash.ddamiapp.activity.SavePopUP.tempCount; +import static com.doubleslash.ddamiapp.db.ManagerDB.managerDB; + public class WritingActivity extends AppCompatActivity { private static final int PICK_ALBUM = 1; private static final int PICK_CAMERA = 2; @@ -37,11 +64,30 @@ public class WritingActivity extends AppCompatActivity { int writingLayoutId = 0, writingImgId=0; static int writing_imgLayoutCount =0; String writing_layout, writing_img; + ArrayList fileUri; + EditText e_writingContent, e_writingTitle; + Cursor cursor; + String filePath; + int column_index; + Bitmap originalBm; + Uri takePhotoUri; + Fragment filterFragment; + FragmentManager manager; + ArrayList bitmapArrayList; + private FragmentTransaction transaction; + ImageView iv; + Button temp; + ArrayList tempFileUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_writing); tedPermission(); + +// filterFragment = new FilterFragment(); +// manager = getSupportFragmentManager(); +// transaction = manager.beginTransaction(); +// transaction.replace(R.id.filter_whole_layout, filterFragment).commitAllowingStateLoss(); findViewById(R.id.btnCamera).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -50,6 +96,8 @@ public void onClick(View view) { takePhoto(); } }); +// filterFragment = getSupportFragmentManager().findFragmentById(R.id.filter_fragment); + findViewById(R.id.btnGallery).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -58,7 +106,25 @@ public void onClick(View view) { goToAlbum(); } }); + managerDB = ManagerDB.getInstance(this); + findViewById(R.id.btnLoading).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + checkSave(); + } + }); + findViewById(R.id.btnReg).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + managerDB.deleteEveryData(); + ImgUpload(); + } + }); + fileUri = new ArrayList<>(); + //0이 거래 대기 + //1이 거래중 + //-1 거래완료 } private void tedPermission(){//권한 요청 함수 PermissionListener permissionListener = new PermissionListener() { @@ -90,16 +156,18 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_ALBUM) { Uri photoUri = data.getData(); - Cursor cursor = null; + cursor = null; try { String[] proj = { MediaStore.Images.Media.DATA }; assert photoUri != null; cursor = getContentResolver().query(photoUri, proj, null, null, null); assert cursor != null; - int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); tempFile = new File(cursor.getString(column_index)); + fileUri.add(cursor.getString(column_index)); + managerDB.addFileUri(cursor.getString(column_index)); } finally { if (cursor != null) { @@ -107,28 +175,44 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten } } setImage(); - - } - else if(requestCode==PICK_ALBUM){ - setImage(); } - if(requestCode==PICK_CAMERA && resultCode==Activity.RESULT_OK){ + else if(requestCode==PICK_CAMERA){ setImage(); } + } + private void setImage(){ int id =0; id = writing_imgLayoutCount; writing_img = "writing_img"+writing_imgLayoutCount; writingImgId = getResources().getIdentifier(writing_img,"id",getPackageName()); System.out.println(writing_img+" ssssssssss"); - ImageView iv = new ImageView(this); + iv = new ImageView(this); iv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); BitmapFactory.Options options = new BitmapFactory.Options(); - Bitmap originalBm = BitmapFactory.decodeFile(tempFile.getAbsolutePath(), options); + originalBm = BitmapFactory.decodeFile(tempFile.getAbsolutePath(), options); iv.setImageBitmap(originalBm); + iv.setId(writingImgId); + getRoundedCornerBitmap(originalBm,6); LinearLayout imgLayout = (LinearLayout)findViewById(R.id.writingImgLayout); imgLayout.addView(iv,300,200); + bitmapArrayList = new ArrayList<>(); + bitmapArrayList.add(originalBm); + } + public Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels){ + Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + Paint paint = new Paint(); + Rect rect = new Rect(0,0,bitmap.getWidth(),bitmap.getHeight()); + RectF rectF = new RectF(rect); + float roundPx = pixels; + paint.setAntiAlias(true); + canvas.drawARGB(0,0,0,0); + canvas.drawRoundRect(rectF,roundPx,roundPx,paint); + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmap, rect,rect,paint); + return output; } private void takePhoto(){ @@ -145,6 +229,8 @@ private void takePhoto(){ intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(this,"{package_name}.fileprovider",tempFile)); startActivityForResult(intent, PICK_CAMERA); } + + } private File createImageFile() throws IOException { @@ -152,11 +238,138 @@ private File createImageFile() throws IOException { String timeStamp = new SimpleDateFormat("HHmmss").format(new Date()); String imageFileName = "ddamiImg01_" + timeStamp + "_"; // 이미지가 저장될 폴더 이름 + filePath = Environment.getExternalStorageDirectory() + "/ddamiImg/"; File storageDir = new File(Environment.getExternalStorageDirectory() + "/ddamiImg/"); if (!storageDir.exists()) storageDir.mkdirs(); // 빈 파일 생성 File image = File.createTempFile(imageFileName, ".jpg", storageDir); return image; } + public void ImgUpload(){ + e_writingContent = findViewById(R.id.writingContent); + e_writingTitle = findViewById(R.id.writingTitle); + ArrayList imgList = new ArrayList<>(); + if(managerDB.FileUriCountDB()>0){ + for(int i = 0; i < managerDB.FileUriCountDB(); i++){ + fileUri.add(managerDB.getFileUri()); + } + } + for(int i = 0; i < fileUri.size(); i++){ + File file = new File(fileUri.get(i)); + RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"),file); + imgList.add(MultipartBody.Part.createFormData("img", file.getName(), requestBody)); + } + + Intent intent = getIntent(); + String token = intent.getStringExtra("token"); + System.out.println(token+"vvvvvvvvvvvvvvvvvvvvvvvvv"); + RequestBody content = RequestBody.create(MediaType.parse("text/plain"),e_writingContent.getText().toString()); + RequestBody title = RequestBody.create(MediaType.parse("text/plain"), e_writingTitle.getText().toString()); + if(e_writingTitle.getText().toString().equals(null) || e_writingTitle.getText().toString().equals(null) ){ + Toast.makeText(getApplicationContext(),"비어져 있는 칸이 있습니다. ", Toast.LENGTH_LONG).show(); + } + else { + ApiService.INSTANCE.getUploadPieceService().UploadPiece( + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZjMyNWZlYjA0Mjk1OTJjYzAwZTcxYTMiLCJ1c2VySWQiOiJ0ZXN0NSIsImlhdCI6MTU5NzQwMDMxMywiZXhwIjoxNTk4MDA1MTEzLCJpc3MiOiJkZGFtaS5jb20iLCJzdWIiOiJ1c2VySW5mbyJ9.HQSTgs72EF9g9udo9U0rb09o81MD4uIk8fy81KuqZpk", + title, content, imgList).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + UploadPieceDAO.UploadPieceResponse result = response.body(); + + Toast.makeText(WritingActivity.this, result.getMessage(), Toast.LENGTH_LONG).show(); + if (result.getState() == 0) { + System.out.println("sdfsdfsdfdfdfsfsdfsd"); + finish(); + } + if (response.isSuccessful()) { + } else { + ResponseBody error = response.errorBody(); + System.out.println(error.toString()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(WritingActivity.this, "글작성 에러", Toast.LENGTH_LONG).show(); + Log.e("글작성 에러", t.getMessage()); + t.printStackTrace(); + } + }); + } + } + public void checkSave() { + try { + LinearLayout imgLayout = findViewById(R.id.writingImgLayout); + if (managerDB.DocumentCountDB() > 0) { + e_writingContent = findViewById(R.id.writingContent); + e_writingTitle = findViewById(R.id.writingTitle); + e_writingContent.setText(managerDB.contentDB()); + e_writingTitle.setText(managerDB.titleDB()); + if (e_writingTitle.getText().toString() == null) + e_writingTitle.setText(""); + if (e_writingContent.getText().toString() == null) + e_writingContent.setText(""); + + if (managerDB.ImgCountDB() > 0) { + LinearLayout linearLayout = new LinearLayout(this); + LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT + ); + linearLayout.setLayoutParams(layoutParams); + writing_img = "writing_img" + writing_imgLayoutCount; + writingImgId = getResources().getIdentifier(writing_img, "id", getPackageName()); + imgLayout = findViewById(R.id.writingImgLayout); + for (int i = 0; i < managerDB.ImgCountDB(); i++) { + iv = new ImageView(this); + iv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); + iv.setImageBitmap(managerDB.imgDB()); + linearLayout.addView(iv,300,200); + } + imgLayout.addView(linearLayout); + + } + } + }catch (NullPointerException e){ + System.out.println(" ddfsf"); + } + + } + public void tempSave(){ + e_writingContent = findViewById(R.id.writingContent); + e_writingTitle = findViewById(R.id.writingTitle); + if(e_writingTitle.length() >0 || e_writingContent.length()>0){ + managerDB.insertDocument(e_writingTitle.getText().toString(),e_writingContent.getText().toString()); + } + if(fileUri.size() >0) { + for (int i = 0; i < fileUri.size(); i++) { + managerDB.addFileUri(fileUri.get(i)); + } + } + for(int i = 0; i < bitmapArrayList.size(); i++){ + managerDB.addEntry(managerDB.getBytes( bitmapArrayList.get(i))); + } + } + + public void LoadingWriting(View view){ + + checkSave(); + } + @Override + public void onBackPressed() { + BackPopUP backPopUP = new BackPopUP(this); + backPopUP.show(); + } + public void TempSave(View view){ + + if(managerDB.DocumentCountDB() >0){ + SavePopUP savePopUP = new SavePopUP(this); + savePopUP.show(); + if(tempCount >0) + managerDB.deleteEveryData(); + tempSave(); + } + else + tempSave(); + } } diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/login/LoginActivity.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/login/LoginActivity.kt index f4f555c..3e4fc9d 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/login/LoginActivity.kt +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/activity/login/LoginActivity.kt @@ -10,7 +10,9 @@ import androidx.fragment.app.Fragment import com.doubleslash.ddamiapp.R import com.doubleslash.ddamiapp.activity.DetailActivity import com.doubleslash.ddamiapp.activity.MainActivity + import com.doubleslash.ddamiapp.fragment.LikeFragment +import com.doubleslash.ddamiapp.activity.WritingActivity import com.doubleslash.ddamiapp.network.kotlin.ApiService import com.doubleslash.ddamiapp.network.kotlin.DetailPieceApi import com.doubleslash.ddamiapp.util.KeyboardVisibilityUtils @@ -60,8 +62,11 @@ class LoginActivity : AppCompatActivity() { .subscribe({ Toast.makeText(applicationContext, "로그인 성공", Toast.LENGTH_SHORT).show() val intent = Intent(this@LoginActivity, MainActivity::class.java) +// val intent2 = Intent(this,WritingActivity::class.java) intent.putExtra("token", it.token) intent.putExtra("id", input.get("userId").toString()) + +// intent2.putExtra("token", it.token) startActivity(intent) // val detailintent = Intent(this@LoginActivity, DetailActivity::class.java) @@ -72,8 +77,7 @@ class LoginActivity : AppCompatActivity() { val bundle = Bundle(1) // 파라미터는 전달할 데이터 개수 bundle.putString("token", it.token) // key , value fragment.setArguments(bundle) - - + finish() }, { Toast.makeText(applicationContext, "$it", Toast.LENGTH_SHORT).show() Log.e("영환", it.toString()) diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/GetItemAdapter.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/GetItemAdapter.java new file mode 100644 index 0000000..6172353 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/GetItemAdapter.java @@ -0,0 +1,56 @@ +package com.doubleslash.ddamiapp.adapter; + + +import android.annotation.SuppressLint; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.doubleslash.ddamiapp.R; +import com.doubleslash.ddamiapp.model.GetItem; +import com.doubleslash.ddamiapp.model.LikeItem; +import com.doubleslash.ddamiapp.viewholder.GetItemViewHolder; + +import java.util.ArrayList; + +public class GetItemAdapter extends RecyclerView.Adapter { + + + public GetItemAdapter(ArrayList getItemArrayList) { + this.getItemArrayList = getItemArrayList; + } + + private ArrayList getItemArrayList; + + public OnItemClickListener mOnItemClickListener = null; + + public interface OnItemClickListener { + void onItemClick(View view, GetItem getItem); + } + + public void setOnItemClickListener(OnItemClickListener listener) { + mOnItemClickListener = listener; + } + + @NonNull + @Override + public GetItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View getItemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.get_list_item, parent, false); + return new GetItemViewHolder(getItemView); + } + + @Override + public void onBindViewHolder(@NonNull GetItemViewHolder holder, int position) { + holder.adapt(getItemArrayList.get(position)); + + } + + @Override + public int getItemCount() { + return getItemArrayList.size(); + } + +} \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/LikeAdapter.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/LikeAdapter.java index 9610021..93d8817 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/LikeAdapter.java +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/adapter/LikeAdapter.java @@ -1,5 +1,7 @@ package com.doubleslash.ddamiapp.adapter; + +import android.annotation.SuppressLint; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/db/ManagerDB.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/db/ManagerDB.java new file mode 100644 index 0000000..c6a7611 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/db/ManagerDB.java @@ -0,0 +1,212 @@ +package com.doubleslash.ddamiapp.db; +import android.content.ContentValues; +import android.content.Context; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.database.DatabaseErrorHandler; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; +import android.database.sqlite.SQLiteOpenHelper; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.preference.PreferenceManager; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.io.ByteArrayOutputStream; +import java.util.ArrayList; + +public class ManagerDB extends SQLiteOpenHelper { + + public static ManagerDB managerDB; + private static SQLiteDatabase db = null; + private static final int DB_VERSION = 1; + private final String CREATE_DOCUMENT_TABLE = "CREATE TABLE IF NOT EXISTS Document(title TEXT, content TEXT)"; + private final String CREATE_IMG_TABLE = "CREATE TABLE IF NOT EXISTS Img(id integer primary key autoincrement,img BLOB)"; + private final String CREATE_FILE_URI = "CREATE TABLE IF NOT EXISTS FileUri(id integer primary key autoincrement, fileUri TEXT)"; + public static Context con; + + + public ManagerDB(@Nullable Context context) { + super(context, "ManagerDB.db", null, 1); + } + public static synchronized ManagerDB getInstance(Context context) { + con = context; + if(managerDB == null) { + managerDB = new ManagerDB(context); //onCreate() 실행 + } + return managerDB; + } + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL(CREATE_DOCUMENT_TABLE);//글 임시저장 + db.execSQL(CREATE_IMG_TABLE);//사진 임시저장 + db.execSQL(CREATE_FILE_URI);//사진 임시저장 + + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + db.execSQL("DROP TABLE IF EXISTS Document"); + db.execSQL("DROP TABLE IF EXISTS Img"); + db.execSQL("DROP TABLE IF EXISTS FileUri"); + onCreate(db); + } + public void deleteEveryData() { //모든 테이블의 전체 튜플 삭제 + db = getWritableDatabase(); + try { + db.execSQL("DELETE FROM Document"); + db.execSQL("DELETE FROM Img"); + db.execSQL("DELETE FROM FileUri"); + }catch (Exception e) { + e.printStackTrace(); + } + } + public void deleteImgAndUri() { //모든 테이블의 전체 튜플 삭제 + db = getWritableDatabase(); + try { + db.execSQL("DELETE FROM Img"); + db.execSQL("DELETE FROM FileUri"); + }catch (Exception e) { + e.printStackTrace(); + } + } + + public void insertDocument(String title, String content){ + db = getWritableDatabase(); + if(title==null) + title = ""; + if(content ==null) + content = ""; + db.execSQL("INSERT INTO Document VALUES('"+title+"','"+content+"')"); + } + // public void insertImg(String title, String content){ +// db = getWritableDatabase(); +// if(title==null) +// title = ""; +// if(content ==null) +// content = ""; +// db.execSQL("INSERT INTO Document VALUES('"+title+"','"+content+"')"); +// } + public static byte[] getBytes(Bitmap bitmap){ + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream); + return stream.toByteArray(); + } + public static Bitmap getImage(byte[] image) { + return BitmapFactory.decodeByteArray(image, 0, image.length); + } + public void addEntry( byte[] image) throws SQLiteException { + SQLiteDatabase database = this.getWritableDatabase(); + ContentValues cv = new ContentValues(); + cv.put("img", image); + database.insert( "Img" , null, cv ); + } + public void addFileUri( String fileUri) throws SQLiteException { + db = getWritableDatabase(); + db.execSQL("INSERT INTO FileUri VALUES(null,'"+fileUri+"')"); + } + + public int DocumentCountDB(){ + int documentCount = 0; + db = getWritableDatabase(); + try{ + documentCount = db.rawQuery("SELECT*FROM Document",null).getCount(); + }catch (Exception e){ + e.printStackTrace(); + } + return documentCount; + } + public int FileUriCountDB(){ + int fileUriCount = 0; + db = getWritableDatabase(); + try{ + fileUriCount = db.rawQuery("SELECT*FROM Document",null).getCount(); + }catch (Exception e){ + e.printStackTrace(); + } + return fileUriCount; + } + public int ImgCountDB(){ + int imgCount = 0; + db = getWritableDatabase(); + try{ + imgCount = db.rawQuery("SELECT*FROM Img",null).getCount(); + }catch (Exception e){ + e.printStackTrace(); + } + return imgCount; + } + public String titleDB(){ + String title = ""; + db = getWritableDatabase(); + try { + Cursor cursor = db.rawQuery("SELECT title FROM Document",null); + while(cursor.moveToNext()) { + title = cursor.getString(0); + } + cursor.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return title; + } + public String contentDB(){ + String content = ""; + db = getWritableDatabase(); + try { + Cursor cursor = db.rawQuery("SELECT content FROM Document",null); + while(cursor.moveToNext()) { + content = cursor.getString(0); + } + cursor.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return content; + } + + public Bitmap imgDB(){ + Bitmap bitmap = null; + byte[] bytes = null; + db = getWritableDatabase(); + try { + Cursor cursor = db.rawQuery("SELECT * FROM Img",null); + while(cursor.moveToNext()) { + bytes = cursor.getBlob(cursor.getColumnIndex("img")); + bitmap = getImage(bytes); + } + cursor.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return bitmap; + } + + + public String getFileUri(){ + String file = ""; + db = getWritableDatabase(); + try { + Cursor cursor = db.rawQuery("SELECT * FROM FileUri",null); + while(cursor.moveToNext()) { + file = cursor.getString(cursor.getColumnIndex("fileUri")); + } + cursor.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return file; + } +// public ArrayList getAllBitmap(){ +// Bitmap bitmap = null; +// Cursor cursor = db.rawQuery("SELECT*FROM Img",null); +// if(cursor != null){ +// while (cursor.moveToNext()){ +// byte[] bolb = cursor.getBlob() +// } +// } +// } + +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/GetItemFragment.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/GetItemFragment.java new file mode 100644 index 0000000..66ec544 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/GetItemFragment.java @@ -0,0 +1,132 @@ +package com.doubleslash.ddamiapp.fragment; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.doubleslash.ddamiapp.R; +import com.doubleslash.ddamiapp.adapter.GetItemAdapter; +import com.doubleslash.ddamiapp.adapter.LikeAdapter; +import com.doubleslash.ddamiapp.model.GetItem; +import com.doubleslash.ddamiapp.model.GetItemDAO; +import com.doubleslash.ddamiapp.model.LikeItem; +import com.doubleslash.ddamiapp.model.LikeProduct; +import com.doubleslash.ddamiapp.model.MyLikeListItemDAO; +import com.doubleslash.ddamiapp.network.kotlin.ApiService; +import com.google.gson.JsonObject; + +import java.util.ArrayList; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +public class GetItemFragment extends Fragment implements GetItemAdapter.OnItemClickListener { + + ImageButton getItemBack; + + private RecyclerView get_itme_recycler; + private GetItemAdapter mLikeAdapter; + private ArrayList list = new ArrayList<>(); //서버에서 불러오기 + String token; + + // 각각의 Fragment마다 Instance를 반환해 줄 메소드를 생성 + public static GetItemFragment newInstance() { + return new GetItemFragment(); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + token = getActivity().getIntent().getStringExtra("token"); + + } + + @SuppressLint("CheckResult") + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstaceState) { + View view = inflater.inflate(R.layout.fragment_get_item, container, false); + + getItemBack = (ImageButton) view.findViewById(R.id.get_item_back); + + getItemBack.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); + fragmentManager.beginTransaction().remove(GetItemFragment.this).commit(); + fragmentManager.popBackStack(); + } + }); + + + Log.e("진희: token :", token); + + ApiService.INSTANCE.getGetItemApi().getLikeList(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + it -> { + + get_itme_recycler = (RecyclerView) view.findViewById(R.id.get_item_recyclerview); + + for (int i = 0; i < it.getLikeProducts().size(); i++) { + LikeProduct like = it.getLikeProducts().get(i); + list.add(new GetItem(like.getFileUrl().get(0), + like.getTitle(), + // like.getAuthor().getUserProfile(), + like.get_id())); + } + mLikeAdapter = new GetItemAdapter(list); + mLikeAdapter.setOnItemClickListener(this); + + get_itme_recycler.setAdapter(mLikeAdapter); + + RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 2); + get_itme_recycler.setLayoutManager(mLayoutManager); + + + //작품 상세보기 likeByMe = true면 추가 + + +// LikeItem item1 = new LikeItem("http://222.251.129.150/uploads/1597061667017.jpg", "타이틀1", "http://222.251.129.150/uploads/1597061667017.jpghttp://222.251.129.150/uploads/1597061667017.jpg","진희1"); +// LikeItem item2 = new LikeItem("http://222.251.129.150/uploads/1597061667017.jpg", "타이틀2", "http://222.251.129.150/uploads/1597061667017.jpg","진희2"); +// LikeItem item3 = new LikeItem("https://t1.daumcdn.net/cfile/tistory/2744FB4058719BE733", "타이틀3", "http://222.251.129.150/uploads/1597061667017.jpg","진희3"); +// LikeItem item4 = new LikeItem("https://www.enewstoday.co.kr/news/photo/201805/1188725_303007_1317.jpg", "타이틀4", "http://222.251.129.150/uploads/1597061667017.jpg","진희4"); +// +// list.add(item1); +// list.add(item2); +// list.add(item3); +// list.add(item4); +// + + + //comments + Log.e("tttest",it.toString()); + },it -> { + Log.e("failed",it.toString()); + }); + + return view; + } + + + @Override + public void onItemClick(View view, GetItem getItem) { + Log.e("RecyclerVIew :: ", getItem.toString()); + + } +} + + + diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/MyRoomFragment.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/MyRoomFragment.java index 29ebfe3..06c6c40 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/MyRoomFragment.java +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/MyRoomFragment.java @@ -110,6 +110,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, followerNum.setText(String.valueOf(input_follower)); followingNum.setText(String.valueOf(input_follow)); Picasso.get().load(input_profile_img).into(profileImg); + Bundle bundle = this.getArguments(); + String token = bundle.getString("token"); //Create tabs on TabLayout TabLayout.Tab tab = null; @@ -221,8 +223,10 @@ public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { btn_fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - getActivity().startActivity(new Intent(getActivity(), WritingActivity.class)); - + System.out.println(token+ "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + Intent intent = new Intent(getActivity(), WritingActivity.class); + intent.putExtra("token",token); + startActivity(intent); } }); diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/shop/ShopFirstFragment.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/shop/ShopFirstFragment.java index 465ad77..c665f75 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/shop/ShopFirstFragment.java +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/fragment/shop/ShopFirstFragment.java @@ -18,6 +18,7 @@ import com.doubleslash.ddamiapp.fragment.FilterFragment; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; + import com.google.android.material.floatingactionbutton.FloatingActionButton; /** diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItem.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItem.java new file mode 100644 index 0000000..7164f11 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItem.java @@ -0,0 +1,79 @@ +package com.doubleslash.ddamiapp.model; + +import java.util.ArrayList; + +public class GetItem { + String image; + String piece_name; + String user_univ; + String piece_price; + String piece_date; + String deal_state; + ArrayList getItemArrayList; + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getPiece_name() { + return piece_name; + } + + public void setPiece_name(String piece_name) { + this.piece_name = piece_name; + } + + public String getUser_univ() { + return user_univ; + } + + public void setUser_univ(String user_univ) { + this.user_univ = user_univ; + } + + public String getPiece_price() { + return piece_price; + } + + public void setPiece_price(String piece_price) { + this.piece_price = piece_price; + } + + public String getPiece_date() { + return piece_date; + } + + public void setPiece_date(String piece_date) { + this.piece_date = piece_date; + } + + public String getDeal_state() { + return deal_state; + } + + public void setDeal_state(String deal_state) { + this.deal_state = deal_state; + } + + public ArrayList getGetItemArrayList() { + return getItemArrayList; + } + + public void setGetItemArrayList(ArrayList getItemArrayList) { + this.getItemArrayList = getItemArrayList; + } + + public GetItem(String image, String piece_name, String user_univ + ) { + this.image = image; + this.piece_name = piece_name; + this.user_univ = user_univ; + this.piece_price = piece_price; + this.piece_date = piece_date; + this.deal_state = deal_state; + } +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItemDAO.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItemDAO.kt new file mode 100644 index 0000000..9750ec9 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/GetItemDAO.kt @@ -0,0 +1,6 @@ +package com.doubleslash.ddamiapp.model + +data class GetItemDAO( + val likeProducts: List, + val result: Int +) \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/LikeProduct.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/LikeProduct.kt new file mode 100644 index 0000000..094419b --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/LikeProduct.kt @@ -0,0 +1,11 @@ +package com.doubleslash.ddamiapp.model + +data class LikeProduct( + val _id: String, + val created: String, + val fileUrl: List, + val locationName: String, + val pieces: List, + val state: Int, + val title: String +) \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/PieceX.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/PieceX.kt new file mode 100644 index 0000000..3eedd40 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/PieceX.kt @@ -0,0 +1,6 @@ +package com.doubleslash.ddamiapp.model + +data class PieceX( + val _id: String, + val fileUrl: List +) \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ProductXX.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ProductXX.kt new file mode 100644 index 0000000..4b401cf --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ProductXX.kt @@ -0,0 +1,13 @@ +package com.doubleslash.ddamiapp.model + +data class ProductXX( + val _id: String, + val author: Author, + val description: String, + val hasField: List, + val like: List, + val likeByUser: Boolean, + val locationName: String, + val price: Int, + val title: String +) \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ShopWorkDetailDAO.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ShopWorkDetailDAO.kt new file mode 100644 index 0000000..82a6fa0 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/ShopWorkDetailDAO.kt @@ -0,0 +1,6 @@ +package com.doubleslash.ddamiapp.model + +data class ShopWorkDetailDAO( + val product: ProductXX, + val result: Int +) \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/UploadPieceDAO.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/UploadPieceDAO.java new file mode 100644 index 0000000..aa794e0 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/model/UploadPieceDAO.java @@ -0,0 +1,56 @@ +package com.doubleslash.ddamiapp.model; + +import java.lang.reflect.Array; +import java.util.ArrayList; + +public class UploadPieceDAO { + String title; + String content; + ArrayList hasField; + + public ArrayList getHshField() { + return hasField; + } + + public void setHshField(ArrayList hasField) { + this.hasField = hasField; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public UploadPieceDAO(String title, String content) { + this.title = title; + this.content = content; + } + public UploadPieceDAO(String title, String content, ArrayList hashField) { + this.title = title; + this.content = content; + this.hasField = hashField; + } + public class UploadPieceResponse{ + int state; + String message; + + public int getState() { + return state; + } + + public String getMessage() { + return message; + } + } +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/ApiService.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/ApiService.kt index a377329..0d204e6 100644 --- a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/ApiService.kt +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/ApiService.kt @@ -1,17 +1,30 @@ package com.doubleslash.ddamiapp.network.kotlin +import com.doubleslash.ddamiapp.network.kotlin.java.UploadPieceApi +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.gson.GsonConverterFactory - +import java.util.concurrent.TimeUnit object ApiService { private const val BASE_URL = "http://222.251.129.150/" private val retrofit: Retrofit by lazy { + val okHttpClient = OkHttpClient.Builder() + .connectTimeout(2, TimeUnit.MINUTES) + .readTimeout(100, TimeUnit.SECONDS) + .writeTimeout(100, TimeUnit.SECONDS) + .build() + val clientBuilder = OkHttpClient.Builder() + val loggingInterceptor = HttpLoggingInterceptor() + loggingInterceptor.level = HttpLoggingInterceptor.Level.BODY + clientBuilder.addInterceptor(loggingInterceptor) Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .client(clientBuilder.build()) .build() } @@ -53,4 +66,14 @@ object ApiService { retrofit.create(MyInfoApi::class.java) } -} \ No newline at end of file + val uploadPieceService : UploadPieceApi by lazy { + retrofit.create(UploadPieceApi::class.java) + } + val GetItemApi : GetItemApI by lazy { + retrofit.create(GetItemApi::class.java) + } + val GetItemTFApi : GetItemTFApi by lazy { + retrofit.create(GetItemTFApi::class.java) + } +} + diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemApI.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemApI.kt new file mode 100644 index 0000000..2421ccb --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemApI.kt @@ -0,0 +1,11 @@ +package com.doubleslash.ddamiapp.network.kotlin + +import com.doubleslash.ddamiapp.model.GetItemDAO +import io.reactivex.Single +import retrofit2.http.Header +import retrofit2.http.POST + +interface GetItemApI { + @POST("/user/like/products") + fun getLikeList(@Header("x-access-token") token:String): Single +} \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemTFApi.kt b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemTFApi.kt new file mode 100644 index 0000000..e2fff84 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/GetItemTFApi.kt @@ -0,0 +1,12 @@ +package com.doubleslash.ddamiapp.network.kotlin + +import com.doubleslash.ddamiapp.model.DetailPieceDAO +import io.reactivex.Single +import retrofit2.http.Header +import retrofit2.http.POST +import retrofit2.http.Path + +interface GetItemTFApi { + @POST("/user/like/products/{FileId}") + fun getItemService(@Header("x-access-token") token:String, @Path("FileId") FileId: String): Single +} \ No newline at end of file diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/java/UploadPieceApi.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/java/UploadPieceApi.java new file mode 100644 index 0000000..ecf57b0 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/network/kotlin/java/UploadPieceApi.java @@ -0,0 +1,21 @@ +package com.doubleslash.ddamiapp.network.kotlin.java; + +import com.doubleslash.ddamiapp.model.UploadPieceDAO; +import com.doubleslash.ddamiapp.model.UploadPieceDAO.UploadPieceResponse; + +import java.util.ArrayList; + +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import retrofit2.Call; +import retrofit2.http.Header; +import retrofit2.http.Multipart; +import retrofit2.http.POST; +import retrofit2.http.Part; + +public interface UploadPieceApi { + @POST("/user/upload/piece") + @Multipart + Call UploadPiece(@Header("x-access-token") String token, @Part("title") RequestBody title, @Part("description") RequestBody description + , @Part ArrayList imgList); +} diff --git a/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/viewholder/GetItemViewHolder.java b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/viewholder/GetItemViewHolder.java new file mode 100644 index 0000000..bec0cd5 --- /dev/null +++ b/DdamiApp/app/src/main/java/com/doubleslash/ddamiapp/viewholder/GetItemViewHolder.java @@ -0,0 +1,57 @@ +package com.doubleslash.ddamiapp.viewholder; + + +import android.annotation.SuppressLint; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.OvalShape; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.doubleslash.ddamiapp.R; +import com.doubleslash.ddamiapp.adapter.LikeAdapter; +import com.doubleslash.ddamiapp.model.DetailImgItem; +import com.doubleslash.ddamiapp.model.GetItem; +import com.doubleslash.ddamiapp.model.LikeItem; +import com.doubleslash.ddamiapp.model.User; +import com.makeramen.roundedimageview.RoundedImageView; +import com.squareup.picasso.Picasso; + +public class GetItemViewHolder extends RecyclerView.ViewHolder { + + private LinearLayout getItemLayout = (LinearLayout) itemView.findViewById(R.id.get_item_listLayout); + private ImageView PieceImage = (ImageView)itemView.findViewById(R.id.get_item_img); + private TextView PieceName = (TextView) itemView.findViewById(R.id.piece_name); + private TextView UserUniv = (TextView) itemView.findViewById(R.id.get_item_univ); + private TextView PiecePrice = (TextView) itemView.findViewById(R.id.piece_price); + private TextView PieceDate = (TextView) itemView.findViewById(R.id.get_item_date); + private TextView DealState = (TextView) itemView.findViewById(R.id.deal_state); + + + public GetItemViewHolder(@NonNull View itemView) { + super(itemView); + } + + @SuppressLint("SetTextI18n") + public void adapt(GetItem getItem){ + + + Picasso.get().load(getItem.getImage()).fit().into(PieceImage); + PieceName.setText(getItem.getPiece_name()); + PieceDate.setText(getItem.getPiece_date()); + UserUniv.setText(getItem.getUser_univ()); + PiecePrice.setText(getItem.getPiece_price()); + DealState.setText(getItem.getDeal_state()); +// if(likeItem.getHeart()==true){ +// heartPiece.setSelected(true); +// }else if(likeItem.getHeart()==false){ +// heartPiece.setSelected(false); +// } + + } +} \ No newline at end of file diff --git a/DdamiApp/app/src/main/res/drawable/btn_temp_save.xml b/DdamiApp/app/src/main/res/drawable/btn_temp_save.xml new file mode 100644 index 0000000..8bcb0c7 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/btn_temp_save.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/DdamiApp/app/src/main/res/drawable/button_cancel.xml b/DdamiApp/app/src/main/res/drawable/button_cancel.xml new file mode 100644 index 0000000..6b1cde4 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/button_cancel.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/DdamiApp/app/src/main/res/drawable/button_delete.xml b/DdamiApp/app/src/main/res/drawable/button_delete.xml new file mode 100644 index 0000000..1094fda --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/button_delete.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/DdamiApp/app/src/main/res/drawable/filter_round.xml b/DdamiApp/app/src/main/res/drawable/filter_round.xml new file mode 100644 index 0000000..54c1bb4 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/filter_round.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/DdamiApp/app/src/main/res/drawable/ic_attach_file.xml b/DdamiApp/app/src/main/res/drawable/ic_attach_file.xml new file mode 100644 index 0000000..b78a4c6 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/ic_attach_file.xml @@ -0,0 +1,9 @@ + + + diff --git a/DdamiApp/app/src/main/res/drawable/ic_btn_add.xml b/DdamiApp/app/src/main/res/drawable/ic_btn_add.xml new file mode 100644 index 0000000..bad68e7 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/ic_btn_add.xml @@ -0,0 +1,9 @@ + + + diff --git a/DdamiApp/app/src/main/res/drawable/ic_img_trash.xml b/DdamiApp/app/src/main/res/drawable/ic_img_trash.xml new file mode 100644 index 0000000..adb36db --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/ic_img_trash.xml @@ -0,0 +1,12 @@ + + + + diff --git a/DdamiApp/app/src/main/res/drawable/ic_photo_camera.xml b/DdamiApp/app/src/main/res/drawable/ic_photo_camera.xml new file mode 100644 index 0000000..a6aa500 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/ic_photo_camera.xml @@ -0,0 +1,16 @@ + + + + diff --git a/DdamiApp/app/src/main/res/drawable/img_round.xml b/DdamiApp/app/src/main/res/drawable/img_round.xml new file mode 100644 index 0000000..8350c7c --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/img_round.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/DdamiApp/app/src/main/res/drawable/loading_save.xml b/DdamiApp/app/src/main/res/drawable/loading_save.xml new file mode 100644 index 0000000..7818647 --- /dev/null +++ b/DdamiApp/app/src/main/res/drawable/loading_save.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/DdamiApp/app/src/main/res/drawable/shop_custom_radius_gray.xml b/DdamiApp/app/src/main/res/drawable/shop_custom_radius_gray.xml index e61b219..54ab27e 100644 --- a/DdamiApp/app/src/main/res/drawable/shop_custom_radius_gray.xml +++ b/DdamiApp/app/src/main/res/drawable/shop_custom_radius_gray.xml @@ -2,7 +2,7 @@ - + diff --git a/DdamiApp/app/src/main/res/layout/activity_writing.xml b/DdamiApp/app/src/main/res/layout/activity_writing.xml index 30d44fe..1cfdc6a 100644 --- a/DdamiApp/app/src/main/res/layout/activity_writing.xml +++ b/DdamiApp/app/src/main/res/layout/activity_writing.xml @@ -1,57 +1,163 @@ - - + + + + + + + + - - + android:layout_height="wrap_content" /> + + + -