Advertisement
asmaadahood

HomeWorke

Oct 28th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 23.27 KB | None | 0 0
  1. GradeItem.java
  2. ***************
  3. package com.example.hp.myapplication;
  4.  
  5. /**
  6.  * Created by HP on 22/10/2017.
  7.  */
  8. public class GradeItem {
  9.     private String subjectName;
  10.     private int grade;
  11.  
  12.     public GradeItem(String subjectName, int grade) {
  13.         this.subjectName = subjectName;
  14.         this.grade = grade;
  15.     }
  16.  
  17.     public String getSubjectName() {
  18.         return subjectName;
  19.     }
  20.  
  21.     public void setSubjectName(String subjectName) {
  22.         this.subjectName = subjectName;
  23.     }
  24.  
  25.     public int getGrade() {
  26.         return grade;
  27.     }
  28.  
  29.     public void setGrade(int grade) {
  30.         this.grade = grade;
  31.     }
  32.  
  33. }
  34.  
  35. GradesAdapter
  36. *******************
  37. package com.example.hp.myapplication;
  38.  
  39. /**
  40.  * Created by HP on 18/10/2017.
  41.  */
  42.  
  43. import android.content.Context;
  44. import android.content.SharedPreferences;
  45. import android.view.LayoutInflater;
  46. import android.view.View;
  47. import android.view.ViewGroup;
  48. import android.widget.BaseAdapter;
  49. import android.widget.EditText;
  50. import android.widget.ListView;
  51. import android.widget.TextView;
  52. import android.widget.Toast;
  53.  
  54. import com.example.hp.myapplication.R;
  55.  
  56. import java.util.ArrayList;
  57. import java.util.List;
  58.  
  59. import static android.icu.lang.UCharacter.GraphemeClusterBreak.T;
  60.  
  61. /**
  62.  * Created by MOHAMADPC on 03/10/2017.
  63.  */
  64.  
  65. public class GradesAdapter extends BaseAdapter {
  66.     private Context context;
  67.     private String userName;
  68.     private List<GradeItem> gradesList;
  69.  
  70.     public GradesAdapter(String userName, Context context) {
  71.         this.userName = userName;
  72.         this.context = context;
  73.         this.gradesList = LoadStudentGrades(userName, context);
  74.  
  75.     }
  76.  
  77.  
  78.     @Override
  79.     public int getCount() {
  80.         return gradesList.size();
  81.     }
  82.  
  83.     @Override
  84.     public Object getItem(int i) {
  85.         return gradesList.get(i);
  86.     }
  87.  
  88.     @Override
  89.     public long getItemId(int i) {
  90.         return 0;
  91.     }
  92.  
  93.     @Override
  94.     public View getView(final int i, View view, ViewGroup viewGroup) {
  95.         /*TextView tvSubject = new TextView(context);
  96.         tvSubject.setTextSize(30);
  97.         tvSubject.setText(gradesList.get(i).getSubjectName() + " : " + gradesList.get(i).getGrade());
  98.  
  99.         return tvSubject; */
  100.  
  101.         View rowView = LayoutInflater.from(context).inflate(R.layout.grade_item_layout, null);
  102.         TextView tvSubjectName = (TextView) rowView.findViewById(R.id.tvItemSubject);
  103.         final EditText etGrade = (EditText) rowView.findViewById(R.id.etItemGrade);
  104.         tvSubjectName.setText(gradesList.get(i).getSubjectName());
  105.         etGrade.setText(gradesList.get(i).getGrade() + "");
  106.  
  107.         rowView.findViewById(R.id.btnItemSave).setOnClickListener(new View.OnClickListener() {
  108.             @Override
  109.             public void onClick(View v) {
  110.                 int mynewGrade = Integer.parseInt(etGrade.getText().toString());
  111.                 gradesList.get(i).setGrade(mynewGrade);
  112.  
  113.                 SaveStudentGrades(userName, i, context);
  114.                 Toast.makeText(context, "Update OK!", Toast.LENGTH_SHORT).show();
  115.  
  116.             }
  117.         });
  118.  
  119.         return rowView;
  120.     }
  121.  
  122.     private List<GradeItem> LoadStudentGrades(String userName, Context context) {
  123.         SharedPreferences gradePrefs = context.getSharedPreferences(userName, Context.MODE_PRIVATE);
  124.         List<GradeItem> res = new ArrayList<>();
  125.  
  126.         // not soo good
  127.         Object[] subjects = gradePrefs.getAll().keySet().toArray();
  128.  
  129.         for (int i = 0; i < subjects.length; i += 1) {
  130.             String subjectName = (String) subjects[i];
  131.             int grade = gradePrefs.getInt(subjectName, 0);
  132.             res.add(new GradeItem(subjectName, grade));
  133.         }
  134.         return res;
  135.     }
  136.  
  137.     private void SaveStudentGrades(String userName, int i, Context context) {
  138.         SharedPreferences gradePrefs = context.getSharedPreferences(userName, Context.MODE_PRIVATE);
  139.         SharedPreferences.Editor editor = gradePrefs.edit();
  140.  
  141.         editor.putInt(gradesList.get(i).getSubjectName(), gradesList.get(i).getGrade());
  142.         editor.commit();
  143.     }
  144. }
  145.  
  146. MainActivaty
  147. *********************
  148. package com.example.hp.myapplication;
  149.  
  150. import android.content.Context;
  151. import android.content.Intent;
  152. import android.content.SharedPreferences;
  153. import android.support.v7.app.AppCompatActivity;
  154. import android.os.Bundle;
  155. import android.view.View;
  156. import android.widget.EditText;
  157. import android.widget.Toast;
  158.  
  159. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  160.     EditText etUserName, etPassword, etClass;
  161.  
  162.     @Override
  163.     protected void onCreate(Bundle savedInstanceState) {
  164.         super.onCreate(savedInstanceState);
  165.         setContentView(R.layout.activity_main);
  166.  
  167.         connectToLayout();
  168.     }
  169.  
  170.     private void connectToLayout() {
  171.         etUserName = (EditText) findViewById(R.id.etUserName);
  172.         etPassword = (EditText) findViewById(R.id.etPassword);
  173.         etClass = (EditText) findViewById(R.id.etClass);
  174.  
  175.         findViewById(R.id.btnCancel).setOnClickListener(this);
  176.         findViewById(R.id.btnLogin).setOnClickListener(this);
  177.         findViewById(R.id.btnRegister).setOnClickListener(this);
  178.     }
  179.  
  180.     @Override
  181.     public void onClick(View view) {
  182.         switch (view.getId()) {
  183.             case R.id.btnLogin:
  184.                 String userName = etUserName.getText().toString();
  185.                 String password = etPassword.getText().toString();
  186.                 String clas = etClass.getText().toString();
  187.  
  188.                 if (userName.length() == 0 || password.length() == 0 || clas.length() ==0) {
  189.                     Toast.makeText(this, "Please fill user name and password!", Toast.LENGTH_LONG).show();
  190.                     return;
  191.                 }
  192.  
  193.                 if (isValid(userName, password)) {
  194.                     Intent i = new Intent(this, WelcomeActivity.class);
  195.                     i.putExtra("CurrentUser", userName);
  196.                     startActivity(i);
  197.                     //this.finish();
  198.                 } else {
  199.                     Toast.makeText(this, "Invalid username or password!", Toast.LENGTH_LONG).show();
  200.                 }
  201.                 break;
  202.             case R.id.btnCancel:
  203.                 this.finish();
  204.                 break;
  205.  
  206.             case R.id.btnRegister:
  207.                 userName = etUserName.getText().toString();
  208.                 password = etPassword.getText().toString();
  209.                 clas = etClass.getText().toString();
  210.  
  211.                 if (!isUserExist(userName)) {
  212.                     if (addNewUser(userName, password, clas)) {
  213.                         Toast.makeText(this, "User was added!", Toast.LENGTH_LONG).show();
  214.                         etUserName.setText("");
  215.                         etPassword.setText("");
  216.                         etClass.setText("");
  217.                     } else {
  218.                         Toast.makeText(this, "Error adding a user " + userName, Toast.LENGTH_LONG).show();
  219.                     }
  220.                 }
  221.  
  222.                 break;
  223.             default:
  224.                 Toast.makeText(this, "Error on click", Toast.LENGTH_LONG).show();
  225.                 break;
  226.         }
  227.     }
  228.  
  229.  
  230.     private boolean addNewUser(String userName, String password, String clas) {
  231.         SharedPreferences prefs = this.getSharedPreferences("myUsers", Context.MODE_PRIVATE);
  232.  
  233.         SharedPreferences.Editor editor = prefs.edit();
  234.         editor.putString(userName, password+":"+ clas);
  235.         return editor.commit();
  236.     }
  237.  
  238.     private boolean isUserExist(String userName) {
  239.         SharedPreferences prefs = this.getSharedPreferences("myUsers", Context.MODE_PRIVATE);
  240.  
  241.         String savedPassword = prefs.getString(userName, "");
  242.  
  243.         return (!savedPassword.equals(""));
  244.     }
  245.  
  246.  
  247.     private boolean isValid(String userName, String password) {
  248.  
  249.         SharedPreferences prefs = this.getSharedPreferences("myUsers", Context.MODE_PRIVATE);
  250.  
  251.         String savedPassword = prefs.getString(userName, "");
  252.  
  253.         return (savedPassword.equals(password));
  254.     }
  255. }
  256.  
  257. Teacher
  258. ************
  259. package com.example.hp.myapplication;
  260.  
  261. import android.support.v7.app.AppCompatActivity;
  262. import android.os.Bundle;
  263. import android.view.View;
  264. import android.widget.EditText;
  265.  
  266.  
  267. public class Teacher extends AppCompatActivity implements View.OnClickListener {
  268.     EditText etUserName, etPassword;
  269.  
  270.     @Override
  271.     protected void onCreate(Bundle savedInstanceState) {
  272.         super.onCreate(savedInstanceState);
  273.         setContentView(R.layout.activity_teacher);
  274.     }
  275.  
  276.     @Override
  277.     public void onClick(View view) {
  278.  
  279.     }
  280. }
  281. TeacherAdapter
  282. *******************
  283. package com.example.hp.myapplication;
  284.  
  285. import android.content.Context;
  286. import android.content.SharedPreferences;
  287. import android.view.LayoutInflater;
  288. import android.view.View;
  289. import android.view.ViewGroup;
  290. import android.widget.BaseAdapter;
  291. import android.widget.EditText;
  292. import android.widget.TextView;
  293. import android.widget.Toast;
  294.  
  295. import java.util.ArrayList;
  296. import java.util.List;
  297.  
  298.  
  299. public class TeacherAdapter extends BaseAdapter{
  300.  
  301.     private Context context;
  302.     private String userName;
  303.     private  String studentName;
  304.  
  305.     private List<TeacherMark> gradesList;
  306.  
  307.     public TeacherAdapter(String userName, Context context) {
  308.         this.userName = userName;
  309.         this.context = context;
  310.         this.gradesList = LoadStudentGrades(studentName, context);
  311.  
  312.     }
  313.  
  314.  
  315.     @Override
  316.     public int getCount() {
  317.         return gradesList.size();
  318.     }
  319.  
  320.     @Override
  321.     public Object getItem(int i) {
  322.         return gradesList.get(i);
  323.     }
  324.  
  325.     @Override
  326.     public long getItemId(int i) {
  327.         return 0;
  328.     }
  329.  
  330.     @Override
  331.     public View getView(final int i, View view, ViewGroup viewGroup) {
  332.         /*TextView tvSubject = new TextView(context);
  333.         tvSubject.setTextSize(30);
  334.         tvSubject.setText(gradesList.get(i).getSubjectName() + " : " + gradesList.get(i).getGrade());
  335.  
  336.         return tvSubject; */
  337.  
  338.         View rowView = LayoutInflater.from(context).inflate(R.layout.grade_layout, null);
  339.         TextView tvStudentName = (TextView) rowView.findViewById(R.id.tvStudent);
  340.         final EditText etGrade = (EditText) rowView.findViewById(R.id.etGrade);
  341.         tvStudentName.setText(gradesList.get(i).getStudentName());
  342.         etGrade.setText(gradesList.get(i).getGrade() + "");
  343.  
  344.         rowView.findViewById(R.id.btnItemSave).setOnClickListener(new View.OnClickListener() {
  345.             @Override
  346.             public void onClick(View v) {
  347.                 int mynewGrade = Integer.parseInt(etGrade.getText().toString());
  348.                 gradesList.get(i).setGrade(mynewGrade);
  349.  
  350.                 SaveStudentGrades(userName, i, context);
  351.                 Toast.makeText(context, "Update OK!", Toast.LENGTH_SHORT).show();
  352.  
  353.             }
  354.         });
  355.  
  356.         return rowView;
  357.     }
  358.  
  359.     private List<TeacherMark> LoadStudentGrades(String studentName, Context context) {
  360.         SharedPreferences gradePrefs = context.getSharedPreferences(studentName, Context.MODE_PRIVATE);
  361.         List<TeacherMark> res = new ArrayList<>();
  362.  
  363.  
  364.         Object[] sNames = gradePrefs.getAll().keySet().toArray();
  365.  
  366.         for (int i = 0; i < sNames.length; i += 1) {
  367.             String StudentName = (String) sNames[i];
  368.             int grade = gradePrefs.getInt(StudentName, 0);
  369.             res.add(new TeacherMark(StudentName, grade));
  370.         }
  371.         return res;
  372.     }
  373.  
  374.     private void SaveStudentGrades(String userName, int i, Context context) {
  375.         SharedPreferences gradePrefs = context.getSharedPreferences(userName, Context.MODE_PRIVATE);
  376.         SharedPreferences.Editor editor = gradePrefs.edit();
  377.  
  378.         editor.putInt(gradesList.get(i).getStudentName(), gradesList.get(i).getGrade());
  379.         editor.commit();
  380.     }
  381. }
  382.  
  383. TeacherMark
  384. **************
  385. package com.example.hp.myapplication;
  386.  
  387. /**
  388.  * Created by HP on 23/10/2017.
  389.  */
  390.  
  391. public class TeacherMark {
  392. private String StudentName;
  393.     private int Grade;
  394.  
  395.     public TeacherMark (String StudentName , int Grade) {
  396.         this.StudentName = StudentName;
  397.         this.Grade = Grade ;
  398.     }
  399.  
  400.     public String getStudentName() {
  401.         return StudentName;
  402.     }
  403.  
  404.     public void setStudentName(String StudentName) {
  405.         this.StudentName = StudentName;
  406.     }
  407.  
  408.     public int getGrade() {
  409.         return Grade;
  410.     }
  411.  
  412.     public void setGrade(int grade) {
  413.         this.Grade = grade;
  414.     }
  415.  
  416. }
  417.  
  418.  
  419. WelcomeActivity
  420. *****************
  421. package com.example.hp.myapplication;
  422.  
  423.  
  424.         import android.content.Context;
  425.         import android.content.SharedPreferences;
  426.         import android.database.DataSetObserver;
  427.         import android.support.v7.app.AppCompatActivity;
  428.         import android.os.Bundle;
  429.         import android.view.View;
  430.         import android.view.ViewGroup;
  431.         import android.widget.ListAdapter;
  432.         import android.widget.ListView;
  433.         import android.widget.TextView;
  434.  
  435.         import java.util.ArrayList;
  436.         import java.util.List;
  437.  
  438. public class WelcomeActivity extends AppCompatActivity {
  439.     private TextView tvWelcome;
  440.     private String userName;
  441.     private ListView lsvGrades;
  442.     private List<GradeItem> myGrades;
  443.  
  444.     @Override
  445.     protected void onCreate(Bundle savedInstanceState) {
  446.         super.onCreate(savedInstanceState);
  447.         setContentView(R.layout.activity_welcome);
  448.  
  449.         userName = getIntent().getStringExtra("CurrentUser");
  450.  
  451.         tvWelcome = (TextView) findViewById(R.id.tvWellcome);
  452.         lsvGrades = (ListView) findViewById(R.id.lsvGrades);
  453.  
  454.         tvWelcome.setText(userName);
  455.         addGrade(userName,"Arabic", 90);
  456.         addGrade(userName,"Hebrew", 99);
  457.         addGrade(userName,"Math", 83);
  458.         addGrade(userName,"History", 20);
  459.         addGrade(userName,"English", 98);
  460.         addGrade(userName,"Fatin", 30);
  461.         addGrade(userName,"Ayoub", 80);
  462.         addGrade(userName,"Lolo", 100);
  463.  
  464.  
  465.         GradesAdapter gAdapter = new GradesAdapter(userName, this);
  466.         lsvGrades.setAdapter(gAdapter);
  467.  
  468.     }
  469.  
  470.     public void addGrade(String userName, String subject, int grade) {
  471.         SharedPreferences sp = getSharedPreferences(userName, Context.MODE_PRIVATE);
  472.         sp.edit().putInt(subject, grade).commit();
  473.     }
  474. }
  475.  
  476. activity_main_xml
  477. **********************
  478. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  479. android:layout_width="match_parent"
  480. android:layout_height="match_parent"
  481. android:orientation="vertical">
  482.  
  483. <TextView
  484.     android:layout_width="match_parent"
  485.     android:layout_height="wrap_content"
  486.     android:layout_marginTop="15dp"
  487.     android:gravity="center"
  488.     android:text="login title"
  489.     android:textColor="#FDD7E4"
  490.     android:textSize="32sp" />
  491.  
  492. <EditText
  493.     android:id="@+id/etUserName"
  494.     android:layout_width="match_parent"
  495.     android:layout_height="wrap_content"
  496.     android:layout_marginTop="15dp"
  497.     android:hint="user name"
  498.     android:textSize="24sp" />
  499.  
  500. <EditText
  501.     android:id="@+id/etPassword"
  502.     android:layout_width="match_parent"
  503.     android:layout_height="wrap_content"
  504.     android:hint="Password"
  505.     android:inputType="textPassword"
  506.     android:textSize="24sp" />
  507.  
  508.     <EditText
  509.         android:id="@+id/etClass"
  510.         android:layout_width="match_parent"
  511.         android:layout_height="wrap_content"
  512.         android:hint="the class"
  513.         android:textSize="24sp" />
  514.  
  515. <LinearLayout
  516.     android:layout_width="match_parent"
  517.     android:layout_height="wrap_content"
  518.     android:orientation="horizontal">
  519.  
  520.     <Button
  521.         android:id="@+id/btnLogin"
  522.         android:layout_width="wrap_content"
  523.         android:layout_height="wrap_content"
  524.         android:layout_margin="10dp"
  525.         android:layout_weight="1"
  526.         android:text="Login"
  527.         android:textSize="18sp" />
  528.  
  529.  
  530.     <Button
  531.         android:id="@+id/btnRegister"
  532.         android:layout_width="wrap_content"
  533.         android:layout_height="wrap_content"
  534.         android:layout_margin="10dp"
  535.         android:layout_weight="1"
  536.         android:text="Register"
  537.         android:textSize="18sp" />
  538.  
  539.     <Button
  540.         android:id="@+id/btnCancel"
  541.         android:layout_width="wrap_content"
  542.         android:layout_height="wrap_content"
  543.         android:layout_margin="10dp"
  544.         android:layout_weight="1"
  545.         android:text="Cancel"
  546.         android:textSize="18sp" />
  547. </LinearLayout>
  548. </LinearLayout>
  549.  
  550. activity_techer_xml
  551. *******************
  552. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  553.     android:layout_width="match_parent"
  554.     android:layout_height="match_parent"
  555.     android:orientation="vertical">
  556.  
  557.     <TextView
  558.         android:layout_width="match_parent"
  559.         android:layout_height="wrap_content"
  560.         android:layout_marginTop="15dp"
  561.         android:gravity="center"
  562.         android:text="login title"
  563.         android:textColor="#A9F5F2"
  564.         android:textSize="32sp" />
  565.  
  566.     <EditText
  567.         android:id="@+id/etUserName"
  568.         android:layout_width="match_parent"
  569.         android:layout_height="wrap_content"
  570.         android:layout_marginTop="15dp"
  571.         android:hint="user name"
  572.         android:textSize="24sp" />
  573.  
  574.     <EditText
  575.         android:id="@+id/etPassword"
  576.         android:layout_width="match_parent"
  577.         android:layout_height="wrap_content"
  578.         android:hint="Password"
  579.         android:inputType="textPassword"
  580.         android:textSize="24sp" />
  581.  
  582.     <EditText
  583.         android:id="@+id/etclass"
  584.         android:layout_width="match_parent"
  585.         android:layout_height="wrap_content"
  586.         android:hint="the class"
  587.         android:textSize="24sp" />
  588.  
  589.     <LinearLayout
  590.         android:layout_width="match_parent"
  591.         android:layout_height="wrap_content"
  592.         android:orientation="horizontal">
  593.  
  594.         <Button
  595.             android:id="@+id/btnLogin"
  596.             android:layout_width="wrap_content"
  597.             android:layout_height="wrap_content"
  598.             android:layout_margin="10dp"
  599.             android:layout_weight="1"
  600.             android:text="Login"
  601.             android:textSize="18sp" />
  602.  
  603.  
  604.         <Button
  605.             android:id="@+id/btnRegister"
  606.             android:layout_width="wrap_content"
  607.             android:layout_height="wrap_content"
  608.             android:layout_margin="10dp"
  609.             android:layout_weight="1"
  610.             android:text="Register"
  611.             android:textSize="18sp" />
  612.  
  613.         <Button
  614.             android:id="@+id/btnCancel"
  615.             android:layout_width="wrap_content"
  616.             android:layout_height="wrap_content"
  617.             android:layout_margin="10dp"
  618.             android:layout_weight="1"
  619.             android:text="Cancel"
  620.             android:textSize="18sp" />
  621.     </LinearLayout>
  622. </LinearLayout>
  623.  
  624. activty_welcome_xml
  625. ******************
  626.  
  627.  
  628. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  629.     android:layout_width="match_parent"
  630.     android:layout_height="match_parent"
  631.     android:orientation="vertical">
  632.  
  633.     <TextView
  634.         android:id="@+id/tvWellcome"
  635.         android:layout_width="match_parent"
  636.         android:layout_height="wrap_content"
  637.         android:textSize="20sp" />
  638.  
  639.     <ListView
  640.         android:id="@+id/lsvGrades"
  641.         android:layout_width="match_parent"
  642.         android:layout_height="match_parent"></ListView>
  643. </LinearLayout>
  644.  
  645. grade_item_layat_xml
  646. ***********************
  647. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  648.     android:layout_width="match_parent"
  649.     android:layout_height="wrap_content"
  650.     android:background="#00fff0"
  651.     android:orientation="horizontal">
  652.  
  653.     <TextView
  654.         android:id="@+id/tvItemSubject"
  655.         android:layout_width="match_parent"
  656.         android:layout_height="wrap_content"
  657.         android:layout_weight="1"
  658.         android:text="Subject Name"
  659.         android:textSize="20sp" />
  660.  
  661.     <EditText
  662.         android:id="@+id/etItemGrade"
  663.         android:layout_width="match_parent"
  664.         android:layout_height="wrap_content"
  665.         android:layout_weight="1"
  666.         android:inputType="number"
  667.         android:maxLength="3"
  668.         android:text="Grade"
  669.         android:textSize="20sp" />
  670.  
  671.  
  672. </LinearLayout>
  673.  
  674. grade_layat_xml
  675. *****************
  676. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  677.     android:layout_width="match_parent"
  678.     android:layout_height="wrap_content"
  679.     android:background="#00fff0"
  680.     android:orientation="horizontal">
  681.  
  682.     <TextView
  683.         android:id="@+id/tvStudent"
  684.         android:layout_width="match_parent"
  685.         android:layout_height="wrap_content"
  686.         android:layout_weight="1"
  687.         android:text="StudentName"
  688.         android:textSize="20sp" />
  689.  
  690.     <EditText
  691.         android:id="@+id/etGrade"
  692.         android:layout_width="match_parent"
  693.         android:layout_height="wrap_content"
  694.         android:layout_weight="1"
  695.         android:inputType="number"
  696.         android:maxLength="3"
  697.         android:text="Grade"
  698.         android:textSize="20sp" />
  699.  
  700.     <Button
  701.         android:id="@+id/btnItemSave"
  702.         android:layout_width="match_parent"
  703.         android:layout_height="wrap_content"
  704.         android:layout_weight="1"
  705.         android:text="Save"
  706.         android:textSize="20sp" />
  707.  
  708. </LinearLayout>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement