Skip to content

Commit 4df17fa

Browse files
committed
Commit 1
1 parent c70349c commit 4df17fa

49 files changed

Lines changed: 1271 additions & 113 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/src/main/AndroidManifest.xml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
xmlns:tools="http://schemas.android.com/tools">
44

55
<uses-permission android:name="android.permission.INTERNET" />
6+
<uses-permission android:name="android.permission.READ_CONTACTS" />
67

78
<application
89
android:allowBackup="true"
@@ -12,8 +13,35 @@
1213
android:label="@string/app_name"
1314
android:roundIcon="@mipmap/ic_launcher_round"
1415
android:supportsRtl="true"
15-
android:theme="@style/Theme.AdvanceProtection"
16+
android:theme="@style/AppTheme"
1617
tools:targetApi="31">
18+
<activity
19+
android:name=".ContactPopup"
20+
android:exported="false" />
21+
<activity
22+
android:name=".contact_popup"
23+
android:exported="false" />
24+
<activity
25+
android:name=".AddContact"
26+
android:exported="false" />
27+
<activity
28+
android:name=".DummyPowerScreen"
29+
android:exported="false"
30+
android:showOnLockScreen="true"
31+
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
32+
33+
<service
34+
android:name=".PowerButtonService"
35+
android:enabled="true"
36+
android:exported="true" />
37+
38+
<activity
39+
android:name=".Verify"
40+
android:exported="false" />
41+
<activity
42+
android:name=".Home"
43+
android:exported="false"
44+
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
1745
<activity
1846
android:name=".Forget_Password"
1947
android:exported="false" />
@@ -22,13 +50,13 @@
2250
android:exported="false" />
2351
<activity
2452
android:name=".Login"
25-
android:exported="true">
26-
</activity>
53+
android:exported="true" />
2754
<activity
2855
android:name=".MainActivity"
2956
android:exported="true">
3057
<intent-filter>
3158
<action android:name="android.intent.action.MAIN" />
59+
3260
<category android:name="android.intent.category.LAUNCHER" />
3361
</intent-filter>
3462
</activity>
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.xncoder.advanceprotection;
2+
3+
import android.content.ContentResolver;
4+
import android.database.Cursor;
5+
import android.os.Bundle;
6+
import android.provider.ContactsContract;
7+
import android.util.Log;
8+
import android.view.LayoutInflater;
9+
import android.view.View;
10+
import android.view.ViewGroup;
11+
import android.widget.AdapterView;
12+
import android.widget.ArrayAdapter;
13+
import android.widget.Button;
14+
import android.widget.ImageButton;
15+
import android.widget.ListView;
16+
import android.widget.PopupWindow;
17+
import android.widget.Toast;
18+
19+
import androidx.activity.EdgeToEdge;
20+
import androidx.appcompat.app.AppCompatActivity;
21+
import androidx.core.graphics.Insets;
22+
import androidx.core.view.ViewCompat;
23+
import androidx.core.view.WindowInsetsCompat;
24+
25+
import java.util.ArrayList;
26+
27+
public class AddContact extends AppCompatActivity {
28+
29+
private ArrayList<String> contactsList;
30+
@Override
31+
protected void onCreate(Bundle savedInstanceState) {
32+
super.onCreate(savedInstanceState);
33+
EdgeToEdge.enable(this);
34+
setContentView(R.layout.activity_add_contact);
35+
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
36+
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
37+
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
38+
return insets;
39+
});
40+
41+
contactsList = getContacts();
42+
43+
ImageButton selectContact = findViewById(R.id.select_contact);
44+
selectContact.setOnClickListener(view -> {});
45+
}
46+
47+
private ArrayList<String> getContacts() {
48+
ArrayList<String> contactsList = new ArrayList<>();
49+
ContentResolver contentResolver = getContentResolver();
50+
Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
51+
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
52+
ContactsContract.CommonDataKinds.Phone.NUMBER},
53+
null, null, null);
54+
if (cursor != null && cursor.moveToFirst()) {
55+
do {
56+
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
57+
String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
58+
contactsList.add(contactName + "\n" + phoneNumber);
59+
} while (cursor.moveToNext());
60+
cursor.close();
61+
}
62+
return contactsList;
63+
}
64+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.xncoder.advanceprotection;
2+
3+
import android.os.Bundle;
4+
5+
import androidx.activity.EdgeToEdge;
6+
import androidx.appcompat.app.AppCompatActivity;
7+
import androidx.core.graphics.Insets;
8+
import androidx.core.view.ViewCompat;
9+
import androidx.core.view.WindowInsetsCompat;
10+
11+
public class ContactPopup extends AppCompatActivity {
12+
13+
@Override
14+
protected void onCreate(Bundle savedInstanceState) {
15+
super.onCreate(savedInstanceState);
16+
EdgeToEdge.enable(this);
17+
setContentView(R.layout.activity_contact_popup);
18+
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
19+
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
20+
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
21+
return insets;
22+
});
23+
}
24+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.xncoder.advanceprotection;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.view.WindowManager;
6+
7+
import androidx.activity.EdgeToEdge;
8+
import androidx.appcompat.app.AppCompatActivity;
9+
import androidx.core.graphics.Insets;
10+
import androidx.core.view.ViewCompat;
11+
import androidx.core.view.WindowInsetsCompat;
12+
13+
public class DummyPowerScreen extends AppCompatActivity {
14+
15+
@Override
16+
protected void onCreate(Bundle savedInstanceState) {
17+
super.onCreate(savedInstanceState);
18+
EdgeToEdge.enable(this);
19+
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
20+
setContentView(R.layout.activity_dummy_power_screen);
21+
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
22+
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
23+
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
24+
return insets;
25+
});
26+
Intent serviceIntent = new Intent(this, PowerButtonService.class);
27+
startService(serviceIntent);
28+
}
29+
}

app/src/main/java/com/xncoder/advanceprotection/Forget_Password.java

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,31 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
import android.text.TextUtils;
6+
import android.view.Gravity;
57
import android.view.View;
68
import android.widget.Button;
9+
import android.widget.EditText;
10+
import android.widget.ImageButton;
711

812
import androidx.activity.EdgeToEdge;
13+
import androidx.annotation.NonNull;
914
import androidx.appcompat.app.AppCompatActivity;
1015
import androidx.core.graphics.Insets;
1116
import androidx.core.view.ViewCompat;
1217
import androidx.core.view.WindowInsetsCompat;
1318

19+
import com.google.android.gms.tasks.OnCompleteListener;
20+
import com.google.android.gms.tasks.Task;
21+
import com.google.firebase.auth.FirebaseAuth;
22+
23+
import java.util.Objects;
24+
1425
public class Forget_Password extends AppCompatActivity {
1526

27+
private Popup popupWindow;
28+
private FirebaseAuth auth;
29+
1630
@Override
1731
protected void onCreate(Bundle savedInstanceState) {
1832
super.onCreate(savedInstanceState);
@@ -23,20 +37,32 @@ protected void onCreate(Bundle savedInstanceState) {
2337
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
2438
return insets;
2539
});
26-
Button signinBtn = (Button) findViewById(R.id.signinButton);
27-
signinBtn.setOnClickListener(new View.OnClickListener() {
28-
@Override
29-
public void onClick(View view) {
30-
finish();
31-
}
32-
});
3340

34-
Button signupBtn = (Button) findViewById(R.id.signupButton);
35-
signupBtn.setOnClickListener(new View.OnClickListener() {
36-
@Override
37-
public void onClick(View view) {
38-
Intent signupIntent = new Intent(Forget_Password.this, Register.class);
39-
startActivity(signupIntent);
41+
ImageButton back = findViewById(R.id.fg_back);
42+
back.setOnClickListener(view -> finish());
43+
44+
auth = FirebaseAuth.getInstance();
45+
EditText emailText = findViewById(R.id.fg_email);
46+
Button fgSend = findViewById(R.id.fgButton);
47+
fgSend.setOnClickListener(view -> {
48+
String email = String.valueOf(emailText.getText());
49+
if(TextUtils.isEmpty(email)) {
50+
popupWindow = new Popup(getApplicationContext(), false, "Please enter your email address");
51+
popupWindow.showAtLocation(findViewById(android.R.id.content), Gravity.CENTER, 0, 0);
52+
} else {
53+
auth.sendPasswordResetEmail(email)
54+
.addOnCompleteListener(task -> {
55+
if(task.isSuccessful()) {
56+
popupWindow = new Popup(getApplicationContext(), true, "Password reset email sent successfully");
57+
popupWindow.showAtLocation(findViewById(android.R.id.content), Gravity.CENTER, 0, 0);
58+
popupWindow.onBtn.setOnClickListener(view1 -> {
59+
finish();
60+
});
61+
} else {
62+
popupWindow = new Popup(getApplicationContext(), false, "Authentication failed : " + Objects.requireNonNull(task.getException()).getMessage());
63+
popupWindow.showAtLocation(findViewById(android.R.id.content), Gravity.CENTER, 0, 0);
64+
}
65+
});
4066
}
4167
});
4268
}

0 commit comments

Comments
 (0)