List of usage examples for android.graphics Point Point
public Point(int x, int y)
From source file:com.android.messaging.ui.conversation.ConversationFragment.java
@Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case R.id.action_people_and_options: Assert.isTrue(mBinding.getData().getParticipantsLoaded()); UIIntents.get().launchPeopleAndOptionsActivity(getActivity(), mConversationId); return true; case R.id.action_call: final String phoneNumber = mBinding.getData().getParticipantPhoneNumber(); Assert.notNull(phoneNumber);/* w ww .ja v a 2 s .co m*/ final View targetView = getActivity().findViewById(R.id.action_call); Point centerPoint; if (targetView != null) { final int screenLocation[] = new int[2]; targetView.getLocationOnScreen(screenLocation); final int centerX = screenLocation[0] + targetView.getWidth() / 2; final int centerY = screenLocation[1] + targetView.getHeight() / 2; centerPoint = new Point(centerX, centerY); } else { // In the overflow menu, just use the center of the screen. final Display display = getActivity().getWindowManager().getDefaultDisplay(); centerPoint = new Point(display.getWidth() / 2, display.getHeight() / 2); } UIIntents.get().launchPhoneCallActivity(getActivity(), phoneNumber, centerPoint); return true; case R.id.action_archive: mBinding.getData().archiveConversation(mBinding); closeConversation(mConversationId); return true; case R.id.action_unarchive: mBinding.getData().unarchiveConversation(mBinding); return true; case R.id.action_settings: return true; case R.id.action_add_contact: final ParticipantData participant = mBinding.getData().getOtherParticipant(); Assert.notNull(participant); final String destination = participant.getNormalizedDestination(); final Uri avatarUri = AvatarUriUtil.createAvatarUri(participant); (new AddContactsConfirmationDialog(getActivity(), avatarUri, destination)).show(); return true; case R.id.action_delete: if (isReadyForAction()) { new AlertDialog.Builder(getActivity()) .setTitle(getResources() .getQuantityString(R.plurals.delete_conversations_confirmation_dialog_title, 1)) .setPositiveButton(R.string.delete_conversation_confirmation_button, new DialogInterface.OnClickListener() { @Override public void onClick(final DialogInterface dialog, final int button) { deleteConversation(); } }) .setNegativeButton(R.string.delete_conversation_decline_button, null).show(); } else { warnOfMissingActionConditions(false /*sending*/, null /*commandToRunAfterActionConditionResolved*/); } return true; } return super.onOptionsItemSelected(item); }
From source file:app.umitems.greenclock.widget.sgv.StaggeredGridView.java
/** * Handle the the release of a dragged view. * @param x The current x coordinate where the drag was released. * @param y The current y coordinate where the drag was released. *//*from w ww .j a va 2 s.c om*/ private void handleDrop(int x, int y) { if (!mReorderHelper.hasReorderListener()) { updateReorderStates(ReorderUtils.DRAG_STATE_NONE); return; } if (mReorderHelper.isOverReorderingArea()) { // Store the location of the drag shadow at where dragging stopped // for animation if a reordering has just happened. Since the drag // shadow is drawn as a WindowManager view, its coordinates are // absolute. However, for views inside the grid, we need to operate // with coordinate values that's relative to this grid, so we need // to subtract the offset to absolute screen coordinates that have // been added to mWindowParams. final int left = mWindowParams.x - mOffsetToAbsoluteX; final int top = mWindowParams.y - mOffsetToAbsoluteY; mCachedDragViewRect = new Rect(left, top, left + mDragView.getWidth(), top + mDragView.getHeight()); if (getChildCount() > 0) { final View view = getChildAt(0); final LayoutParams lp = (LayoutParams) view.getLayoutParams(); if (lp.position > mReorderHelper.getDraggedChildPosition()) { // If the adapter position of the first child in view is // greater than the position of the original dragged child, // this means that the user has scrolled the child out of // view. Those off screen views would have been recycled. If // mFirstPosition is currently x, after the reordering // operation, the child[mFirstPosition] will be // at mFirstPosition-1. We want to adjust mFirstPosition so // that we render the view in the correct location after // reordering completes. // // If the user has not scrolled the original dragged child // out of view, then the view has not been recycled and is // still in view. // When onLayout() gets called, we'll automatically fill in // the empty space that the child leaves behind from the // reordering operation. mFirstPosition--; } } // Get the current scroll position so that after reordering // completes, we can restore the scroll position of mFirstPosition. mCurrentScrollState = getScrollState(); } final boolean reordered = mReorderHelper.handleDrop(new Point(x, y)); if (reordered) { updateReorderStates(ReorderUtils.DRAG_STATE_RELEASED_REORDER); } else { updateReorderStates(ReorderUtils.DRAG_STATE_NONE); } }
From source file:com.freerdp.freerdpcore.presentation.SessionActivity.java
private Point mapScreenCoordToSessionCoord(int x, int y) { int mappedX = (int) ((float) (x + scrollView.getScrollX()) / sessionView.getZoom()); int mappedY = (int) ((float) (y + scrollView.getScrollY()) / sessionView.getZoom()); if (mappedX > bitmap.getWidth()) mappedX = bitmap.getWidth();// www .j a va 2s. c o m if (mappedY > bitmap.getHeight()) mappedY = bitmap.getHeight(); return new Point(mappedX, mappedY); }
From source file:com.b44t.messenger.NotificationsController.java
private void showOrUpdateNotification(boolean notifyAboutLast) { if (pushMessages.isEmpty()) { dismissNotification();// w w w . j av a2 s. co m return; } try { ConnectionsManager.getInstance().resumeNetworkMaybe(); MessageObject lastMessageObject = pushMessages.get(0); SharedPreferences preferences = ApplicationLoader.applicationContext .getSharedPreferences("Notifications", Context.MODE_PRIVATE); int dismissDate = preferences.getInt("dismissDate", 0); if (lastMessageObject.messageOwner.date <= dismissDate) { dismissNotification(); return; } final long dialog_id = lastMessageObject.getDialogId(); //int mid = lastMessageObject.getId(); final int user_id = lastMessageObject.messageOwner.from_id; //TLRPC.User user = MessagesController.getInstance().getUser(user_id); MrChat mrChat = MrMailbox.getChat((int) dialog_id); boolean isGroupChat = mrChat.getType() == MrChat.MR_CHAT_GROUP; //TLRPC.FileLocation photoPath = null; boolean notifyDisabled = false; int needVibrate = 0; String choosenSoundPath = null; int ledColor = 0xff00ff00; boolean inAppSounds; boolean inAppVibrate; //boolean inAppPreview = false; int priority = 0; int priorityOverride; int vibrateOverride; int notifyOverride = getNotifyOverride(preferences, dialog_id); if (!notifyAboutLast || notifyOverride == 2 || (!preferences.getBoolean("EnableAll", true) || isGroupChat && !preferences.getBoolean("EnableGroup", true)) && notifyOverride == 0) { notifyDisabled = true; } if (!notifyDisabled && isGroupChat) { int notifyMaxCount = preferences.getInt("smart_max_count_" + dialog_id, 0); int notifyDelay = preferences.getInt("smart_delay_" + dialog_id, 3 * 60); if (notifyMaxCount != 0) { Point dialogInfo = smartNotificationsDialogs.get(dialog_id); if (dialogInfo == null) { dialogInfo = new Point(1, (int) (System.currentTimeMillis() / 1000)); smartNotificationsDialogs.put(dialog_id, dialogInfo); } else { int lastTime = dialogInfo.y; if (lastTime + notifyDelay < System.currentTimeMillis() / 1000) { dialogInfo.set(1, (int) (System.currentTimeMillis() / 1000)); } else { int count = dialogInfo.x; if (count < notifyMaxCount) { dialogInfo.set(count + 1, (int) (System.currentTimeMillis() / 1000)); } else { notifyDisabled = true; } } } } } String defaultPath = Settings.System.DEFAULT_NOTIFICATION_URI.getPath(); if (!notifyDisabled) { inAppSounds = preferences.getBoolean("EnableInAppSounds", true); inAppVibrate = preferences.getBoolean("EnableInAppVibrate", true); vibrateOverride = preferences.getInt("vibrate_" + dialog_id, 0); priorityOverride = preferences.getInt("priority_" + dialog_id, 3); boolean vibrateOnlyIfSilent = false; choosenSoundPath = preferences.getString("sound_path_" + dialog_id, null); if (isGroupChat) { if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) { choosenSoundPath = null; } else if (choosenSoundPath == null) { choosenSoundPath = preferences.getString("GroupSoundPath", defaultPath); } needVibrate = preferences.getInt("vibrate_group", 0); priority = preferences.getInt("priority_group", 1); ledColor = preferences.getInt("GroupLed", 0xff00ff00); } else { if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) { choosenSoundPath = null; } else if (choosenSoundPath == null) { choosenSoundPath = preferences.getString("GlobalSoundPath", defaultPath); } needVibrate = preferences.getInt("vibrate_messages", 0); priority = preferences.getInt("priority_messages", 1); ledColor = preferences.getInt("MessagesLed", 0xff00ff00); } if (preferences.contains("color_" + dialog_id)) { ledColor = preferences.getInt("color_" + dialog_id, 0); } if (priorityOverride != 3) { priority = priorityOverride; } if (needVibrate == 4) { vibrateOnlyIfSilent = true; needVibrate = 0; } if (needVibrate == 2 && (vibrateOverride == 1 || vibrateOverride == 3 || vibrateOverride == 5) || needVibrate != 2 && vibrateOverride == 2 || vibrateOverride != 0) { needVibrate = vibrateOverride; } if (!ApplicationLoader.mainInterfacePaused) { if (!inAppSounds) { choosenSoundPath = null; } if (!inAppVibrate) { needVibrate = 2; } priority = preferences.getInt("priority_inapp", 0); } if (vibrateOnlyIfSilent && needVibrate != 2) { try { int mode = audioManager.getRingerMode(); if (mode != AudioManager.RINGER_MODE_SILENT && mode != AudioManager.RINGER_MODE_VIBRATE) { needVibrate = 2; } } catch (Exception e) { FileLog.e("messenger", e); } } } Intent intent = new Intent(ApplicationLoader.applicationContext, LaunchActivity.class); intent.setAction("com.b44t.messenger.openchat" + (pushDialogs.size() == 1 ? dialog_id : 0)); intent.setFlags(32768); PendingIntent contentIntent = PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent, PendingIntent.FLAG_ONE_SHOT); boolean showPreview = preferences.getBoolean("EnablePreviewAll", true); if (AndroidUtilities.needShowPasscode(false) || UserConfig.isWaitingForPasscodeEnter) { showPreview = false; } String name; if (pushDialogs.size() > 1 || !showPreview) { name = mContext.getString(R.string.AppName); } else { if (isGroupChat) { name = mrChat.getName(); } else { name = MrMailbox.getContact(user_id).getDisplayName(); } } String detailText; if (pushDialogs.size() == 1) { detailText = mContext.getResources().getQuantityString(R.plurals.NewMessages, total_unread_count, total_unread_count); } else { String newMessages = mContext.getResources().getQuantityString(R.plurals.NewMessages, total_unread_count, total_unread_count); detailText = mContext.getResources().getQuantityString(R.plurals.NewMessagesInChats, pushDialogs.size(), newMessages, pushDialogs.size()); } NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( ApplicationLoader.applicationContext).setContentTitle(name) .setSmallIcon(R.drawable.notification).setAutoCancel(true).setNumber(total_unread_count) .setContentIntent(contentIntent).setGroup("messages").setGroupSummary(true) .setColor(Theme.ACTION_BAR_COLOR); mBuilder.setCategory(NotificationCompat.CATEGORY_MESSAGE); int silent = 2; String lastMessage = null; boolean hasNewMessages = false; if (!showPreview) { mBuilder.setContentText(detailText); lastMessage = detailText; } else if (pushMessages.size() == 1) { MessageObject messageObject = pushMessages.get(0); String message = lastMessage = getStringForMessage(messageObject, isGroupChat ? ADD_USER : 0); silent = messageObject.messageOwner.silent ? 1 : 0; if (message == null) { return; } mBuilder.setContentText(message); mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(message)); } else { mBuilder.setContentText(detailText); NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); inboxStyle.setBigContentTitle(name); int count = Math.min(10, pushMessages.size()); int string_flags = 0; if (pushDialogs.size() > 1) { string_flags |= ADD_GROUP; } for (int i = 1/*user_id is #0*/; i < pushMessages.size(); i++) { MessageObject messageObject = pushMessages.get(i); if (messageObject.messageOwner.from_id != user_id) { string_flags |= ADD_USER; break; } } for (int i = 0; i < count; i++) { MessageObject messageObject = pushMessages.get(i); String message = getStringForMessage(messageObject, string_flags); if (message == null || messageObject.messageOwner.date <= dismissDate) { continue; } if (silent == 2) { lastMessage = message; silent = messageObject.messageOwner.silent ? 1 : 0; } /*if (pushDialogs.size() == 1) { if (replace) { if (chat != null) { message = message.replace(" @ " + name, ""); } else { message = message.replace(name + ": ", "").replace(name + " ", ""); } } }*/ inboxStyle.addLine(message); } inboxStyle.setSummaryText(detailText); mBuilder.setStyle(inboxStyle); } Intent dismissIntent = new Intent(ApplicationLoader.applicationContext, NotificationDismissReceiver.class); dismissIntent.putExtra("messageDate", lastMessageObject.messageOwner.date); mBuilder.setDeleteIntent(PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 1, dismissIntent, PendingIntent.FLAG_UPDATE_CURRENT)); /*if (photoPath != null) { BitmapDrawable img = ImageLoader.getInstance().getImageFromMemory(photoPath, null, "50_50"); if (img != null) { mBuilder.setLargeIcon(img.getBitmap()); } else { try { float scaleFactor = 160.0f / AndroidUtilities.dp(50); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = scaleFactor < 1 ? 1 : (int) scaleFactor; Bitmap bitmap = BitmapFactory.decodeFile(FileLoader.getPathToAttach(photoPath, true).toString(), options); if (bitmap != null) { mBuilder.setLargeIcon(bitmap); } } catch (Throwable e) { //ignore } } }*/ if (!notifyAboutLast || silent == 1) { mBuilder.setPriority(NotificationCompat.PRIORITY_LOW); } else { if (priority == 0) { mBuilder.setPriority(NotificationCompat.PRIORITY_DEFAULT); } else if (priority == 1) { mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH); } else if (priority == 2) { mBuilder.setPriority(NotificationCompat.PRIORITY_MAX); } } if (silent != 1 && !notifyDisabled) { /*if (ApplicationLoader.mainInterfacePaused || inAppPreview)*/ { if (lastMessage.length() > 100) { lastMessage = lastMessage.substring(0, 100).replace('\n', ' ').trim() + "..."; } mBuilder.setTicker(lastMessage); } if (!MediaController.getInstance().isRecordingAudio()) { if (choosenSoundPath != null && !choosenSoundPath.equals("NoSound")) { if (choosenSoundPath.equals(defaultPath)) { mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI, AudioManager.STREAM_NOTIFICATION); } else { mBuilder.setSound(Uri.parse(choosenSoundPath), AudioManager.STREAM_NOTIFICATION); } } } if (ledColor != 0) { mBuilder.setLights(ledColor, 1000, 1000); } if (needVibrate == 2 || MediaController.getInstance().isRecordingAudio()) { mBuilder.setVibrate(new long[] { 0, 0 }); } else if (needVibrate == 1) { mBuilder.setVibrate(new long[] { 0, 100, 0, 100 }); } else if (needVibrate == 0 || needVibrate == 4) { mBuilder.setDefaults(NotificationCompat.DEFAULT_VIBRATE); } else if (needVibrate == 3) { mBuilder.setVibrate(new long[] { 0, 1000 }); } } else { mBuilder.setVibrate(new long[] { 0, 0 }); } //showExtraNotifications(mBuilder, notifyAboutLast); notificationManager.notify(1, mBuilder.build()); scheduleNotificationRepeat(); if (preferences.getBoolean("badgeNumber", true)) { setBadge(total_unread_count); } } catch (Exception e) { FileLog.e("messenger", e); } }
From source file:com.android.leanlauncher.Workspace.java
public void beginDragShared(View child, DragSource source) { child.clearFocus();/*from w ww .j a v a2 s. c o m*/ child.setPressed(false); // The outline is used to visualize where the item will land if dropped mDragOutline = createDragOutline(child, DRAG_BITMAP_PADDING); mLauncher.onDragStarted(child); // The drag bitmap follows the touch point around on the screen AtomicInteger padding = new AtomicInteger(DRAG_BITMAP_PADDING); final Bitmap b = createDragBitmap(child, padding); final int bmpWidth = b.getWidth(); final int bmpHeight = b.getHeight(); float scale = mLauncher.getDragLayer().getLocationInDragLayer(child, mTempXY); int dragLayerX = Math.round(mTempXY[0] - (bmpWidth - scale * child.getWidth()) / 2); int dragLayerY = Math.round(mTempXY[1] - (bmpHeight - scale * bmpHeight) / 2 - padding.get() / 2); LauncherAppState app = LauncherAppState.getInstance(); DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); Point dragVisualizeOffset = null; Rect dragRect = null; if (child instanceof BubbleTextView) { int iconSize = grid.iconSizePx; int top = child.getPaddingTop(); int left = (bmpWidth - iconSize) / 2; int right = left + iconSize; int bottom = top + iconSize; dragLayerY += top; // Note: The drag region is used to calculate drag layer offsets, but the // dragVisualizeOffset in addition to the dragRect (the size) to position the outline. dragVisualizeOffset = new Point(-padding.get() / 2, padding.get() / 2); dragRect = new Rect(left, top, right, bottom); } // Clear the pressed state if necessary if (child instanceof BubbleTextView) { BubbleTextView icon = (BubbleTextView) child; icon.clearPressedBackground(); } if (child.getTag() == null || !(child.getTag() instanceof ItemInfo)) { String msg = "Drag started with a view that has no tag set. This " + "will cause a crash (issue 11627249) down the line. " + "View: " + child + " tag: " + child.getTag(); throw new IllegalStateException(msg); } DragView dv = mDragController.startDrag(b, dragLayerX, dragLayerY, source, child.getTag(), DragController.DRAG_ACTION_MOVE, dragVisualizeOffset, dragRect, scale); dv.setIntrinsicIconScaleFactor(source.getIntrinsicIconScaleFactor()); b.recycle(); }
From source file:com.nttec.everychan.ui.gallery.GalleryActivity.java
private void setWebView(final GalleryItemViewTag tag, final File file) { runOnUiThread(new Runnable() { private boolean oomFlag = false; private final ViewGroup.LayoutParams MATCH_PARAMS = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); private void prepareWebView(WebView webView) { webView.setBackgroundColor(Color.TRANSPARENT); webView.setInitialScale(100); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) { CompatibilityImpl.setScrollbarFadingEnabled(webView, true); }// w w w . jav a 2 s . c om WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setSupportZoom(true); settings.setAllowFileAccess(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) { CompatibilityImpl.setDefaultZoomFAR(settings); CompatibilityImpl.setLoadWithOverviewMode(settings, true); } settings.setUseWideViewPort(true); settings.setCacheMode(WebSettings.LOAD_NO_CACHE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) { CompatibilityImpl.setBlockNetworkLoads(settings, true); } setScaleWebView(webView); } private void setScaleWebView(final WebView webView) { Runnable callSetScaleWebView = new Runnable() { @Override public void run() { setPrivateScaleWebView(webView); } }; Point resolution = new Point(tag.layout.getWidth(), tag.layout.getHeight()); if (resolution.equals(0, 0)) { // wait until the view is measured and its size is known AppearanceUtils.callWhenLoaded(tag.layout, callSetScaleWebView); } else { callSetScaleWebView.run(); } } private void setPrivateScaleWebView(WebView webView) { Point imageSize = getImageSize(file); Point resolution = new Point(tag.layout.getWidth(), tag.layout.getHeight()); //Logger.d(TAG, "Resolution: "+resolution.x+"x"+resolution.y); double scaleX = (double) resolution.x / (double) imageSize.x; double scaleY = (double) resolution.y / (double) imageSize.y; int scale = (int) Math.round(Math.min(scaleX, scaleY) * 100d); scale = Math.max(scale, 1); //Logger.d(TAG, "Scale: "+(Math.min(scaleX, scaleY) * 100d)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) { double picdpi = (getResources().getDisplayMetrics().density * 160d) / scaleX; if (picdpi >= 240) { CompatibilityImpl.setDefaultZoomFAR(webView.getSettings()); } else if (picdpi <= 120) { CompatibilityImpl.setDefaultZoomCLOSE(webView.getSettings()); } else { CompatibilityImpl.setDefaultZoomMEDIUM(webView.getSettings()); } } webView.setInitialScale(scale); webView.setPadding(0, 0, 0, 0); } private Point getImageSize(File file) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file.getAbsolutePath(), options); return new Point(options.outWidth, options.outHeight); } private boolean useFallback(File file) { String path = file.getPath().toLowerCase(Locale.US); if (path.endsWith(".png")) return false; if (path.endsWith(".jpg")) return false; if (path.endsWith(".gif")) return false; if (path.endsWith(".jpeg")) return false; if (path.endsWith(".webp") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) return false; return true; } @Override public void run() { try { recycleTag(tag, false); WebView webView = new WebViewFixed(GalleryActivity.this); webView.setLayoutParams(MATCH_PARAMS); tag.layout.addView(webView); if (settings.fallbackWebView() || useFallback(file)) { prepareWebView(webView); webView.loadUrl(Uri.fromFile(file).toString()); } else { JSWebView.setImage(webView, file); } tag.thumbnailView.setVisibility(View.GONE); tag.loadingView.setVisibility(View.GONE); tag.layout.setVisibility(View.VISIBLE); } catch (OutOfMemoryError oom) { System.gc(); Logger.e(TAG, oom); if (!oomFlag) { oomFlag = true; run(); } else showError(tag, getString(R.string.error_out_of_memory)); } } }); }
From source file:com.nttec.everychan.ui.presentation.BoardFragment.java
/** * ? thumbnail view ? ? ?.//from ww w. j a v a2 s . c o m * ?? thumbnail view {@link #thumbnailWidth} */ private FloatingModel[] measureFloatingModels(LayoutInflater inflater) { Point displaySize = AppearanceUtils.getDisplaySize(activity.getWindowManager().getDefaultDisplay()); LinearLayout view = (LinearLayout) inflater.inflate(R.layout.post_item_layout, (ViewGroup) rootView, false); TextView commentView = (TextView) view.findViewById(R.id.post_comment); TextPaint textPaint = commentView.getPaint(); int textLineHeight = Math.max(1, commentView.getLineHeight()); int rootWidth = (int) (displaySize.x * settings.getRootViewWeight()); postItemPadding = view.getPaddingLeft() + view.getPaddingRight(); int textWidth = postItemWidth = rootWidth - postItemPadding; View thumbnailView = view.findViewById(R.id.post_thumbnail); ViewGroup.MarginLayoutParams thumbnailLayoutParams = (ViewGroup.MarginLayoutParams) thumbnailView .getLayoutParams(); thumbnailMargin = thumbnailLayoutParams.leftMargin + thumbnailLayoutParams.rightMargin; View attachmentTypeView = thumbnailView.findViewById(R.id.post_thumbnail_attachment_type); FloatingModel[] floatingModels = new FloatingModel[2]; attachmentTypeView.setVisibility(View.GONE); thumbnailView.measure(displaySize.x, displaySize.y); Point thumbnailSize = new Point(thumbnailMargin + thumbnailView.getMeasuredWidth(), thumbnailView.getMeasuredHeight()); floatingModels[0] = new FloatingModel(thumbnailSize, textWidth, textPaint); attachmentTypeView.setVisibility(View.VISIBLE); thumbnailView.measure(displaySize.x, displaySize.y); thumbnailSize = new Point(thumbnailMargin + thumbnailView.getMeasuredWidth(), thumbnailView.getMeasuredHeight()); floatingModels[1] = new FloatingModel(thumbnailSize, textWidth, textPaint); thumbnailWidth = thumbnailSize.x; maxItemLines = divcell(thumbnailSize.y, textLineHeight); return floatingModels; }
From source file:com.android.gallery3d.filtershow.FilterShowActivity.java
public Point hintTouchPoint(View view) { int location[] = new int[2]; view.getLocationOnScreen(location);/*from www . j a va 2s.c o m*/ int x = mHintTouchPoint.x - location[0]; int y = mHintTouchPoint.y - location[1]; return new Point(x, y); }
From source file:com.bizcom.vc.widget.cus.SubsamplingScaleImageView.java
/** * In SDK 14 and above, use canvas max bitmap width and height instead of * the default 2048, to avoid redundant tiling. */// www .j a v a 2 s .c o m private Point getMaxBitmapDimensions(Canvas canvas) { if (VERSION.SDK_INT >= 14) { try { int maxWidth = (Integer) Canvas.class.getMethod("getMaximumBitmapWidth").invoke(canvas); int maxHeight = (Integer) Canvas.class.getMethod("getMaximumBitmapHeight").invoke(canvas); return new Point(maxWidth, maxHeight); } catch (Exception e) { // Return default } } return new Point(2048, 2048); }
From source file:com.goftagram.telegram.messenger.NotificationsController.java
private void showOrUpdateNotification(boolean notifyAboutLast) { if (!UserConfig.isClientActivated() || pushMessages.isEmpty()) { dismissNotification();/*from w ww . j a v a2s . c o m*/ return; } try { ConnectionsManager.getInstance().resumeNetworkMaybe(); MessageObject lastMessageObject = pushMessages.get(0); long dialog_id = lastMessageObject.getDialogId(); long override_dialog_id = dialog_id; if (lastMessageObject.messageOwner.mentioned) { override_dialog_id = lastMessageObject.messageOwner.from_id; } int mid = lastMessageObject.getId(); int chat_id = lastMessageObject.messageOwner.to_id.chat_id != 0 ? lastMessageObject.messageOwner.to_id.chat_id : lastMessageObject.messageOwner.to_id.channel_id; int user_id = lastMessageObject.messageOwner.to_id.user_id; if (user_id == 0) { user_id = lastMessageObject.messageOwner.from_id; } else if (user_id == UserConfig.getClientUserId()) { user_id = lastMessageObject.messageOwner.from_id; } TLRPC.User user = MessagesController.getInstance().getUser(user_id); TLRPC.Chat chat = null; if (chat_id != 0) { chat = MessagesController.getInstance().getChat(chat_id); } TLRPC.FileLocation photoPath = null; boolean notifyDisabled = false; int needVibrate = 0; String choosenSoundPath = null; int ledColor = 0xff00ff00; boolean inAppSounds; boolean inAppVibrate; boolean inAppPreview = false; boolean inAppPriority; int priority = 0; int priorityOverride; int vibrateOverride; SharedPreferences preferences = ApplicationLoader.applicationContext .getSharedPreferences("Notifications", Context.MODE_PRIVATE); int notifyOverride = getNotifyOverride(preferences, override_dialog_id); if (!notifyAboutLast || notifyOverride == 2 || (!preferences.getBoolean("EnableAll", true) || chat_id != 0 && !preferences.getBoolean("EnableGroup", true)) && notifyOverride == 0) { notifyDisabled = true; } if (!notifyDisabled && dialog_id == override_dialog_id && chat != null) { int notifyMaxCount = preferences.getInt("smart_max_count_" + dialog_id, 2); int notifyDelay = preferences.getInt("smart_delay_" + dialog_id, 3 * 60); if (notifyMaxCount != 0) { Point dialogInfo = smartNotificationsDialogs.get(dialog_id); if (dialogInfo == null) { dialogInfo = new Point(1, (int) (System.currentTimeMillis() / 1000)); smartNotificationsDialogs.put(dialog_id, dialogInfo); } else { int lastTime = dialogInfo.y; if (lastTime + notifyDelay < System.currentTimeMillis() / 1000) { dialogInfo.set(1, (int) (System.currentTimeMillis() / 1000)); } else { int count = dialogInfo.x; if (count < notifyMaxCount) { dialogInfo.set(count + 1, (int) (System.currentTimeMillis() / 1000)); } else { notifyDisabled = true; } } } } } String defaultPath = Settings.System.DEFAULT_NOTIFICATION_URI.getPath(); if (!notifyDisabled) { inAppSounds = preferences.getBoolean("EnableInAppSounds", true); inAppVibrate = preferences.getBoolean("EnableInAppVibrate", true); inAppPreview = preferences.getBoolean("EnableInAppPreview", true); inAppPriority = preferences.getBoolean("EnableInAppPriority", false); vibrateOverride = preferences.getInt("vibrate_" + dialog_id, 0); priorityOverride = preferences.getInt("priority_" + dialog_id, 3); boolean vibrateOnlyIfSilent = false; choosenSoundPath = preferences.getString("sound_path_" + dialog_id, null); if (chat_id != 0) { if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) { choosenSoundPath = null; } else if (choosenSoundPath == null) { choosenSoundPath = preferences.getString("GroupSoundPath", defaultPath); } needVibrate = preferences.getInt("vibrate_group", 0); priority = preferences.getInt("priority_group", 1); ledColor = preferences.getInt("GroupLed", 0xff00ff00); } else if (user_id != 0) { if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) { choosenSoundPath = null; } else if (choosenSoundPath == null) { choosenSoundPath = preferences.getString("GlobalSoundPath", defaultPath); } needVibrate = preferences.getInt("vibrate_messages", 0); priority = preferences.getInt("priority_group", 1); ledColor = preferences.getInt("MessagesLed", 0xff00ff00); } if (preferences.contains("color_" + dialog_id)) { ledColor = preferences.getInt("color_" + dialog_id, 0); } if (priorityOverride != 3) { priority = priorityOverride; } if (needVibrate == 4) { vibrateOnlyIfSilent = true; needVibrate = 0; } if (needVibrate == 2 && (vibrateOverride == 1 || vibrateOverride == 3 || vibrateOverride == 5) || needVibrate != 2 && vibrateOverride == 2 || vibrateOverride != 0) { needVibrate = vibrateOverride; } if (!ApplicationLoader.mainInterfacePaused) { if (!inAppSounds) { choosenSoundPath = null; } if (!inAppVibrate) { needVibrate = 2; } if (!inAppPriority) { priority = 0; } else if (priority == 2) { priority = 1; } } if (vibrateOnlyIfSilent && needVibrate != 2) { try { int mode = audioManager.getRingerMode(); if (mode != AudioManager.RINGER_MODE_SILENT && mode != AudioManager.RINGER_MODE_VIBRATE) { needVibrate = 2; } } catch (Exception e) { FileLog.e("tmessages", e); } } } Intent intent = new Intent(ApplicationLoader.applicationContext, LaunchActivity.class); intent.setAction("com.tmessages.openchat" + Math.random() + Integer.MAX_VALUE); intent.setFlags(32768); if ((int) dialog_id != 0) { if (pushDialogs.size() == 1) { if (chat_id != 0) { intent.putExtra("chatId", chat_id); } else if (user_id != 0) { intent.putExtra("userId", user_id); } } if (AndroidUtilities.needShowPasscode(false) || UserConfig.isWaitingForPasscodeEnter) { photoPath = null; } else { if (pushDialogs.size() == 1) { if (chat != null) { if (chat.photo != null && chat.photo.photo_small != null && chat.photo.photo_small.volume_id != 0 && chat.photo.photo_small.local_id != 0) { photoPath = chat.photo.photo_small; } } else if (user != null) { if (user.photo != null && user.photo.photo_small != null && user.photo.photo_small.volume_id != 0 && user.photo.photo_small.local_id != 0) { photoPath = user.photo.photo_small; } } } } } else { if (pushDialogs.size() == 1) { intent.putExtra("encId", (int) (dialog_id >> 32)); } } PendingIntent contentIntent = PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent, PendingIntent.FLAG_ONE_SHOT); String name; boolean replace = true; if ((int) dialog_id == 0 || pushDialogs.size() > 1 || AndroidUtilities.needShowPasscode(false) || UserConfig.isWaitingForPasscodeEnter) { name = LocaleController.getString("AppName", R.string.AppName); replace = false; } else { if (chat != null) { name = chat.title; } else { name = UserObject.getUserName(user); } } String detailText; if (pushDialogs.size() == 1) { detailText = LocaleController.formatPluralString("NewMessages", total_unread_count); } else { detailText = LocaleController.formatString("NotificationMessagesPeopleDisplayOrder", R.string.NotificationMessagesPeopleDisplayOrder, LocaleController.formatPluralString("NewMessages", total_unread_count), LocaleController.formatPluralString("FromChats", pushDialogs.size())); } NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( ApplicationLoader.applicationContext).setContentTitle(name) .setSmallIcon(R.drawable.notification).setAutoCancel(true).setNumber(total_unread_count) .setContentIntent(contentIntent).setGroup("messages").setGroupSummary(true) .setColor(0xff2ca5e0); if (!notifyAboutLast) { mBuilder.setPriority(NotificationCompat.PRIORITY_LOW); } else { if (priority == 0) { mBuilder.setPriority(NotificationCompat.PRIORITY_DEFAULT); } else if (priority == 1) { mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH); } else if (priority == 2) { mBuilder.setPriority(NotificationCompat.PRIORITY_MAX); } } mBuilder.setCategory(NotificationCompat.CATEGORY_MESSAGE); if (chat == null && user != null && user.phone != null && user.phone.length() > 0) { mBuilder.addPerson("tel:+" + user.phone); } String lastMessage = null; if (pushMessages.size() == 1) { String message = lastMessage = getStringForMessage(pushMessages.get(0), false); if (message == null) { return; } if (replace) { if (chat != null) { message = message.replace(" @ " + name, ""); } else { message = message.replace(name + ": ", "").replace(name + " ", ""); } } mBuilder.setContentText(message); mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(message)); } else { mBuilder.setContentText(detailText); NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); inboxStyle.setBigContentTitle(name); int count = Math.min(10, pushMessages.size()); for (int i = 0; i < count; i++) { String message = getStringForMessage(pushMessages.get(i), false); if (message == null) { continue; } if (i == 0) { lastMessage = message; } if (pushDialogs.size() == 1) { if (replace) { if (chat != null) { message = message.replace(" @ " + name, ""); } else { message = message.replace(name + ": ", "").replace(name + " ", ""); } } } inboxStyle.addLine(message); } inboxStyle.setSummaryText(detailText); mBuilder.setStyle(inboxStyle); } if (photoPath != null) { BitmapDrawable img = ImageLoader.getInstance().getImageFromMemory(photoPath, null, "50_50"); if (img != null) { mBuilder.setLargeIcon(img.getBitmap()); } } if (!notifyDisabled) { if (ApplicationLoader.mainInterfacePaused || inAppPreview) { if (lastMessage.length() > 100) { lastMessage = lastMessage.substring(0, 100).replace("\n", " ").trim() + "..."; } mBuilder.setTicker(lastMessage); } if (choosenSoundPath != null && !choosenSoundPath.equals("NoSound")) { if (choosenSoundPath.equals(defaultPath)) { /*MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); mediaPlayer.setDataSource(ApplicationLoader.applicationContext, Settings.System.DEFAULT_NOTIFICATION_URI); mediaPlayer.prepare(); mediaPlayer.start();*/ mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI, AudioManager.STREAM_NOTIFICATION); } else { mBuilder.setSound(Uri.parse(choosenSoundPath), AudioManager.STREAM_NOTIFICATION); } } if (ledColor != 0) { mBuilder.setLights(ledColor, 1000, 1000); } if (needVibrate == 2) { mBuilder.setVibrate(new long[] { 0, 0 }); } else if (needVibrate == 1) { mBuilder.setVibrate(new long[] { 0, 100, 0, 100 }); } else if (needVibrate == 0 || needVibrate == 4) { mBuilder.setDefaults(NotificationCompat.DEFAULT_VIBRATE); } else if (needVibrate == 3) { mBuilder.setVibrate(new long[] { 0, 1000 }); } } else { mBuilder.setVibrate(new long[] { 0, 0 }); } showExtraNotifications(mBuilder, notifyAboutLast); notificationManager.notify(1, mBuilder.build()); scheduleNotificationRepeat(); } catch (Exception e) { FileLog.e("tmessages", e); } }