رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل بسته شدن کانکشن دیتابیس در اندروید
#1
با سلام
من برنامم رو منتشر کردم و لاگ ها رو از طریف فایربیس میخونم
یکی از ارور هایی که داشتم اینه که کانکشن به دیتابیس توی یه صفحه ای بسته هست ظاهرا


public class ScoreAdapter extends RecyclerView.Adapter<ScoreAdapter.ViewHolder> {


   private Context context;

   private List<ItemSession> list;

   private DatabaseHelper databaseHelper;

   private AdapterClickListener listener;

   private int historyID, turn = 1;

   private int Score, Posotion1;



   private boolean checkClicked1, checkClicked2, checkClicked3, checkClicked4, checkClicked5;



   ScoreAdapter(Context context, int historyID, List<ItemSession> list, DatabaseHelper databaseHelper, AdapterClickListener listener) {

       this.context = context;

       this.historyID = historyID;

       this.list = list;

       this.databaseHelper = databaseHelper;

       this.listener = listener;

   }



   @Override

   public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

       View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_score_list, parent, false);

       return new ViewHolder(view);

   }



   @SuppressLint("SetTextI18n")

   @Override

   public void onBindViewHolder(ViewHolder holder, int position) {



       if (list.get(position).sessionPosition == 0) {

           holder.person.setBackgroundResource(R.drawable.ic_user_green);

           holder.leftColor.setBackgroundColor(Color.parseColor("#079f0f"));

           holder.rightColor.setBackgroundColor(Color.parseColor("#079f0f"));

       } else if (list.get(position).sessionPosition == 1) {

           holder.person.setBackgroundResource(R.drawable.ic_user_purple);

           holder.leftColor.setBackgroundColor(Color.parseColor("#9231d5"));

           holder.rightColor.setBackgroundColor(Color.parseColor("#9231d5"));

       } else if (list.get(position).sessionPosition == 2) {

           holder.person.setBackgroundResource(R.drawable.ic_user_yellow);

           holder.leftColor.setBackgroundColor(Color.parseColor("#9e9f25"));

           holder.rightColor.setBackgroundColor(Color.parseColor("#9e9f25"));

       } else if (list.get(position).sessionPosition == 3) {

           holder.person.setBackgroundResource(R.drawable.ic_user_red);

           holder.leftColor.setBackgroundColor(Color.parseColor("#bd0a51"));

           holder.rightColor.setBackgroundColor(Color.parseColor("#bd0a51"));

       } else if (list.get(position).sessionPosition == 4) {

           holder.person.setBackgroundResource(R.drawable.ic_user_sky_blue);

           holder.leftColor.setBackgroundColor(Color.parseColor("#289682"));

           holder.rightColor.setBackgroundColor(Color.parseColor("#289682"));

       }



       holder.editTeamName.setVisibility(View.GONE);

       holder.teamName.setVisibility(View.VISIBLE);



       holder.teamName.setTypeface(AppConfiguration.setFont(context));

       holder.score.setTypeface(AppConfiguration.setFont(context));

       holder.editTeamName.setTypeface(AppConfiguration.setFont(context));



       holder.score.setText(AppConfiguration.getNumber(list.get(position).sessionScore));



       holder.teamName.setText(list.get(position).sessionTeamName);



       holder.editSave.setBackgroundResource(R.drawable.ic_edit);



       holder.play.setBackgroundResource(R.drawable.ic_play);

       holder.play.setVisibility(View.INVISIBLE);



       holder.numberTeam.setTypeface(AppConfiguration.setFont(context));



       new Thread(() -> {



           try {

               databaseHelper.openDataBase();

           } catch (Exception e) {

               e.printStackTrace();

           }

           int state = databaseHelper.getRealStateHistory(historyID);

           databaseHelper.close();



           new Handler(Looper.getMainLooper()).post(() -> {

               if (state == 1) {

                   if (turn <= 5) {

                       if (list.get(position).sessionState == 1) {

                           holder.play.setVisibility(View.VISIBLE);

                       }

                   } else {

                       try {

                           databaseHelper.openDataBase();

                       } catch (Exception e) {

                           e.printStackTrace();

                       }

                       databaseHelper.updateClosedStateHistory(historyID);

                       databaseHelper.close();

                   }

               } else {



                   try {

                       databaseHelper.openDataBase();

                   } catch (Exception e) {

                       e.printStackTrace();

                   }



                   int[] highScore = databaseHelper.getHighScore(historyID);



                   if (list.size() == 2) {

                       if (databaseHelper.getPositionHighScore(historyID, highScore[list.size() - 1]) == position) {

                           holder.play.setVisibility(View.VISIBLE);

                           holder.play.setEnabled(false);

                           holder.play.setBackgroundResource(R.drawable.ic_trophy_gold);

                           holder.numberTeam.setVisibility(View.VISIBLE);

                           holder.numberTeam.setTypeface(AppConfiguration.setFont(context));

                           holder.numberTeam.setText("1");

                       } else if (databaseHelper.getPositionHighScore(historyID, highScore[list.size() - 2]) == position) {

                           holder.play.setVisibility(View.VISIBLE);

                           holder.play.setEnabled(false);

                           holder.play.setBackgroundResource(R.drawable.ic_trophy_silver);

                           holder.numberTeam.setVisibility(View.VISIBLE);

                           holder.numberTeam.setTypeface(AppConfiguration.setFont(context));

                           holder.numberTeam.setText("2");

                       }

                   } else {



                       if (databaseHelper.getPositionHighScore(historyID, highScore[list.size() - 1]) == position) {

                           holder.play.setVisibility(View.VISIBLE);

                           holder.play.setEnabled(false);

                           holder.play.setBackgroundResource(R.drawable.ic_trophy_gold);

                           holder.numberTeam.setVisibility(View.VISIBLE);

                           holder.numberTeam.setTypeface(AppConfiguration.setFont(context));

                           holder.numberTeam.setText("1");

                       } else if (databaseHelper.getPositionHighScore(historyID, highScore[list.size() - 2]) == position) {

                           holder.play.setVisibility(View.VISIBLE);

                           holder.numberTeam.setTypeface(AppConfiguration.setFont(context));

                           holder.play.setEnabled(false);

                           holder.play.setBackgroundResource(R.drawable.ic_trophy_silver);

                           holder.numberTeam.setVisibility(View.VISIBLE);

                           holder.numberTeam.setText("2");

                       } else if (databaseHelper.getPositionHighScore(historyID, highScore[list.size() - 3]) == position) {

                           holder.play.setVisibility(View.VISIBLE);

                           holder.play.setEnabled(false);

                           holder.play.setBackgroundResource(R.drawable.ic_trophy_bronze);

                           holder.numberTeam.setVisibility(View.VISIBLE);

                           holder.numberTeam.setTypeface(AppConfiguration.setFont(context));

                           holder.numberTeam.setText("3");

                       }

                   }

                   databaseHelper.close();

               }

           });

       }).start();



       holder.framelayout_edit.setOnClickListener(view -> {



           try {

               databaseHelper.openDataBase();

           } catch (Exception e) {

               e.printStackTrace();

           }



           if (position == 0) {

               if (!checkClicked1) {

                   holder.editSave.setBackgroundResource(R.drawable.ic_check_box);

                   checkClicked1 = true;



                   holder.editTeamName.setVisibility(View.VISIBLE);

                   holder.editTeamName.setText(holder.teamName.getText().toString());

                   holder.teamName.setVisibility(View.GONE);





               } else {

                   holder.editSave.setBackgroundResource(R.drawable.ic_edit);

                   checkClicked1 = false;



                   holder.editTeamName.setVisibility(View.GONE);

                   holder.teamName.setVisibility(View.VISIBLE);

                   holder.teamName.setText(holder.editTeamName.getText().toString());

                   databaseHelper.updateTeamName(holder.editTeamName.getText().toString().trim(), list.get(position).sessionID);

               }

           } else if (position == 1) {

               if (!checkClicked2) {

                   holder.editSave.setBackgroundResource(R.drawable.ic_check_box);

                   checkClicked2 = true;



                   holder.editTeamName.setVisibility(View.VISIBLE);

                   holder.editTeamName.setText(holder.teamName.getText().toString());

                   holder.teamName.setVisibility(View.GONE);





               } else {

                   holder.editSave.setBackgroundResource(R.drawable.ic_edit);

                   checkClicked2 = false;



                   holder.editTeamName.setVisibility(View.GONE);

                   holder.teamName.setVisibility(View.VISIBLE);

                   holder.teamName.setText(holder.editTeamName.getText().toString());

                   databaseHelper.updateTeamName(holder.editTeamName.getText().toString(), list.get(position).sessionID);

               }

           } else if (position == 2) {

               if (!checkClicked3) {

                   holder.editSave.setBackgroundResource(R.drawable.ic_check_box);

                   checkClicked3 = true;



                   holder.editTeamName.setVisibility(View.VISIBLE);

                   holder.editTeamName.setText(holder.teamName.getText().toString());

                   holder.teamName.setVisibility(View.GONE);





               } else {

                   holder.editSave.setBackgroundResource(R.drawable.ic_edit);

                   checkClicked3 = false;



                   holder.editTeamName.setVisibility(View.GONE);

                   holder.teamName.setVisibility(View.VISIBLE);

                   holder.teamName.setText(holder.editTeamName.getText().toString());

                   databaseHelper.updateTeamName(holder.editTeamName.getText().toString(), list.get(position).sessionID);

               }

           } else if (position == 3) {

               if (!checkClicked4) {

                   holder.editSave.setBackgroundResource(R.drawable.ic_check_box);

                   checkClicked4 = true;



                   holder.editTeamName.setVisibility(View.VISIBLE);

                   holder.editTeamName.setText(holder.teamName.getText().toString());

                   holder.teamName.setVisibility(View.GONE);





               } else {

                   holder.editSave.setBackgroundResource(R.drawable.ic_edit);

                   checkClicked4 = false;



                   holder.editTeamName.setVisibility(View.GONE);

                   holder.teamName.setVisibility(View.VISIBLE);

                   holder.teamName.setText(holder.editTeamName.getText().toString());

                   databaseHelper.updateTeamName(holder.editTeamName.getText().toString(), list.get(position).sessionID);

               }

           } else if (position == 4) {

               if (!checkClicked5) {

                   holder.editSave.setBackgroundResource(R.drawable.ic_check_box);

                   checkClicked5 = true;



                   holder.editTeamName.setVisibility(View.VISIBLE);

                   holder.editTeamName.setText(holder.teamName.getText().toString());

                   holder.teamName.setVisibility(View.GONE);





               } else {

                   holder.editSave.setBackgroundResource(R.drawable.ic_edit);

                   checkClicked5 = false;



                   holder.editTeamName.setVisibility(View.GONE);

                   holder.teamName.setVisibility(View.VISIBLE);

                   holder.teamName.setText(holder.editTeamName.getText().toString());

                   databaseHelper.updateTeamName(holder.editTeamName.getText().toString(), list.get(position).sessionID);

               }

           }



           databaseHelper.close();

       });



       holder.play.setOnClickListener(view -> {





           try {

               databaseHelper.openDataBase();

           } catch (Exception e) {

               e.printStackTrace();

           }



           databaseHelper.updateClosedStateSession(position, historyID);

           databaseHelper.updateCounterState(historyID);

           turn = databaseHelper.getPositionCounter();



           databaseHelper.close();



           if (listener != null)

               listener.onButtonClick(position);

       });

   }



   @Override

   public int getItemCount() {

       return list.size();

   }



   public interface AdapterClickListener {

       void onButtonClick(int id);

   }



   class ViewHolder extends RecyclerView.ViewHolder {



       TextView score, teamName, numberTeam;

       EditText editTeamName;

       ImageView person, editSave, play;

       FrameLayout framelayout_edit;

       LinearLayout leftColor, rightColor;



       ViewHolder(View itemView) {

           super(itemView);



           person = itemView.findViewById(R.id.person_image);

           teamName = itemView.findViewById(R.id.team_name);

           editTeamName = itemView.findViewById(R.id.team_name_editText);

           editSave = itemView.findViewById(R.id.edit_button);

           framelayout_edit = itemView.findViewById(R.id.framelayout_edit);

           play = itemView.findViewById(R.id.play);

           score = itemView.findViewById(R.id.score);

           numberTeam = itemView.findViewById(R.id.number_team);

           leftColor = itemView.findViewById(R.id.leftColor);

           rightColor = itemView.findViewById(R.id.rightColor);



       }

   }

}


فایل‌های پیوست تصاویر بندانگشتی
   
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان