Skip to content

Commit c2dac44

Browse files
committed
Merge branch 'burkay2' into main
2 parents 93a94cb + cb98841 commit c2dac44

14 files changed

+603
-206
lines changed

android/app/build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ android {
3636
defaultConfig {
3737
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
3838
applicationId "com.example.deadcode_hackathon"
39-
minSdkVersion 16
39+
minSdkVersion 17
40+
multiDexEnabled true
4041
targetSdkVersion 30
4142
versionCode flutterVersionCode.toInteger()
4243
versionName flutterVersionName

lib/api/network/endpoints.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ class APIEndpoints {
22
static const String _BASE_URL =
33
"https://deadcode-hackathon-default-rtdb.firebaseio.com";
44

5-
static const String USERS_API = _BASE_URL + "/users";
5+
static const String _BASE_KEY = "0JjzW52KHN3hJNYmFv3qNJ1zVFID8AEWS1ZiUfre";
6+
7+
static const String USERS_API = _BASE_URL + "/users.json?auth=" + _BASE_KEY;
68
}

lib/app/routes.dart

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:eogretmen/views/home/detail.dart';
12
import 'package:flutter/material.dart';
23
import 'package:eogretmen/widgets/main_app_widget.dart';
34
import 'package:eogretmen/views/search/search_view.dart';
@@ -11,6 +12,7 @@ class AppRouteGenerator {
1112
static const String APP_ROUTE_REGISTER = "/Register";
1213
static const String APP_ROUTE_SEARCH = "/Search";
1314
static const String APP_ROUTE_HOME = "/Home";
15+
static const String APP_ROUTE_DETAIL = "/Details";
1416

1517
Route getAppRoutes(RouteSettings routeSettings) {
1618
switch (routeSettings.name) {
@@ -28,6 +30,13 @@ class AppRouteGenerator {
2830
builder: (BuildContext context) => LogIn(),
2931
);
3032

33+
case APP_ROUTE_DETAIL:
34+
return MaterialPageRoute<void>(
35+
fullscreenDialog: true,
36+
settings: routeSettings,
37+
builder: (BuildContext context) => Details(),
38+
);
39+
3140
case APP_ROUTE_REGISTER:
3241
return MaterialPageRoute<void>(
3342
fullscreenDialog: true,

lib/resource/sharedprefs.dart

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import 'package:shared_preferences/shared_preferences.dart';
2+
3+
class SharedPrefs {
4+
//Shared preferences nesnesi oluşmuşsa aynı nesneyi tekrar çağırıyoruz yoksa sıfırdan oluşturuyoruz
5+
static SharedPreferences _prefs;
6+
static initialize() async {
7+
if (_prefs != null) {
8+
return _prefs;
9+
} else {
10+
_prefs = await SharedPreferences.getInstance();
11+
}
12+
}
13+
14+
//Shared prefs üzerine mail adresini kayıt ediyoruz
15+
static Future<void> saveMail(String mail) async {
16+
return _prefs.setString('mail', mail);
17+
}
18+
19+
static Future<void> saveName(String name) async {
20+
return _prefs.setString('name', name);
21+
}
22+
23+
static Future<void> savePhoto(String name) async {
24+
return _prefs.setString('photo', name);
25+
}
26+
27+
//Shared prefs üzerine şifreyi kayıt ediyoruz
28+
static Future<void> savePassword(String password) async {
29+
return _prefs.setString("password", password);
30+
}
31+
32+
static Future<void> saveId(String id) async {
33+
return _prefs.setString("id", id);
34+
}
35+
36+
static Future<void> saveloginId(String id) async {
37+
return _prefs.setString("id", id);
38+
}
39+
40+
static Future<void> saveTheme(bool theme) async {
41+
return _prefs.setBool("theme", theme);
42+
}
43+
44+
//Shared üzerinde kayıtlı olan bütün verileri siler
45+
static Future<void> sharedClear() async {
46+
return _prefs.clear();
47+
}
48+
49+
//Login bilgisini tutar
50+
static Future<void> login() async {
51+
return _prefs.setBool('login', true);
52+
}
53+
54+
//Kayıtlı veri varsa alıyoruz yoksa boş değer atıyoruz
55+
static String get getMail => _prefs.getString("mail") ?? null;
56+
static String get getName => _prefs.getString("name") ?? null;
57+
static bool get getTheme => _prefs.getBool("theme") ?? false;
58+
static String get getId => _prefs.getString("id") ?? null;
59+
static String get getloginId => _prefs.getString("id") ?? null;
60+
static String get getPhoto =>
61+
_prefs.getString("photo") ??
62+
"https://upload.wikimedia.org/wikipedia/commons/7/70/User_icon_BLACK-01.png";
63+
static bool get getLogin => _prefs.getBool('login') ?? false;
64+
}

lib/state/detailsState.dart

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import 'dart:collection';
2+
3+
import 'package:cloud_firestore/cloud_firestore.dart';
4+
import 'package:eogretmen/state/loginState.dart';
5+
import 'package:firebase_auth/firebase_auth.dart';
6+
import 'package:firebase_database/firebase_database.dart';
7+
import 'package:flutter/material.dart';
8+
import 'package:get/get.dart';
9+
10+
class DetailState extends GetxController {
11+
List data = [];
12+
List data2 = [];
13+
veriGetir(kategori, kategori2) async {
14+
List<dynamic> list = List<dynamic>();
15+
16+
var val = await FirebaseFirestore.instance
17+
.collection('education')
18+
.doc('H9y6EneZQjTZmBNReAAv')
19+
.get();
20+
21+
data = val[kategori];
22+
data2 = val[kategori2];
23+
update();
24+
}
25+
}

lib/state/loginState.dart

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import 'dart:collection';
2+
import 'dart:convert';
3+
import 'dart:io';
4+
5+
import 'package:cloud_firestore/cloud_firestore.dart';
6+
import 'package:eogretmen/api/network/endpoints.dart';
7+
import 'package:eogretmen/app/routes.dart';
8+
import 'package:eogretmen/resource/sharedprefs.dart';
9+
import 'package:eogretmen/state/detailsState.dart';
10+
import 'package:firebase_auth/firebase_auth.dart';
11+
import 'package:firebase_database/firebase_database.dart';
12+
import 'package:flutter/material.dart';
13+
import 'package:get/get.dart';
14+
import 'package:http/http.dart' as http;
15+
16+
class LoginState extends GetxController {
17+
bool userLogin = false;
18+
bool basildimi = false;
19+
String girisisim, giriseposta, girisresim, girisId, girisloginId;
20+
final FirebaseAuth _auth = FirebaseAuth.instance;
21+
girisYap(email, sifre, context) async {
22+
var databaseReference = FirebaseDatabase.instance.reference();
23+
databaseReference
24+
.child("users")
25+
.orderByChild("email")
26+
.equalTo("deneme")
27+
.limitToFirst(1)
28+
.once()
29+
.then((value) {
30+
if (value != null) {
31+
var password;
32+
value.value.forEach((k, v) => {password = v['password']});
33+
if (password == sifre.text) {
34+
Navigator.pushReplacementNamed(
35+
context, AppRouteGenerator.APP_ROUTE_HOME);
36+
} else {
37+
Get.snackbar("hata", "hata");
38+
}
39+
}
40+
});
41+
}
42+
43+
profilresmiGetir(email) async {
44+
final result = await FirebaseFirestore.instance
45+
.collection('users')
46+
.where("email", isEqualTo: email)
47+
.get();
48+
girisresim = result.docs[0]['profilResim'].toString();
49+
SharedPrefs.savePhoto(girisresim);
50+
}
51+
52+
signUp(Map map) async {
53+
final response =
54+
await http.post(APIEndpoints.USERS_API, body: json.encode(map));
55+
56+
switch (response.statusCode) {
57+
case HttpStatus.ok:
58+
print(response.body);
59+
return true;
60+
61+
default:
62+
print("");
63+
}
64+
}
65+
66+
setBasildimi(bool deger) {
67+
basildimi = deger;
68+
update();
69+
}
70+
}

lib/views/auth/login_view.dart

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import 'package:eogretmen/state/loginState.dart';
12
import 'package:flutter/material.dart';
23
import 'package:eogretmen/app/routes.dart';
34
import 'package:eogretmen/resource/themeColors.dart';
5+
import 'package:get/get.dart';
46
import 'package:google_fonts/google_fonts.dart';
57

68
class LogIn extends StatefulWidget {
@@ -15,6 +17,7 @@ class _LogInState extends State<LogIn> {
1517
@override
1618
Widget build(BuildContext context) {
1719
final Size size = MediaQuery.of(context).size;
20+
final state = Get.put(LoginState());
1821

1922
return Scaffold(
2023
backgroundColor: Theme.of(context).backgroundColor,
@@ -27,6 +30,7 @@ class _LogInState extends State<LogIn> {
2730
}
2831

2932
Widget signInWidget(BuildContext context, Size size) {
33+
final LoginState state = Get.find();
3034
return Container(
3135
padding: EdgeInsets.symmetric(
3236
horizontal: size.width * 0.15,
@@ -84,8 +88,9 @@ class _LogInState extends State<LogIn> {
8488
),
8589
RaisedButton(
8690
padding: EdgeInsets.all(0),
87-
onPressed: () => Navigator.pushReplacementNamed(
88-
context, AppRouteGenerator.APP_ROUTE_HOME),
91+
onPressed: () => {
92+
state.girisYap(txtUserName, txtPassword, context),
93+
},
8994
child: Container(
9095
width: size.width,
9196
alignment: Alignment.center,

0 commit comments

Comments
 (0)