Advertisement
ricky_yulianto

Untitled

Jan 28th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.63 KB | None | 0 0
  1. package codelabs.siloam.activity;
  2.  
  3. import android.Manifest;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.support.annotation.NonNull;
  9. import android.support.design.widget.TabLayout;
  10. import android.support.v4.app.ActivityCompat;
  11. import android.support.v4.app.Fragment;
  12. import android.support.v4.app.FragmentManager;
  13. import android.support.v4.app.FragmentPagerAdapter;
  14. import android.support.v4.app.FragmentTransaction;
  15. import android.support.v4.content.ContextCompat;
  16. import android.support.v4.view.ViewPager;
  17. import android.support.v7.app.AlertDialog;
  18. import android.support.v7.widget.Toolbar;
  19. import android.text.TextUtils;
  20. import android.util.Log;
  21. import android.view.MenuItem;
  22. import android.view.View;
  23. import android.view.ViewGroup;
  24. import android.widget.Button;
  25. import android.widget.FrameLayout;
  26. import android.widget.ImageView;
  27. import android.widget.LinearLayout;
  28. import android.widget.TextView;
  29. import android.widget.Toast;
  30.  
  31. import java.util.ArrayList;
  32. import java.util.HashMap;
  33. import java.util.List;
  34. import java.util.Map;
  35.  
  36. import butterknife.BindView;
  37. import butterknife.ButterKnife;
  38. import butterknife.OnClick;
  39. import codelabs.siloam.R;
  40. import codelabs.siloam.connection.ApiUtils;
  41. import codelabs.siloam.connection.AppConstant;
  42. import codelabs.siloam.connection.DataManager;
  43. import codelabs.siloam.connection.RetrofitInterface;
  44. import codelabs.siloam.fragment.CalibrationAssetFragment;
  45. import codelabs.siloam.fragment.ContractAssetFragment;
  46. import codelabs.siloam.fragment.HistoryAssetFragment;
  47. import codelabs.siloam.fragment.LibraryFragment;
  48. import codelabs.siloam.fragment.PermissionAssetFragment;
  49. import codelabs.siloam.fragment.ReportFragment;
  50. import codelabs.siloam.fragment.StockOpnameFragment;
  51. import codelabs.siloam.model.DoPost;
  52. import codelabs.siloam.model.GetActionList;
  53. import codelabs.siloam.model.GetBarcodeScan;
  54. import codelabs.siloam.model.GetStockScan;
  55. import codelabs.siloam.model.GettingStockHistory;
  56. import codelabs.siloam.utils.MyLog;
  57. import codelabs.siloam.utils.RecentUtils;
  58. import me.dm7.barcodescanner.zbar.Result;
  59. import me.dm7.barcodescanner.zbar.ZBarScannerView;
  60. import retrofit2.Call;
  61. import retrofit2.Callback;
  62. import retrofit2.Response;
  63.  
  64. public class AssetDetailActivity extends BaseActivity{
  65.  
  66. public static final String DEPARTMENT_ID = "DEPARTMENT_ID";
  67. public static final String EQUIPMENT_ID = "EQUIPMENT_ID";
  68. public static final String BARCODE = "BARCODE";
  69. @BindView(R.id.tv_error)
  70. TextView tvError;
  71. @BindView(R.id.tv_error_desc)
  72. TextView tvErrorDesc;
  73. @BindView(R.id.container_error)
  74. LinearLayout containerError;
  75. @BindView(R.id.tv_loading)
  76. TextView tvLoading;
  77. @BindView(R.id.tv_loading_desc)
  78. TextView tvLoadingDesc;
  79. @BindView(R.id.container_loading)
  80. LinearLayout containerLoading;
  81. @BindView(R.id.tv_message)
  82. TextView tvMessage;
  83. @BindView(R.id.container_content)
  84. LinearLayout containerContent;
  85. @BindView(R.id.tv_eq_name)
  86. TextView tvEqName;
  87. @BindView(R.id.tv_department_name)
  88. TextView tvDepartmentName;
  89. @BindView(R.id.tv_eq_type)
  90. TextView tvEqType;
  91. @BindView(R.id.tabs)
  92. TabLayout tabs;
  93. @BindView(R.id.container_top)
  94. LinearLayout containerTop;
  95. @BindView(R.id.view_pager)
  96. ViewPager viewPager;
  97. @BindView(R.id.iv_back)
  98. ImageView ivBack;
  99. private GetStockScan responseStock;
  100. private String selectedBarcode;
  101. private String selectedDepartmentID;
  102. private String selectedEquipmentID;
  103. private List<GetActionList.DATABean> responseActionList = new ArrayList<>();
  104. private String selectedActionID;
  105. private GetBarcodeScan.Department_roomBean mItems2;
  106. public static List<GetBarcodeScan.IssuesBean> mItems = new ArrayList<>();
  107.  
  108.  
  109. @Override
  110. protected void onCreate(Bundle savedInstanceState) {
  111. super.onCreate(savedInstanceState);
  112. setContentView(R.layout.activity_asset_detail);
  113. ButterKnife.bind(this);
  114. // setToolbar();
  115.  
  116. selectedDepartmentID = getIntent().getStringExtra(DEPARTMENT_ID);
  117. selectedEquipmentID = getIntent().getStringExtra(EQUIPMENT_ID);
  118. selectedBarcode = getIntent().getStringExtra(BARCODE);
  119.  
  120.  
  121. hideContainer();
  122. loadData();
  123.  
  124.  
  125. // ivBack.setOnClickListener(new View.OnClickListener() {
  126. // @Override
  127. // public void onClick(View v) {
  128. //// Toast.makeText(AssetDetailActivity.this,"Muncul dong!",Toast.LENGTH_SHORT).show();
  129. // Fragment fragment = new StockOpnameFragment();
  130. // FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  131. // transaction.replace(R.id.fragment_container, fragment);
  132. // transaction.commit();
  133. // Log.e("dddd", "error coba: " );
  134. //
  135. //
  136. // }
  137. // });
  138. }
  139.  
  140.  
  141. private void hideContainer() {
  142. containerTop.setVisibility(View.GONE);
  143. containerContent.setVisibility(View.GONE);
  144. containerLoading.setVisibility(View.GONE);
  145. containerError.setVisibility(View.GONE);
  146. }
  147.  
  148. private void loadData() {
  149. Map<String, String> params = new HashMap<>();
  150. params.put("barcode", selectedBarcode);
  151. params.put("hospital_id", DataManager.getInstance().getHospital_id() + "");
  152. params.put("dept_id", selectedDepartmentID);
  153. if (!TextUtils.isEmpty(selectedEquipmentID))
  154. params.put("eq_type", selectedEquipmentID);
  155.  
  156. tvLoading.setText("Getting Asset Data");
  157. tvLoadingDesc.setText("Please wait for getting asset data");
  158. containerLoading.setVisibility(View.VISIBLE);
  159.  
  160. RetrofitInterface apiService = ApiUtils.getAPIService();
  161. String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  162. Call<GetStockScan> call = apiService.gettingStockScan(auth, params);
  163. call.enqueue(new Callback<GetStockScan>() {
  164. @Override
  165. public void onResponse(@NonNull Call<GetStockScan> call, @NonNull Response<GetStockScan> data) {
  166. containerLoading.setVisibility(View.GONE);
  167. if (data.isSuccessful()) {
  168. GetStockScan response = data.body();
  169. if (response != null) {
  170. if (response.getSTATUS() == 200) {
  171. containerTop.setVisibility(View.VISIBLE);
  172. containerContent.setVisibility(View.VISIBLE);
  173. responseStock = response;
  174.  
  175. processData();
  176.  
  177.  
  178. } else {
  179. containerError.setVisibility(View.VISIBLE);
  180. tvError.setText(response.getMESSAGE());
  181. }
  182. } else {
  183. containerError.setVisibility(View.VISIBLE);
  184. tvError.setText(getString(R.string.no_response));
  185. }
  186. } else {
  187. containerError.setVisibility(View.VISIBLE);
  188. RecentUtils.handleRetrofitError(data.code(), tvError);
  189. }
  190. }
  191.  
  192. @Override
  193. public void onFailure(@NonNull Call<GetStockScan> call, @NonNull Throwable t) {
  194. if (!call.isCanceled()) {
  195. MyLog.logE(t.getMessage());
  196. containerLoading.setVisibility(View.GONE);
  197. containerError.setVisibility(View.VISIBLE);
  198. tvError.setText(getString(R.string.network_error));
  199. }
  200. }
  201. });
  202. }
  203.  
  204. private void processData() {
  205.  
  206. tvEqName.setText(responseStock.getDATA().getName());
  207. tvDepartmentName.setText(responseStock.getDATA().getDepartment_room().getDepartment().getName());
  208. tvEqType.setText(responseStock.getDATA().getAsset_model());
  209. tvMessage.setText(responseStock.getMESSAGE());
  210.  
  211.  
  212. if (responseStock.getDATA().getIn_place().equals("1")) {
  213. tvMessage.setTextColor(getResources().getColor(R.color.white));
  214. } else {
  215. tvMessage.setTextColor(getResources().getColor(R.color.white));
  216. }
  217.  
  218. setupViewPager();
  219. tabs.setupWithViewPager(viewPager);
  220. }
  221.  
  222. private void setupViewPager() {
  223. ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
  224.  
  225. if(responseStock.getDATA().getIssues().size() > 0) {
  226. adapter.addFragment(HistoryAssetFragment.newInstance(responseStock.getDATA().getIssues(), responseStock.getDATA().getDepartment_room().getName()), "History");
  227. }
  228. if(responseStock.getDATA().getDoc_contracts().size() > 0) {
  229. adapter.addFragment(ContractAssetFragment.newInstance(responseStock.getDATA().getDoc_contracts(), responseStock.getDATA().getAsset()), "Contract");
  230. }
  231. if(responseStock.getDATA().getCalibrations().size() > 0) {
  232. adapter.addFragment(CalibrationAssetFragment.newInstance(responseStock.getDATA().getCalibrations(), responseStock.getDATA().getAsset()), "Calibration Certificate");
  233. }
  234. if(responseStock.getDATA().getDoc_permissions().size() > 0) {
  235. adapter.addFragment(PermissionAssetFragment.newInstance(responseStock.getDATA().getDoc_permissions(),responseStock.getDATA().getAsset()), "License");
  236. }
  237. viewPager.setAdapter(adapter);
  238. }
  239.  
  240.  
  241. class ViewPagerAdapter extends FragmentPagerAdapter {
  242. private final List<Fragment> mFragmentList = new ArrayList<>();
  243. private final List<String> mFragmentTitleList = new ArrayList<>();
  244.  
  245. public ViewPagerAdapter(FragmentManager manager) {
  246. super(manager);
  247. }
  248.  
  249. @Override
  250. public Fragment getItem(int position) {
  251. return mFragmentList.get(position);
  252. }
  253.  
  254. @Override
  255. public int getCount() {
  256. return mFragmentList.size();
  257. }
  258.  
  259. public void addFragment(Fragment fragment, String title) {
  260. mFragmentList.add(fragment);
  261. mFragmentTitleList.add(title);
  262. }
  263.  
  264. @Override
  265. public CharSequence getPageTitle(int position) {
  266. return mFragmentTitleList.get(position);
  267. }
  268. }
  269.  
  270. // private void openDialogSelect() {
  271. // String[] items = new String[responseActionList.size()];
  272. //
  273. // for (int i = 0; i < responseActionList.size(); i++) {
  274. // items[i] = responseActionList.get(i).getName();
  275. // }
  276. //// String[] items = {"Dianggap Hilang", "Usul Pindah Kepemilikan Secara Permanen", "Dimusnahkan/dijual"};
  277. //
  278. // AlertDialog.Builder builder = new AlertDialog.Builder(this);
  279. // builder.setItems(items, new DialogInterface.OnClickListener() {
  280. // public void onClick(DialogInterface dialog, int which) {
  281. // // The 'which' argument contains the index position
  282. // // of the selected item
  283. // selectedActionID = responseActionList.get(which).getId();
  284. // doSetAction();
  285. //
  286. // }
  287. // });
  288. // builder.show();
  289. // }
  290.  
  291. private void doSetAction() {
  292. showDialogProgress("Setting Action");
  293.  
  294. Map<String, String> params = new HashMap<>();
  295. params.put("action_id", selectedActionID);
  296.  
  297. RetrofitInterface apiService = ApiUtils.getAPIService();
  298. String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  299. String url = AppConstant.SubmitActionAPI + responseStock.getDATA().getId();
  300. Call<DoPost> call = apiService.doSetAction(url, auth, params);
  301. call.enqueue(new Callback<DoPost>() {
  302. @Override
  303. public void onResponse(@NonNull Call<DoPost> call, @NonNull Response<DoPost> data) {
  304. hideDialogProgress();
  305. if (data.isSuccessful()) {
  306. DoPost response = data.body();
  307. if (response != null) {
  308. if (response.getSTATUS() == 200) {
  309.  
  310. showToast(response.getMESSAGE());
  311. finish();
  312.  
  313. } else {
  314. showToast(response.getMESSAGE());
  315. }
  316. } else {
  317. showToast(getString(R.string.no_response));
  318. }
  319. } else {
  320. RecentUtils.handleRetrofitError(data.code());
  321. }
  322. }
  323.  
  324. @Override
  325. public void onFailure(@NonNull Call<DoPost> call, @NonNull Throwable t) {
  326. if (!call.isCanceled()) {
  327. hideDialogProgress();
  328. MyLog.logE(t.getMessage());
  329. showToast(getString(R.string.network_error));
  330. }
  331. }
  332. });
  333. }
  334.  
  335.  
  336.  
  337.  
  338. // private void setToolbar() {
  339. // Toolbar toolbar = findViewById(R.id.toolbar);
  340. // setSupportActionBar(toolbar);
  341. // getSupportActionBar().setTitle("Detail Asset");
  342. // getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  343. // }
  344.  
  345. // @Override
  346. // public boolean onOptionsItemSelected(MenuItem item) {
  347. // int id = item.getItemId();
  348. //
  349. // //noinspection SimplifiableIfStatement
  350. // if (id == android.R.id.home) {
  351. // onBackPressed();
  352. // return true;
  353. // }
  354. //
  355. // return super.onOptionsItemSelected(item);
  356. // }
  357. @OnClick(R.id.iv_back)
  358. void closeActivity() {
  359. onBackPressed();
  360.  
  361.  
  362.  
  363.  
  364. }
  365.  
  366. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement