Skip to content

Commit 5a014aa

Browse files
authored
Merge pull request #51 from SelimHorri/develop
Develop
2 parents d88871e + d81a7c6 commit 5a014aa

File tree

93 files changed

+4283
-345
lines changed

Some content is hidden

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

93 files changed

+4283
-345
lines changed

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ dependencies {
5555
implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
5656
implementation "androidx.cardview:cardview:1.0.0"
5757

58-
58+
api 'com.google.android.material:material:1.4.0-rc01'
5959

6060
}

app/src/androidTest/java/com/selimhorri/pack/ExampleInstrumentedTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import android.content.Context;
44

5-
import androidx.test.platform.app.InstrumentationRegistry;
65
import androidx.test.ext.junit.runners.AndroidJUnit4;
6+
import androidx.test.platform.app.InstrumentationRegistry;
77

88
import org.junit.Test;
99
import org.junit.runner.RunWith;
1010

11-
import static org.junit.Assert.*;
11+
import static org.junit.Assert.assertEquals;
1212

1313
/**
1414
* Instrumented test, which will execute on an Android device.

app/src/main/AndroidManifest.xml

+17-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,23 @@
1111
android:roundIcon="@mipmap/ic_launcher_round"
1212
android:supportsRtl="true"
1313
android:theme="@style/Theme.Projecttrackingsystemandroidapp">
14-
<activity android:name=".activity.employee.EmployeeEditCredentialsActivity"></activity>
14+
<activity android:name=".activity.admin.dept.AdminDepartmentAddActivity"></activity>
15+
<activity android:name=".activity.admin.emp.AdminEmployeeAddActivity" />
16+
<activity android:name=".activity.admin.loc.AdminLocationAddActivity" />
17+
<activity android:name=".activity.admin.dept.AdminDepartmentEditActivity" />
18+
<activity android:name=".activity.admin.emp.AdminEmployeeEditActivity" />
19+
<activity android:name=".activity.admin.loc.AdminLocationEditActivity" />
20+
<activity android:name=".activity.admin.AdminInfoActivity" />
21+
<activity android:name=".activity.admin.loc.AdminLocationListActivity" />
22+
<activity android:name=".activity.admin.dept.AdminDepartmentListActivity" />
23+
<activity android:name=".activity.admin.emp.AdminEmployeeListActivity" />
24+
<activity android:name=".activity.manager.ManagerEditProjectActivity" />
25+
<activity android:name=".activity.manager.ManagerDescribeCommitActivity" />
26+
<activity android:name=".activity.manager.ManagerAddProjectActivity" />
27+
<activity android:name=".activity.manager.ManagerShowCommitsActivity" />
28+
<activity android:name=".activity.manager.ManagerTeamActivity" />
29+
<activity android:name=".activity.manager.ManagerInfoActivity" />
30+
<activity android:name=".activity.employee.EmployeeEditCredentialsActivity" />
1531
<activity android:name=".activity.employee.EmployeeTeamActivity" />
1632
<activity android:name=".activity.employee.EmployeeAddCommitActivity" />
1733
<activity android:name=".activity.employee.EmployeeShowAllCommitsActivity" />

app/src/main/java/com/selimhorri/pack/activity/admin/AdminIndexActivity.java

+25-1
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,40 @@
44
import android.os.Bundle;
55
import android.view.Menu;
66
import android.view.MenuItem;
7+
import android.widget.Button;
78

89
import androidx.annotation.NonNull;
910
import androidx.appcompat.app.AppCompatActivity;
1011

1112
import com.selimhorri.pack.R;
1213
import com.selimhorri.pack.activity.HomeActivity;
14+
import com.selimhorri.pack.activity.admin.dept.AdminDepartmentListActivity;
15+
import com.selimhorri.pack.activity.admin.emp.AdminEmployeeListActivity;
16+
import com.selimhorri.pack.activity.admin.loc.AdminLocationListActivity;
1317

1418
public class AdminIndexActivity extends AppCompatActivity {
1519

20+
private Button btnManageEmployees;
21+
private Button btnManageDepartments;
22+
private Button btnManageLocations;
23+
1624
@Override
1725
protected void onCreate(Bundle savedInstanceState) {
1826
super.onCreate(savedInstanceState);
1927
setContentView(R.layout.activity_admin_index);
28+
29+
this.initialize();
30+
31+
this.btnManageEmployees.setOnClickListener(v -> super.startActivity(new Intent(AdminIndexActivity.this, AdminEmployeeListActivity.class)));
32+
this.btnManageDepartments.setOnClickListener(v -> super.startActivity(new Intent(AdminIndexActivity.this, AdminDepartmentListActivity.class)));
33+
this.btnManageLocations.setOnClickListener(v -> super.startActivity(new Intent(AdminIndexActivity.this, AdminLocationListActivity.class)));
34+
35+
}
36+
37+
private void initialize() {
38+
this.btnManageEmployees = super.findViewById(R.id.buttonAdminIndexManageEmployees);
39+
this.btnManageDepartments = super.findViewById(R.id.buttonAdminIndexManageDepartments);
40+
this.btnManageLocations = super.findViewById(R.id.buttonAdminIndexManageLocations);
2041
}
2142

2243
@Override
@@ -31,7 +52,10 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
3152

3253
switch (item.getItemId()) {
3354
case R.id.adminAccountInfo:
34-
// super.startActivity(new Intent(AdminIndexActivity.this, AdminInfoActivity.class));
55+
super.startActivity(new Intent(AdminIndexActivity.this, AdminInfoActivity.class));
56+
return true;
57+
case R.id.adminCategories:
58+
super.startActivity(new Intent(this, AdminIndexActivity.class));
3559
return true;
3660
case R.id.adminLogout:
3761
super.getSharedPreferences("admin", MODE_PRIVATE)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.selimhorri.pack.activity.admin;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.view.Menu;
6+
import android.view.MenuItem;
7+
8+
import androidx.annotation.NonNull;
9+
import androidx.appcompat.app.AppCompatActivity;
10+
11+
import com.selimhorri.pack.R;
12+
import com.selimhorri.pack.activity.HomeActivity;
13+
14+
public class AdminInfoActivity extends AppCompatActivity {
15+
16+
@Override
17+
protected void onCreate(Bundle savedInstanceState) {
18+
super.onCreate(savedInstanceState);
19+
setContentView(R.layout.activity_admin_info);
20+
}
21+
22+
@Override
23+
public boolean onCreateOptionsMenu(Menu menu) {
24+
super.getMenuInflater()
25+
.inflate(R.menu.menu_admin, menu);
26+
return true;
27+
}
28+
29+
@Override
30+
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
31+
32+
switch (item.getItemId()) {
33+
case R.id.adminAccountInfo:
34+
super.startActivity(new Intent(AdminInfoActivity.this, AdminInfoActivity.class));
35+
return true;
36+
case R.id.adminCategories:
37+
super.startActivity(new Intent(this, AdminIndexActivity.class));
38+
return true;
39+
case R.id.adminLogout:
40+
super.getSharedPreferences("admin", MODE_PRIVATE)
41+
.edit()
42+
.clear()
43+
.apply();
44+
super.startActivity(new Intent(AdminInfoActivity.this, HomeActivity.class));
45+
return true;
46+
default:
47+
return super.onOptionsItemSelected(item);
48+
}
49+
}
50+
51+
52+
53+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.selimhorri.pack.activity.admin.dept;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.view.Menu;
6+
import android.view.MenuItem;
7+
8+
import androidx.annotation.NonNull;
9+
import androidx.appcompat.app.AppCompatActivity;
10+
11+
import com.selimhorri.pack.R;
12+
import com.selimhorri.pack.activity.HomeActivity;
13+
import com.selimhorri.pack.activity.admin.AdminIndexActivity;
14+
import com.selimhorri.pack.activity.admin.AdminInfoActivity;
15+
16+
public class AdminDepartmentAddActivity extends AppCompatActivity {
17+
18+
@Override
19+
protected void onCreate(Bundle savedInstanceState) {
20+
super.onCreate(savedInstanceState);
21+
setContentView(R.layout.activity_admin_add_department);
22+
}
23+
24+
@Override
25+
public boolean onCreateOptionsMenu(Menu menu) {
26+
super.getMenuInflater()
27+
.inflate(R.menu.menu_admin, menu);
28+
return true;
29+
}
30+
31+
@Override
32+
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
33+
34+
switch (item.getItemId()) {
35+
case R.id.adminAccountInfo:
36+
super.startActivity(new Intent(AdminDepartmentAddActivity.this, AdminInfoActivity.class));
37+
return true;
38+
case R.id.adminCategories:
39+
super.startActivity(new Intent(this, AdminIndexActivity.class));
40+
return true;
41+
case R.id.adminNewDepartment:
42+
super.startActivity(new Intent(AdminDepartmentAddActivity.this, AdminDepartmentAddActivity.class));
43+
return true;
44+
case R.id.adminAbout:
45+
// super.startActivity(new Intent(AdminDepartmentAddActivity.this, AdminInfoActivity.class));
46+
return true;
47+
case R.id.adminLogout:
48+
super.getSharedPreferences("admin", MODE_PRIVATE)
49+
.edit()
50+
.clear()
51+
.apply();
52+
super.startActivity(new Intent(AdminDepartmentAddActivity.this, HomeActivity.class));
53+
return true;
54+
default:
55+
return super.onOptionsItemSelected(item);
56+
}
57+
}
58+
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
package com.selimhorri.pack.activity.admin.dept;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.view.Menu;
6+
import android.view.MenuItem;
7+
import android.widget.Button;
8+
import android.widget.EditText;
9+
import android.widget.Toast;
10+
11+
import androidx.annotation.NonNull;
12+
import androidx.appcompat.app.AppCompatActivity;
13+
14+
import com.selimhorri.pack.R;
15+
import com.selimhorri.pack.activity.HomeActivity;
16+
import com.selimhorri.pack.activity.admin.AdminIndexActivity;
17+
import com.selimhorri.pack.activity.admin.AdminInfoActivity;
18+
import com.selimhorri.pack.activity.admin.loc.AdminLocationEditActivity;
19+
import com.selimhorri.pack.pattern.builder.DepartmentBuilder;
20+
import com.selimhorri.pack.service.DepartmentService;
21+
import com.selimhorri.pack.service.LocationService;
22+
import com.selimhorri.pack.service.impl.DepartmentServiceImpl;
23+
import com.selimhorri.pack.service.impl.LocationServiceImpl;
24+
25+
public class AdminDepartmentEditActivity extends AppCompatActivity {
26+
27+
private final DepartmentService departmentService;
28+
private final LocationService locationService;
29+
private EditText editTextDepartmentName;
30+
private EditText editTextLocation;
31+
private Button btnEditDepartment;
32+
33+
public AdminDepartmentEditActivity() {
34+
this.departmentService = new DepartmentServiceImpl(AdminDepartmentEditActivity.this);
35+
this.locationService = new LocationServiceImpl(AdminDepartmentEditActivity.this);
36+
}
37+
38+
@Override
39+
protected void onCreate(Bundle savedInstanceState) {
40+
super.onCreate(savedInstanceState);
41+
setContentView(R.layout.activity_admin_edit_department);
42+
43+
this.initialize();
44+
45+
final Bundle extras = super.getIntent().getExtras();
46+
final Integer departmentId = extras.getInt("departmentId");
47+
48+
this.departmentService.findById(
49+
departmentId,
50+
department -> {
51+
this.editTextDepartmentName.setText(department.getDepartmentName());
52+
this.editTextLocation.setText(String.valueOf(department.getLocation().getLocationId()));
53+
},
54+
error -> Toast.makeText(AdminDepartmentEditActivity.this, error.toString(), Toast.LENGTH_SHORT).show()
55+
);
56+
57+
this.btnEditDepartment.setOnClickListener(v -> {
58+
final String departmentName = this.editTextDepartmentName.getText().toString().trim();
59+
final String locationIdString = this.editTextLocation.getText().toString().trim();
60+
61+
if (isEmpty(departmentName, locationIdString))
62+
Toast.makeText(AdminDepartmentEditActivity.this, "Field(s) is/are empty, plz try again!", Toast.LENGTH_SHORT).show();
63+
else
64+
this.locationService.findById(
65+
Integer.parseInt(locationIdString),
66+
location ->
67+
this.departmentService.update(
68+
new DepartmentBuilder()
69+
.departmentId(departmentId)
70+
.departmentName(departmentName)
71+
.location(location)
72+
.build(),
73+
department -> {
74+
if (department == null || department.getLocation() == null)
75+
Toast.makeText(AdminDepartmentEditActivity.this, "Department does not exist!", Toast.LENGTH_SHORT).show();
76+
else {
77+
super.startActivity(
78+
new Intent(AdminDepartmentEditActivity.this, AdminLocationEditActivity.class)
79+
.putExtra("departmentId", department.getDepartmentId())
80+
);
81+
Toast.makeText(AdminDepartmentEditActivity.this, "Department updated successfully!", Toast.LENGTH_SHORT).show();
82+
}
83+
},
84+
error -> Toast.makeText(AdminDepartmentEditActivity.this, error.toString(), Toast.LENGTH_SHORT).show()
85+
),
86+
error -> Toast.makeText(AdminDepartmentEditActivity.this, error.toString(), Toast.LENGTH_SHORT).show()
87+
);
88+
89+
});
90+
91+
}
92+
93+
private void initialize() {
94+
this.editTextDepartmentName = super.findViewById(R.id.editTextAdminDepartmentEditDepartmentName);
95+
this.editTextLocation = super.findViewById(R.id.editTextAdminDepartmentEditLocationId);
96+
this.btnEditDepartment = super.findViewById(R.id.buttonAdminDepartmentEditEditDepartment);
97+
}
98+
99+
private static boolean isEmpty(final String departmentName, final String locationIdString) {
100+
return departmentName.isEmpty() || locationIdString.isEmpty();
101+
}
102+
103+
@Override
104+
public boolean onCreateOptionsMenu(Menu menu) {
105+
super.getMenuInflater()
106+
.inflate(R.menu.menu_admin, menu);
107+
return true;
108+
}
109+
110+
@Override
111+
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
112+
113+
switch (item.getItemId()) {
114+
case R.id.adminAccountInfo:
115+
super.startActivity(new Intent(AdminDepartmentEditActivity.this, AdminInfoActivity.class));
116+
return true;
117+
case R.id.adminCategories:
118+
super.startActivity(new Intent(this, AdminIndexActivity.class));
119+
return true;
120+
case R.id.adminNewDepartment:
121+
super.startActivity(new Intent(AdminDepartmentEditActivity.this, AdminDepartmentAddActivity.class));
122+
return true;
123+
case R.id.adminAbout:
124+
// super.startActivity(new Intent(AdminDepartmentAddActivity.this, AdminInfoActivity.class));
125+
return true;
126+
case R.id.adminLogout:
127+
super.getSharedPreferences("admin", MODE_PRIVATE)
128+
.edit()
129+
.clear()
130+
.apply();
131+
super.startActivity(new Intent(AdminDepartmentEditActivity.this, HomeActivity.class));
132+
return true;
133+
default:
134+
return super.onOptionsItemSelected(item);
135+
}
136+
}
137+
138+
}

0 commit comments

Comments
 (0)