· 5 years ago · Mar 20, 2020, 01:42 PM
1package com.dwidasa.index.mb.android.activity.menu;
2
3import java.io.UnsupportedEncodingException;
4import java.util.ArrayList;
5import java.util.HashMap;
6import java.util.List;
7import java.util.Map;
8
9import org.apache.http.NameValuePair;
10import org.apache.http.client.entity.UrlEncodedFormEntity;
11import org.apache.http.message.BasicNameValuePair;
12import org.json.JSONException;
13import org.json.JSONObject;
14
15import android.app.Activity;
16import android.app.AlertDialog;
17import android.app.Dialog;
18import android.content.DialogInterface;
19import android.content.Intent;
20import android.content.SharedPreferences;
21import android.os.Bundle;
22import android.preference.PreferenceManager;
23import android.util.Log;
24import android.util.TypedValue;
25import android.view.LayoutInflater;
26import android.view.View;
27import android.view.View.OnClickListener;
28import android.view.ViewGroup;
29import android.widget.CompoundButton;
30import android.widget.EditText;
31import android.widget.LinearLayout;
32import android.widget.ListView;
33import android.widget.SimpleAdapter;
34import android.widget.TextView;
35import android.widget.Toast;
36import android.widget.ToggleButton;
37
38import com.dwidasa.index.mb.android.R;
39import com.dwidasa.index.mb.android.activity.admin.PaymentListAdminActivity;
40import com.dwidasa.index.mb.android.activity.admin.UbahMobilePinActivity;
41import com.dwidasa.index.mb.android.activity.admin.UbahPasswordActivity;
42import com.dwidasa.index.mb.android.activity.base.BaseListGlobalVarActivity;
43import com.dwidasa.index.mb.android.adapter.database.UserDbAdapter;
44import com.dwidasa.index.mb.android.global.GlobalVar;
45import com.dwidasa.index.mb.android.model.User;
46import com.dwidasa.index.mb.android.restful.AsyncTaskCompleteListener;
47import com.dwidasa.index.mb.android.restful.CallService;
48import com.dwidasa.index.mb.android.restful.CallTransactionService;
49import com.dwidasa.index.mb.android.util.Constant;
50import com.dwidasa.index.mb.android.util.FontUtils;
51import com.dwidasa.index.mb.android.util.StringUtil;
52import com.dwidasa.index.mb.android.util.Utility;
53import com.dwidasa.otp.aes.AesCrypto;
54
55public class AdminMenuActivity extends BaseListGlobalVarActivity implements OnClickListener, AsyncTaskCompleteListener<Object> {
56
57 private int choice = -1;
58 private User userDb;
59 private String Username;
60 public String countFinger ;
61 ToggleButton toggleFinger;
62 private boolean fingerIsChecked;
63 private Dialog dialog;
64 private EditText pinMBanking;
65 LayoutInflater inflater;
66 View dialogView;
67 private String dateTime;
68 SharedPreferences sp;
69 int status;
70
71 @Override
72 protected void onCreate(Bundle savedInstanceState) {
73 super.onCreate(savedInstanceState);
74 setContentView(R.layout.admin_page);
75
76 TextView headerText = (TextView) findViewById(R.id.headerText);
77 headerText.setText(getString(R.string.header_admin));
78 headerText.setTypeface(FontUtils.loadFontFromAssets(this, Constant.FONT_BOLD));
79
80 String[] arrMainMenu = getResources().getStringArray(
81 R.array.admin_menu_array);
82 String[] arrMainMenuDescription = getResources().getStringArray(
83 R.array.admin_menu_description_array);
84 List<Map<String, String>> menuList = new ArrayList<Map<String, String>>();
85 for (int i = 0; i < arrMainMenu.length; i++) {
86 Map<String, String> myMap = new HashMap<String, String>();
87 myMap.put("menu", arrMainMenu[i]);
88 myMap.put("description", arrMainMenuDescription[i]);
89 menuList.add(myMap);
90 }
91
92 UserDbAdapter dbAdapter = new UserDbAdapter(this);
93 userDb = dbAdapter.getRecord();
94
95 sp = PreferenceManager.getDefaultSharedPreferences(this);
96 String name = sp.getString("x100vb", "test");
97 String user = AesCrypto.decrypt("28xn", name);
98 Username = user;
99 System.out.println("ISI username "+ Username);
100 countFinger = sp.getString("countFinger", "1");
101 System.out.println("MASUK ISI countFinger di ADMIN " + countFinger);
102
103 getListView().setAdapter(
104 new SimpleAdapter(this, menuList, R.layout.menu_row,
105 new String[] { "menu", "description" }, new int[] {
106 R.id.toptext, R.id.bottomtext }) {
107 @Override
108 public View getView(int position, View convertView, ViewGroup parent) {
109 View v = super.getView(position, convertView, parent);
110
111 TextView topText = (TextView) v.findViewById(R.id.toptext);
112 topText.setTypeface(FontUtils.loadFontFromAssets(getApplicationContext(), Constant.FONT_BOLD));
113 topText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
114
115 TextView bottomtext = (TextView) v.findViewById(R.id.bottomtext);
116 bottomtext.setTypeface(FontUtils.loadFontFromAssets(getApplicationContext()));
117 bottomtext.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
118
119 return v;
120 }
121 });
122
123 LinearLayout lm1 = (LinearLayout) findViewById(R.id.lm1);
124 lm1.setOnClickListener(this);
125 LinearLayout lm2 = (LinearLayout) findViewById(R.id.lm2);
126 lm2.setOnClickListener(this);
127 LinearLayout lm3 = (LinearLayout) findViewById(R.id.lm3);
128 lm3.setOnClickListener(this);
129 LinearLayout lm4 = (LinearLayout) findViewById(R.id.lm4);
130 lm4.setOnClickListener(this);
131 LinearLayout lm5 = (LinearLayout) findViewById(R.id.lm5);
132 lm5.setOnClickListener(this);
133
134 TextView menu1 = (TextView) findViewById(R.id.menu1);
135 menu1.setTypeface(FontUtils.loadFontFromAssets(this));
136 TextView menu2 = (TextView) findViewById(R.id.menu2);
137 menu2.setTypeface(FontUtils.loadFontFromAssets(this));
138 TextView menu3 = (TextView) findViewById(R.id.menu3);
139 menu3.setTypeface(FontUtils.loadFontFromAssets(this));
140 TextView menu4 = (TextView) findViewById(R.id.menu4);
141 menu4.setTypeface(FontUtils.loadFontFromAssets(this));
142 TextView menu5 = (TextView) findViewById(R.id.menu5);
143 menu5.setTypeface(FontUtils.loadFontFromAssets(this));
144
145 TextView hintFinger =(TextView) findViewById(R.id.hintFinger);
146 toggleFinger = (ToggleButton) findViewById(R.id.toggleFinger);
147 toggleFinger.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
148 @Override
149 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
150
151 if(isChecked){
152 System.out.println("MASUK IS CHECKED");
153 if(!countFinger.equals("1") || countFinger == "0"){
154 System.out.println("MASUK IF CHECKED");
155 fingerIsChecked = true;
156 fingerprint();
157 }
158 }else{
159 System.out.println("MASUK ELSE CHECKED");
160 fingerIsChecked = false;
161 sp.edit().putString("countFinger", "0").commit();
162 toggleFinger.setBackgroundDrawable(getResources().getDrawable(R.drawable.agree_no));
163 countFinger = sp.getString("countFinger", "0");
164 System.out.println("MASUK ISI countFinger di else " + countFinger);
165 }
166
167
168 }
169 });
170
171 if (countFinger.equals("1")){
172 System.out.println("MASUK SINI 1");
173 toggleFinger.setBackgroundDrawable(getResources().getDrawable(R.drawable.agree_yes));
174 }else{
175 System.out.println("MASUK SINI 2");
176 toggleFinger.setBackgroundDrawable(getResources().getDrawable(R.drawable.agree_no));
177 }
178
179 }
180// private void sharePref(String key, String value){
181// SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
182// SharedPreferences.Editor edit = sp.edit();
183// edit.putString(key, value);
184// edit.apply();
185// }
186
187 private void fingerprint() {
188 System.out.println("MASUK METHOD FINGERPRINT");
189 AlertDialog.Builder alertDialog = new AlertDialog.Builder(AdminMenuActivity.this);
190 inflater = getLayoutInflater();
191 dialogView = inflater.inflate(R.layout.dialog_pin, null);
192 alertDialog.setView(dialogView);
193 alertDialog.setCancelable(false);
194
195 pinMBanking = (EditText) dialogView.findViewById(R.id.pinEdit);
196
197 alertDialog.setPositiveButton("SUBMIT", new DialogInterface.OnClickListener() {
198
199 @Override
200 public void onClick(DialogInterface dialog, int which) {
201 finger();
202 dialog.dismiss();
203 }
204 });
205
206 alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
207
208 @Override
209 public void onClick(DialogInterface dialog, int which) {
210 System.out.println("MASUK DISMISS");
211 dialog.dismiss();
212 toggleFinger.setBackgroundDrawable(getResources().getDrawable(R.drawable.agree_no));
213
214 }
215 });
216
217 alertDialog.show();
218 }
219
220 private void finger() {
221 System.out.println("MASUK ONCLICK");
222 if(!StringUtil.isNotBlank(pinMBanking.getText().toString())){
223 new AlertDialog.Builder(this)
224 .setTitle(getString(R.string.header_message)).setMessage(getString(R.string.error_emptyMpin)).setNeutralButton(getString(R.string.button_tutup), null).show();
225 }else if(pinMBanking.getText().toString().length() < 6 ){
226 new AlertDialog.Builder(this)
227 .setTitle(getString(R.string.header_message)).setMessage(getString(R.string.error_lengthMpin)).setNeutralButton(getString(R.string.button_tutup), null).show();
228 }else{
229 choice = 6;
230 String tokenId = Utility.getTokenId(this);
231
232 JSONObject jsonObject = new JSONObject();
233 StringBuilder url = new StringBuilder();
234 try {
235
236 jsonObject.put("username", Username);
237 jsonObject.put("flag", fingerIsChecked);
238 jsonObject.put("timestamp", dateTime);
239
240 Log.e("CONFIRM", jsonObject.toString());
241
242 url.append(Constant.BASE_URL).append("account/updateBiometricLogin");
243
244 String pin = pinMBanking.getText().toString().trim();
245
246 List<NameValuePair> nvp = new ArrayList<NameValuePair>();
247 nvp.add(new BasicNameValuePair("customerId", String.valueOf(customerId)));
248 nvp.add(new BasicNameValuePair("deviceId", tokenId));
249 nvp.add(new BasicNameValuePair("sessionId", sessionId));
250 nvp.add(new BasicNameValuePair("json", jsonObject.toString()));
251
252 final String strUrl = url.toString();
253
254 final CallTransactionService task = new CallTransactionService(this, this);
255 task.execute(strUrl, Constant.REST_POST, secretKey, pin, jsonObject.toString(), nvp);
256
257
258 } catch (Exception e) {
259 e.printStackTrace();
260 }
261 }
262 }
263
264
265 @Override
266 public void onClick(View v) {
267 if (v.getId() == R.id.lm1) {
268 GlobalVar.getInstance().setHomeNeedRefresh(false);
269 Intent resultData = new Intent();
270 resultData.putExtra("wantHome", "true");
271 setResult(Activity.RESULT_OK, resultData);
272 finish();
273 } else if (v.getId() == R.id.lm2) {
274 GlobalVar.getInstance().setHomeNeedRefresh(false);
275 Intent resultData = new Intent();
276 resultData.putExtra("wantLocation", "true");
277 setResult(Activity.RESULT_OK, resultData);
278 finish();
279 } else if (v.getId() == R.id.lm3) {
280 GlobalVar.getInstance().setHomeNeedRefresh(false);
281 Intent resultData = new Intent();
282 resultData.putExtra("wantInbox", "true");
283 setResult(Activity.RESULT_OK, resultData);
284 finish();
285 } else if (v.getId() == R.id.lm4) {
286 Toast.makeText(this, R.string.toast_sudahDiAdmin, Toast.LENGTH_SHORT)
287 .show();
288
289 }else if (v.getId() == R.id.lm5) {
290 new AlertDialog.Builder(this)
291 .setIcon(android.R.drawable.ic_dialog_alert)
292 .setTitle(R.string.menu_logout)
293 .setMessage(R.string.message_logout)
294 .setPositiveButton(R.string.select_yes,
295 new DialogInterface.OnClickListener() {
296
297 @Override
298 public void onClick(DialogInterface dialog,
299 int which) {
300 Intent resultData = new Intent();
301 resultData.putExtra("wantLogout", "true");
302 setResult(Activity.RESULT_OK, resultData);
303 finish();
304 }
305 }).setNegativeButton(R.string.select_no, null).show();
306 }
307 }
308
309 @Override
310 protected void onListItemClick(ListView l, View v, int position, long id) {
311
312 if (position == 0) { // ubah Password
313 Intent intent = new Intent(this, UbahPasswordActivity.class);
314 startActivityForResult(intent, 1);
315 }else if(position == 1){ // ubah Mobile Pin
316 Intent intent = new Intent(this, UbahMobilePinActivity.class);
317 startActivityForResult(intent, 1);
318 }else{
319 String tokenId = Utility.getTokenId(this);
320 choice = position;
321 StringBuilder url = null;
322 List<NameValuePair> nvp = new ArrayList<NameValuePair>();
323
324 if (position == 2) {
325 url = new StringBuilder().append(Constant.BASE_URL).append("purchase/registersallpurchasePost");
326
327 } else if (position == 3) {
328 url = new StringBuilder().append(Constant.BASE_URL).append("payment/registersallpaymentPost");
329
330 }
331
332 nvp.add(new BasicNameValuePair("customerId",String.valueOf(customerId)));
333 nvp.add(new BasicNameValuePair("sessionId",sessionId));
334 nvp.add(new BasicNameValuePair("deviceId",tokenId));
335
336 try {
337 UrlEncodedFormEntity uefe = new UrlEncodedFormEntity(nvp);
338
339 final CallService task = new CallService(AdminMenuActivity.this, this);
340 task.execute(url.toString(), Constant.REST_POST, uefe);
341
342 } catch (UnsupportedEncodingException e) {
343 e.printStackTrace();
344 }
345 }
346 }
347
348 @Override
349 public void onTaskComplete(Object... params) {
350 // TODO Auto-generated method stub
351 String result = (String) params[0];
352 if (choice > 0) {
353 if ("{\"errorCode\":\"IB-0002\"}".equals(result)) {
354 result = "[]";
355 }
356 }
357 if(Utility.cekValidResult(result, this)){
358 Intent intent = null;
359
360 if (choice == 2 || choice == 3) {
361 intent = new Intent(AdminMenuActivity.this, PaymentListAdminActivity.class);
362 intent.putExtra("title", getResources().getString(R.string.header_purchaseList));
363 if(choice == 3){
364 intent.putExtra("title", getResources().getString(R.string.header_paymentList));
365 }
366 } else if(choice == 6){
367
368 System.out.println("Choice 6");
369 try {
370 JSONObject obj = new JSONObject(result);
371 status = obj.getInt("status");
372 System.out.println("ISI STATUS " + status);
373
374 SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
375 settings.edit().putString("status", "1").commit();
376 settings.edit().putString("countFinger", "1").commit();
377 countFinger = settings.getString("countFinger", "1");
378 System.out.println("ISI count Finger " + countFinger);
379 toggleFinger.setBackgroundDrawable(getResources().getDrawable(R.drawable.agree_yes));
380
381 } catch (JSONException e) {
382 e.printStackTrace();
383 }
384 }
385
386
387 if (intent != null) {
388 intent.putExtra(Constant.REST_RESULT, result);
389 startActivityForResult(intent, 1);
390 }
391 }
392 }
393
394 @Override
395 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
396 super.onActivityResult(requestCode, resultCode, data);
397 if (requestCode == 1) {
398 if (resultCode == Activity.RESULT_OK) {
399 if (data != null && data.getExtras() != null) {
400 if (data.getExtras().getString("wantLogout") != null) {
401 Intent resultData = new Intent();
402 resultData.putExtra("wantLogout", "true");
403 setResult(Activity.RESULT_OK, resultData);
404 finish();
405 } else if (data.getExtras().getString("wantHome") != null) {
406 Intent resultData = new Intent();
407 resultData.putExtra("wantHome", "true");
408 setResult(Activity.RESULT_OK, resultData);
409 finish();
410 } else if (data.getExtras().getString("wantAccountMain") != null) {
411 Intent resultData = new Intent();
412 resultData.putExtra("wantAccountMain", "true");
413 setResult(Activity.RESULT_OK, resultData);
414 finish();
415 } else if (data.getExtras().getString("wantInbox") != null) {
416 Intent resultData = new Intent();
417 resultData.putExtra("wantInbox", "true");
418 setResult(Activity.RESULT_OK, resultData);
419 finish();
420 } else if (data.getExtras().getString("wantAdmin") != null) {
421 Intent resultData = new Intent();
422 resultData.putExtra("wantAdmin", "true");
423 setResult(Activity.RESULT_OK, resultData);
424 finish();
425 } else if (data.getExtras().getString("wantLocation") != null) {
426 Intent resultData = new Intent();
427 resultData.putExtra("wantLocation", "true");
428 setResult(Activity.RESULT_OK, resultData);
429 finish();
430 } else if (data.getExtras().getString("wantMessage") != null) {
431 Intent resultData = new Intent();
432 resultData.putExtra("wantMessage", "true");
433 setResult(Activity.RESULT_OK, resultData);
434 finish();
435 }
436 }
437 }
438 }
439 }
440}