@Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); ParseObject message = mMessages.get(position); String messageType = message.getString(ParseConstant.KEY_FILE_TYPE); ParseFile file = message.getParseFile(ParseConstant.KEY_FILE); Uri fileUri = Uri.parse(file.getUrl()); if (messageType.equals(ParseConstant.TYPE_IMAGE)) { Intent intent = new Intent(getActivity(), ViewimageActivity.class); intent.setData(fileUri); startActivity(intent); } else { Intent intent = new Intent(Intent.ACTION_VIEW, fileUri); intent.setDataAndType(fileUri, "video/*"); startActivity(intent); } // Delete it List<String> ids = message.getList(ParseConstant.KEY_RECIPIENT_IDS); if (ids.size() == 1) { // last recipients message.deleteInBackground(); } else { ids.remove(ParseUser.getCurrentUser().getObjectId()); ArrayList<String> idsToRemove = new ArrayList<String>(); idsToRemove.add(ParseUser.getCurrentUser().getObjectId()); message.removeAll(ParseConstant.KEY_RECIPIENT_IDS, idsToRemove); message.saveInBackground(); } }
public void sendAlert(String stockSymbol, String targetPrice, String stockState) { Notification.Builder mBuilder = new Notification.Builder(this) .setSmallIcon(R.drawable.appicon) .setContentTitle("EZQuote - '" + stockSymbol + "'") .setContentText(stockState + " Target Price " + targetPrice + " reached. Hurry!"); // Creates an explicit intent for an Activity in your app Intent resultIntent = new Intent(this, MarketSummaryActivity.class); // The stack builder object will contain an artificial back stack for // the // started Activity. // This ensures that navigating backward from the Activity leads out of // your application to the Home screen. TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); // Adds the back stack for the Intent (but not the Intent itself) stackBuilder.addParentStack(MarketSummaryActivity.class); // Adds the Intent that starts the Activity to the top of the stack stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // mId allows you to update the notification later on. mNotificationManager.notify(getRandomNumber(), mBuilder.build()); // Delete the alarm after it goes off. for (ParseObject o : alertObjs) { if (stockSymbol.equalsIgnoreCase((o.getString("symbol"))) && targetPrice.equals(o.getString("targetPrice")) && stockState.equals(o.getString("StockState"))) { o.deleteInBackground(); } } }
@Override public void onClick(View v) { final ParseUser currentUser = ParseUser.getCurrentUser(); switch (v.getId()) { case (R.id.reset_password_button): Utils.resetPassword(ProfileEditActivity.this, currentUser.getEmail()); break; case (R.id.save_changes_button): // check that all the user availabilities are valid for (int i = 0; i < availabilityAdapter.getCount() - 1; i++) { if (!availabilityAdapter.getItem(i).isValid()) { Utils.showMessageBox( v.getContext(), "Invalid period", "At least one of the availability period are invalid"); return; } } // handle name String name = nameEdit.getText().toString(); if (!name.isEmpty()) { currentUser.put("name", name); } // handle address if (address != null) { currentUser.put("address", Utils.addressToJSONArray(address)); currentUser.put( "addressLocation", new ParseGeoPoint(address.getLatitude(), address.getLongitude())); } // handle phone number String phone = phoneEdit.getText().toString(); if (!phone.isEmpty()) { currentUser.put("phone", phone); } currentUser.put("sharePhone", phoneShareEdit.isChecked()); final ProgressDialog pd = ProgressDialog.show(ProfileEditActivity.this, "", "Saving profile...", true, false); List<Task<Void>> tasks = new ArrayList<>(); // handle profile picture (save before proceeding if (picByteArray != null) { Log.d("My Loggggg", "profile picture changed"); final ParseFile photoFile = new ParseFile(currentUser.getUsername().toString() + "profile_pic.jpg", picByteArray); tasks.add( photoFile .saveInBackground() .onSuccess( new Continuation<Void, Void>() { @Override public Void then(Task<Void> task) throws Exception { currentUser.put("photo", photoFile); return null; } })); } // save changes in user availability for (int i = 0; i < availabilityAdapter.getCount() - 1; i++) { Integer id = (Integer) availabilityAdapter.getItem(i).getTag(); AvailabilityRecord record = availabilityAdapter.getItem(i); if (id != null) { // update if need old records ParseObject userAvailability = userAvailabilitiesList.get(id); userAvailabilitiesList.set(id, null); record.toParseObject(userAvailability); tasks.add(userAvailability.saveInBackground()); } else { // else is a new record ParseObject newUserAvailability = record.toParseObject(); newUserAvailability.put("user", currentUser); tasks.add(newUserAvailability.saveInBackground()); } } // remove from parse all availabilities that user remove for (ParseObject availability : userAvailabilitiesList) { if (availability != null) { tasks.add(availability.deleteInBackground()); } } Task.whenAll(tasks) .onSuccessTask( new Continuation<Void, Task<Void>>() { @Override public Task<Void> then(Task<Void> task) throws Exception { return currentUser.saveInBackground(); } }) .continueWith( new Continuation<Void, Void>() { @Override public Void then(Task<Void> task) throws Exception { pd.dismiss(); if (!task.isFaulted()) { Toast.makeText( getApplicationContext(), "Changes saved successfully", Toast.LENGTH_LONG) .show(); finish(); } else { Log.e("ProfileEdit", "error saving changes: " + task.getError().getMessage()); Utils.showMessageBox( ProfileEditActivity.this, "Failed saving changes", getString(R.string.unknown_error_occur)); } return null; } }, Task.UI_THREAD_EXECUTOR); break; case (R.id.change_pic_button): // create Intent to take a picture and return control to the calling application Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, CAMERA_REQUEST); break; case R.id.profile_address_change_edit: // move user to address selection activity Intent addressSelectionIntent = new Intent(ProfileEditActivity.this, AddressSelectionActivity.class); startActivityForResult(addressSelectionIntent, REQUEST_ADDRESS); break; } }