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