· 7 years ago · Nov 27, 2018, 02:12 AM
1package com.example.alqahtag.outfit;
2
3import android.Manifest;
4import android.app.DatePickerDialog;
5import android.app.IntentService;
6import android.content.Intent;
7import android.content.pm.PackageManager;
8import android.database.Cursor;
9import android.graphics.BitmapFactory;
10import android.graphics.Color;
11import android.graphics.drawable.ColorDrawable;
12import android.net.Uri;
13import android.os.Build;
14import android.provider.MediaStore;
15import android.service.autofill.TextValueSanitizer;
16import android.support.annotation.NonNull;
17import android.support.annotation.Nullable;
18import android.support.v7.app.AppCompatActivity;
19import android.os.Bundle;
20import android.util.Log;
21import android.view.View;
22import android.widget.Button;
23import android.widget.DatePicker;
24import android.widget.EditText;
25import android.widget.ImageButton;
26import android.widget.ImageView;
27import android.widget.TextView;
28import android.widget.Toast;
29
30import java.io.File;
31import java.io.FileInputStream;
32import java.io.FileOutputStream;
33import java.util.Calendar;
34
35public class MainActivity extends AppCompatActivity {
36
37private static final String TAG = "MainActivity";
38private static final int PERMISSION_REQUEST = 0;
39private static final int RESULT_LOAD_IMAGE = 1;
40
41private ImageView imageView;
42private ImageButton imageLoad;
43private EditText displayDate;
44private DatePickerDialog.OnDateSetListener dateSetListener;
45
46DatabaseHandler handler = new DatabaseHandler(this);
47
48@Override
49protected void onCreate(Bundle savedInstanceState) {
50 super.onCreate(savedInstanceState);
51 setContentView(R.layout.activity_main);
52 displayDate = (EditText) findViewById(R.id.editAge);
53 imageLoad = (ImageButton) findViewById(R.id.imageLoad);
54 imageView = (ImageView) findViewById(R.id.imageView);
55
56// for the load image functionality
57 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
58 checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) !=
59 PackageManager.PERMISSION_GRANTED) {
60 requestPermissions(new String[]
61 {Manifest.permission.READ_EXTERNAL_STORAGE},
62 PERMISSION_REQUEST);
63 }
64
65// when the image loading button clicked
66 imageLoad.setOnClickListener(new View.OnClickListener() {
67 @Override
68 public void onClick(View v) {
69 Intent loading = new Intent(Intent.ACTION_PICK,
70 MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
71 startActivityForResult(loading, RESULT_LOAD_IMAGE);
72 }
73 });
74 displayDate.setOnClickListener(new View.OnClickListener() {
75 @Override
76 public void onClick(View view) {
77 Calendar cal = Calendar.getInstance();
78 int year = cal.get(Calendar.YEAR);
79 int month = cal.get(Calendar.MONTH);
80 int day = cal.get(Calendar.DAY_OF_MONTH);
81
82 DatePickerDialog dialog = new DatePickerDialog(
83 MainActivity.this,
84 android.R.style.Theme_Black_NoTitleBar,
85 dateSetListener,
86 year, month, day
87 );
88 dialog.getWindow().setBackgroundDrawable(new
89 ColorDrawable(Color.TRANSPARENT));
90 dialog.show();
91 }
92 });
93
94 dateSetListener = new DatePickerDialog.OnDateSetListener() {
95 @Override
96 public void onDateSet(DatePicker datePicker, int year, int month,
97 int day) {
98 month = month + 1;
99 Log.d(TAG, "onDateSet(): mm/dd/yyyy" + month + "/" + day + "/"
100 +
101 year);
102
103 String date = month + "/" + day + "/" + year;
104 displayDate.setText(date);
105 }
106 };
107
108}
109
110public void onClick(View v){
111 EditText userName = (EditText) findViewById(R.id.editUsername);
112 EditText email = (EditText) findViewById(R.id.editEmail);
113 EditText password = (EditText) findViewById(R.id.editPsw);
114 EditText confirmPsw = (EditText) findViewById(R.id.editConfirmPsw);
115 EditText birthday = (EditText) findViewById(R.id.editAge);
116
117// convert the input types to string
118 String userNamestr = userName.getText().toString();
119 String emailstr = email.getText().toString();
120 String passwordstr = password.getText().toString();
121 String confirmpswstr = confirmPsw.getText().toString();
122 int birthdaystr = Integer.parseInt(birthday.getText().toString());
123
124// check if the passwords match
125 if(!passwordstr.equals(confirmpswstr)){
126 Toast.makeText(MainActivity.this, "Passwords don't match!",
127 Toast.LENGTH_SHORT).show();
128 }
129 if(passwordstr.equals(confirmpswstr)){
130 Toast.makeText(MainActivity.this, "detailes have been saved",
131 Toast.LENGTH_LONG).show();
132// insert the details in database
133 Contact c = new Contact();
134 c.setUsername(userNamestr);
135 c.setEmail(emailstr);
136 c.setPassword(passwordstr);
137 c.setBirthday(birthdaystr);
138 handler.insertContact(c);
139 Intent intentDisplay = new Intent(this, LogInActivity.class);
140 startActivity(intentDisplay); //will show a login dialog
141 }
142
143
144}
145
146
147@Override
148public void onRequestPermissionsResult(int requestCode, @NonNull String[]
149permissions, @NonNull int[] grantResults) {
150 switch (requestCode) {
151 case PERMISSION_REQUEST:
152 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
153 Toast.makeText(this, "Permission granted",
154 Toast.LENGTH_SHORT).show();
155 } else {
156 Toast.makeText(this, "Permission rejected",
157 Toast.LENGTH_SHORT).show();
158 finish();
159 }
160 }
161}
162
163@Override
164protected void onActivityResult(int requestCode, int resultCode, @Nullable
165Intent data) {
166 switch (requestCode){
167 case RESULT_LOAD_IMAGE:
168 if(resultCode == RESULT_OK){
169 Uri selectedImage = data.getData();
170 String[] filePathColumn = {MediaStore.Images.Media.DATA};
171 Cursor cursor = getContentResolver().query(selectedImage,
172filePathColumn, null,null, null);
173 cursor.moveToFirst();
174 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
175 String picturePath = cursor.getString(columnIndex);
176
177imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
178 }
179 }
180}
181
182}
183
184package com.example.alqahtag.outfit;
185
186import android.content.ContentValues;
187import android.content.Context;
188import android.database.Cursor;
189import android.database.sqlite.SQLiteDatabase;
190import android.database.sqlite.SQLiteOpenHelper;
191import android.util.Log;
192
193
194public class DatabaseHandler extends SQLiteOpenHelper {
195
196private static final int DATABASE_VERSION = 1;
197private static final String DATABASE_NAME = "contacts.db";
198private static final String TABLE_NAME = "contacts";
199private static final String COLUMN_USERNAME ="username";
200private static final String COLUMN_EMAIL = "email";
201private static final String COLUMN_PASSWORD = "password";
202private static final String COLUMN_BIRTHDAY = "birthday";
203private static final String TABLE_CREATE = "create table contacts (username
204text primary key not null," + "email text not null, password text not null,
205birthday integre not null)";
206
207SQLiteDatabase db;
208
209public DatabaseHandler(Context context){
210 super(context, DATABASE_NAME, null, DATABASE_VERSION);
211}
212@Override
213public void onCreate(SQLiteDatabase db) {
214 db.execSQL(TABLE_CREATE);
215 this.db = db;
216}
217
218@Override
219public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
220 String query = "DROP TABLE IF EXISTS " + TABLE_NAME;
221 db.execSQL(query);
222 this.onCreate(db);
223}
224
225public void insertContact(Contact contact){
226 db = this.getWritableDatabase();
227 ContentValues contentValues = new ContentValues();
228 contentValues.put(COLUMN_USERNAME, contact.getUsername());
229 contentValues.put(COLUMN_EMAIL, contact.getEmail());
230 contentValues.put(COLUMN_PASSWORD, contact.getPassword());
231 contentValues.put(COLUMN_BIRTHDAY, contact.getBirthday());
232
233 db.insert(TABLE_NAME, null, contentValues);
234 db.close();
235}
236
237 public String searchPass(String username){
238 db = this.getReadableDatabase();
239 String query = "select username, password from " + TABLE_NAME;
240 Cursor cursor = db.rawQuery(query, null);
241 String ausername, bpassword ;
242 bpassword = "not found";
243 if(cursor.moveToFirst()){
244 do{
245 ausername = cursor.getString(0);
246
247 if(ausername.equals(username)){
248 bpassword = cursor.getString(1);
249 break;
250 }
251 }while (cursor.moveToNext());
252 }
253 return bpassword;
254 }
255}
256
257package com.example.alqahtag.outfit;
258
259import android.content.Intent;
260import android.support.v7.app.AppCompatActivity;
261import android.os.Bundle;
262import android.view.View;
263import android.widget.EditText;
264import android.widget.Toast;
265
266public class LogInActivity extends AppCompatActivity {
267
268DatabaseHandler handler = new DatabaseHandler(this);
269@Override
270protected void onCreate(Bundle savedInstanceState) {
271 super.onCreate(savedInstanceState);
272 setContentView(R.layout.activity_log_in);
273}
274public void onLogin(View view){
275 EditText usernameCheck = (EditText) findViewById(R.id.editUsername);
276 String usernameCheckstr = usernameCheck.getText().toString();
277
278 EditText pswcheck = (EditText) findViewById(R.id.editUsername);
279 String pswCheckstr = pswcheck.getText().toString();
280
281 String password = handler.searchPass(usernameCheckstr);
282 if(pswCheckstr.equals(password)){
283 Intent goHome = new Intent(this, HomeActivity.class);
284 startActivity(goHome);
285 } else {
286 Toast.makeText(this, "Username and password don't match",
287Toast.LENGTH_SHORT).show();
288 }
289
290
291}
292}