Skip to content

Commit

Permalink
done folder
Browse files Browse the repository at this point in the history
  • Loading branch information
nqmgaming committed Nov 29, 2023
1 parent 3f77585 commit c058ce9
Show file tree
Hide file tree
Showing 32 changed files with 342 additions and 276 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import com.daominh.quickmem.data.model.FlashCard
import com.daominh.quickmem.data.model.Folder
import com.daominh.quickmem.databinding.ActivityAddFlashCardBinding
import com.daominh.quickmem.preferen.UserSharePreferences
import com.google.android.material.tabs.TabLayoutMediator

class AddFlashCardActivity : AppCompatActivity() {
private val binding by lazy {
Expand Down
107 changes: 32 additions & 75 deletions app/src/main/java/com/daominh/quickmem/adapter/CardAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import android.annotation.SuppressLint;
import android.content.Context;
import android.speech.tts.TextToSpeech;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
Expand All @@ -17,6 +17,7 @@
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.function.BiConsumer;

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder> {

Expand Down Expand Up @@ -68,80 +69,8 @@ public void onBindViewHolder(@NonNull @NotNull CardAdapter.CardViewHolder holder
}
});

holder.binding.termEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
card.setFront(s.toString());
card.setBack(holder.binding.definitionEt.getText().toString());
if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
card.setFront(s.toString());
card.setBack(holder.binding.definitionEt.getText().toString());

if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}

@Override
public void afterTextChanged(Editable s) {
card.setFront(s.toString());
card.setBack(holder.binding.definitionEt.getText().toString());

if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}
});

holder.binding.definitionEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
card.setFront(holder.binding.termEt.getText().toString());
card.setBack(s.toString());

if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
card.setFront(holder.binding.termEt.getText().toString());
card.setBack(s.toString());

if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}

@Override
public void afterTextChanged(Editable s) {
card.setFront(holder.binding.termEt.getText().toString());
card.setBack(s.toString());

if (position < cards.size()) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}
});
holder.binding.termEt.addTextChangedListener(createTextWatcher(card, holder.binding.termEt, Card::setFront));
holder.binding.definitionEt.addTextChangedListener(createTextWatcher(card, holder.binding.definitionEt, Card::setBack));
}

@Override
Expand All @@ -163,6 +92,34 @@ public CardViewHolder(@NonNull @NotNull View itemView) {
this.binding = ItemCardAddBinding.bind(itemView);
}
}
private TextWatcher createTextWatcher(Card card, EditText editText, BiConsumer<Card, String> setter) {
return new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
updateCard(card, editText, setter);
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
updateCard(card, editText, setter);
}

@Override
public void afterTextChanged(Editable s) {
updateCard(card, editText, setter);
}
};
}

private void updateCard(Card card, EditText editText, BiConsumer<Card, String> setter) {
setter.accept(card, editText.getText().toString());
int position = cards.indexOf(card);
if (position != -1) {
cards.set(position, card);
} else {
Toast.makeText(context, "wrong", Toast.LENGTH_SHORT).show();
}
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class CardLeanAdapter(

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val card = cardList[position]
holder.bind(card, position)
holder.bind(card)
}

override fun getItemCount(): Int {
Expand All @@ -41,7 +41,7 @@ class CardLeanAdapter(

inner class ViewHolder(private val binding: ItemLearnSetBinding) : RecyclerView.ViewHolder(binding.root) {

fun bind(card: Card, position: Int) {
fun bind(card: Card) {
binding.backTv.text = card.front
binding.frontTv.text = card.back
binding.cardViewFlip.setFlipTypeFromRight()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.daominh.quickmem.data.model.Folder;
Expand Down Expand Up @@ -50,7 +49,6 @@ public void onBindViewHolder(@NonNull @NotNull FolderAdapter.FolderViewHolder ho
Intent intent = new Intent(context, ViewFolderActivity.class);
intent.putExtra("id", folder.getId());
context.startActivity(intent);
Toast.makeText(context, folder.getId()+"", Toast.LENGTH_SHORT).show();
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,11 @@ public MyViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new StudySetsFragment();
case 1:
return new FoldersFragment();
case 2:
return new MyClassesFragment();
default:
return new StudySetsFragment();
}
return switch (position) {
case 1 -> new FoldersFragment();
case 2 -> new MyClassesFragment();
default -> new StudySetsFragment();
};
}

@Override
Expand All @@ -38,18 +33,11 @@ public int getCount() {
@Nullable
@Override
public CharSequence getPageTitle(int position) {
String title = "";
switch (position){
case 0:
title = "Study sets";
break;
case 1:
title = "Folders";
break;
case 2:
title = "Classes";
break;
}
return title;
return switch (position) {
case 0 -> "Study sets";
case 1 -> "Folders";
case 2 -> "Classes";
default -> "";
};
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.daominh.quickmem.adapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Picture;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand All @@ -21,7 +21,7 @@
public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.UsersViewHolder> {
private final Context context;
private final List<User> users;
private UserDAO userDAO;
private final UserDAO userDAO;

public UsersAdapter(Context context, List<User> users) {
this.context = context;
Expand All @@ -37,6 +37,7 @@ public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewTyp
return new UsersViewHolder(binding.getRoot());
}

@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull UsersViewHolder holder, int position) {
User user = users.get(position);
Expand Down Expand Up @@ -66,7 +67,7 @@ public void onBindViewHolder(@NonNull UsersViewHolder holder, int position) {

holder.binding.userNameTv.setText(user.getUsername());
holder.binding.emailTv.setText("Email: " + user.getEmail());
holder.binding.roleTv.setText("Role: " + (role == 1 ? "Giáo viên" : "Học sinh"));
holder.binding.roleTv.setText("Role: " + (role == 1 ? "Teacher" : "Student"));
} else {
holder.binding.getRoot().setVisibility(View.GONE);
}
Expand Down
24 changes: 24 additions & 0 deletions app/src/main/java/com/daominh/quickmem/data/dao/FolderDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -206,4 +206,28 @@ public long deleteFolder(String folder_id) {
return result;
}

//update folder
public long updateFolder(Folder folder) {
sqLiteDatabase = qmDatabaseHelper.getWritableDatabase();

long result = 0;

ContentValues contentValues = new ContentValues();

//put
contentValues.put("name", folder.getName());
contentValues.put("description", folder.getDescription());
contentValues.put("updated_at", folder.getUpdated_at());

//update
try {
result = sqLiteDatabase.update(QMDatabaseHelper.TABLE_FOLDERS, contentValues, "id = ?", new String[]{folder.getId()});
} catch (SQLException e) {
Log.e("FolderDAO", "updateFolder: " + e);
} finally {
sqLiteDatabase.close();
}
return result;
}

}
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package com.daominh.quickmem.ui.activities.create;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Build;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.daominh.quickmem.R;
import com.daominh.quickmem.data.dao.FolderDAO;
import com.daominh.quickmem.data.model.Folder;
import com.daominh.quickmem.databinding.ActivityCreateFolderBinding;
import com.daominh.quickmem.preferen.UserSharePreferences;
import com.daominh.quickmem.ui.activities.folder.ViewFolderActivity;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
Expand All @@ -31,7 +35,7 @@ protected void onCreate(Bundle savedInstanceState) {


setSupportActionBar(binding.toolbar);
binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
binding.toolbar.setNavigationOnClickListener(v -> getOnBackPressedDispatcher().onBackPressed());


}
Expand Down Expand Up @@ -63,7 +67,8 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
FolderDAO folderDAO = new FolderDAO(this);
if (folderDAO.insertFolder(folder) > 0) {
Toast.makeText(this, "Folder created", Toast.LENGTH_SHORT).show();
onBackPressed();
startActivity(new Intent(this, ViewFolderActivity.class).putExtra("id", folderId));
finish();
} else {
Toast.makeText(this, "Folder not created", Toast.LENGTH_SHORT).show();
}
Expand All @@ -75,18 +80,13 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {

private String getCurrentDate() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
return currentDate.format(formatter);
return getCurrentDateNewApi();
} else {
// Handle case for Android versions less than Oreo
// Here we're using SimpleDateFormat which is available on all Android versions
@SuppressLint("SimpleDateFormat")
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
return sdf.format(new Date());
return getCurrentDateOldApi();
}
}


private String genUUID() {
return java.util.UUID.randomUUID().toString();
}
Expand All @@ -96,4 +96,17 @@ private String getUser_id() {
return userSharePreferences.getId();
}

@RequiresApi(api = Build.VERSION_CODES.O)
private String getCurrentDateNewApi() {
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
return currentDate.format(formatter);
}

private String getCurrentDateOldApi() {
@SuppressLint("SimpleDateFormat")
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
return sdf.format(new Date());
}

}
Loading

0 comments on commit c058ce9

Please sign in to comment.