Advertisement
vickyKDV

Untitled

Oct 24th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 17.38 KB | None | 0 0
  1. package ahmedt.smile.Main;
  2.  
  3. import android.app.Dialog;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.support.annotation.NonNull;
  7. import android.support.design.widget.NavigationView;
  8. import android.support.v4.view.GravityCompat;
  9. import android.support.v4.widget.DrawerLayout;
  10. import android.support.v7.app.ActionBarDrawerToggle;
  11. import android.support.v7.app.AlertDialog;
  12. import android.support.v7.app.AppCompatActivity;
  13. import android.os.Bundle;
  14. import android.support.v7.widget.Toolbar;
  15. import android.util.Log;
  16. import android.view.Menu;
  17. import android.view.MenuItem;
  18. import android.view.View;
  19. import android.widget.AdapterView;
  20. import android.widget.ArrayAdapter;
  21. import android.widget.ImageView;
  22. import android.widget.Spinner;
  23. import android.widget.Switch;
  24. import android.widget.TextView;
  25. import android.widget.Toast;
  26.  
  27. import com.androidnetworking.AndroidNetworking;
  28. import com.androidnetworking.error.ANError;
  29. import com.androidnetworking.interfaces.OkHttpResponseAndParsedRequestListener;
  30. import com.pixplicity.easyprefs.library.Prefs;
  31.  
  32. import java.util.ArrayList;
  33. import java.util.List;
  34.  
  35. import ahmedt.smile.Fragment.DataNomorFragment.DataNomorFragment;
  36. import ahmedt.smile.Fragment.HomeFragment.HomeFragment;
  37. import ahmedt.smile.Helper.Helper;
  38. import ahmedt.smile.Login.LoginActivity;
  39. import ahmedt.smile.Main.UserModel.UserModel;
  40. import ahmedt.smile.R;
  41. import ahmedt.smile.server;
  42. import okhttp3.Response;
  43.  
  44. import static ahmedt.smile.server.EMAIL;
  45. import static ahmedt.smile.server.FOTO;
  46. import static ahmedt.smile.server.GROUP_MENU;
  47. import static ahmedt.smile.server.GROUP_MENU_PH;
  48. import static ahmedt.smile.server.GROUP_MENU_SEK;
  49. import static ahmedt.smile.server.GROUP_PARAM;
  50. import static ahmedt.smile.server.ID_CABANG;
  51. import static ahmedt.smile.server.ID_PH;
  52. import static ahmedt.smile.server.ID_SEK;
  53. import static ahmedt.smile.server.ID_SO;
  54. import static ahmedt.smile.server.INDEX;
  55. import static ahmedt.smile.server.JABATAN;
  56. import static ahmedt.smile.server.JABATAN_PH;
  57. import static ahmedt.smile.server.JABATAN_SEK;
  58. import static ahmedt.smile.server.KODE_JABATAN;
  59. import static ahmedt.smile.server.NAMA;
  60. import static ahmedt.smile.server.NAMA_CABANG;
  61. import static ahmedt.smile.server.PTS_PH;
  62. import static ahmedt.smile.server.TOKEN;
  63. import static ahmedt.smile.server.USERNAME;
  64.  
  65. public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
  66.  
  67.  
  68.  
  69.     private DrawerLayout drawerLayout;
  70.     private TextView nama;
  71.     private Menu menu;
  72.     private ImageView foto;
  73.     private Dialog myCustomDialog;
  74.     private NavigationView navigationView;
  75.     private Spinner head_spinner;
  76.  
  77.  
  78.     @Override
  79.     protected void onCreate(Bundle savedInstanceState) {
  80.         super.onCreate(savedInstanceState);
  81.         setContentView(R.layout.activity_main);
  82.  
  83.         Toolbar toolbar = findViewById(R.id.toolbar);
  84.         setSupportActionBar(toolbar);
  85.  
  86.         drawerLayout = findViewById(R.id.drawer_layout);
  87.         navigationView = findViewById(R.id.nav_view);
  88.         navigationView.setNavigationItemSelectedListener(this);
  89.  
  90.         //inisiasi item header
  91.         View headerView = navigationView.getHeaderView(0);
  92.  
  93.         nama            = headerView.findViewById(R.id.nama_header);
  94.         head_spinner    = headerView.findViewById(R.id.spinner_jabatan);
  95.  
  96.         menu            = navigationView.getMenu();
  97.  
  98.        /*    daftarNomor = menu.findItem(R.id.data_nomor_menu);
  99.          daftarNomor.setVisible(false); */
  100.         //panggil methode untuk set menu navbar
  101.         //setMenuNavbar();
  102.  
  103.         Log.d("JABATAN", "onCreate: "+Prefs.getString(JABATAN,""));
  104.         Log.d("Token", "onCreate: "+Prefs.getString(TOKEN,""));
  105.  
  106.         //untuk menampilkan icon di action bar agar navbar bisa terbuka
  107.         ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout,toolbar,R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  108.         drawerLayout.addDrawerListener(toggle);
  109.         toggle.syncState();
  110.  
  111.         //panggil user detail
  112.         getUserDetails();
  113.         addItemSpinner();
  114.  
  115.         //panggil dialog
  116.         foto = headerView.findViewById(R.id.foto_header);
  117.         foto.setOnClickListener(new View.OnClickListener() {
  118.             @Override
  119.             public void onClick(View v) {
  120.                 getDialog();
  121.             }
  122.         });
  123.  
  124.         //ketika aplikasi berganti orientasi maka tidak akan berubah fragmentnya tapi ketika  di tutup akan kembali ke fragment awal
  125.         if(savedInstanceState == null){
  126.             //set awalan fragment pada navbar
  127.         getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
  128.         navigationView.setCheckedItem(R.id.home_menu);
  129.     }}
  130. //untuk set action pada item navbar
  131.     @Override
  132.     public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
  133.         switch (menuItem.getItemId()){
  134.             case R.id.home_menu:
  135.                 getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
  136.                 break;
  137.             case R.id.data_nomor_menu:
  138.                 getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new DataNomorFragment()).commit();
  139.                 break;
  140.             case R.id.keluar_menu:
  141.                 drawerLayout.closeDrawer(GravityCompat.START);
  142.                 LogOut();
  143.                 default:
  144.         }
  145.         drawerLayout.closeDrawer(GravityCompat.START);
  146.         return true;
  147.     }
  148.  
  149.     @Override
  150.     public void onBackPressed() {
  151.         //jika navbar terbuka maka ketika menekan onbackpress akan menutup navbarnya
  152.         if (drawerLayout.isDrawerOpen(GravityCompat.START)){
  153.             drawerLayout.closeDrawer(GravityCompat.START);
  154.         }else{
  155.             //jika navbarnya sudah tertutup maka akan menjalankan printah onbackpressednya
  156.            LogOut();
  157.     }
  158.     }
  159.  
  160.     private void LogOut(){
  161.         AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
  162.                 this);
  163.         // set title dialog
  164.         alertDialogBuilder.setTitle("Ingin Keluar dari Aplikasi?");
  165.         // set pesan dari dialog
  166.         alertDialogBuilder
  167.                 .setMessage("Klik Ya untuk keluar")
  168.                 .setIcon(R.drawable.arsipku)
  169.                 .setCancelable(false)
  170.                 .setPositiveButton("Ya",new DialogInterface.OnClickListener() {
  171.                     public void onClick(DialogInterface dialog,int id) {
  172.                         Intent intent = new Intent(MainActivity.this, LoginActivity.class);
  173.                         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NO_HISTORY);
  174.                         Prefs.clear();
  175.                         startActivity(intent);
  176.                         finish();
  177.                     }
  178.                 })
  179.                 .setNegativeButton("Tidak",new DialogInterface.OnClickListener() {
  180.                     public void onClick(DialogInterface dialog, int id) {
  181.                         dialog.cancel();
  182.                     }
  183.                 });
  184.  
  185.         // membuat alert dialog dari builder
  186.         AlertDialog alertDialog = alertDialogBuilder.create();
  187.         // menampilkan alert dialog
  188.         alertDialog.show();
  189.     }
  190.  
  191.  
  192.  
  193.     private void getDialog(){
  194.         TextView nama_dialog;
  195.         ImageView fotoDialog;
  196.         myCustomDialog = new Dialog(MainActivity.this);
  197.         myCustomDialog.setContentView(R.layout.custom_dialog);
  198.         myCustomDialog.setCancelable(true);
  199.  
  200.         nama_dialog     =  myCustomDialog.findViewById(R.id.nama_dialog);
  201.         fotoDialog      =  myCustomDialog.findViewById(R.id.foto_dialog);
  202.  
  203.         nama_dialog.setText(Prefs.getString(NAMA,""));
  204.         //panggil gambar dari server
  205.         Helper.LoadImage(MainActivity.this, Prefs.getString(FOTO,""), fotoDialog);
  206.  
  207.         myCustomDialog.show();
  208.     }
  209.  
  210.     private void setMenuNavbar(){
  211.         //menu = navigationView.getMenu();
  212.          MenuItem DataNomor, KotakSurat, TerkirimSurat, DisMasSurat, DisKelSurat,
  213.                 KotakNota, TerkirimNota, DisMasNota, DisKelNota, Memo, KotakMemo,
  214.                 TerkirimMemo;
  215.  
  216.         DataNomor       = menu.findItem(R.id.data_nomor_menu);
  217.  
  218.         //item surat dinas
  219.         KotakSurat      = menu.findItem(R.id.kotak_surat_menu);
  220.         TerkirimSurat   = menu.findItem(R.id.terkirim_surat_menu);
  221.         DisMasSurat     = menu.findItem(R.id.disposisi_masuk_surat_menu);
  222.         DisKelSurat     = menu.findItem(R.id.disposisi_keluar_surat_menu);
  223.  
  224.         //item nota dinas
  225.         KotakNota      = menu.findItem(R.id.kotak_masuk_menu);
  226.         TerkirimNota   = menu.findItem(R.id.terkirim_nota_menu);
  227.         DisMasNota     = menu.findItem(R.id.disposisi_masuk_nota_menu);
  228.         DisKelNota     = menu.findItem(R.id.disposisi_keluar_nota_menu);
  229.  
  230.         //item Memo
  231.         Memo          = menu.findItem(R.id.memo);
  232.         KotakMemo     = menu.findItem(R.id.kotak_memo_menu);
  233.         TerkirimMemo     = menu.findItem(R.id.terkirim_memo_menu);
  234.  
  235.         if(Prefs.getString(GROUP_PARAM,"").equals("1")||Prefs.getString(GROUP_PARAM,"").equals("2")){
  236.             //item surat dinas
  237.             DataNomor.setVisible(true);
  238.             KotakSurat.setVisible(true);
  239.             TerkirimSurat.setVisible(true);
  240.             DisMasSurat.setVisible(true);
  241.             DisKelSurat.setVisible(true);
  242.  
  243.             //item nota dinas
  244.             KotakNota.setVisible(true);
  245.             TerkirimNota.setVisible(true);
  246.             DisMasNota.setVisible(true);
  247.             DisKelNota.setVisible(true);
  248.  
  249.             //item Memo
  250.             Memo.setVisible(false);
  251.             KotakMemo.setVisible(false);
  252.             TerkirimMemo.setVisible(false);
  253.  
  254.         }if(Prefs.getString(GROUP_PARAM,"").equals("3")){
  255.             //item surat dinas
  256.             DataNomor.setVisible(false);
  257.             KotakSurat.setVisible(false);
  258.             TerkirimSurat.setVisible(false);
  259.             DisMasSurat.setVisible(true);
  260.             DisKelSurat.setVisible(true);
  261.  
  262.             //item nota dinas
  263.             KotakNota.setVisible(true);
  264.             TerkirimNota.setVisible(true);
  265.             DisMasNota.setVisible(true);
  266.             DisKelNota.setVisible(true);
  267.  
  268.             //item Memo
  269.             Memo.setVisible(true);
  270.             KotakMemo.setVisible(true);
  271.             TerkirimMemo.setVisible(false);
  272.  
  273.         }else if (Prefs.getString(GROUP_PARAM,"").equals("4")){
  274.             //item surat dinas
  275.             DataNomor.setVisible(false);
  276.             KotakSurat.setVisible(false);
  277.             TerkirimSurat.setVisible(false);
  278.             DisMasSurat.setVisible(true);
  279.             DisKelSurat.setVisible(false);
  280.  
  281.             //item nota dinas
  282.             KotakNota.setVisible(false);
  283.             TerkirimNota.setVisible(false);
  284.             DisMasNota.setVisible(true);
  285.             DisKelNota.setVisible(false);
  286.  
  287.             //item Memo
  288.             Memo.setVisible(true);
  289.             KotakMemo.setVisible(true);
  290.             TerkirimMemo.setVisible(true);
  291.         }
  292.     }
  293.  
  294.     private void addItemSpinner(){
  295.  
  296.         List<String> list = new ArrayList<String>();
  297.         list.add(Prefs.getString(JABATAN,""));
  298.         if (Prefs.getString(JABATAN_SEK,"").equals("")){
  299.             list.add(Prefs.getString(PTS_PH,"")+" "+Prefs.getString(JABATAN_PH,""));
  300.         }else{
  301.             list.add(Prefs.getString(PTS_PH,"")+" "+Prefs.getString(JABATAN_SEK,""));
  302.         }
  303.         ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_dropdown_item);
  304.         head_spinner.setAdapter(dataAdapter);
  305.         head_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  306.             @Override
  307.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  308.                 String menuParam;
  309. //                if (head_spinner.getSelectedItem().equals(Prefs.getString(JABATAN,""))){
  310. //                    String menuParam;
  311. //                    menuParam = Prefs.getString(GROUP_MENU,"");
  312. //                    Prefs.putString(GROUP_PARAM,menuParam);
  313. //                    setMenuNavbar();
  314. //                }else if (head_spinner.getSelectedItem().equals(Prefs.getString(JABATAN,""))){
  315. //                    Prefs.getString(GROUP_MENU,"");
  316. //                    setMenuNavbar();
  317. //                }
  318.                 switch (position){
  319.                     case 0:
  320.                         menuParam = Prefs.getString(GROUP_MENU,"");
  321.                         Prefs.putString(GROUP_PARAM,menuParam);
  322.                         Log.d("GRUP PARAM", "onItemSelected: "+Prefs.getString(GROUP_PARAM,""));
  323.                         setMenuNavbar();
  324.                         return;
  325.                     case 1:
  326.                         if (Prefs.getString(GROUP_MENU_SEK,"").equals("")){
  327.                             menuParam = Prefs.getString(GROUP_MENU_PH,"");
  328.                             Prefs.putString(GROUP_PARAM,menuParam);
  329.                             Log.d("GRUP PARAM", "onItemSelected: "+Prefs.getString(GROUP_PARAM,""));
  330.                             setMenuNavbar();
  331.                         }else{
  332.                             menuParam = Prefs.getString(GROUP_MENU_PH,"");
  333.                             Prefs.putString(GROUP_PARAM,menuParam);
  334.                             Log.d("GRUP PARAM", "onItemSelected: "+Prefs.getString(GROUP_PARAM,""));
  335.  
  336.                             setMenuNavbar();
  337.                         }
  338.                         return;
  339.                 }
  340.             }
  341.  
  342.             @Override
  343.             public void onNothingSelected(AdapterView<?> parent) {
  344.  
  345.             }
  346.         });
  347.     }
  348.  
  349.     private void getUserDetails(){
  350.         //panggil user detail
  351.         AndroidNetworking.post(server.getUserData_URL)
  352.                 .addHeaders("Authorization",Prefs.getString(TOKEN,""))
  353.                 .build()
  354.                 .getAsOkHttpResponseAndObject(UserModel.class, new OkHttpResponseAndParsedRequestListener<UserModel>() {
  355.                     @Override
  356.                     public void onResponse(Response okHttpResponse, UserModel response) {
  357.                         if (okHttpResponse.isSuccessful()){
  358.                             if (response.getStatus() == 200){
  359.                                 //simpan data di sharedpreference
  360.                                 Prefs.putString(ID_SO, response.getData().getIdSo());
  361.                                 Prefs.putString(NAMA, response.getData().getNama());
  362.                                 Prefs.putString(EMAIL, response.getData().getEmail());
  363.                                 Prefs.putString(USERNAME, response.getData().getUsername());
  364.                                 Prefs.putString(KODE_JABATAN, response.getData().getKodeJabatan());
  365.                                 Prefs.putString(JABATAN, response.getData().getJabatan());
  366.                                 Prefs.putString(INDEX, response.getData().getIndex());
  367.                                 Prefs.putString(ID_CABANG, response.getData().getIdCabang());
  368.                                 Prefs.putString(NAMA_CABANG, response.getData().getNamaCabang());
  369.                                 Prefs.putString(GROUP_MENU, response.getData().getGroupmenu());
  370.                                 Prefs.putString(FOTO, response.getData().getFoto());
  371.                                 Prefs.putString(ID_SEK, response.getData().getIdSek());
  372.                                 Prefs.putString(ID_PH, response.getData().getIdPh());
  373.                                 Prefs.putString(PTS_PH, response.getData().getPtsPh());
  374.                                 Prefs.putString(JABATAN_SEK, response.getData().getJabatansek());
  375.                                 Prefs.putString(JABATAN_PH, response.getData().getJabatanph());
  376.                                 Prefs.putString(GROUP_MENU_SEK, response.getData().getGroupmenusek());
  377.                                 Prefs.putString(GROUP_MENU_PH, response.getData().getGroupmenuph());
  378.  
  379.                                 Prefs.putString(GROUP_PARAM, response.getData().getGroupmenu());
  380.  
  381.  
  382.                                 //panggil nama dan jabatan
  383.                                 nama.setText(Prefs.getString(NAMA, ""));
  384.                                 //set foto di header navbar
  385.                                 Helper.LoadImage(MainActivity.this,Prefs.getString(FOTO,""),foto);
  386.  
  387.                                 //tambah methode setmenu untuk navbar
  388.                                 setMenuNavbar();
  389.  
  390.                                 //tambah methode untuk spinner header
  391.                                 addItemSpinner();
  392.  
  393.                                 Log.d("JABATAN", "onResponse: "+Prefs.getString(JABATAN,""));
  394.                             }else{
  395.                                 Toast.makeText(MainActivity.this, response.getMsg(), Toast.LENGTH_LONG).show();
  396.                             }
  397.                         }
  398.                     }
  399.                     @Override
  400.                     public void onError(ANError anError) {
  401.                         Toast.makeText(MainActivity.this, "Jaringan Error", Toast.LENGTH_LONG).show();
  402.                         Log.d("Login", "onError: "+anError.getErrorDetail());
  403.                         Log.d("Login", "onError: "+anError.getErrorBody());
  404.                         Log.d("Login", "onError: "+anError.getErrorCode());
  405.                     }
  406.                 });
  407.     }
  408. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement