Indonesian president cancels China visit over violent protests