Sprint terakhir pun tiba! Ditulisan ini saya akan membahas mengenai role management yang kelompok kami gunakan.
Sebelumnya saya akan menjelaskan dua role yang terdapat pada aplikasi Sibujang.
- Penyuluh. Penyuluh merupakan agen lapangan, dimana dalam aplikasi ini ia dapat melihat pencapaian harian yang dimilikinya, melihat ringkasan pencapaian serta profilenya.
- Manager. Manager merupakan posisi yang memiliki bawahan staff, entah itu penyuluh maupun tingkatan manager lainnya. Dalam aplikasi ini manager dapat melihat akumulasi pencapaian harian dari setiap staff yang dipimpinnya, melihat list staff yang dipimpinnya melihat ringkasan perbulan pencapaian serta melihat profilenya.
Dari paparan diatas kita dapat melihat bahwa kedua role memiliki perbedaan menu navigasi. Dimana pada aplikasi manager terdapat tambahan list staff. Hal ini tentunya memerlukan role management.
Role management dibentuk pada Login Activity. User yang login akan dibuatkan objek User yang menyimpan semua informasi user tersebut dan tentunya termasuk role apa yang dimilikinya.
if(userTemp.getPosition()=="Penyuluh"){
Intent intent = new Intent(act, MainActivity.class);
intent.putExtra("userObject", userTemp);
startActivity(intent);
}
else{
Intent intent = new Intent(act, Manager_MainActivity.class);
intent.putExtra("userObject", userTemp);
startActivity(intent);
}
Pada penerapannya, aplikasi Sibujang memiliki dua MainActivity, masing-masing untuk setiap role. Hal ini dikarenakan penggunaan konten navigasi yang berbeda antara masing-masing role.
Adapun dapat dilihat untuk tetap menjaga session object user, dilakukan transfer object user implement Serializable dari satu activity ke activity lainnya.
Untuk perpindahan fragment transfer object dilakukan dengan cara membuat bundle dan meletakkan serializable kedalam bundle tersebut dan menyimpannya menjadi argument pada fragment.
Serializable user = getIntent().getSerializableExtra("userObject");
dataUser = new Bundle();
dataUser.putSerializable("userObject",user);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
ListAchievementFragment listAchievement= ListAchievementFragment.newInstance();
listAchievement.setArguments(dataUser);
transaction.replace(R.id.frame_layout_manager, listAchievement);
transaction.commit();
Sekian, semoga membantu!