Ejemplo n.º 1
0
 public Map<String, String> getBackupIndexes(Map<String, String> map) {
   File file = context.getAppPath(IndexConstants.BACKUP_INDEX_DIR);
   if (file != null && file.isDirectory()) {
     File[] lf = file.listFiles();
     if (lf != null) {
       for (File f : lf) {
         if (f != null && f.getName().endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) {
           map.put(
               f.getName(), AndroidUtils.formatDate(context, f.lastModified())); // $NON-NLS-1$	
         }
       }
     }
   }
   return map;
 }
Ejemplo n.º 2
0
 private Dialog createCommentBugDialog(final Bundle args) {
   Builder builder = new AlertDialog.Builder(activity);
   builder.setTitle(R.string.osb_comment_dialog_title);
   final View view = activity.getLayoutInflater().inflate(R.layout.open_bug, null);
   builder.setView(view);
   ((EditText) view.findViewById(R.id.userNameEditText)).setText(getUserName());
   ((EditText) view.findViewById(R.id.passwordEditText))
       .setText(((OsmandApplication) activity.getApplication()).getSettings().USER_PASSWORD.get());
   AndroidUtils.softKeyboardDelayed((EditText) view.findViewById(R.id.messageEditText));
   builder.setNegativeButton(R.string.shared_string_cancel, null);
   builder.setPositiveButton(
       R.string.osb_comment_dialog_add_button,
       new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
           OpenStreetNote bug = (OpenStreetNote) args.getSerializable(KEY_BUG);
           String text = getTextAndUpdateUserPwd(view);
           addingCommentAsync(bug, text, getUserName());
         }
       });
   return builder.create();
 }
Ejemplo n.º 3
0
 private Dialog createOpenBugDialog(final Bundle args) {
   final View openBug = activity.getLayoutInflater().inflate(R.layout.open_bug, null);
   Builder builder = new AlertDialog.Builder(activity);
   builder.setTitle(R.string.osb_add_dialog_title);
   builder.setView(openBug);
   builder.setNegativeButton(R.string.shared_string_cancel, null);
   ((EditText) openBug.findViewById(R.id.passwordEditText))
       .setText(((OsmandApplication) activity.getApplication()).getSettings().USER_PASSWORD.get());
   ((EditText) openBug.findViewById(R.id.userNameEditText)).setText(getUserName());
   AndroidUtils.softKeyboardDelayed((EditText) openBug.findViewById(R.id.messageEditText));
   builder.setPositiveButton(
       R.string.shared_string_add,
       new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
           final double latitude = args.getDouble(KEY_LATITUDE);
           final double longitude = args.getDouble(KEY_LONGITUDE);
           final String text = getTextAndUpdateUserPwd(openBug);
           createNewBugAsync(latitude, longitude, text, getUserName());
         }
       });
   return builder.create();
 }
Ejemplo n.º 4
0
  @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    screenHeight = AndroidUtils.getScreenHeight(getActivity());
    skipHalfScreenStateLimit = screenHeight * SKIP_HALF_SCREEN_STATE_KOEF;

    viewHeight = screenHeight - AndroidUtils.getStatusBarHeight(getMainActivity());

    fabPaddingTopPx = dpToPx(FAB_PADDING_TOP_DP);
    markerPaddingPx = dpToPx(MARKER_PADDING_DP);
    markerPaddingXPx = dpToPx(MARKER_PADDING_X_DP);

    menu = getMainActivity().getContextMenu();
    view = inflater.inflate(R.layout.map_context_menu_fragment, container, false);
    if (!menu.isActive()) {
      return view;
    }
    nightMode = menu.isNightMode();
    mainView = view.findViewById(R.id.context_menu_main);

    leftTitleButtonController = menu.getLeftTitleButtonController();
    rightTitleButtonController = menu.getRightTitleButtonController();
    topRightTitleButtonController = menu.getTopRightTitleButtonController();

    RotatedTileBox box = getBox();
    customMapCenter = menu.getMapCenter() != null;
    if (!customMapCenter) {
      mapCenter = box.getCenterLatLon();
      menu.setMapCenter(mapCenter);
      double markerLat = menu.getLatLon().getLatitude();
      double markerLon = menu.getLatLon().getLongitude();
      origMarkerX = (int) box.getPixXFromLatLon(markerLat, markerLon);
      origMarkerY = (int) box.getPixYFromLatLon(markerLat, markerLon);
    } else {
      mapCenter = menu.getMapCenter();
      origMarkerX = box.getCenterPixelX();
      origMarkerY = box.getCenterPixelY();
    }

    // Left title button
    final Button leftTitleButton = (Button) view.findViewById(R.id.title_button);
    if (leftTitleButtonController != null) {
      leftTitleButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              leftTitleButtonController.buttonPressed();
            }
          });
    }

    // Right title button
    final Button rightTitleButton = (Button) view.findViewById(R.id.title_button_right);
    if (rightTitleButtonController != null) {
      rightTitleButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              rightTitleButtonController.buttonPressed();
            }
          });
    }

    // Top Right title button
    final Button topRightTitleButton = (Button) view.findViewById(R.id.title_button_top_right);
    if (topRightTitleButtonController != null) {
      topRightTitleButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              topRightTitleButtonController.buttonPressed();
            }
          });
    }

    updateButtonsAndProgress();

    if (menu.isLandscapeLayout()) {
      final TypedValue typedValueAttr = new TypedValue();
      getMainActivity().getTheme().resolveAttribute(R.attr.left_menu_view_bg, typedValueAttr, true);
      mainView.setBackgroundResource(typedValueAttr.resourceId);
      mainView.setLayoutParams(
          new FrameLayout.LayoutParams(
              menu.getLandscapeWidthPx(), ViewGroup.LayoutParams.MATCH_PARENT));
      View fabContainer = view.findViewById(R.id.context_menu_fab_container);
      fabContainer.setLayoutParams(
          new FrameLayout.LayoutParams(
              menu.getLandscapeWidthPx(), ViewGroup.LayoutParams.MATCH_PARENT));
    }

    runLayoutListener();

    final GestureDetector singleTapDetector =
        new GestureDetector(view.getContext(), new SingleTapConfirm());

    final View.OnTouchListener slideTouchListener =
        new View.OnTouchListener() {
          private float dy;
          private float dyMain;
          private VelocityTracker velocity;
          private boolean slidingUp;
          private boolean slidingDown;

          private float velocityY;
          private float maxVelocityY;

          private boolean hasMoved;

          @Override
          public boolean onTouch(View v, MotionEvent event) {

            if (singleTapDetector.onTouchEvent(event)) {
              moving = false;
              int posY = getViewY();
              if (!centered) {
                if (!zoomIn && menu.supportZoomIn()) {
                  LatLon centerLatLon = getMainActivity().getScreenCenter();
                  if (centerLatLon.equals(menu.getLatLon())) {
                    zoomIn = true;
                  }
                }
                centerMarkerLocation();
              } else if (!zoomIn && menu.supportZoomIn()) {
                int fZoom = getZoom();
                zoomIn = true;
                if (fZoom < ZOOM_IN_STANDARD) {
                  /* todo animation
                  AnimateDraggingMapThread thread = map.getAnimatedDraggingThread();
                  thread.startZooming(ZOOM_IN_STANDARD,
                  		map.getZoomFractionalPart(), true);
                  */
                  getMainActivity().setZoom(ZOOM_IN_STANDARD);
                }
              }
              if (hasMoved) {
                applyPosY(posY, false, false, 0, 0);
              }
              openMenuHalfScreen();
              return true;
            }

            if (menu.isLandscapeLayout()) {
              return true;
            }

            switch (event.getAction()) {
              case MotionEvent.ACTION_DOWN:
                hasMoved = false;
                dy = event.getY();
                dyMain = getViewY();
                velocity = VelocityTracker.obtain();
                velocityY = 0;
                maxVelocityY = 0;
                velocity.addMovement(event);
                moving = true;
                break;

              case MotionEvent.ACTION_MOVE:
                if (moving) {
                  hasMoved = true;
                  float y = event.getY();
                  float newY = getViewY() + (y - dy);
                  setViewY((int) newY, false, false);

                  menuFullHeight = view.getHeight() - (int) newY + 10;
                  if (!oldAndroid()) {
                    ViewGroup.LayoutParams lp = mainView.getLayoutParams();
                    lp.height = Math.max(menuFullHeight, menuTitleHeight);
                    mainView.setLayoutParams(lp);
                    mainView.requestLayout();
                  }

                  velocity.addMovement(event);
                  velocity.computeCurrentVelocity(1000);
                  velocityY = Math.abs(velocity.getYVelocity());
                  if (velocityY > maxVelocityY) maxVelocityY = velocityY;
                }

                break;

              case MotionEvent.ACTION_UP:
              case MotionEvent.ACTION_CANCEL:
                if (moving) {
                  moving = false;
                  int currentY = getViewY();

                  slidingUp = Math.abs(maxVelocityY) > 500 && (currentY - dyMain) < -50;
                  slidingDown = Math.abs(maxVelocityY) > 500 && (currentY - dyMain) > 50;

                  velocity.recycle();

                  boolean skipHalfScreenState =
                      Math.abs(currentY - dyMain) > skipHalfScreenStateLimit;
                  changeMenuState(currentY, skipHalfScreenState, slidingUp, slidingDown);
                }
                break;
            }
            return true;
          }
        };

    View topView = view.findViewById(R.id.context_menu_top_view);
    topView.setOnTouchListener(slideTouchListener);
    View topShadowView = view.findViewById(R.id.context_menu_top_shadow);
    topShadowView.setOnTouchListener(slideTouchListener);
    View topShadowAllView = view.findViewById(R.id.context_menu_top_shadow_all);
    // AndroidUtils.setBackground(getMainActivity(), topShadowAllView, nightMode,
    // R.drawable.bg_map_context_menu_light,
    //		R.drawable.bg_map_context_menu_dark);
    topShadowAllView.setOnTouchListener(
        new View.OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {
            if (event.getY() <= dpToPx(SHADOW_HEIGHT_TOP_DP)
                || event.getAction() != MotionEvent.ACTION_DOWN)
              return slideTouchListener.onTouch(v, event);
            else return false;
          }
        });

    buildHeader();

    AndroidUtils.setTextPrimaryColor(
        getMainActivity(), (TextView) view.findViewById(R.id.context_menu_line1), nightMode);
    View menuLine2 = view.findViewById(R.id.context_menu_line2);
    if (menuLine2 != null) {
      AndroidUtils.setTextSecondaryColor(getMainActivity(), (TextView) menuLine2, nightMode);
    }
    ((Button) view.findViewById(R.id.title_button_top_right))
        .setTextColor(
            !nightMode
                ? getResources().getColor(R.color.map_widget_blue)
                : getResources().getColor(R.color.osmand_orange));
    AndroidUtils.setTextSecondaryColor(
        getMainActivity(), (TextView) view.findViewById(R.id.distance), nightMode);

    ((Button) view.findViewById(R.id.title_button))
        .setTextColor(
            !nightMode
                ? getResources().getColor(R.color.map_widget_blue)
                : getResources().getColor(R.color.osmand_orange));
    AndroidUtils.setTextSecondaryColor(
        getMainActivity(), (TextView) view.findViewById(R.id.title_button_right_text), nightMode);
    ((Button) view.findViewById(R.id.title_button_right))
        .setTextColor(
            !nightMode
                ? getResources().getColor(R.color.map_widget_blue)
                : getResources().getColor(R.color.osmand_orange));

    // FAB
    /*
    fabView = (ImageView) view.findViewById(R.id.context_menu_fab_view);
    if (menu.fabVisible()) {
    	fabView.setImageDrawable(iconsCache.getIcon(menu.getFabIconId(), 0));
    	if (menu.isLandscapeLayout()) {
    		FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) fabView.getLayoutParams();
    		params.setMargins(0, 0, dpToPx(28f), 0);
    		fabView.setLayoutParams(params);
    	}
    	fabView.setOnClickListener(new View.OnClickListener() {
    		@Override
    		public void onClick(View v) {
    			menu.fabPressed();
    		}
    	});
    } else {
    	fabView.setVisibility(View.GONE);
    }
    */

    buildBottomView();

    view.findViewById(R.id.context_menu_bottom_scroll)
        .setBackgroundColor(
            nightMode
                ? getResources().getColor(R.color.ctx_menu_info_view_bg_dark)
                : getResources().getColor(R.color.ctx_menu_info_view_bg_light));
    view.findViewById(R.id.context_menu_bottom_view)
        .setBackgroundColor(
            nightMode
                ? getResources().getColor(R.color.ctx_menu_info_view_bg_dark)
                : getResources().getColor(R.color.ctx_menu_info_view_bg_light));

    return view;
  }